Class: LennardJonesSolution

Inherits:
Solution show all
Defined in:
lib/gimuby/problem/lennard_jones/lennard_jones_solution.rb

Constant Summary collapse

@@positions_dimensions =
3
@@position_dimension_min =
-3.0
@@position_dimension_max =
3.0

Instance Attribute Summary

Attributes inherited from Solution

#check_strategy, #mutation_strategy, #new_generation_strategy

Instance Method Summary collapse

Methods inherited from Solution

#get_fitness, #mutate, #reproduce, #reset_fitness_state

Constructor Details

#initialize(atoms_positions = nil) ⇒ LennardJonesSolution

Returns a new instance of LennardJonesSolution.



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/gimuby/problem/lennard_jones/lennard_jones_solution.rb', line 11

def initialize(atoms_positions = nil)
  super(atoms_positions)

  @check_strategy = SolutionSpaceCheckStrategy.new
  @check_strategy.set_min(@@position_dimension_min)
  @check_strategy.set_max(@@position_dimension_max)

  @new_generation_strategy = CombinedNewGenerationStrategy.new
  @new_generation_strategy.add_strategy(ParentRangeNewGenerationStrategy.new)
  @new_generation_strategy.add_strategy(CrossOverNewGenerationStrategy.new)

  @mutation_strategy = SolutionSpaceMutationStrategy.new
  @mutation_strategy.set_min(@@position_dimension_min)
  @mutation_strategy.set_max(@@position_dimension_max)
end

Instance Method Details

#evaluateObject



27
28
29
# File 'lib/gimuby/problem/lennard_jones/lennard_jones_solution.rb', line 27

def evaluate
  get_lennard_jones.evaluate(get_solution_representation)
end

#get_solution_representationObject



31
32
33
# File 'lib/gimuby/problem/lennard_jones/lennard_jones_solution.rb', line 31

def get_solution_representation
  @atoms_positions.clone
end

#set_solution_representation(atoms_positions) ⇒ Object



35
36
37
38
39
40
# File 'lib/gimuby/problem/lennard_jones/lennard_jones_solution.rb', line 35

def set_solution_representation(atoms_positions)
  @atoms_positions = atoms_positions.clone
  #@atoms_positions = @atoms_positions.sort_by do |atom_position|
  #  atom_position[0]
  #end
end