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
data/INSTALL ADDED
@@ -0,0 +1,74 @@
1
+ == Installation HOWTO
2
+
3
+ === Prerequisites:
4
+
5
+ - <b>Ruby 1.9.x</b> from http://www.ruby-lang.org or http://rubyforge.org/frs/?group_id=167
6
+ - <i>(optional)</i> <b>git</b> from http://git-scm.com (to build latest version from git repository)
7
+
8
+ - optional gems (install with "gem install <gem-name>" (as root)):
9
+ - shoulda and rake (Rakefile, Testsuite)
10
+ - gruff, gnuplot and rmagick (graphs)
11
+ - flake, flog, roodi and rcov (code quality tools)
12
+
13
+ === Download EvoSynth:
14
+
15
+ - download source package from http://github.com/yadler/EvoSynth/archives/master
16
+ - or checkout with:
17
+
18
+ git clone git://github.com/yadler/EvoSynth.git
19
+
20
+ === Run Testcases
21
+
22
+ To make sure everything is running, run the following command inside the evosynth directory:
23
+
24
+ rake test
25
+
26
+ === Get the required testdata to run the examples (copy into the "testdata" directory):
27
+
28
+ - http://mat.gsia.cmu.edu/COLOR/instances/myciel4.col (graph colouring)
29
+ - http://elib.zib.de/pub/mp-testdata/tsp/tsplib/tsp/bays29.tsp (TSP)
30
+
31
+ - more testdata:
32
+
33
+ - http://mat.gsia.cmu.edu/COLOR/instances.html
34
+ - http://elib.zib.de/pub/mp-testdata/tsp/tsplib/tsp/index.html
35
+
36
+ === Run examples and benchmarks
37
+
38
+ - run all examples with
39
+ rake run_examples
40
+
41
+ or run single examples with:
42
+
43
+ ruby -Ilib examples/max_ones.rb
44
+ ruby -Ilib examples/partition.rb
45
+ ...
46
+
47
+ - <b>Attention:</b> the exporter.rb example will only work if you've installed the gruff, gnuplot and rmagick gems!
48
+
49
+ - if you are interessted in the performance of the individual components of EvoSynth, run the benchmark task:
50
+
51
+ rake run_benchmarks
52
+
53
+ or run individual benchmarks with:
54
+
55
+ ruby -Ilib test/benchmark/decoder_benchmark.rb
56
+ ruby -Ilib test/benchmark/mutation_benchmark.rb
57
+ ...
58
+
59
+ === Setup Netbeans as IDE (http://netbeans.org)
60
+
61
+ - download and install netbeans
62
+ - install Ruby plugin (Tools -> Plugins -> Available Plugins ...)
63
+ - create new project:
64
+ 1. File -> New Project -> Ruby -> "Ruby Application with Existing Sources"
65
+ 2. choose a name (for example "nb_evosynth")
66
+ 3. choose a directory, this should be outside of the evosynth directory to keep the git repository clean
67
+ 4. choose Ruby platform: Ruby 1.9.x
68
+ 5. set source folder with "Source Folders -> Add folder" -> choose evosynth directory
69
+
70
+ - right click on new created project "Properties -> Run" -> add "-Ilib" to Ruby options
71
+
72
+ - test if everything is working:
73
+ 1. open a example (examples folder in "Source Files")
74
+ 2. run it with Shift + F6 (you might have to confirm a dialog)
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2009, 2010 Yves Adler <yves.adler@googlemail.com>
2
+
3
+ Permission is hereby granted, free of charge, to any person
4
+ obtaining a copy of this software and associated documentation
5
+ files (the "Software"), to deal in the Software without
6
+ restriction, including without limitation the rights to use,
7
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the
9
+ Software is furnished to do so, subject to the following
10
+ conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
data/README ADDED
@@ -0,0 +1,57 @@
1
+ == EvoSynth 0.1
2
+
3
+
4
+ Website:: http://evosynth.rubyforge.org/
5
+ Project:: http://rubyforge.org/projects/evosynth/
6
+ Sourcecode:: http://gitorious.org/evosynth and http://github.com/yadler/EvoSynth
7
+ Author:: Yves Adler (http://yadler.wordpress.com/, mailto:yves.adler@googlemail.com)
8
+ Copyright:: Copyright (c) 2009, 2010 Yves Adler <yves.adler@googlemail.com>
9
+ License:: MIT (see LICENSE)
10
+
11
+ == Description
12
+
13
+ EvoSynth (Evolutionary Computation Synthesizer) is a framework for rapid development and prototyping of evolutionary algorithms.
14
+
15
+ == Features (for details see docs/FEATURES)
16
+
17
+ * classes for individuals, populations, algorithm profiles, genomes
18
+ * support for custom randomizer
19
+
20
+
21
+ * most common evolutionary algorithms:
22
+ * hillclimber (single individual and population based)
23
+ * standard genetic algorithm, steady state GA
24
+ * memetic algorithm
25
+ * evolution strategies (adaptive, selfadaptive and derandomized)
26
+ * local search (hillclimber, threshold acceptance, simulated annealing, great deluge, record-to-record travel)
27
+ * coevolutionary algorithms (round robin and balanced)
28
+
29
+ * selection strategies:
30
+ * identity
31
+ * random selection
32
+ * best selection
33
+ * n-stage tournament selection
34
+ * tournament selection
35
+ * fitness proportional selection
36
+ * roulette wheel selection
37
+
38
+ * mutations:
39
+ * identity
40
+ * one gene flipping, binary mutation, efficient binary mutation
41
+ * exchange mutation, inversion mutation, mixing mutation, shifting mutation
42
+ * uniform real mutation, gauss mutation, self-adaptive gaus mutation
43
+
44
+ * recombinations:
45
+ * identity
46
+ * one-point-crossover, k-point-crossover, uniform crossover
47
+ * arithmetic crossover
48
+ * ordered recombination, partially mapped crossover, edge recombination
49
+ * global uniform crossover, global arithmetic crossover
50
+
51
+ * meta operators: proportional, sequentional and conditional combined operators
52
+
53
+
54
+ == Installation
55
+
56
+ * gem install evosynth (as root)
57
+ * for detailed instructions (build from source, etc.) see INSTALL
@@ -0,0 +1,132 @@
1
+ # Copyright (c) 2009, 2010 Yves Adler <yves.adler@googlemail.com>
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person
4
+ # obtaining a copy of this software and associated documentation
5
+ # files (the "Software"), to deal in the Software without
6
+ # restriction, including without limitation the rights to use,
7
+ # copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ # copies of the Software, and to permit persons to whom the
9
+ # Software is furnished to do so, subject to the following
10
+ # conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be
13
+ # included in all copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17
+ # OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19
+ # HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21
+ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ # OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+
25
+ require 'rake/gempackagetask'
26
+ require 'rake/testtask'
27
+ require 'rake/rdoctask'
28
+
29
+
30
+ desc "print message"
31
+ task :default do
32
+ puts "You have run rake without a task - please choose one of the following:\n\n"
33
+ puts `rake --tasks`
34
+ end
35
+
36
+ package_specification = Gem::Specification.new do |spec|
37
+ spec.required_ruby_version = '>= 1.9'
38
+ spec.platform = Gem::Platform::RUBY
39
+ spec.name = 'evosynth'
40
+ spec.version = '0.1.0'
41
+
42
+ spec.rubyforge_project = 'evosynth'
43
+ spec.homepage = 'http://evosynth.rubyforge.org'
44
+ spec.summary = 'EvoSynth (Evolutionary Computation Synthesizer) is a framework for rapid development and prototyping of evolutionary algorithms.'
45
+ spec.author = 'Yves Adler'
46
+ spec.email = 'yves.adler@googlemail.com'
47
+
48
+ spec.has_rdoc = true
49
+ spec.rdoc_options = ["--charset", "UTF-8", "--title", "EvoSynth Documentation", "--main", "README", "--line-numbers"]
50
+ spec.extra_rdoc_files = ["README", "LICENSE", "INSTALL", "docs/FEATURES"]
51
+
52
+ # files and dependencies:
53
+
54
+ files = FileList['**/*']; files.exclude('.git*'); files.exclude('pkg/*')
55
+ spec.files = files.to_a
56
+ spec.test_files = FileList['test/ts_*.rb']
57
+ spec.require_paths << 'lib'
58
+
59
+ # what about gruff, gnuplot & co ? where should I mention them?
60
+ spec.add_development_dependency(['shoulda', 'rake'])
61
+ end
62
+
63
+ Rake::GemPackageTask.new(package_specification) do |pkg|
64
+ pkg.need_zip = true
65
+ pkg.need_tar = true
66
+ end
67
+
68
+ Rake::RDocTask.new do |rdoc|
69
+ rdoc.main = "README"
70
+ rdoc.rdoc_dir = "docs/rdoc"
71
+ rdoc.title = "EvoSynth Documentation"
72
+ rdoc.options = ["--charset", "UTF-8", "--line-numbers"]
73
+ rdoc.rdoc_files.include("README", "LICENSE", "INSTALL", "docs/FEATURES", "lib/**/*.rb", "examples/**/*.rb")
74
+ end
75
+
76
+
77
+ # Test tasks and code quality stuff:
78
+
79
+ task :quality => [:test, :flog, :flay, :roodi]
80
+
81
+ lib_dir = File.expand_path("lib")
82
+ examples_dir = File.expand_path("examples")
83
+ test_dir = File.expand_path("test")
84
+
85
+ Rake::TestTask.new do |test|
86
+ test.libs = [lib_dir, test_dir]
87
+ test.test_files = FileList["test/ts_*.rb"]
88
+ test.verbose = true
89
+ end
90
+
91
+ desc "Analyze the code with roodi (Ruby Object Oriented Design Inferometer)"
92
+ task :roodi do
93
+ roodi_output = `roodi 'lib/**/*.rb' 'examples/**/*.rb'`
94
+ puts "ERROR: roodi not found. please install 'gems install roodi'" if $?.exitstatus == 127
95
+ puts roodi_output
96
+ end
97
+
98
+ desc "Analyze for code duplication"
99
+ task :flay do
100
+ flay_output = `flay '#{lib_dir}' '#{examples_dir}'`
101
+ puts "ERROR: flay not found. please install 'gems install flay'" if $?.exitstatus != 0
102
+ puts flay_output
103
+ end
104
+
105
+ desc "Analyze for code complexity"
106
+ task :flog do
107
+ flog_output = `find lib -name \*.rb | xargs flog -g`
108
+ puts "ERROR: flog not found. please install 'gems install flog'" if $?.exitstatus != 0
109
+ puts flog_output
110
+ end
111
+
112
+ # Shortcuts for examples and benchmark
113
+
114
+ desc "Run all examples"
115
+ task :run_examples do
116
+ example_files = FileList["examples/*.rb"]
117
+ $:.unshift File.expand_path("../lib", __FILE__)
118
+ example_files.each do |example_file|
119
+ puts "\nRunning example : #{example_file}\n\n"
120
+ load example_file
121
+ end
122
+ end
123
+
124
+ desc "Run all benchmarks"
125
+ task :run_benchmarks do
126
+ $:.unshift File.expand_path("../lib", __FILE__)
127
+ load 'test/benchmark/decoder_benchmark.rb'
128
+ load 'test/benchmark/mutation_benchmark.rb'
129
+ load 'test/benchmark/recombination_benchmark.rb'
130
+ load 'test/benchmark/selection_benchmark.rb'
131
+ end
132
+
data/TODO ADDED
@@ -0,0 +1,88 @@
1
+ ============================== generelles ======================================
2
+
3
+ !!! Jeden morgen ein paar sachen Dokumentieren !!!
4
+ --> aktuell ab evolvers <--
5
+
6
+ fehlende oder fehlerhafte Testfälle:
7
+
8
+ - Selektionen: Float select_count (to_i testcase)
9
+ - EvoSynth::Evolvers::LocalSearch::HillclimberAcceptance
10
+ - EvoSynth::Evolvers::LocalSearch::SimulatedAnnealingAcceptance
11
+ - EvoSynth::Evolvers::LocalSearch::ThresholdAcceptance
12
+ - EvoSynth::Evolvers::LocalSearch::GreatDelugeAcceptance
13
+ - EvoSynth::Evolvers::LocalSearch::RecordToRecordTravelAcceptance
14
+ - EvoSynth::Mutations::SelfAdaptiveGaussMutation
15
+
16
+
17
+ ============================== EvoSynth 0.2 ====================================
18
+
19
+ Features:
20
+
21
+ - Algorithmen:
22
+ => CMBCoevolutionary braucht ein refactoring
23
+
24
+ - Checkpointing für Evolver, Save, Stop, Restart, Continue
25
+ => eventuell mit Logger verknüppern
26
+
27
+ - EvoBench: Benchmark für Evolutionäre Algorithmen
28
+ => wie sollten diese Versuche ablaufen? Stichwort statistische Relevanz
29
+ => mutationen, selektionen und co
30
+ => diversität und co (binär, float, wie denn genau? mit lambda?)
31
+ => Versuchspläne und Statistiken?!
32
+ => t-test (hypothesentest)
33
+
34
+ - Logger:
35
+ => mehrere "Testläufe", Durchschnittswerte
36
+ => html output templates, svg outputs?
37
+ -> http://www.germane-software.com/software/SVG/SVG::Graph/
38
+ => logger sollte auch bei fitnessänderungen (der population?) getriggert werden können,
39
+ das geht aber vielleicht eher in richtung eventsystem
40
+
41
+ ============================== EvoSynth >0.2 ===================================
42
+
43
+ Features:
44
+
45
+ - add # encoding: utf-8 to all ruby files
46
+ - was ist mit http://rubygems.rubyforge.org/rdoc/Gem/Security.html ?
47
+
48
+ - TSP und GraphColouring Problem generischer machen und refactorisieren
49
+
50
+ - Benchmarkfunktionen:
51
+ => Matrix Multiplikationsproblem aus Paredis Paper (epistasis gut steuerbar)
52
+ => C-Funktion (Weicker page 272)
53
+ => sämtliche mit Randbedingungen (Weicker page 274)
54
+
55
+ - Decoder/Encoder:
56
+ => RealToBinary, IntegerToBinary, BinaryToInteger
57
+
58
+ - Algorithmen:
59
+ => Tabu-Suche am beispiel graph colouring (Weicker page 164)
60
+ => Schwärme
61
+ => neuronale Netze (gibts da ein gem für)
62
+
63
+ => Evolutionäres Programmieren & Genetisches Programmieren (Weicker page 139--154)
64
+ -> Gentische Programmierung (Ruby programme wären schön)
65
+ -> rubytree gem nutzen: http://rubytree.rubyforge.org/rdoc/index.html
66
+
67
+ => Mehrzieloptimierung:
68
+ -> NSGA selektion (204)
69
+ -> SPEA2, PAES (205,206)
70
+ -> wenigstens ein Beispiel zur Mehrzieloptimierung
71
+
72
+ => Meta-Evolver (eventuell mittels metaprogramming alá Elistismus):
73
+ => was ist mit hall-of-fame oder ähnlichem?
74
+
75
+ => Mehrpopulationsprobleme & Koevolutionäres:
76
+ => was ist da noch sinnvoll? inseln & migration?
77
+
78
+ - BinaryGenome mittels inline C optimieren
79
+
80
+ - nicht reelwertige Fitnesswerte?! Da fehlt nicht viel, aber zum Beispiel
81
+ die Fitnessproportionale Selektion braucht die (einfach nach ".fitness" suchen)
82
+
83
+ - Codegenerator System (z.b. für OpenBEALE und EO) -> siehe fehler!
84
+
85
+ - Bootstrap zeugs, inspiriert von OpenBEAGLE (initializer)
86
+ => braucht man das wirklich?
87
+ => Breeder klingt am besten (siehe ECJ)
88
+ => variable anzahl an eltern, kindern für recombinationen (siehe EO paper)
@@ -0,0 +1,111 @@
1
+ == Core features
2
+
3
+ * EvoSynth::Evaluator
4
+ * EvoSynth::Profile
5
+ * EvoSynth::Population
6
+
7
+ * EvoSynth::Individual
8
+ * EvoSynth::MaximizingIndividual
9
+ * EvoSynth::MinimizingIndividual
10
+
11
+ * EvoSynth::Randomizer
12
+ * EvoSynth.rand / EvoSynth.srand
13
+ * EvoSynth.nrand
14
+ * EvoSynth.rand_bool
15
+
16
+ * Include "Genotypes":
17
+ * EvoSynth::ArrayGenome (can contain any datatype as items)
18
+ * EvoSynth::BinaryGenome (not optimized yet)
19
+
20
+
21
+ == Evolution algorithms
22
+
23
+ * meta features:
24
+ * EvoSynth::Evolvers.add_weak_elitism
25
+ * EvoSynth::Evolvers.add_strong_elitism
26
+
27
+ * basic evolvers:
28
+ * EvoSynth::Evolvers::Hillclimber
29
+ * EvoSynth::Evolvers::PopulationHillclimber
30
+ * EvoSynth::Evolvers::GeneticAlgorithm
31
+ * EvoSynth::Evolvers::SteadyStateGA
32
+ * EvoSynth::Evolvers::MemeticAlgorithm
33
+
34
+ * evolution strategies:
35
+ * EvoSynth::Evolvers::AdaptiveES
36
+ * EvoSynth::Evolvers::SelfAdaptiveES
37
+ * EvoSynth::Evolvers::DerandomizedES
38
+
39
+ * local search:
40
+ * EvoSynth::Evolvers::LocalSearch
41
+ * EvoSynth::Evolvers::LocalSearch::HillclimberAcceptance
42
+ * EvoSynth::Evolvers::LocalSearch::SimulatedAnnealingAcceptance
43
+ * EvoSynth::Evolvers::LocalSearch::ThresholdAcceptance
44
+ * EvoSynth::Evolvers::LocalSearch::GreatDelugeAcceptance
45
+ * EvoSynth::Evolvers::LocalSearch::RecordToRecordTravelAcceptance
46
+
47
+ * coevolutionary algorithms:
48
+ * EvoSynth::Evolvers::RoundRobinCoevolutionary
49
+ * EvoSynth::Evolvers::BalancedCoevolutionary (unfinished)
50
+
51
+ == Selections
52
+
53
+ * EvoSynth::Selections::Identity
54
+ * EvoSynth::Selections::SelectBest
55
+ * EvoSynth::Selections::NStageTournamentSelection
56
+ * EvoSynth::Selections::TournamentSelection
57
+ * EvoSynth::Selections::FitnessProportionalSelection
58
+ * EvoSynth::Selections::RouletteWheelSelection
59
+ * EvoSynth::Selections::RandomSelection
60
+
61
+
62
+ == Meta operators
63
+
64
+ * EvoSynth::MetaOperators::ProportionalCombinedOperator
65
+ * EvoSynth::MetaOperators::SequentialCombinedOperator
66
+ * EvoSynth::MetaOperators::ConditionalCombinedOperator
67
+
68
+ == Mutations
69
+
70
+ * work on every genome:
71
+ * EvoSynth::Mutations::Identity
72
+
73
+ * work on arrays (need flip function):
74
+ * EvoSynth::Mutations::BinaryMutation
75
+ * EvoSynth::Mutations::EfficientBinaryMutation
76
+ * EvoSynth::Mutations::OneGeneFlipping
77
+
78
+ * work on permutations:
79
+ * EvoSynth::Mutations::ExchangeMutation
80
+ * EvoSynth::Mutations::InversionMutation
81
+ * EvoSynth::Mutations::MixingMutation
82
+ * EvoSynth::Mutations::ShiftingMutation
83
+
84
+ * work on (arrays of) floats:
85
+ * EvoSynth::Mutations::GaussMutation
86
+ * EvoSynth::Mutations::UniformRealMutation
87
+ * EvoSynth::Mutations::SelfAdaptiveGaussMutation
88
+
89
+ == Recombinations
90
+
91
+ * work on every genome:
92
+ * EvoSynth::Recombinations::Identity
93
+ * EvoSynth::Recombinations::OnePointCrossover
94
+ * EvoSynth::Recombinations::KPointCrossover
95
+ * EvoSynth::Recombinations::UniformCrossover
96
+ * EvoSynth::Recombinations::ArithmeticCrossover (needs interpolation functions)
97
+
98
+ * work on permutations (no duplicates):
99
+ * EvoSynth::Recombinations::PartiallyMappedCrossover
100
+ * EvoSynth::Recombinations::OrderedRecombination
101
+ * EvoSynth::Recombinations::EdgeRecombination
102
+
103
+ == Global recombinations
104
+
105
+ * EvoSynth::GlobalRecombinations::GlobalUniformCrossover
106
+ * EvoSynth::GlobalRecombinations::GlobalArithmeticCrossover
107
+
108
+ == Adjustment strategies
109
+
110
+ * EvoSynth::Adjustments::PredifinedAdjustment
111
+ * EvoSynth::Adjustments::AdaptiveAdjustment