class Evolvable::Evaluation
Constants
- GOALS
Attributes
goal[RW]
Public Class Methods
new(goal = :maximize)
click to toggle source
# File lib/evolvable/evaluation.rb, line 9 def initialize(goal = :maximize) @goal = normalize_goal(goal) end
Public Instance Methods
best_instance(population)
click to toggle source
# File lib/evolvable/evaluation.rb, line 19 def best_instance(population) population.instances.max_by { |instance| goal.evaluate(instance) } end
call(population)
click to toggle source
# File lib/evolvable/evaluation.rb, line 15 def call(population) population.instances.sort_by! { |instance| goal.evaluate(instance) } end
met_goal?(population)
click to toggle source
# File lib/evolvable/evaluation.rb, line 23 def met_goal?(population) goal.met?(population.instances.last) end
Private Instance Methods
goal_from_hash(goal_arg)
click to toggle source
# File lib/evolvable/evaluation.rb, line 44 def goal_from_hash(goal_arg) goal_type, value = goal_arg.first goal = GOALS[goal_type] goal.value = value goal end
goal_from_symbol(goal_arg)
click to toggle source
# File lib/evolvable/evaluation.rb, line 40 def goal_from_symbol(goal_arg) GOALS[goal_arg] end
normalize_goal(goal_arg)
click to toggle source
# File lib/evolvable/evaluation.rb, line 29 def normalize_goal(goal_arg) case goal_arg when Symbol goal_from_symbol(goal_arg) when Hash goal_from_hash(goal_arg) else goal_arg end end