evosynth 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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