evosynth 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. data/INSTALL +74 -0
  2. data/LICENSE +22 -0
  3. data/README +57 -0
  4. data/Rakefile +132 -0
  5. data/TODO +88 -0
  6. data/docs/FEATURES +111 -0
  7. data/docs/rdoc/classes/EvoSynth.html +2643 -0
  8. data/docs/rdoc/classes/EvoSynth/Adjustments.html +119 -0
  9. data/docs/rdoc/classes/EvoSynth/Adjustments/AdaptiveAdjustment.html +264 -0
  10. data/docs/rdoc/classes/EvoSynth/Adjustments/PredifinedAdjustment.html +235 -0
  11. data/docs/rdoc/classes/EvoSynth/ArrayGenome.html +313 -0
  12. data/docs/rdoc/classes/EvoSynth/BinaryGenome.html +518 -0
  13. data/docs/rdoc/classes/EvoSynth/Decoder.html +286 -0
  14. data/docs/rdoc/classes/EvoSynth/Evaluator.html +466 -0
  15. data/docs/rdoc/classes/EvoSynth/Evolvers.html +469 -0
  16. data/docs/rdoc/classes/EvoSynth/Evolvers/AdaptiveES.html +448 -0
  17. data/docs/rdoc/classes/EvoSynth/Evolvers/BalancedCoevolutionary.html +439 -0
  18. data/docs/rdoc/classes/EvoSynth/Evolvers/DerandomizedES.html +450 -0
  19. data/docs/rdoc/classes/EvoSynth/Evolvers/Evolver.html +125 -0
  20. data/docs/rdoc/classes/EvoSynth/Evolvers/GeneticAlgorithm.html +467 -0
  21. data/docs/rdoc/classes/EvoSynth/Evolvers/Hillclimber.html +343 -0
  22. data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch.html +422 -0
  23. data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/GreatDelugeAcceptance.html +287 -0
  24. data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/HillclimberAcceptance.html +197 -0
  25. data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/RecordToRecordTravelAcceptance.html +296 -0
  26. data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/SimulatedAnnealingAcceptance.html +286 -0
  27. data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/ThresholdAcceptance.html +287 -0
  28. data/docs/rdoc/classes/EvoSynth/Evolvers/MemeticAlgorithm.html +441 -0
  29. data/docs/rdoc/classes/EvoSynth/Evolvers/PopulationHillclimber.html +375 -0
  30. data/docs/rdoc/classes/EvoSynth/Evolvers/ProfileUsingEvolver.html +205 -0
  31. data/docs/rdoc/classes/EvoSynth/Evolvers/RoundRobinCoevolutionary.html +383 -0
  32. data/docs/rdoc/classes/EvoSynth/Evolvers/RunnableEvolver.html +279 -0
  33. data/docs/rdoc/classes/EvoSynth/Evolvers/RunnableEvolver/Goal.html +193 -0
  34. data/docs/rdoc/classes/EvoSynth/Evolvers/SelfAdaptiveES.html +394 -0
  35. data/docs/rdoc/classes/EvoSynth/Evolvers/SteadyStateGA.html +390 -0
  36. data/docs/rdoc/classes/EvoSynth/GlobalRecombinations.html +119 -0
  37. data/docs/rdoc/classes/EvoSynth/GlobalRecombinations/GlobalArithmeticCrossover.html +204 -0
  38. data/docs/rdoc/classes/EvoSynth/GlobalRecombinations/GlobalUniformCrossover.html +203 -0
  39. data/docs/rdoc/classes/EvoSynth/Individual.html +561 -0
  40. data/docs/rdoc/classes/EvoSynth/MaximizingIndividual.html +266 -0
  41. data/docs/rdoc/classes/EvoSynth/MetaOperators.html +149 -0
  42. data/docs/rdoc/classes/EvoSynth/MetaOperators/ConditionalCombinedOperator.html +278 -0
  43. data/docs/rdoc/classes/EvoSynth/MetaOperators/ProportionalCombinedOperator.html +285 -0
  44. data/docs/rdoc/classes/EvoSynth/MetaOperators/SequentialCombinedOperator.html +290 -0
  45. data/docs/rdoc/classes/EvoSynth/MinimizingIndividual.html +266 -0
  46. data/docs/rdoc/classes/EvoSynth/Mutations.html +251 -0
  47. data/docs/rdoc/classes/EvoSynth/Mutations/BinaryMutation.html +336 -0
  48. data/docs/rdoc/classes/EvoSynth/Mutations/EfficientBinaryMutation.html +345 -0
  49. data/docs/rdoc/classes/EvoSynth/Mutations/ExchangeMutation.html +320 -0
  50. data/docs/rdoc/classes/EvoSynth/Mutations/Functions.html +160 -0
  51. data/docs/rdoc/classes/EvoSynth/Mutations/GaussMutation.html +311 -0
  52. data/docs/rdoc/classes/EvoSynth/Mutations/Identity.html +220 -0
  53. data/docs/rdoc/classes/EvoSynth/Mutations/InversionMutation.html +231 -0
  54. data/docs/rdoc/classes/EvoSynth/Mutations/MixingMutation.html +233 -0
  55. data/docs/rdoc/classes/EvoSynth/Mutations/OneGeneFlipping.html +295 -0
  56. data/docs/rdoc/classes/EvoSynth/Mutations/SelfAdaptiveGaussMutation.html +347 -0
  57. data/docs/rdoc/classes/EvoSynth/Mutations/ShiftingMutation.html +229 -0
  58. data/docs/rdoc/classes/EvoSynth/Mutations/UniformRealMutation.html +264 -0
  59. data/docs/rdoc/classes/EvoSynth/Output.html +212 -0
  60. data/docs/rdoc/classes/EvoSynth/Output/CSVExporter.html +211 -0
  61. data/docs/rdoc/classes/EvoSynth/Output/ConsoleWriter.html +194 -0
  62. data/docs/rdoc/classes/EvoSynth/Output/GnuPlotExporter.html +235 -0
  63. data/docs/rdoc/classes/EvoSynth/Output/GruffExporter.html +219 -0
  64. data/docs/rdoc/classes/EvoSynth/Output/Logger.html +345 -0
  65. data/docs/rdoc/classes/EvoSynth/Population.html +430 -0
  66. data/docs/rdoc/classes/EvoSynth/Problems.html +159 -0
  67. data/docs/rdoc/classes/EvoSynth/Problems/BinaryBenchmarkFuntions.html +258 -0
  68. data/docs/rdoc/classes/EvoSynth/Problems/FloatBenchmarkFuntions.html +406 -0
  69. data/docs/rdoc/classes/EvoSynth/Problems/GraphColouring.html +265 -0
  70. data/docs/rdoc/classes/EvoSynth/Problems/TSP.html +327 -0
  71. data/docs/rdoc/classes/EvoSynth/Profile.html +324 -0
  72. data/docs/rdoc/classes/EvoSynth/Recombinations.html +251 -0
  73. data/docs/rdoc/classes/EvoSynth/Recombinations/ArithmeticCrossover.html +286 -0
  74. data/docs/rdoc/classes/EvoSynth/Recombinations/EdgeRecombination.html +203 -0
  75. data/docs/rdoc/classes/EvoSynth/Recombinations/Identity.html +192 -0
  76. data/docs/rdoc/classes/EvoSynth/Recombinations/KPointCrossover.html +286 -0
  77. data/docs/rdoc/classes/EvoSynth/Recombinations/OnePointCrossover.html +211 -0
  78. data/docs/rdoc/classes/EvoSynth/Recombinations/OrderedRecombination.html +206 -0
  79. data/docs/rdoc/classes/EvoSynth/Recombinations/PartiallyMappedCrossover.html +206 -0
  80. data/docs/rdoc/classes/EvoSynth/Recombinations/UniformCrossover.html +208 -0
  81. data/docs/rdoc/classes/EvoSynth/Selections.html +174 -0
  82. data/docs/rdoc/classes/EvoSynth/Selections/FitnessProportionalSelection.html +206 -0
  83. data/docs/rdoc/classes/EvoSynth/Selections/Identity.html +200 -0
  84. data/docs/rdoc/classes/EvoSynth/Selections/NStageTournamentSelection.html +273 -0
  85. data/docs/rdoc/classes/EvoSynth/Selections/RandomSelection.html +192 -0
  86. data/docs/rdoc/classes/EvoSynth/Selections/RouletteWheelSelection.html +212 -0
  87. data/docs/rdoc/classes/EvoSynth/Selections/SelectBest.html +206 -0
  88. data/docs/rdoc/classes/EvoSynth/Selections/TournamentSelection.html +274 -0
  89. data/docs/rdoc/classes/Examples.html +268 -0
  90. data/docs/rdoc/classes/Examples/Ants.html +198 -0
  91. data/docs/rdoc/classes/Examples/Ants/AntMutation.html +381 -0
  92. data/docs/rdoc/classes/Examples/Ants/Pheromon.html +256 -0
  93. data/docs/rdoc/classes/Examples/CCGAExample.html +305 -0
  94. data/docs/rdoc/classes/Examples/CCGAExample/CCGA2BenchmarkEvaluator.html +165 -0
  95. data/docs/rdoc/classes/Examples/CCGAExample/CCGABenchmarkEvaluator.html +242 -0
  96. data/docs/rdoc/classes/Examples/CCGAExample/CCGAIndividual.html +181 -0
  97. data/docs/rdoc/classes/Examples/CMBExample.html +215 -0
  98. data/docs/rdoc/classes/Examples/CMBExample/CMBEvaluator.html +212 -0
  99. data/docs/rdoc/classes/Examples/EsExample.html +270 -0
  100. data/docs/rdoc/classes/Examples/EsExample/BenchmarkEvaluator.html +162 -0
  101. data/docs/rdoc/classes/Examples/Exporter.html +208 -0
  102. data/docs/rdoc/classes/Examples/Exporter/ExporterEvaluator.html +196 -0
  103. data/docs/rdoc/classes/Examples/GraphColouring.html +199 -0
  104. data/docs/rdoc/classes/Examples/Hacking.html +147 -0
  105. data/docs/rdoc/classes/Examples/Hacking/HackingEvaluator.html +169 -0
  106. data/docs/rdoc/classes/Examples/LocalSearch.html +294 -0
  107. data/docs/rdoc/classes/Examples/LocalSearch/LocalSearchEvaluator.html +198 -0
  108. data/docs/rdoc/classes/Examples/MaxOnes.html +187 -0
  109. data/docs/rdoc/classes/Examples/MaxOnes/MaxOnesEvaluator.html +170 -0
  110. data/docs/rdoc/classes/Examples/Partitionproblem.html +201 -0
  111. data/docs/rdoc/classes/Examples/Partitionproblem/PartitionEvaluator.html +164 -0
  112. data/docs/rdoc/classes/Examples/Partitionproblem/PartitionIndividual.html +334 -0
  113. data/docs/rdoc/classes/Examples/Partitionproblem/PartitionMutation.html +199 -0
  114. data/docs/rdoc/classes/Examples/Partitionproblem/Testdata.html +294 -0
  115. data/docs/rdoc/classes/Examples/SPk.html +139 -0
  116. data/docs/rdoc/classes/Examples/SPk/SPkFitnessEvaluator.html +299 -0
  117. data/docs/rdoc/classes/Examples/TSP.html +187 -0
  118. data/docs/rdoc/created.rid +1 -0
  119. data/docs/rdoc/files/INSTALL.html +253 -0
  120. data/docs/rdoc/files/LICENSE.html +119 -0
  121. data/docs/rdoc/files/README.html +235 -0
  122. data/docs/rdoc/files/docs/FEATURES.html +428 -0
  123. data/docs/rdoc/files/examples/ants_rb.html +133 -0
  124. data/docs/rdoc/files/examples/ccga_example_rb.html +129 -0
  125. data/docs/rdoc/files/examples/cmb_example_rb.html +129 -0
  126. data/docs/rdoc/files/examples/evolution_strategies_rb.html +129 -0
  127. data/docs/rdoc/files/examples/exporter_rb.html +129 -0
  128. data/docs/rdoc/files/examples/graph_colouring_rb.html +129 -0
  129. data/docs/rdoc/files/examples/hacking_rb.html +129 -0
  130. data/docs/rdoc/files/examples/local_search_rb.html +129 -0
  131. data/docs/rdoc/files/examples/max_ones_rb.html +129 -0
  132. data/docs/rdoc/files/examples/partition_rb.html +131 -0
  133. data/docs/rdoc/files/examples/spk_rb.html +129 -0
  134. data/docs/rdoc/files/examples/tsp_rb.html +131 -0
  135. data/docs/rdoc/files/lib/evosynth/core/array_genome_rb.html +119 -0
  136. data/docs/rdoc/files/lib/evosynth/core/binary_genome_rb.html +119 -0
  137. data/docs/rdoc/files/lib/evosynth/core/evaluator_rb.html +129 -0
  138. data/docs/rdoc/files/lib/evosynth/core/individual_rb.html +119 -0
  139. data/docs/rdoc/files/lib/evosynth/core/maximizing_individual_rb.html +119 -0
  140. data/docs/rdoc/files/lib/evosynth/core/minimizing_individual_rb.html +119 -0
  141. data/docs/rdoc/files/lib/evosynth/core/population_rb.html +119 -0
  142. data/docs/rdoc/files/lib/evosynth/core/profile_rb.html +119 -0
  143. data/docs/rdoc/files/lib/evosynth/core/randomizer_rb.html +119 -0
  144. data/docs/rdoc/files/lib/evosynth/core_rb.html +145 -0
  145. data/docs/rdoc/files/lib/evosynth/decoder/binary_to_real_rb.html +119 -0
  146. data/docs/rdoc/files/lib/evosynth/decoder/gray_rb.html +119 -0
  147. data/docs/rdoc/files/lib/evosynth/decoder_rb.html +131 -0
  148. data/docs/rdoc/files/lib/evosynth/evolvers/basic/genetic_algorithm_rb.html +119 -0
  149. data/docs/rdoc/files/lib/evosynth/evolvers/basic/hillclimber_rb.html +119 -0
  150. data/docs/rdoc/files/lib/evosynth/evolvers/basic/memetic_algorithm_rb.html +119 -0
  151. data/docs/rdoc/files/lib/evosynth/evolvers/basic/population_hillclimber_rb.html +119 -0
  152. data/docs/rdoc/files/lib/evosynth/evolvers/basic/steady_state_ga_rb.html +119 -0
  153. data/docs/rdoc/files/lib/evosynth/evolvers/coevolutionary/balanced_coevolutionary_rb.html +119 -0
  154. data/docs/rdoc/files/lib/evosynth/evolvers/coevolutionary/round_robin_coevolutionary_rb.html +119 -0
  155. data/docs/rdoc/files/lib/evosynth/evolvers/elitism_rb.html +119 -0
  156. data/docs/rdoc/files/lib/evosynth/evolvers/evolution_strategies/adaptive_es_rb.html +129 -0
  157. data/docs/rdoc/files/lib/evosynth/evolvers/evolution_strategies/derandomized_es_rb.html +129 -0
  158. data/docs/rdoc/files/lib/evosynth/evolvers/evolution_strategies/selfadaptive_es_rb.html +119 -0
  159. data/docs/rdoc/files/lib/evosynth/evolvers/evolver_rb.html +131 -0
  160. data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_great_deluge_rb.html +119 -0
  161. data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_hillclimber_rb.html +119 -0
  162. data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_record_to_record_rb.html +119 -0
  163. data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_simulated_annealing_rb.html +119 -0
  164. data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_threshold_rb.html +119 -0
  165. data/docs/rdoc/files/lib/evosynth/evolvers/local_search/local_search_rb.html +137 -0
  166. data/docs/rdoc/files/lib/evosynth/evolvers/profile_using_evolver_rb.html +119 -0
  167. data/docs/rdoc/files/lib/evosynth/evolvers/runnable_evolver_rb.html +129 -0
  168. data/docs/rdoc/files/lib/evosynth/evolvers_rb.html +153 -0
  169. data/docs/rdoc/files/lib/evosynth/operators/adjustments/adaptive_adjustment_rb.html +119 -0
  170. data/docs/rdoc/files/lib/evosynth/operators/adjustments/predefined_adjustment_rb.html +119 -0
  171. data/docs/rdoc/files/lib/evosynth/operators/adjustments_rb.html +131 -0
  172. data/docs/rdoc/files/lib/evosynth/operators/global_recombinations/global_arithmetic_crossover_rb.html +119 -0
  173. data/docs/rdoc/files/lib/evosynth/operators/global_recombinations/global_uniform_crossover_rb.html +119 -0
  174. data/docs/rdoc/files/lib/evosynth/operators/global_recombinations_rb.html +131 -0
  175. data/docs/rdoc/files/lib/evosynth/operators/meta_operators/conditional_combined_operator_rb.html +119 -0
  176. data/docs/rdoc/files/lib/evosynth/operators/meta_operators/proportional_combined_operator_rb.html +119 -0
  177. data/docs/rdoc/files/lib/evosynth/operators/meta_operators/sequential_combined_operator_rb.html +119 -0
  178. data/docs/rdoc/files/lib/evosynth/operators/meta_operators_rb.html +133 -0
  179. data/docs/rdoc/files/lib/evosynth/operators/mutations/binary_mutation_rb.html +119 -0
  180. data/docs/rdoc/files/lib/evosynth/operators/mutations/efficient_binary_mutation_rb.html +119 -0
  181. data/docs/rdoc/files/lib/evosynth/operators/mutations/exchange_mutation_rb.html +119 -0
  182. data/docs/rdoc/files/lib/evosynth/operators/mutations/flip_functions_rb.html +119 -0
  183. data/docs/rdoc/files/lib/evosynth/operators/mutations/gauss_mutation_rb.html +119 -0
  184. data/docs/rdoc/files/lib/evosynth/operators/mutations/identity_rb.html +119 -0
  185. data/docs/rdoc/files/lib/evosynth/operators/mutations/inversion_mutation_rb.html +119 -0
  186. data/docs/rdoc/files/lib/evosynth/operators/mutations/mixing_mutation_rb.html +119 -0
  187. data/docs/rdoc/files/lib/evosynth/operators/mutations/one_gene_flipping_rb.html +119 -0
  188. data/docs/rdoc/files/lib/evosynth/operators/mutations/self_adaptive_gauss_mutation_rb.html +119 -0
  189. data/docs/rdoc/files/lib/evosynth/operators/mutations/shifting_mutation_rb.html +119 -0
  190. data/docs/rdoc/files/lib/evosynth/operators/mutations/uniform_real_mutation_rb.html +119 -0
  191. data/docs/rdoc/files/lib/evosynth/operators/mutations_rb.html +151 -0
  192. data/docs/rdoc/files/lib/evosynth/operators/recombinations/arithmetic_crossover_rb.html +119 -0
  193. data/docs/rdoc/files/lib/evosynth/operators/recombinations/edge_recombination_rb.html +129 -0
  194. data/docs/rdoc/files/lib/evosynth/operators/recombinations/identity_rb.html +119 -0
  195. data/docs/rdoc/files/lib/evosynth/operators/recombinations/k_point_crossover_rb.html +119 -0
  196. data/docs/rdoc/files/lib/evosynth/operators/recombinations/one_point_crossover_rb.html +119 -0
  197. data/docs/rdoc/files/lib/evosynth/operators/recombinations/ordered_recombination_rb.html +129 -0
  198. data/docs/rdoc/files/lib/evosynth/operators/recombinations/partially_mapped_crossover_rb.html +129 -0
  199. data/docs/rdoc/files/lib/evosynth/operators/recombinations/uniform_crossover_rb.html +119 -0
  200. data/docs/rdoc/files/lib/evosynth/operators/recombinations_rb.html +143 -0
  201. data/docs/rdoc/files/lib/evosynth/operators/selections/best_selection_rb.html +119 -0
  202. data/docs/rdoc/files/lib/evosynth/operators/selections/fitness_proportional_selection_rb.html +119 -0
  203. data/docs/rdoc/files/lib/evosynth/operators/selections/identity_rb.html +119 -0
  204. data/docs/rdoc/files/lib/evosynth/operators/selections/n_stage_tournament_selection_rb.html +119 -0
  205. data/docs/rdoc/files/lib/evosynth/operators/selections/random_selection_rb.html +119 -0
  206. data/docs/rdoc/files/lib/evosynth/operators/selections/roulette_wheel_selection_rb.html +119 -0
  207. data/docs/rdoc/files/lib/evosynth/operators/selections/tournament_selection_rb.html +119 -0
  208. data/docs/rdoc/files/lib/evosynth/operators/selections_rb.html +141 -0
  209. data/docs/rdoc/files/lib/evosynth/operators_rb.html +139 -0
  210. data/docs/rdoc/files/lib/evosynth/output/console_writer_rb.html +129 -0
  211. data/docs/rdoc/files/lib/evosynth/output/exporter/csv_exporter_rb.html +129 -0
  212. data/docs/rdoc/files/lib/evosynth/output/exporter/gnuplot_exporter_rb.html +131 -0
  213. data/docs/rdoc/files/lib/evosynth/output/exporter/gruff_exporter_rb.html +131 -0
  214. data/docs/rdoc/files/lib/evosynth/output/exporter_rb.html +133 -0
  215. data/docs/rdoc/files/lib/evosynth/output/factory_rb.html +129 -0
  216. data/docs/rdoc/files/lib/evosynth/output/logger_rb.html +119 -0
  217. data/docs/rdoc/files/lib/evosynth/output_rb.html +135 -0
  218. data/docs/rdoc/files/lib/evosynth/problems/binary_benchmark_functions_rb.html +119 -0
  219. data/docs/rdoc/files/lib/evosynth/problems/float_benchmark_functions_rb.html +1630 -0
  220. data/docs/rdoc/files/lib/evosynth/problems/graph_colouring_rb.html +129 -0
  221. data/docs/rdoc/files/lib/evosynth/problems/tsp_rb.html +129 -0
  222. data/docs/rdoc/files/lib/evosynth/problems_rb.html +135 -0
  223. data/docs/rdoc/files/lib/evosynth_rb.html +139 -0
  224. data/docs/rdoc/fr_class_index.html +245 -0
  225. data/docs/rdoc/fr_file_index.html +233 -0
  226. data/docs/rdoc/fr_method_index.html +661 -0
  227. data/docs/rdoc/index.html +21 -0
  228. data/docs/rdoc/rdoc-style.css +299 -0
  229. data/examples/ants.rb +237 -0
  230. data/examples/ccga_example.rb +150 -0
  231. data/examples/cmb_example.rb +117 -0
  232. data/examples/evolution_strategies.rb +84 -0
  233. data/examples/exporter.rb +90 -0
  234. data/examples/graph_colouring.rb +72 -0
  235. data/examples/hacking.rb +62 -0
  236. data/examples/local_search.rb +109 -0
  237. data/examples/max_ones.rb +83 -0
  238. data/examples/partition.rb +172 -0
  239. data/examples/spk.rb +106 -0
  240. data/examples/tsp.rb +83 -0
  241. data/lib/evosynth.rb +32 -0
  242. data/lib/evosynth/core.rb +33 -0
  243. data/lib/evosynth/core/array_genome.rb +77 -0
  244. data/lib/evosynth/core/binary_genome.rb +156 -0
  245. data/lib/evosynth/core/evaluator.rb +109 -0
  246. data/lib/evosynth/core/individual.rb +92 -0
  247. data/lib/evosynth/core/maximizing_individual.rb +71 -0
  248. data/lib/evosynth/core/minimizing_individual.rb +71 -0
  249. data/lib/evosynth/core/population.rb +120 -0
  250. data/lib/evosynth/core/profile.rb +110 -0
  251. data/lib/evosynth/core/randomizer.rb +73 -0
  252. data/lib/evosynth/decoder.rb +33 -0
  253. data/lib/evosynth/decoder/binary_to_real.rb +57 -0
  254. data/lib/evosynth/decoder/gray.rb +54 -0
  255. data/lib/evosynth/evolvers.rb +41 -0
  256. data/lib/evosynth/evolvers/basic/genetic_algorithm.rb +92 -0
  257. data/lib/evosynth/evolvers/basic/hillclimber.rb +64 -0
  258. data/lib/evosynth/evolvers/basic/memetic_algorithm.rb +111 -0
  259. data/lib/evosynth/evolvers/basic/population_hillclimber.rb +69 -0
  260. data/lib/evosynth/evolvers/basic/steady_state_ga.rb +85 -0
  261. data/lib/evosynth/evolvers/coevolutionary/balanced_coevolutionary.rb +125 -0
  262. data/lib/evosynth/evolvers/coevolutionary/round_robin_coevolutionary.rb +87 -0
  263. data/lib/evosynth/evolvers/elitism.rb +108 -0
  264. data/lib/evosynth/evolvers/evolution_strategies/adaptive_es.rb +104 -0
  265. data/lib/evosynth/evolvers/evolution_strategies/derandomized_es.rb +120 -0
  266. data/lib/evosynth/evolvers/evolution_strategies/selfadaptive_es.rb +82 -0
  267. data/lib/evosynth/evolvers/evolver.rb +43 -0
  268. data/lib/evosynth/evolvers/local_search/acceptance_great_deluge.rb +60 -0
  269. data/lib/evosynth/evolvers/local_search/acceptance_hillclimber.rb +47 -0
  270. data/lib/evosynth/evolvers/local_search/acceptance_record_to_record.rb +69 -0
  271. data/lib/evosynth/evolvers/local_search/acceptance_simulated_annealing.rb +59 -0
  272. data/lib/evosynth/evolvers/local_search/acceptance_threshold.rb +60 -0
  273. data/lib/evosynth/evolvers/local_search/local_search.rb +74 -0
  274. data/lib/evosynth/evolvers/profile_using_evolver.rb +77 -0
  275. data/lib/evosynth/evolvers/runnable_evolver.rb +89 -0
  276. data/lib/evosynth/operators.rb +30 -0
  277. data/lib/evosynth/operators/adjustments.rb +26 -0
  278. data/lib/evosynth/operators/adjustments/adaptive_adjustment.rb +55 -0
  279. data/lib/evosynth/operators/adjustments/predefined_adjustment.rb +46 -0
  280. data/lib/evosynth/operators/global_recombinations.rb +26 -0
  281. data/lib/evosynth/operators/global_recombinations/global_arithmetic_crossover.rb +50 -0
  282. data/lib/evosynth/operators/global_recombinations/global_uniform_crossover.rb +49 -0
  283. data/lib/evosynth/operators/meta_operators.rb +36 -0
  284. data/lib/evosynth/operators/meta_operators/conditional_combined_operator.rb +65 -0
  285. data/lib/evosynth/operators/meta_operators/proportional_combined_operator.rb +84 -0
  286. data/lib/evosynth/operators/meta_operators/sequential_combined_operator.rb +73 -0
  287. data/lib/evosynth/operators/mutations.rb +47 -0
  288. data/lib/evosynth/operators/mutations/binary_mutation.rb +100 -0
  289. data/lib/evosynth/operators/mutations/efficient_binary_mutation.rb +105 -0
  290. data/lib/evosynth/operators/mutations/exchange_mutation.rb +107 -0
  291. data/lib/evosynth/operators/mutations/flip_functions.rb +45 -0
  292. data/lib/evosynth/operators/mutations/gauss_mutation.rb +65 -0
  293. data/lib/evosynth/operators/mutations/identity.rb +62 -0
  294. data/lib/evosynth/operators/mutations/inversion_mutation.rb +73 -0
  295. data/lib/evosynth/operators/mutations/mixing_mutation.rb +75 -0
  296. data/lib/evosynth/operators/mutations/one_gene_flipping.rb +89 -0
  297. data/lib/evosynth/operators/mutations/self_adaptive_gauss_mutation.rb +73 -0
  298. data/lib/evosynth/operators/mutations/shifting_mutation.rb +88 -0
  299. data/lib/evosynth/operators/mutations/uniform_real_mutation.rb +59 -0
  300. data/lib/evosynth/operators/recombinations.rb +48 -0
  301. data/lib/evosynth/operators/recombinations/arithmetic_crossover.rb +67 -0
  302. data/lib/evosynth/operators/recombinations/edge_recombination.rb +108 -0
  303. data/lib/evosynth/operators/recombinations/identity.rb +42 -0
  304. data/lib/evosynth/operators/recombinations/k_point_crossover.rb +81 -0
  305. data/lib/evosynth/operators/recombinations/one_point_crossover.rb +56 -0
  306. data/lib/evosynth/operators/recombinations/ordered_recombination.rb +75 -0
  307. data/lib/evosynth/operators/recombinations/partially_mapped_crossover.rb +102 -0
  308. data/lib/evosynth/operators/recombinations/uniform_crossover.rb +54 -0
  309. data/lib/evosynth/operators/selections.rb +31 -0
  310. data/lib/evosynth/operators/selections/best_selection.rb +54 -0
  311. data/lib/evosynth/operators/selections/fitness_proportional_selection.rb +83 -0
  312. data/lib/evosynth/operators/selections/identity.rb +48 -0
  313. data/lib/evosynth/operators/selections/n_stage_tournament_selection.rb +84 -0
  314. data/lib/evosynth/operators/selections/random_selection.rb +44 -0
  315. data/lib/evosynth/operators/selections/roulette_wheel_selection.rb +54 -0
  316. data/lib/evosynth/operators/selections/tournament_selection.rb +71 -0
  317. data/lib/evosynth/output.rb +28 -0
  318. data/lib/evosynth/output/console_writer.rb +45 -0
  319. data/lib/evosynth/output/exporter.rb +27 -0
  320. data/lib/evosynth/output/exporter/csv_exporter.rb +62 -0
  321. data/lib/evosynth/output/exporter/gnuplot_exporter.rb +81 -0
  322. data/lib/evosynth/output/exporter/gruff_exporter.rb +70 -0
  323. data/lib/evosynth/output/factory.rb +38 -0
  324. data/lib/evosynth/output/logger.rb +83 -0
  325. data/lib/evosynth/problems.rb +37 -0
  326. data/lib/evosynth/problems/binary_benchmark_functions.rb +74 -0
  327. data/lib/evosynth/problems/float_benchmark_functions.rb +99 -0
  328. data/lib/evosynth/problems/graph_colouring.rb +89 -0
  329. data/lib/evosynth/problems/tsp.rb +88 -0
  330. data/test/benchmark/decoder_benchmark.rb +75 -0
  331. data/test/benchmark/mutation_benchmark.rb +88 -0
  332. data/test/benchmark/recombination_benchmark.rb +58 -0
  333. data/test/benchmark/selection_benchmark.rb +52 -0
  334. data/test/core/tc_array_genome.rb +154 -0
  335. data/test/core/tc_binary_genome.rb +160 -0
  336. data/test/core/tc_population.rb +154 -0
  337. data/test/core/tc_profile.rb +75 -0
  338. data/test/core/tc_randomizer.rb +165 -0
  339. data/test/coverage.rb +43 -0
  340. data/test/decoder/tc_binary_to_real.rb +52 -0
  341. data/test/decoder/tc_gray.rb +107 -0
  342. data/test/operators/adjustments/tc_adaptive_adjustment.rb +63 -0
  343. data/test/operators/adjustments/tc_predefined_adjustment.rb +49 -0
  344. data/test/operators/global_recombinations/tc_global_arithmetic_crossover.rb +78 -0
  345. data/test/operators/global_recombinations/tc_global_uniform_crossover.rb +90 -0
  346. data/test/operators/meta_operators/tc_conditional_combined_operator.rb +66 -0
  347. data/test/operators/meta_operators/tc_proportional_combined_operator.rb +167 -0
  348. data/test/operators/meta_operators/tc_sequential_combined_operator.rb +98 -0
  349. data/test/operators/mutations/tc_binary_mutation.rb +73 -0
  350. data/test/operators/mutations/tc_efficient_binary_mutation.rb +73 -0
  351. data/test/operators/mutations/tc_exchange_mutation.rb +127 -0
  352. data/test/operators/mutations/tc_gauss_mutation.rb +130 -0
  353. data/test/operators/mutations/tc_identity_mutation.rb +64 -0
  354. data/test/operators/mutations/tc_inversion_mutation.rb +70 -0
  355. data/test/operators/mutations/tc_mixing_mutation.rb +73 -0
  356. data/test/operators/mutations/tc_one_gene_flipping.rb +109 -0
  357. data/test/operators/mutations/tc_self_adaptive_gauss_mutation.rb +72 -0
  358. data/test/operators/mutations/tc_shifting_muation.rb +73 -0
  359. data/test/operators/mutations/tc_uniform_real_mutation.rb +65 -0
  360. data/test/operators/recombinations/tc_arithmetic_crossover.rb +79 -0
  361. data/test/operators/recombinations/tc_edge_recombination.rb +76 -0
  362. data/test/operators/recombinations/tc_identity_recombination.rb +81 -0
  363. data/test/operators/recombinations/tc_k_point_crossover.rb +81 -0
  364. data/test/operators/recombinations/tc_one_point_crossover.rb +80 -0
  365. data/test/operators/recombinations/tc_ordered_recombination.rb +76 -0
  366. data/test/operators/recombinations/tc_partially_mapped_crossover.rb +91 -0
  367. data/test/operators/recombinations/tc_uniform_crossover.rb +84 -0
  368. data/test/operators/selections/tc_best_selection.rb +85 -0
  369. data/test/operators/selections/tc_fitness_proportional_selection.rb +78 -0
  370. data/test/operators/selections/tc_identity.rb +91 -0
  371. data/test/operators/selections/tc_n_stage_tournament.rb +78 -0
  372. data/test/operators/selections/tc_random_selection.rb +70 -0
  373. data/test/operators/selections/tc_roulette_wheel_selection.rb +78 -0
  374. data/test/operators/selections/tc_tournament_selection.rb +83 -0
  375. data/test/problems/tc_binary_benchmark_functions.rb +126 -0
  376. data/test/problems/tc_float_benchmark_functions.rb +100 -0
  377. data/test/test_util/test_helper.rb +128 -0
  378. data/test/ts_adjustments.rb +26 -0
  379. data/test/ts_core.rb +29 -0
  380. data/test/ts_decoder.rb +26 -0
  381. data/test/ts_global_recombinations.rb +26 -0
  382. data/test/ts_meta_operators.rb +27 -0
  383. data/test/ts_mutations.rb +35 -0
  384. data/test/ts_problems.rb +26 -0
  385. data/test/ts_recombinations.rb +32 -0
  386. data/test/ts_selections.rb +31 -0
  387. data/testdata/README +4 -0
  388. data/testdata/bays29.tsp +68 -0
  389. data/testdata/myciel4.col +77 -0
  390. metadata +552 -0
@@ -0,0 +1,204 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Class: EvoSynth::GlobalRecombinations::GlobalArithmeticCrossover [EvoSynth Documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">EvoSynth::GlobalRecombinations::GlobalArithmeticCrossover</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../../files/lib/evosynth/operators/global_recombinations/global_arithmetic_crossover_rb.html">
57
+
58
+ lib/evosynth/operators/global_recombinations/global_arithmetic_crossover.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ Object
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ <div id="description">
87
+ <p>
88
+ GLOBALER-ARITHMETISCHER-CROSSOVER (Weicker Page 138)
89
+ </p>
90
+
91
+ </div>
92
+
93
+ </div>
94
+
95
+
96
+ <div id="method-list">
97
+ <h3 class="section-bar">Methods</h3>
98
+
99
+ <div class="name-list">
100
+
101
+ <a href="#M000039">recombine</a>&nbsp;&nbsp;
102
+
103
+ <a href="#M000040">to_s</a>&nbsp;&nbsp;
104
+
105
+ </div>
106
+ </div>
107
+
108
+ </div>
109
+
110
+ <!-- if includes -->
111
+
112
+ <div id="section">
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+
119
+ <div id="methods">
120
+
121
+ <h3 class="section-bar">Public Instance methods</h3>
122
+
123
+
124
+ <div id="method-M000039" class="method-detail">
125
+ <a name="M000039"></a>
126
+
127
+ <div class="method-heading">
128
+
129
+ <a href="#M000039" class="method-signature">
130
+
131
+ <span class="method-name">recombine</span><span class="method-args">(population)</span>
132
+
133
+ </a>
134
+
135
+ </div>
136
+
137
+ <div class="method-description">
138
+
139
+ <p><a class="source-toggle" href="#"
140
+ onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
141
+ <div class="method-source-code" id="M000039-source">
142
+ <pre>
143
+ <span class="ruby-comment cmt"># File lib/evosynth/operators/global_recombinations/global_arithmetic_crossover.rb, line 32</span>
144
+ 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recombine</span>(<span class="ruby-identifier">population</span>)
145
+ 33: <span class="ruby-identifier">child</span> = <span class="ruby-identifier">population</span>[<span class="ruby-constant">EvoSynth</span>.<span class="ruby-identifier">rand</span>(<span class="ruby-identifier">population</span>.<span class="ruby-identifier">size</span>)].<span class="ruby-identifier">deep_clone</span>
146
+ 34:
147
+ 35: <span class="ruby-identifier">child</span>.<span class="ruby-identifier">genome</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
148
+ 36: <span class="ruby-identifier">sum</span> = <span class="ruby-identifier">population</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">individual</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">individual</span>.<span class="ruby-identifier">genome</span>[<span class="ruby-identifier">index</span>] }
149
+ 37: <span class="ruby-identifier">child</span>.<span class="ruby-identifier">genome</span>[<span class="ruby-identifier">index</span>] = (<span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">population</span>.<span class="ruby-identifier">size</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">sum</span>
150
+ 38: <span class="ruby-keyword kw">end</span>
151
+ 39:
152
+ 40: <span class="ruby-identifier">child</span>
153
+ 41: <span class="ruby-keyword kw">end</span>
154
+ </pre>
155
+ </div>
156
+
157
+ </div>
158
+ </div>
159
+
160
+
161
+ <div id="method-M000040" class="method-detail">
162
+ <a name="M000040"></a>
163
+
164
+ <div class="method-heading">
165
+
166
+ <a href="#M000040" class="method-signature">
167
+
168
+ <span class="method-name">to_s</span><span class="method-args">()</span>
169
+
170
+ </a>
171
+
172
+ </div>
173
+
174
+ <div class="method-description">
175
+
176
+ <p><a class="source-toggle" href="#"
177
+ onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
178
+ <div class="method-source-code" id="M000040-source">
179
+ <pre>
180
+ <span class="ruby-comment cmt"># File lib/evosynth/operators/global_recombinations/global_arithmetic_crossover.rb, line 43</span>
181
+ 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
182
+ 44: <span class="ruby-value str">&quot;global arithmetic crossover&quot;</span>
183
+ 45: <span class="ruby-keyword kw">end</span>
184
+ </pre>
185
+ </div>
186
+
187
+ </div>
188
+ </div>
189
+
190
+
191
+
192
+ </div>
193
+
194
+
195
+
196
+
197
+ </div>
198
+
199
+ <div id="validator-badges">
200
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
201
+ </div>
202
+
203
+ </body>
204
+ </html>
@@ -0,0 +1,203 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Class: EvoSynth::GlobalRecombinations::GlobalUniformCrossover [EvoSynth Documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">EvoSynth::GlobalRecombinations::GlobalUniformCrossover</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../../files/lib/evosynth/operators/global_recombinations/global_uniform_crossover_rb.html">
57
+
58
+ lib/evosynth/operators/global_recombinations/global_uniform_crossover.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+ </td>
66
+ </tr>
67
+
68
+
69
+ <tr class="top-aligned-row">
70
+ <td><strong>Parent:</strong></td>
71
+ <td>
72
+
73
+ Object
74
+
75
+ </td>
76
+ </tr>
77
+
78
+ </table>
79
+ </div>
80
+ <!-- banner header -->
81
+
82
+ <div id="bodyContent">
83
+
84
+ <div id="contextContent">
85
+
86
+ <div id="description">
87
+ <p>
88
+ GLOBALER-UNIFORMER-CROSSOVER (Weicker Page 137)
89
+ </p>
90
+
91
+ </div>
92
+
93
+ </div>
94
+
95
+
96
+ <div id="method-list">
97
+ <h3 class="section-bar">Methods</h3>
98
+
99
+ <div class="name-list">
100
+
101
+ <a href="#M000041">recombine</a>&nbsp;&nbsp;
102
+
103
+ <a href="#M000042">to_s</a>&nbsp;&nbsp;
104
+
105
+ </div>
106
+ </div>
107
+
108
+ </div>
109
+
110
+ <!-- if includes -->
111
+
112
+ <div id="section">
113
+
114
+
115
+
116
+
117
+ <!-- if method_list -->
118
+
119
+ <div id="methods">
120
+
121
+ <h3 class="section-bar">Public Instance methods</h3>
122
+
123
+
124
+ <div id="method-M000041" class="method-detail">
125
+ <a name="M000041"></a>
126
+
127
+ <div class="method-heading">
128
+
129
+ <a href="#M000041" class="method-signature">
130
+
131
+ <span class="method-name">recombine</span><span class="method-args">(population)</span>
132
+
133
+ </a>
134
+
135
+ </div>
136
+
137
+ <div class="method-description">
138
+
139
+ <p><a class="source-toggle" href="#"
140
+ onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
141
+ <div class="method-source-code" id="M000041-source">
142
+ <pre>
143
+ <span class="ruby-comment cmt"># File lib/evosynth/operators/global_recombinations/global_uniform_crossover.rb, line 32</span>
144
+ 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">recombine</span>(<span class="ruby-identifier">population</span>)
145
+ 33: <span class="ruby-identifier">child</span> = <span class="ruby-identifier">population</span>[<span class="ruby-constant">EvoSynth</span>.<span class="ruby-identifier">rand</span>(<span class="ruby-identifier">population</span>.<span class="ruby-identifier">size</span>)].<span class="ruby-identifier">deep_clone</span>
146
+ 34:
147
+ 35: <span class="ruby-identifier">child</span>.<span class="ruby-identifier">genome</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">index</span><span class="ruby-operator">|</span>
148
+ 36: <span class="ruby-identifier">child</span>.<span class="ruby-identifier">genome</span>[<span class="ruby-identifier">index</span>] = <span class="ruby-identifier">population</span>[<span class="ruby-constant">EvoSynth</span>.<span class="ruby-identifier">rand</span>(<span class="ruby-identifier">population</span>.<span class="ruby-identifier">size</span>)].<span class="ruby-identifier">genome</span>[<span class="ruby-identifier">index</span>]
149
+ 37: <span class="ruby-keyword kw">end</span>
150
+ 38:
151
+ 39: <span class="ruby-identifier">child</span>
152
+ 40: <span class="ruby-keyword kw">end</span>
153
+ </pre>
154
+ </div>
155
+
156
+ </div>
157
+ </div>
158
+
159
+
160
+ <div id="method-M000042" class="method-detail">
161
+ <a name="M000042"></a>
162
+
163
+ <div class="method-heading">
164
+
165
+ <a href="#M000042" class="method-signature">
166
+
167
+ <span class="method-name">to_s</span><span class="method-args">()</span>
168
+
169
+ </a>
170
+
171
+ </div>
172
+
173
+ <div class="method-description">
174
+
175
+ <p><a class="source-toggle" href="#"
176
+ onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
177
+ <div class="method-source-code" id="M000042-source">
178
+ <pre>
179
+ <span class="ruby-comment cmt"># File lib/evosynth/operators/global_recombinations/global_uniform_crossover.rb, line 42</span>
180
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
181
+ 43: <span class="ruby-value str">&quot;global uniform crossover&quot;</span>
182
+ 44: <span class="ruby-keyword kw">end</span>
183
+ </pre>
184
+ </div>
185
+
186
+ </div>
187
+ </div>
188
+
189
+
190
+
191
+ </div>
192
+
193
+
194
+
195
+
196
+ </div>
197
+
198
+ <div id="validator-badges">
199
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
200
+ </div>
201
+
202
+ </body>
203
+ </html>
@@ -0,0 +1,561 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <title>Class: EvoSynth::Individual [EvoSynth Documentation]</title>
6
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
7
+ <meta http-equiv="Content-Script-Type" content="text/javascript" />
8
+ <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
9
+ <script type="text/javascript">
10
+ // <![CDATA[
11
+
12
+ function popupCode( url ) {
13
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
14
+ }
15
+
16
+ function toggleCode( id ) {
17
+ if ( document.getElementById )
18
+ elem = document.getElementById( id );
19
+ else if ( document.all )
20
+ elem = eval( "document.all." + id );
21
+ else
22
+ return false;
23
+
24
+ elemStyle = elem.style;
25
+
26
+ if ( elemStyle.display != "block" ) {
27
+ elemStyle.display = "block"
28
+ } else {
29
+ elemStyle.display = "none"
30
+ }
31
+
32
+ return true;
33
+ }
34
+
35
+ // Make codeblocks hidden by default
36
+ document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
37
+
38
+ // ]]>
39
+ </script>
40
+
41
+ </head>
42
+ <body>
43
+
44
+
45
+ <div id="classHeader">
46
+ <table class="header-table">
47
+ <tr class="top-aligned-row">
48
+ <td><strong>Class</strong></td>
49
+ <td class="class-name-in-header">EvoSynth::Individual</td>
50
+ </tr>
51
+ <tr class="top-aligned-row">
52
+ <td><strong>In:</strong></td>
53
+ <td>
54
+
55
+
56
+ <a href="../../files/lib/evosynth/core/individual_rb.html">
57
+
58
+ lib/evosynth/core/individual.rb
59
+
60
+ </a>
61
+
62
+
63
+ <br />
64
+
65
+
66
+ <a href="../../files/examples/cmb_example_rb.html">
67
+
68
+ examples/cmb_example.rb
69
+
70
+ </a>
71
+
72
+
73
+ <br />
74
+
75
+ </td>
76
+ </tr>
77
+
78
+
79
+ <tr class="top-aligned-row">
80
+ <td><strong>Parent:</strong></td>
81
+ <td>
82
+
83
+ Object
84
+
85
+ </td>
86
+ </tr>
87
+
88
+ </table>
89
+ </div>
90
+ <!-- banner header -->
91
+
92
+ <div id="bodyContent">
93
+
94
+ <div id="contextContent">
95
+
96
+ <div id="description">
97
+ <p>
98
+ Base class for individuals
99
+ </p>
100
+
101
+ </div>
102
+
103
+ </div>
104
+
105
+
106
+ <div id="method-list">
107
+ <h3 class="section-bar">Methods</h3>
108
+
109
+ <div class="name-list">
110
+
111
+ <a href="#M000256">&lt;=&gt;</a>&nbsp;&nbsp;
112
+
113
+ <a href="#M000254">changed?</a>&nbsp;&nbsp;
114
+
115
+ <a href="#M000257">compare_fitness_values</a>&nbsp;&nbsp;
116
+
117
+ <a href="#M000255">deep_clone</a>&nbsp;&nbsp;
118
+
119
+ <a href="#M000262">fitness</a>&nbsp;&nbsp;
120
+
121
+ <a href="#M000261">fitness=</a>&nbsp;&nbsp;
122
+
123
+ <a href="#M000253">fitness=</a>&nbsp;&nbsp;
124
+
125
+ <a href="#M000259">maximizes?</a>&nbsp;&nbsp;
126
+
127
+ <a href="#M000258">minimizes?</a>&nbsp;&nbsp;
128
+
129
+ <a href="#M000260">new</a>&nbsp;&nbsp;
130
+
131
+ </div>
132
+ </div>
133
+
134
+ </div>
135
+
136
+ <!-- if includes -->
137
+
138
+ <div id="includes">
139
+ <h3 class="section-bar">Included Modules</h3>
140
+
141
+ <div id="includes-list">
142
+
143
+ <span class="include-name">Comparable</span>
144
+
145
+ </div>
146
+ </div>
147
+
148
+ <div id="section">
149
+
150
+
151
+
152
+ <div id="attribute-list">
153
+ <h3 class="section-bar">Attributes</h3>
154
+
155
+ <div class="name-list">
156
+ <table>
157
+
158
+ <tr class="top-aligned-row context-row">
159
+ <td class="context-item-name">fitness</td>
160
+
161
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
162
+
163
+ <td class="context-item-desc">
164
+ Returns the fitness of this individual
165
+
166
+ </td>
167
+ </tr>
168
+
169
+ <tr class="top-aligned-row context-row">
170
+ <td class="context-item-name">genome</td>
171
+
172
+ <td class="context-item-value">&nbsp;[RW]&nbsp;</td>
173
+
174
+ <td class="context-item-desc">
175
+ Genome of the <a href="Individual.html">Individual</a>, it should provide a
176
+ changed attribute
177
+
178
+ </td>
179
+ </tr>
180
+
181
+ </table>
182
+ </div>
183
+ </div>
184
+
185
+
186
+ <!-- if method_list -->
187
+
188
+ <div id="methods">
189
+
190
+ <h3 class="section-bar">Public Class methods</h3>
191
+
192
+
193
+ <div id="method-M000260" class="method-detail">
194
+ <a name="M000260"></a>
195
+
196
+ <div class="method-heading">
197
+
198
+ <a href="#M000260" class="method-signature">
199
+
200
+ <span class="method-name">new</span><span class="method-args">()</span>
201
+
202
+ </a>
203
+
204
+ </div>
205
+
206
+ <div class="method-description">
207
+
208
+ <p>
209
+ TODO: put this in a good place :)
210
+ </p>
211
+
212
+ <p><a class="source-toggle" href="#"
213
+ onclick="toggleCode('M000260-source');return false;">[Source]</a></p>
214
+ <div class="method-source-code" id="M000260-source">
215
+ <pre>
216
+ <span class="ruby-comment cmt"># File examples/cmb_example.rb, line 66</span>
217
+ 66: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
218
+ 67: <span class="ruby-ivar">@memory</span> = []
219
+ 68: <span class="ruby-ivar">@memory_size</span> = <span class="ruby-value">1</span>
220
+ 69: <span class="ruby-keyword kw">end</span>
221
+ </pre>
222
+ </div>
223
+
224
+ </div>
225
+ </div>
226
+
227
+
228
+ <h3 class="section-bar">Public Instance methods</h3>
229
+
230
+
231
+ <div id="method-M000256" class="method-detail">
232
+ <a name="M000256"></a>
233
+
234
+ <div class="method-heading">
235
+
236
+ <a href="#M000256" class="method-signature">
237
+
238
+ <span class="method-name">&lt;=&gt;</span><span class="method-args">(another)</span>
239
+
240
+ </a>
241
+
242
+ </div>
243
+
244
+ <div class="method-description">
245
+
246
+ <p>
247
+ If you compare individuals the semantic of &#8220;<=>&#8221; is the
248
+ following:
249
+ </p>
250
+ <pre>
251
+ a &gt; b -&gt; individual a is a better solution than individual b
252
+ a &lt; b -&gt; individual b is a better solution than individual a
253
+ a == b -&gt; a and b have a equal fitness value
254
+ </pre>
255
+
256
+ <p><a class="source-toggle" href="#"
257
+ onclick="toggleCode('M000256-source');return false;">[Source]</a></p>
258
+ <div class="method-source-code" id="M000256-source">
259
+ <pre>
260
+ <span class="ruby-comment cmt"># File lib/evosynth/core/individual.rb, line 68</span>
261
+ 68: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">&lt;=&gt;</span>(<span class="ruby-identifier">another</span>)
262
+ 69: <span class="ruby-identifier">compare_fitness_values</span>(<span class="ruby-identifier">fitness</span>, <span class="ruby-identifier">another</span>.<span class="ruby-identifier">fitness</span>)
263
+ 70: <span class="ruby-keyword kw">end</span>
264
+ </pre>
265
+ </div>
266
+
267
+ </div>
268
+ </div>
269
+
270
+
271
+ <div id="method-M000254" class="method-detail">
272
+ <a name="M000254"></a>
273
+
274
+ <div class="method-heading">
275
+
276
+ <a href="#M000254" class="method-signature">
277
+
278
+ <span class="method-name">changed?</span><span class="method-args">()</span>
279
+
280
+ </a>
281
+
282
+ </div>
283
+
284
+ <div class="method-description">
285
+
286
+ <p>
287
+ Returns true, if this individual (most of the time its genome) has changed.
288
+ Otherwise it will return false.
289
+ </p>
290
+
291
+ <p><a class="source-toggle" href="#"
292
+ onclick="toggleCode('M000254-source');return false;">[Source]</a></p>
293
+ <div class="method-source-code" id="M000254-source">
294
+ <pre>
295
+ <span class="ruby-comment cmt"># File lib/evosynth/core/individual.rb, line 50</span>
296
+ 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">changed?</span>
297
+ 51: <span class="ruby-ivar">@genome</span>.<span class="ruby-identifier">changed?</span>
298
+ 52: <span class="ruby-keyword kw">end</span>
299
+ </pre>
300
+ </div>
301
+
302
+ </div>
303
+ </div>
304
+
305
+
306
+ <div id="method-M000257" class="method-detail">
307
+ <a name="M000257"></a>
308
+
309
+ <div class="method-heading">
310
+
311
+ <a href="#M000257" class="method-signature">
312
+
313
+ <span class="method-name">compare_fitness_values</span><span class="method-args">(one, two)</span>
314
+
315
+ </a>
316
+
317
+ </div>
318
+
319
+ <div class="method-description">
320
+
321
+ <p>
322
+ Should be implemented by subclasses
323
+ </p>
324
+
325
+ <p><a class="source-toggle" href="#"
326
+ onclick="toggleCode('M000257-source');return false;">[Source]</a></p>
327
+ <div class="method-source-code" id="M000257-source">
328
+ <pre>
329
+ <span class="ruby-comment cmt"># File lib/evosynth/core/individual.rb, line 74</span>
330
+ 74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compare_fitness_values</span>(<span class="ruby-identifier">one</span>, <span class="ruby-identifier">two</span>)
331
+ 75: <span class="ruby-identifier">raise</span> <span class="ruby-constant">NotImplementedError</span>, <span class="ruby-value str">&quot;please implement compare_fitness_values!&quot;</span>
332
+ 76: <span class="ruby-keyword kw">end</span>
333
+ </pre>
334
+ </div>
335
+
336
+ </div>
337
+ </div>
338
+
339
+
340
+ <div id="method-M000255" class="method-detail">
341
+ <a name="M000255"></a>
342
+
343
+ <div class="method-heading">
344
+
345
+ <a href="#M000255" class="method-signature">
346
+
347
+ <span class="method-name">deep_clone</span><span class="method-args">()</span>
348
+
349
+ </a>
350
+
351
+ </div>
352
+
353
+ <div class="method-description">
354
+
355
+ <p>
356
+ Clones and returns a individual and its genome (deep copy).
357
+ </p>
358
+
359
+ <p><a class="source-toggle" href="#"
360
+ onclick="toggleCode('M000255-source');return false;">[Source]</a></p>
361
+ <div class="method-source-code" id="M000255-source">
362
+ <pre>
363
+ <span class="ruby-comment cmt"># File lib/evosynth/core/individual.rb, line 56</span>
364
+ 56: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
365
+ 57: <span class="ruby-identifier">my_clone</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">clone</span>
366
+ 58: <span class="ruby-identifier">my_clone</span>.<span class="ruby-identifier">genome</span> = <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">load</span>( <span class="ruby-constant">Marshal</span>.<span class="ruby-identifier">dump</span>( <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">genome</span> ) )
367
+ 59: <span class="ruby-identifier">my_clone</span>
368
+ 60: <span class="ruby-keyword kw">end</span>
369
+ </pre>
370
+ </div>
371
+
372
+ </div>
373
+ </div>
374
+
375
+
376
+ <div id="method-M000262" class="method-detail">
377
+ <a name="M000262"></a>
378
+
379
+ <div class="method-heading">
380
+
381
+ <a href="#M000262" class="method-signature">
382
+
383
+ <span class="method-name">fitness</span><span class="method-args">()</span>
384
+
385
+ </a>
386
+
387
+ </div>
388
+
389
+ <div class="method-description">
390
+
391
+ <p><a class="source-toggle" href="#"
392
+ onclick="toggleCode('M000262-source');return false;">[Source]</a></p>
393
+ <div class="method-source-code" id="M000262-source">
394
+ <pre>
395
+ <span class="ruby-comment cmt"># File examples/cmb_example.rb, line 80</span>
396
+ 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fitness</span>
397
+ 81: <span class="ruby-identifier">sum</span> = <span class="ruby-ivar">@memory</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">value</span> }
398
+ 82: <span class="ruby-identifier">sum</span> <span class="ruby-operator">/</span> <span class="ruby-ivar">@memory_size</span>
399
+ 83: <span class="ruby-keyword kw">end</span>
400
+ </pre>
401
+ </div>
402
+
403
+ </div>
404
+ </div>
405
+
406
+
407
+ <div id="method-M000261" class="method-detail">
408
+ <a name="M000261"></a>
409
+
410
+ <div class="method-heading">
411
+
412
+ <a href="#M000261" class="method-signature">
413
+
414
+ <span class="method-name">fitness=</span><span class="method-args">(value)</span>
415
+
416
+ </a>
417
+
418
+ </div>
419
+
420
+ <div class="method-description">
421
+
422
+ <p><a class="source-toggle" href="#"
423
+ onclick="toggleCode('M000261-source');return false;">[Source]</a></p>
424
+ <div class="method-source-code" id="M000261-source">
425
+ <pre>
426
+ <span class="ruby-comment cmt"># File examples/cmb_example.rb, line 71</span>
427
+ 71: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fitness=</span>(<span class="ruby-identifier">value</span>)
428
+ 72: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@memory</span>.<span class="ruby-identifier">empty?</span>
429
+ 73: <span class="ruby-ivar">@memory</span> = [<span class="ruby-identifier">value</span>] <span class="ruby-operator">*</span> <span class="ruby-ivar">@memory_size</span>
430
+ 74: <span class="ruby-keyword kw">else</span>
431
+ 75: <span class="ruby-ivar">@memory</span>.<span class="ruby-identifier">pop</span>
432
+ 76: <span class="ruby-ivar">@memory</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">value</span>
433
+ 77: <span class="ruby-keyword kw">end</span>
434
+ 78: <span class="ruby-keyword kw">end</span>
435
+ </pre>
436
+ </div>
437
+
438
+ </div>
439
+ </div>
440
+
441
+
442
+ <div id="method-M000253" class="method-detail">
443
+ <a name="M000253"></a>
444
+
445
+ <div class="method-heading">
446
+
447
+ <a href="#M000253" class="method-signature">
448
+
449
+ <span class="method-name">fitness=</span><span class="method-args">(value)</span>
450
+
451
+ </a>
452
+
453
+ </div>
454
+
455
+ <div class="method-description">
456
+
457
+ <p>
458
+ Sets the fitness value of this individual, also sets genome.changed to
459
+ true.
460
+ </p>
461
+
462
+ <p><a class="source-toggle" href="#"
463
+ onclick="toggleCode('M000253-source');return false;">[Source]</a></p>
464
+ <div class="method-source-code" id="M000253-source">
465
+ <pre>
466
+ <span class="ruby-comment cmt"># File lib/evosynth/core/individual.rb, line 42</span>
467
+ 42: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fitness=</span>(<span class="ruby-identifier">value</span>)
468
+ 43: <span class="ruby-ivar">@fitness</span> = <span class="ruby-identifier">value</span>
469
+ 44: <span class="ruby-ivar">@genome</span>.<span class="ruby-identifier">changed</span> = <span class="ruby-keyword kw">false</span>
470
+ 45: <span class="ruby-keyword kw">end</span>
471
+ </pre>
472
+ </div>
473
+
474
+ </div>
475
+ </div>
476
+
477
+
478
+ <div id="method-M000259" class="method-detail">
479
+ <a name="M000259"></a>
480
+
481
+ <div class="method-heading">
482
+
483
+ <a href="#M000259" class="method-signature">
484
+
485
+ <span class="method-name">maximizes?</span><span class="method-args">()</span>
486
+
487
+ </a>
488
+
489
+ </div>
490
+
491
+ <div class="method-description">
492
+
493
+ <p>
494
+ Returns wether this <a href="Individual.html">Individual</a> needs to be
495
+ maximized.
496
+ </p>
497
+
498
+ <p><a class="source-toggle" href="#"
499
+ onclick="toggleCode('M000259-source');return false;">[Source]</a></p>
500
+ <div class="method-source-code" id="M000259-source">
501
+ <pre>
502
+ <span class="ruby-comment cmt"># File lib/evosynth/core/individual.rb, line 86</span>
503
+ 86: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">maximizes?</span>
504
+ 87: <span class="ruby-identifier">compare_fitness_values</span>(<span class="ruby-value">1</span>,<span class="ruby-value">0</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
505
+ 88: <span class="ruby-keyword kw">end</span>
506
+ </pre>
507
+ </div>
508
+
509
+ </div>
510
+ </div>
511
+
512
+
513
+ <div id="method-M000258" class="method-detail">
514
+ <a name="M000258"></a>
515
+
516
+ <div class="method-heading">
517
+
518
+ <a href="#M000258" class="method-signature">
519
+
520
+ <span class="method-name">minimizes?</span><span class="method-args">()</span>
521
+
522
+ </a>
523
+
524
+ </div>
525
+
526
+ <div class="method-description">
527
+
528
+ <p>
529
+ Returns wether this <a href="Individual.html">Individual</a> needs to be
530
+ minimized.
531
+ </p>
532
+
533
+ <p><a class="source-toggle" href="#"
534
+ onclick="toggleCode('M000258-source');return false;">[Source]</a></p>
535
+ <div class="method-source-code" id="M000258-source">
536
+ <pre>
537
+ <span class="ruby-comment cmt"># File lib/evosynth/core/individual.rb, line 80</span>
538
+ 80: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">minimizes?</span>
539
+ 81: <span class="ruby-identifier">compare_fitness_values</span>(<span class="ruby-value">1</span>,<span class="ruby-value">0</span>) <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
540
+ 82: <span class="ruby-keyword kw">end</span>
541
+ </pre>
542
+ </div>
543
+
544
+ </div>
545
+ </div>
546
+
547
+
548
+
549
+ </div>
550
+
551
+
552
+
553
+
554
+ </div>
555
+
556
+ <div id="validator-badges">
557
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
558
+ </div>
559
+
560
+ </body>
561
+ </html>