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.
- data/INSTALL +74 -0
- data/LICENSE +22 -0
- data/README +57 -0
- data/Rakefile +132 -0
- data/TODO +88 -0
- data/docs/FEATURES +111 -0
- data/docs/rdoc/classes/EvoSynth.html +2643 -0
- data/docs/rdoc/classes/EvoSynth/Adjustments.html +119 -0
- data/docs/rdoc/classes/EvoSynth/Adjustments/AdaptiveAdjustment.html +264 -0
- data/docs/rdoc/classes/EvoSynth/Adjustments/PredifinedAdjustment.html +235 -0
- data/docs/rdoc/classes/EvoSynth/ArrayGenome.html +313 -0
- data/docs/rdoc/classes/EvoSynth/BinaryGenome.html +518 -0
- data/docs/rdoc/classes/EvoSynth/Decoder.html +286 -0
- data/docs/rdoc/classes/EvoSynth/Evaluator.html +466 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers.html +469 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/AdaptiveES.html +448 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/BalancedCoevolutionary.html +439 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/DerandomizedES.html +450 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/Evolver.html +125 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/GeneticAlgorithm.html +467 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/Hillclimber.html +343 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch.html +422 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/GreatDelugeAcceptance.html +287 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/HillclimberAcceptance.html +197 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/RecordToRecordTravelAcceptance.html +296 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/SimulatedAnnealingAcceptance.html +286 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/LocalSearch/ThresholdAcceptance.html +287 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/MemeticAlgorithm.html +441 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/PopulationHillclimber.html +375 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/ProfileUsingEvolver.html +205 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/RoundRobinCoevolutionary.html +383 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/RunnableEvolver.html +279 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/RunnableEvolver/Goal.html +193 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/SelfAdaptiveES.html +394 -0
- data/docs/rdoc/classes/EvoSynth/Evolvers/SteadyStateGA.html +390 -0
- data/docs/rdoc/classes/EvoSynth/GlobalRecombinations.html +119 -0
- data/docs/rdoc/classes/EvoSynth/GlobalRecombinations/GlobalArithmeticCrossover.html +204 -0
- data/docs/rdoc/classes/EvoSynth/GlobalRecombinations/GlobalUniformCrossover.html +203 -0
- data/docs/rdoc/classes/EvoSynth/Individual.html +561 -0
- data/docs/rdoc/classes/EvoSynth/MaximizingIndividual.html +266 -0
- data/docs/rdoc/classes/EvoSynth/MetaOperators.html +149 -0
- data/docs/rdoc/classes/EvoSynth/MetaOperators/ConditionalCombinedOperator.html +278 -0
- data/docs/rdoc/classes/EvoSynth/MetaOperators/ProportionalCombinedOperator.html +285 -0
- data/docs/rdoc/classes/EvoSynth/MetaOperators/SequentialCombinedOperator.html +290 -0
- data/docs/rdoc/classes/EvoSynth/MinimizingIndividual.html +266 -0
- data/docs/rdoc/classes/EvoSynth/Mutations.html +251 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/BinaryMutation.html +336 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/EfficientBinaryMutation.html +345 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/ExchangeMutation.html +320 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/Functions.html +160 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/GaussMutation.html +311 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/Identity.html +220 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/InversionMutation.html +231 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/MixingMutation.html +233 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/OneGeneFlipping.html +295 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/SelfAdaptiveGaussMutation.html +347 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/ShiftingMutation.html +229 -0
- data/docs/rdoc/classes/EvoSynth/Mutations/UniformRealMutation.html +264 -0
- data/docs/rdoc/classes/EvoSynth/Output.html +212 -0
- data/docs/rdoc/classes/EvoSynth/Output/CSVExporter.html +211 -0
- data/docs/rdoc/classes/EvoSynth/Output/ConsoleWriter.html +194 -0
- data/docs/rdoc/classes/EvoSynth/Output/GnuPlotExporter.html +235 -0
- data/docs/rdoc/classes/EvoSynth/Output/GruffExporter.html +219 -0
- data/docs/rdoc/classes/EvoSynth/Output/Logger.html +345 -0
- data/docs/rdoc/classes/EvoSynth/Population.html +430 -0
- data/docs/rdoc/classes/EvoSynth/Problems.html +159 -0
- data/docs/rdoc/classes/EvoSynth/Problems/BinaryBenchmarkFuntions.html +258 -0
- data/docs/rdoc/classes/EvoSynth/Problems/FloatBenchmarkFuntions.html +406 -0
- data/docs/rdoc/classes/EvoSynth/Problems/GraphColouring.html +265 -0
- data/docs/rdoc/classes/EvoSynth/Problems/TSP.html +327 -0
- data/docs/rdoc/classes/EvoSynth/Profile.html +324 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations.html +251 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations/ArithmeticCrossover.html +286 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations/EdgeRecombination.html +203 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations/Identity.html +192 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations/KPointCrossover.html +286 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations/OnePointCrossover.html +211 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations/OrderedRecombination.html +206 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations/PartiallyMappedCrossover.html +206 -0
- data/docs/rdoc/classes/EvoSynth/Recombinations/UniformCrossover.html +208 -0
- data/docs/rdoc/classes/EvoSynth/Selections.html +174 -0
- data/docs/rdoc/classes/EvoSynth/Selections/FitnessProportionalSelection.html +206 -0
- data/docs/rdoc/classes/EvoSynth/Selections/Identity.html +200 -0
- data/docs/rdoc/classes/EvoSynth/Selections/NStageTournamentSelection.html +273 -0
- data/docs/rdoc/classes/EvoSynth/Selections/RandomSelection.html +192 -0
- data/docs/rdoc/classes/EvoSynth/Selections/RouletteWheelSelection.html +212 -0
- data/docs/rdoc/classes/EvoSynth/Selections/SelectBest.html +206 -0
- data/docs/rdoc/classes/EvoSynth/Selections/TournamentSelection.html +274 -0
- data/docs/rdoc/classes/Examples.html +268 -0
- data/docs/rdoc/classes/Examples/Ants.html +198 -0
- data/docs/rdoc/classes/Examples/Ants/AntMutation.html +381 -0
- data/docs/rdoc/classes/Examples/Ants/Pheromon.html +256 -0
- data/docs/rdoc/classes/Examples/CCGAExample.html +305 -0
- data/docs/rdoc/classes/Examples/CCGAExample/CCGA2BenchmarkEvaluator.html +165 -0
- data/docs/rdoc/classes/Examples/CCGAExample/CCGABenchmarkEvaluator.html +242 -0
- data/docs/rdoc/classes/Examples/CCGAExample/CCGAIndividual.html +181 -0
- data/docs/rdoc/classes/Examples/CMBExample.html +215 -0
- data/docs/rdoc/classes/Examples/CMBExample/CMBEvaluator.html +212 -0
- data/docs/rdoc/classes/Examples/EsExample.html +270 -0
- data/docs/rdoc/classes/Examples/EsExample/BenchmarkEvaluator.html +162 -0
- data/docs/rdoc/classes/Examples/Exporter.html +208 -0
- data/docs/rdoc/classes/Examples/Exporter/ExporterEvaluator.html +196 -0
- data/docs/rdoc/classes/Examples/GraphColouring.html +199 -0
- data/docs/rdoc/classes/Examples/Hacking.html +147 -0
- data/docs/rdoc/classes/Examples/Hacking/HackingEvaluator.html +169 -0
- data/docs/rdoc/classes/Examples/LocalSearch.html +294 -0
- data/docs/rdoc/classes/Examples/LocalSearch/LocalSearchEvaluator.html +198 -0
- data/docs/rdoc/classes/Examples/MaxOnes.html +187 -0
- data/docs/rdoc/classes/Examples/MaxOnes/MaxOnesEvaluator.html +170 -0
- data/docs/rdoc/classes/Examples/Partitionproblem.html +201 -0
- data/docs/rdoc/classes/Examples/Partitionproblem/PartitionEvaluator.html +164 -0
- data/docs/rdoc/classes/Examples/Partitionproblem/PartitionIndividual.html +334 -0
- data/docs/rdoc/classes/Examples/Partitionproblem/PartitionMutation.html +199 -0
- data/docs/rdoc/classes/Examples/Partitionproblem/Testdata.html +294 -0
- data/docs/rdoc/classes/Examples/SPk.html +139 -0
- data/docs/rdoc/classes/Examples/SPk/SPkFitnessEvaluator.html +299 -0
- data/docs/rdoc/classes/Examples/TSP.html +187 -0
- data/docs/rdoc/created.rid +1 -0
- data/docs/rdoc/files/INSTALL.html +253 -0
- data/docs/rdoc/files/LICENSE.html +119 -0
- data/docs/rdoc/files/README.html +235 -0
- data/docs/rdoc/files/docs/FEATURES.html +428 -0
- data/docs/rdoc/files/examples/ants_rb.html +133 -0
- data/docs/rdoc/files/examples/ccga_example_rb.html +129 -0
- data/docs/rdoc/files/examples/cmb_example_rb.html +129 -0
- data/docs/rdoc/files/examples/evolution_strategies_rb.html +129 -0
- data/docs/rdoc/files/examples/exporter_rb.html +129 -0
- data/docs/rdoc/files/examples/graph_colouring_rb.html +129 -0
- data/docs/rdoc/files/examples/hacking_rb.html +129 -0
- data/docs/rdoc/files/examples/local_search_rb.html +129 -0
- data/docs/rdoc/files/examples/max_ones_rb.html +129 -0
- data/docs/rdoc/files/examples/partition_rb.html +131 -0
- data/docs/rdoc/files/examples/spk_rb.html +129 -0
- data/docs/rdoc/files/examples/tsp_rb.html +131 -0
- data/docs/rdoc/files/lib/evosynth/core/array_genome_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/core/binary_genome_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/core/evaluator_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/core/individual_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/core/maximizing_individual_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/core/minimizing_individual_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/core/population_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/core/profile_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/core/randomizer_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/core_rb.html +145 -0
- data/docs/rdoc/files/lib/evosynth/decoder/binary_to_real_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/decoder/gray_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/decoder_rb.html +131 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/basic/genetic_algorithm_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/basic/hillclimber_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/basic/memetic_algorithm_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/basic/population_hillclimber_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/basic/steady_state_ga_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/coevolutionary/balanced_coevolutionary_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/coevolutionary/round_robin_coevolutionary_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/elitism_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/evolution_strategies/adaptive_es_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/evolution_strategies/derandomized_es_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/evolution_strategies/selfadaptive_es_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/evolver_rb.html +131 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_great_deluge_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_hillclimber_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_record_to_record_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_simulated_annealing_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/local_search/acceptance_threshold_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/local_search/local_search_rb.html +137 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/profile_using_evolver_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/evolvers/runnable_evolver_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/evolvers_rb.html +153 -0
- data/docs/rdoc/files/lib/evosynth/operators/adjustments/adaptive_adjustment_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/adjustments/predefined_adjustment_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/adjustments_rb.html +131 -0
- data/docs/rdoc/files/lib/evosynth/operators/global_recombinations/global_arithmetic_crossover_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/global_recombinations/global_uniform_crossover_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/global_recombinations_rb.html +131 -0
- data/docs/rdoc/files/lib/evosynth/operators/meta_operators/conditional_combined_operator_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/meta_operators/proportional_combined_operator_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/meta_operators/sequential_combined_operator_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/meta_operators_rb.html +133 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/binary_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/efficient_binary_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/exchange_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/flip_functions_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/gauss_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/identity_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/inversion_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/mixing_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/one_gene_flipping_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/self_adaptive_gauss_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/shifting_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations/uniform_real_mutation_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/mutations_rb.html +151 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations/arithmetic_crossover_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations/edge_recombination_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations/identity_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations/k_point_crossover_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations/one_point_crossover_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations/ordered_recombination_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations/partially_mapped_crossover_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations/uniform_crossover_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/recombinations_rb.html +143 -0
- data/docs/rdoc/files/lib/evosynth/operators/selections/best_selection_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/selections/fitness_proportional_selection_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/selections/identity_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/selections/n_stage_tournament_selection_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/selections/random_selection_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/selections/roulette_wheel_selection_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/selections/tournament_selection_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/operators/selections_rb.html +141 -0
- data/docs/rdoc/files/lib/evosynth/operators_rb.html +139 -0
- data/docs/rdoc/files/lib/evosynth/output/console_writer_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/output/exporter/csv_exporter_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/output/exporter/gnuplot_exporter_rb.html +131 -0
- data/docs/rdoc/files/lib/evosynth/output/exporter/gruff_exporter_rb.html +131 -0
- data/docs/rdoc/files/lib/evosynth/output/exporter_rb.html +133 -0
- data/docs/rdoc/files/lib/evosynth/output/factory_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/output/logger_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/output_rb.html +135 -0
- data/docs/rdoc/files/lib/evosynth/problems/binary_benchmark_functions_rb.html +119 -0
- data/docs/rdoc/files/lib/evosynth/problems/float_benchmark_functions_rb.html +1630 -0
- data/docs/rdoc/files/lib/evosynth/problems/graph_colouring_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/problems/tsp_rb.html +129 -0
- data/docs/rdoc/files/lib/evosynth/problems_rb.html +135 -0
- data/docs/rdoc/files/lib/evosynth_rb.html +139 -0
- data/docs/rdoc/fr_class_index.html +245 -0
- data/docs/rdoc/fr_file_index.html +233 -0
- data/docs/rdoc/fr_method_index.html +661 -0
- data/docs/rdoc/index.html +21 -0
- data/docs/rdoc/rdoc-style.css +299 -0
- data/examples/ants.rb +237 -0
- data/examples/ccga_example.rb +150 -0
- data/examples/cmb_example.rb +117 -0
- data/examples/evolution_strategies.rb +84 -0
- data/examples/exporter.rb +90 -0
- data/examples/graph_colouring.rb +72 -0
- data/examples/hacking.rb +62 -0
- data/examples/local_search.rb +109 -0
- data/examples/max_ones.rb +83 -0
- data/examples/partition.rb +172 -0
- data/examples/spk.rb +106 -0
- data/examples/tsp.rb +83 -0
- data/lib/evosynth.rb +32 -0
- data/lib/evosynth/core.rb +33 -0
- data/lib/evosynth/core/array_genome.rb +77 -0
- data/lib/evosynth/core/binary_genome.rb +156 -0
- data/lib/evosynth/core/evaluator.rb +109 -0
- data/lib/evosynth/core/individual.rb +92 -0
- data/lib/evosynth/core/maximizing_individual.rb +71 -0
- data/lib/evosynth/core/minimizing_individual.rb +71 -0
- data/lib/evosynth/core/population.rb +120 -0
- data/lib/evosynth/core/profile.rb +110 -0
- data/lib/evosynth/core/randomizer.rb +73 -0
- data/lib/evosynth/decoder.rb +33 -0
- data/lib/evosynth/decoder/binary_to_real.rb +57 -0
- data/lib/evosynth/decoder/gray.rb +54 -0
- data/lib/evosynth/evolvers.rb +41 -0
- data/lib/evosynth/evolvers/basic/genetic_algorithm.rb +92 -0
- data/lib/evosynth/evolvers/basic/hillclimber.rb +64 -0
- data/lib/evosynth/evolvers/basic/memetic_algorithm.rb +111 -0
- data/lib/evosynth/evolvers/basic/population_hillclimber.rb +69 -0
- data/lib/evosynth/evolvers/basic/steady_state_ga.rb +85 -0
- data/lib/evosynth/evolvers/coevolutionary/balanced_coevolutionary.rb +125 -0
- data/lib/evosynth/evolvers/coevolutionary/round_robin_coevolutionary.rb +87 -0
- data/lib/evosynth/evolvers/elitism.rb +108 -0
- data/lib/evosynth/evolvers/evolution_strategies/adaptive_es.rb +104 -0
- data/lib/evosynth/evolvers/evolution_strategies/derandomized_es.rb +120 -0
- data/lib/evosynth/evolvers/evolution_strategies/selfadaptive_es.rb +82 -0
- data/lib/evosynth/evolvers/evolver.rb +43 -0
- data/lib/evosynth/evolvers/local_search/acceptance_great_deluge.rb +60 -0
- data/lib/evosynth/evolvers/local_search/acceptance_hillclimber.rb +47 -0
- data/lib/evosynth/evolvers/local_search/acceptance_record_to_record.rb +69 -0
- data/lib/evosynth/evolvers/local_search/acceptance_simulated_annealing.rb +59 -0
- data/lib/evosynth/evolvers/local_search/acceptance_threshold.rb +60 -0
- data/lib/evosynth/evolvers/local_search/local_search.rb +74 -0
- data/lib/evosynth/evolvers/profile_using_evolver.rb +77 -0
- data/lib/evosynth/evolvers/runnable_evolver.rb +89 -0
- data/lib/evosynth/operators.rb +30 -0
- data/lib/evosynth/operators/adjustments.rb +26 -0
- data/lib/evosynth/operators/adjustments/adaptive_adjustment.rb +55 -0
- data/lib/evosynth/operators/adjustments/predefined_adjustment.rb +46 -0
- data/lib/evosynth/operators/global_recombinations.rb +26 -0
- data/lib/evosynth/operators/global_recombinations/global_arithmetic_crossover.rb +50 -0
- data/lib/evosynth/operators/global_recombinations/global_uniform_crossover.rb +49 -0
- data/lib/evosynth/operators/meta_operators.rb +36 -0
- data/lib/evosynth/operators/meta_operators/conditional_combined_operator.rb +65 -0
- data/lib/evosynth/operators/meta_operators/proportional_combined_operator.rb +84 -0
- data/lib/evosynth/operators/meta_operators/sequential_combined_operator.rb +73 -0
- data/lib/evosynth/operators/mutations.rb +47 -0
- data/lib/evosynth/operators/mutations/binary_mutation.rb +100 -0
- data/lib/evosynth/operators/mutations/efficient_binary_mutation.rb +105 -0
- data/lib/evosynth/operators/mutations/exchange_mutation.rb +107 -0
- data/lib/evosynth/operators/mutations/flip_functions.rb +45 -0
- data/lib/evosynth/operators/mutations/gauss_mutation.rb +65 -0
- data/lib/evosynth/operators/mutations/identity.rb +62 -0
- data/lib/evosynth/operators/mutations/inversion_mutation.rb +73 -0
- data/lib/evosynth/operators/mutations/mixing_mutation.rb +75 -0
- data/lib/evosynth/operators/mutations/one_gene_flipping.rb +89 -0
- data/lib/evosynth/operators/mutations/self_adaptive_gauss_mutation.rb +73 -0
- data/lib/evosynth/operators/mutations/shifting_mutation.rb +88 -0
- data/lib/evosynth/operators/mutations/uniform_real_mutation.rb +59 -0
- data/lib/evosynth/operators/recombinations.rb +48 -0
- data/lib/evosynth/operators/recombinations/arithmetic_crossover.rb +67 -0
- data/lib/evosynth/operators/recombinations/edge_recombination.rb +108 -0
- data/lib/evosynth/operators/recombinations/identity.rb +42 -0
- data/lib/evosynth/operators/recombinations/k_point_crossover.rb +81 -0
- data/lib/evosynth/operators/recombinations/one_point_crossover.rb +56 -0
- data/lib/evosynth/operators/recombinations/ordered_recombination.rb +75 -0
- data/lib/evosynth/operators/recombinations/partially_mapped_crossover.rb +102 -0
- data/lib/evosynth/operators/recombinations/uniform_crossover.rb +54 -0
- data/lib/evosynth/operators/selections.rb +31 -0
- data/lib/evosynth/operators/selections/best_selection.rb +54 -0
- data/lib/evosynth/operators/selections/fitness_proportional_selection.rb +83 -0
- data/lib/evosynth/operators/selections/identity.rb +48 -0
- data/lib/evosynth/operators/selections/n_stage_tournament_selection.rb +84 -0
- data/lib/evosynth/operators/selections/random_selection.rb +44 -0
- data/lib/evosynth/operators/selections/roulette_wheel_selection.rb +54 -0
- data/lib/evosynth/operators/selections/tournament_selection.rb +71 -0
- data/lib/evosynth/output.rb +28 -0
- data/lib/evosynth/output/console_writer.rb +45 -0
- data/lib/evosynth/output/exporter.rb +27 -0
- data/lib/evosynth/output/exporter/csv_exporter.rb +62 -0
- data/lib/evosynth/output/exporter/gnuplot_exporter.rb +81 -0
- data/lib/evosynth/output/exporter/gruff_exporter.rb +70 -0
- data/lib/evosynth/output/factory.rb +38 -0
- data/lib/evosynth/output/logger.rb +83 -0
- data/lib/evosynth/problems.rb +37 -0
- data/lib/evosynth/problems/binary_benchmark_functions.rb +74 -0
- data/lib/evosynth/problems/float_benchmark_functions.rb +99 -0
- data/lib/evosynth/problems/graph_colouring.rb +89 -0
- data/lib/evosynth/problems/tsp.rb +88 -0
- data/test/benchmark/decoder_benchmark.rb +75 -0
- data/test/benchmark/mutation_benchmark.rb +88 -0
- data/test/benchmark/recombination_benchmark.rb +58 -0
- data/test/benchmark/selection_benchmark.rb +52 -0
- data/test/core/tc_array_genome.rb +154 -0
- data/test/core/tc_binary_genome.rb +160 -0
- data/test/core/tc_population.rb +154 -0
- data/test/core/tc_profile.rb +75 -0
- data/test/core/tc_randomizer.rb +165 -0
- data/test/coverage.rb +43 -0
- data/test/decoder/tc_binary_to_real.rb +52 -0
- data/test/decoder/tc_gray.rb +107 -0
- data/test/operators/adjustments/tc_adaptive_adjustment.rb +63 -0
- data/test/operators/adjustments/tc_predefined_adjustment.rb +49 -0
- data/test/operators/global_recombinations/tc_global_arithmetic_crossover.rb +78 -0
- data/test/operators/global_recombinations/tc_global_uniform_crossover.rb +90 -0
- data/test/operators/meta_operators/tc_conditional_combined_operator.rb +66 -0
- data/test/operators/meta_operators/tc_proportional_combined_operator.rb +167 -0
- data/test/operators/meta_operators/tc_sequential_combined_operator.rb +98 -0
- data/test/operators/mutations/tc_binary_mutation.rb +73 -0
- data/test/operators/mutations/tc_efficient_binary_mutation.rb +73 -0
- data/test/operators/mutations/tc_exchange_mutation.rb +127 -0
- data/test/operators/mutations/tc_gauss_mutation.rb +130 -0
- data/test/operators/mutations/tc_identity_mutation.rb +64 -0
- data/test/operators/mutations/tc_inversion_mutation.rb +70 -0
- data/test/operators/mutations/tc_mixing_mutation.rb +73 -0
- data/test/operators/mutations/tc_one_gene_flipping.rb +109 -0
- data/test/operators/mutations/tc_self_adaptive_gauss_mutation.rb +72 -0
- data/test/operators/mutations/tc_shifting_muation.rb +73 -0
- data/test/operators/mutations/tc_uniform_real_mutation.rb +65 -0
- data/test/operators/recombinations/tc_arithmetic_crossover.rb +79 -0
- data/test/operators/recombinations/tc_edge_recombination.rb +76 -0
- data/test/operators/recombinations/tc_identity_recombination.rb +81 -0
- data/test/operators/recombinations/tc_k_point_crossover.rb +81 -0
- data/test/operators/recombinations/tc_one_point_crossover.rb +80 -0
- data/test/operators/recombinations/tc_ordered_recombination.rb +76 -0
- data/test/operators/recombinations/tc_partially_mapped_crossover.rb +91 -0
- data/test/operators/recombinations/tc_uniform_crossover.rb +84 -0
- data/test/operators/selections/tc_best_selection.rb +85 -0
- data/test/operators/selections/tc_fitness_proportional_selection.rb +78 -0
- data/test/operators/selections/tc_identity.rb +91 -0
- data/test/operators/selections/tc_n_stage_tournament.rb +78 -0
- data/test/operators/selections/tc_random_selection.rb +70 -0
- data/test/operators/selections/tc_roulette_wheel_selection.rb +78 -0
- data/test/operators/selections/tc_tournament_selection.rb +83 -0
- data/test/problems/tc_binary_benchmark_functions.rb +126 -0
- data/test/problems/tc_float_benchmark_functions.rb +100 -0
- data/test/test_util/test_helper.rb +128 -0
- data/test/ts_adjustments.rb +26 -0
- data/test/ts_core.rb +29 -0
- data/test/ts_decoder.rb +26 -0
- data/test/ts_global_recombinations.rb +26 -0
- data/test/ts_meta_operators.rb +27 -0
- data/test/ts_mutations.rb +35 -0
- data/test/ts_problems.rb +26 -0
- data/test/ts_recombinations.rb +32 -0
- data/test/ts_selections.rb +31 -0
- data/testdata/README +4 -0
- data/testdata/bays29.tsp +68 -0
- data/testdata/myciel4.col +77 -0
- metadata +552 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>Module: EvoSynth::Problems [EvoSynth Documentation]</title>
|
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
7
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
8
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
9
|
+
<script type="text/javascript">
|
|
10
|
+
// <![CDATA[
|
|
11
|
+
|
|
12
|
+
function popupCode( url ) {
|
|
13
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function toggleCode( id ) {
|
|
17
|
+
if ( document.getElementById )
|
|
18
|
+
elem = document.getElementById( id );
|
|
19
|
+
else if ( document.all )
|
|
20
|
+
elem = eval( "document.all." + id );
|
|
21
|
+
else
|
|
22
|
+
return false;
|
|
23
|
+
|
|
24
|
+
elemStyle = elem.style;
|
|
25
|
+
|
|
26
|
+
if ( elemStyle.display != "block" ) {
|
|
27
|
+
elemStyle.display = "block"
|
|
28
|
+
} else {
|
|
29
|
+
elemStyle.display = "none"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Make codeblocks hidden by default
|
|
36
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
|
|
37
|
+
|
|
38
|
+
// ]]>
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
</head>
|
|
42
|
+
<body>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<div id="classHeader">
|
|
46
|
+
<table class="header-table">
|
|
47
|
+
<tr class="top-aligned-row">
|
|
48
|
+
<td><strong>Module</strong></td>
|
|
49
|
+
<td class="class-name-in-header">EvoSynth::Problems</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>In:</strong></td>
|
|
53
|
+
<td>
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<a href="../../files/lib/evosynth/problems/graph_colouring_rb.html">
|
|
57
|
+
|
|
58
|
+
lib/evosynth/problems/graph_colouring.rb
|
|
59
|
+
|
|
60
|
+
</a>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<br />
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
<a href="../../files/lib/evosynth/problems/float_benchmark_functions_rb.html">
|
|
67
|
+
|
|
68
|
+
lib/evosynth/problems/float_benchmark_functions.rb
|
|
69
|
+
|
|
70
|
+
</a>
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
<br />
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
<a href="../../files/lib/evosynth/problems/tsp_rb.html">
|
|
77
|
+
|
|
78
|
+
lib/evosynth/problems/tsp.rb
|
|
79
|
+
|
|
80
|
+
</a>
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
<br />
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
<a href="../../files/lib/evosynth/problems/binary_benchmark_functions_rb.html">
|
|
87
|
+
|
|
88
|
+
lib/evosynth/problems/binary_benchmark_functions.rb
|
|
89
|
+
|
|
90
|
+
</a>
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
<br />
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
<a href="../../files/lib/evosynth/problems_rb.html">
|
|
97
|
+
|
|
98
|
+
lib/evosynth/problems.rb
|
|
99
|
+
|
|
100
|
+
</a>
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
<br />
|
|
104
|
+
|
|
105
|
+
</td>
|
|
106
|
+
</tr>
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
</table>
|
|
110
|
+
</div>
|
|
111
|
+
<!-- banner header -->
|
|
112
|
+
|
|
113
|
+
<div id="bodyContent">
|
|
114
|
+
|
|
115
|
+
<div id="contextContent">
|
|
116
|
+
|
|
117
|
+
<div id="description">
|
|
118
|
+
<p>
|
|
119
|
+
This module contains some predefined problems. Most of them are widely used
|
|
120
|
+
to benchmark or demonstrate Evolutionary Computation.
|
|
121
|
+
</p>
|
|
122
|
+
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
</div>
|
|
129
|
+
|
|
130
|
+
<!-- if includes -->
|
|
131
|
+
|
|
132
|
+
<div id="section">
|
|
133
|
+
|
|
134
|
+
<div id="class-list">
|
|
135
|
+
<h3 class="section-bar">Classes and Modules</h3>
|
|
136
|
+
|
|
137
|
+
Module <a href="Problems/BinaryBenchmarkFuntions.html" class="link">EvoSynth::Problems::BinaryBenchmarkFuntions</a><br />
|
|
138
|
+
Module <a href="Problems/FloatBenchmarkFuntions.html" class="link">EvoSynth::Problems::FloatBenchmarkFuntions</a><br />
|
|
139
|
+
Class <a href="Problems/GraphColouring.html" class="link">EvoSynth::Problems::GraphColouring</a><br />
|
|
140
|
+
Class <a href="Problems/TSP.html" class="link">EvoSynth::Problems::TSP</a><br />
|
|
141
|
+
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
<!-- if method_list -->
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
</div>
|
|
153
|
+
|
|
154
|
+
<div id="validator-badges">
|
|
155
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
156
|
+
</div>
|
|
157
|
+
|
|
158
|
+
</body>
|
|
159
|
+
</html>
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>Module: EvoSynth::Problems::BinaryBenchmarkFuntions [EvoSynth Documentation]</title>
|
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
7
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
8
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
9
|
+
<script type="text/javascript">
|
|
10
|
+
// <![CDATA[
|
|
11
|
+
|
|
12
|
+
function popupCode( url ) {
|
|
13
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function toggleCode( id ) {
|
|
17
|
+
if ( document.getElementById )
|
|
18
|
+
elem = document.getElementById( id );
|
|
19
|
+
else if ( document.all )
|
|
20
|
+
elem = eval( "document.all." + id );
|
|
21
|
+
else
|
|
22
|
+
return false;
|
|
23
|
+
|
|
24
|
+
elemStyle = elem.style;
|
|
25
|
+
|
|
26
|
+
if ( elemStyle.display != "block" ) {
|
|
27
|
+
elemStyle.display = "block"
|
|
28
|
+
} else {
|
|
29
|
+
elemStyle.display = "none"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Make codeblocks hidden by default
|
|
36
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
|
|
37
|
+
|
|
38
|
+
// ]]>
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
</head>
|
|
42
|
+
<body>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<div id="classHeader">
|
|
46
|
+
<table class="header-table">
|
|
47
|
+
<tr class="top-aligned-row">
|
|
48
|
+
<td><strong>Module</strong></td>
|
|
49
|
+
<td class="class-name-in-header">EvoSynth::Problems::BinaryBenchmarkFuntions</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>In:</strong></td>
|
|
53
|
+
<td>
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<a href="../../../files/lib/evosynth/problems/binary_benchmark_functions_rb.html">
|
|
57
|
+
|
|
58
|
+
lib/evosynth/problems/binary_benchmark_functions.rb
|
|
59
|
+
|
|
60
|
+
</a>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<br />
|
|
64
|
+
|
|
65
|
+
</td>
|
|
66
|
+
</tr>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
</table>
|
|
70
|
+
</div>
|
|
71
|
+
<!-- banner header -->
|
|
72
|
+
|
|
73
|
+
<div id="bodyContent">
|
|
74
|
+
|
|
75
|
+
<div id="contextContent">
|
|
76
|
+
|
|
77
|
+
<div id="description">
|
|
78
|
+
<p>
|
|
79
|
+
This module contains some multi-dimensional Benchmarkfunctions. You simply
|
|
80
|
+
set the number of dimensions by the length of the given (boolean) array.
|
|
81
|
+
</p>
|
|
82
|
+
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
<div id="method-list">
|
|
89
|
+
<h3 class="section-bar">Methods</h3>
|
|
90
|
+
|
|
91
|
+
<div class="name-list">
|
|
92
|
+
|
|
93
|
+
<a href="#M000012">count_ones</a>
|
|
94
|
+
|
|
95
|
+
<a href="#M000014">n_peaks</a>
|
|
96
|
+
|
|
97
|
+
<a href="#M000013">royal_road</a>
|
|
98
|
+
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
<!-- if includes -->
|
|
105
|
+
|
|
106
|
+
<div id="section">
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
<!-- if method_list -->
|
|
112
|
+
|
|
113
|
+
<div id="methods">
|
|
114
|
+
|
|
115
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
<div id="method-M000012" class="method-detail">
|
|
119
|
+
<a name="M000012"></a>
|
|
120
|
+
|
|
121
|
+
<div class="method-heading">
|
|
122
|
+
|
|
123
|
+
<a href="#M000012" class="method-signature">
|
|
124
|
+
|
|
125
|
+
<span class="method-name">count_ones</span><span class="method-args">(bs)</span>
|
|
126
|
+
|
|
127
|
+
</a>
|
|
128
|
+
|
|
129
|
+
</div>
|
|
130
|
+
|
|
131
|
+
<div class="method-description">
|
|
132
|
+
|
|
133
|
+
<p>
|
|
134
|
+
count-ones function
|
|
135
|
+
</p>
|
|
136
|
+
<p>
|
|
137
|
+
global maximum at f(x) = x at x(i) = 1 (or true), i = 1..n
|
|
138
|
+
</p>
|
|
139
|
+
|
|
140
|
+
<p><a class="source-toggle" href="#"
|
|
141
|
+
onclick="toggleCode('M000012-source');return false;">[Source]</a></p>
|
|
142
|
+
<div class="method-source-code" id="M000012-source">
|
|
143
|
+
<pre>
|
|
144
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/binary_benchmark_functions.rb, line 37</span>
|
|
145
|
+
37: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BinaryBenchmarkFuntions</span>.<span class="ruby-identifier">count_ones</span>(<span class="ruby-identifier">bs</span>)
|
|
146
|
+
38: <span class="ruby-identifier">bs</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> (<span class="ruby-identifier">b</span> <span class="ruby-operator">==</span> <span class="ruby-keyword kw">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">b</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value">1</span> <span class="ruby-operator">:</span> <span class="ruby-value">0</span>) }
|
|
147
|
+
39: <span class="ruby-keyword kw">end</span>
|
|
148
|
+
</pre>
|
|
149
|
+
</div>
|
|
150
|
+
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
<div id="method-M000014" class="method-detail">
|
|
156
|
+
<a name="M000014"></a>
|
|
157
|
+
|
|
158
|
+
<div class="method-heading">
|
|
159
|
+
|
|
160
|
+
<a href="#M000014" class="method-signature">
|
|
161
|
+
|
|
162
|
+
<span class="method-name">n_peaks</span><span class="method-args">(peaks, xs)</span>
|
|
163
|
+
|
|
164
|
+
</a>
|
|
165
|
+
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<div class="method-description">
|
|
169
|
+
|
|
170
|
+
<p>
|
|
171
|
+
N-Peak problem presented in “Using Problem Generators to Explore the
|
|
172
|
+
Effects of Epistasis”, De Jong et al 1997
|
|
173
|
+
</p>
|
|
174
|
+
<p>
|
|
175
|
+
global maximum: f(x) = 1.0 when peak == xs (hamming distance is 0)
|
|
176
|
+
</p>
|
|
177
|
+
|
|
178
|
+
<p><a class="source-toggle" href="#"
|
|
179
|
+
onclick="toggleCode('M000014-source');return false;">[Source]</a></p>
|
|
180
|
+
<div class="method-source-code" id="M000014-source">
|
|
181
|
+
<pre>
|
|
182
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/binary_benchmark_functions.rb, line 60</span>
|
|
183
|
+
60: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BinaryBenchmarkFuntions</span>.<span class="ruby-identifier">n_peaks</span>(<span class="ruby-identifier">peaks</span>, <span class="ruby-identifier">xs</span>)
|
|
184
|
+
61: <span class="ruby-identifier">max_hamming_dist</span> = <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span>
|
|
185
|
+
62:
|
|
186
|
+
63: <span class="ruby-identifier">peaks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">peak</span><span class="ruby-operator">|</span>
|
|
187
|
+
64: <span class="ruby-identifier">new_dist</span> = <span class="ruby-value">0</span><span class="ruby-value">.0</span>
|
|
188
|
+
65: <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>, <span class="ruby-identifier">index</span><span class="ruby-operator">|</span> <span class="ruby-identifier">new_dist</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">x</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">peak</span>[<span class="ruby-identifier">index</span>] }
|
|
189
|
+
66: <span class="ruby-identifier">max_hamming_dist</span> = <span class="ruby-identifier">new_dist</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">new_dist</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">max_hamming_dist</span>
|
|
190
|
+
67: <span class="ruby-keyword kw">end</span>
|
|
191
|
+
68:
|
|
192
|
+
69: <span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">*</span> (<span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">max_hamming_dist</span>)
|
|
193
|
+
70: <span class="ruby-keyword kw">end</span>
|
|
194
|
+
</pre>
|
|
195
|
+
</div>
|
|
196
|
+
|
|
197
|
+
</div>
|
|
198
|
+
</div>
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
<div id="method-M000013" class="method-detail">
|
|
202
|
+
<a name="M000013"></a>
|
|
203
|
+
|
|
204
|
+
<div class="method-heading">
|
|
205
|
+
|
|
206
|
+
<a href="#M000013" class="method-signature">
|
|
207
|
+
|
|
208
|
+
<span class="method-name">royal_road</span><span class="method-args">(k, bs)</span>
|
|
209
|
+
|
|
210
|
+
</a>
|
|
211
|
+
|
|
212
|
+
</div>
|
|
213
|
+
|
|
214
|
+
<div class="method-description">
|
|
215
|
+
|
|
216
|
+
<p>
|
|
217
|
+
Royal-Road function (Mitchell et al 1992)
|
|
218
|
+
</p>
|
|
219
|
+
<p>
|
|
220
|
+
global minimum: f(x) = 0 at x(i) = 1, i = 1..n (bs.size % k == 0)
|
|
221
|
+
</p>
|
|
222
|
+
|
|
223
|
+
<p><a class="source-toggle" href="#"
|
|
224
|
+
onclick="toggleCode('M000013-source');return false;">[Source]</a></p>
|
|
225
|
+
<div class="method-source-code" id="M000013-source">
|
|
226
|
+
<pre>
|
|
227
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/binary_benchmark_functions.rb, line 45</span>
|
|
228
|
+
45: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">BinaryBenchmarkFuntions</span>.<span class="ruby-identifier">royal_road</span>(<span class="ruby-identifier">k</span>, <span class="ruby-identifier">bs</span>)
|
|
229
|
+
46: <span class="ruby-identifier">m</span> = <span class="ruby-identifier">bs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">k</span>
|
|
230
|
+
47: <span class="ruby-identifier">sum</span> = <span class="ruby-value">0</span>
|
|
231
|
+
48:
|
|
232
|
+
49: <span class="ruby-identifier">m</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
233
|
+
50: <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">bs</span>[(<span class="ruby-identifier">i</span><span class="ruby-operator">*</span><span class="ruby-identifier">k</span>)<span class="ruby-operator">..</span>(<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)<span class="ruby-operator">*</span><span class="ruby-identifier">k</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>].<span class="ruby-identifier">inject</span>(<span class="ruby-value">1</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">res</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> <span class="ruby-identifier">res</span> = (<span class="ruby-identifier">b</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-value">0</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">res</span>) }
|
|
234
|
+
51: <span class="ruby-keyword kw">end</span>
|
|
235
|
+
52:
|
|
236
|
+
53: <span class="ruby-identifier">sum</span>
|
|
237
|
+
54: <span class="ruby-keyword kw">end</span>
|
|
238
|
+
</pre>
|
|
239
|
+
</div>
|
|
240
|
+
|
|
241
|
+
</div>
|
|
242
|
+
</div>
|
|
243
|
+
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
</div>
|
|
247
|
+
|
|
248
|
+
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
</div>
|
|
252
|
+
|
|
253
|
+
<div id="validator-badges">
|
|
254
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
255
|
+
</div>
|
|
256
|
+
|
|
257
|
+
</body>
|
|
258
|
+
</html>
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
4
|
+
<head>
|
|
5
|
+
<title>Module: EvoSynth::Problems::FloatBenchmarkFuntions [EvoSynth Documentation]</title>
|
|
6
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|
7
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
8
|
+
<link rel="stylesheet" href="../../.././rdoc-style.css" type="text/css" media="screen" />
|
|
9
|
+
<script type="text/javascript">
|
|
10
|
+
// <![CDATA[
|
|
11
|
+
|
|
12
|
+
function popupCode( url ) {
|
|
13
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
function toggleCode( id ) {
|
|
17
|
+
if ( document.getElementById )
|
|
18
|
+
elem = document.getElementById( id );
|
|
19
|
+
else if ( document.all )
|
|
20
|
+
elem = eval( "document.all." + id );
|
|
21
|
+
else
|
|
22
|
+
return false;
|
|
23
|
+
|
|
24
|
+
elemStyle = elem.style;
|
|
25
|
+
|
|
26
|
+
if ( elemStyle.display != "block" ) {
|
|
27
|
+
elemStyle.display = "block"
|
|
28
|
+
} else {
|
|
29
|
+
elemStyle.display = "none"
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Make codeblocks hidden by default
|
|
36
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }<\/style>" )
|
|
37
|
+
|
|
38
|
+
// ]]>
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
</head>
|
|
42
|
+
<body>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<div id="classHeader">
|
|
46
|
+
<table class="header-table">
|
|
47
|
+
<tr class="top-aligned-row">
|
|
48
|
+
<td><strong>Module</strong></td>
|
|
49
|
+
<td class="class-name-in-header">EvoSynth::Problems::FloatBenchmarkFuntions</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr class="top-aligned-row">
|
|
52
|
+
<td><strong>In:</strong></td>
|
|
53
|
+
<td>
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
<a href="../../../files/lib/evosynth/problems/float_benchmark_functions_rb.html">
|
|
57
|
+
|
|
58
|
+
lib/evosynth/problems/float_benchmark_functions.rb
|
|
59
|
+
|
|
60
|
+
</a>
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
<br />
|
|
64
|
+
|
|
65
|
+
</td>
|
|
66
|
+
</tr>
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
</table>
|
|
70
|
+
</div>
|
|
71
|
+
<!-- banner header -->
|
|
72
|
+
|
|
73
|
+
<div id="bodyContent">
|
|
74
|
+
|
|
75
|
+
<div id="contextContent">
|
|
76
|
+
|
|
77
|
+
<div id="description">
|
|
78
|
+
<p>
|
|
79
|
+
This module contains some multi-dimensional Benchmarkfunctions. You simply
|
|
80
|
+
set the number of dimensions by the length of the given (Float) array.
|
|
81
|
+
</p>
|
|
82
|
+
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
</div>
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
<div id="method-list">
|
|
89
|
+
<h3 class="section-bar">Methods</h3>
|
|
90
|
+
|
|
91
|
+
<div class="name-list">
|
|
92
|
+
|
|
93
|
+
<a href="#M000010">ackley</a>
|
|
94
|
+
|
|
95
|
+
<a href="#M000006">double_sum</a>
|
|
96
|
+
|
|
97
|
+
<a href="#M000011">griewank</a>
|
|
98
|
+
|
|
99
|
+
<a href="#M000008">rastgrin</a>
|
|
100
|
+
|
|
101
|
+
<a href="#M000009">rosenbrock</a>
|
|
102
|
+
|
|
103
|
+
<a href="#M000005">sinus_sum</a>
|
|
104
|
+
|
|
105
|
+
<a href="#M000007">sphere</a>
|
|
106
|
+
|
|
107
|
+
</div>
|
|
108
|
+
</div>
|
|
109
|
+
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
<!-- if includes -->
|
|
113
|
+
|
|
114
|
+
<div id="section">
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
<!-- if method_list -->
|
|
120
|
+
|
|
121
|
+
<div id="methods">
|
|
122
|
+
|
|
123
|
+
<h3 class="section-bar">Public Class methods</h3>
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
<div id="method-M000010" class="method-detail">
|
|
127
|
+
<a name="M000010"></a>
|
|
128
|
+
|
|
129
|
+
<div class="method-heading">
|
|
130
|
+
|
|
131
|
+
<a href="#M000010" class="method-signature">
|
|
132
|
+
|
|
133
|
+
<span class="method-name">ackley</span><span class="method-args">(xs)</span>
|
|
134
|
+
|
|
135
|
+
</a>
|
|
136
|
+
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
<div class="method-description">
|
|
140
|
+
|
|
141
|
+
<p>
|
|
142
|
+
Ackley (Ackley 1987)
|
|
143
|
+
</p>
|
|
144
|
+
<p>
|
|
145
|
+
global minimum: f(x) = 0 at x(i) = 0, i = 1..n
|
|
146
|
+
</p>
|
|
147
|
+
|
|
148
|
+
<p><a class="source-toggle" href="#"
|
|
149
|
+
onclick="toggleCode('M000010-source');return false;">[Source]</a></p>
|
|
150
|
+
<div class="method-source-code" id="M000010-source">
|
|
151
|
+
<pre>
|
|
152
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/float_benchmark_functions.rb, line 81</span>
|
|
153
|
+
81: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">FloatBenchmarkFuntions</span>.<span class="ruby-identifier">ackley</span>(<span class="ruby-identifier">xs</span>)
|
|
154
|
+
82: <span class="ruby-identifier">quad_sum</span> = <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">x</span><span class="ruby-operator">**</span><span class="ruby-value">2</span> }
|
|
155
|
+
83: <span class="ruby-identifier">cos_sum</span> = <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">cos</span>(<span class="ruby-value">2</span> <span class="ruby-operator">*</span> <span class="ruby-constant">Math</span><span class="ruby-operator">::</span><span class="ruby-constant">PI</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">x</span>) }
|
|
156
|
+
84: <span class="ruby-value">20</span> <span class="ruby-operator">+</span> <span class="ruby-constant">Math</span><span class="ruby-operator">::</span><span class="ruby-constant">E</span> <span class="ruby-operator">-</span> <span class="ruby-value">20</span> <span class="ruby-operator">*</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">exp</span>(<span class="ruby-value">-0</span><span class="ruby-value">.2</span> <span class="ruby-operator">*</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">sqrt</span>( (<span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">quad_sum</span> )) <span class="ruby-operator">-</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">exp</span>( (<span class="ruby-value">1.0</span> <span class="ruby-operator">/</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span>) <span class="ruby-operator">*</span> <span class="ruby-identifier">cos_sum</span> )
|
|
157
|
+
85: <span class="ruby-keyword kw">end</span>
|
|
158
|
+
</pre>
|
|
159
|
+
</div>
|
|
160
|
+
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
<div id="method-M000006" class="method-detail">
|
|
166
|
+
<a name="M000006"></a>
|
|
167
|
+
|
|
168
|
+
<div class="method-heading">
|
|
169
|
+
|
|
170
|
+
<a href="#M000006" class="method-signature">
|
|
171
|
+
|
|
172
|
+
<span class="method-name">double_sum</span><span class="method-args">(xs)</span>
|
|
173
|
+
|
|
174
|
+
</a>
|
|
175
|
+
|
|
176
|
+
</div>
|
|
177
|
+
|
|
178
|
+
<div class="method-description">
|
|
179
|
+
|
|
180
|
+
<p>
|
|
181
|
+
Double Sum function (Schwefel 1977)
|
|
182
|
+
</p>
|
|
183
|
+
<p>
|
|
184
|
+
global minimum: f(x) = 0 at x(i) = 0, i = 1..n
|
|
185
|
+
</p>
|
|
186
|
+
|
|
187
|
+
<p><a class="source-toggle" href="#"
|
|
188
|
+
onclick="toggleCode('M000006-source');return false;">[Source]</a></p>
|
|
189
|
+
<div class="method-source-code" id="M000006-source">
|
|
190
|
+
<pre>
|
|
191
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/float_benchmark_functions.rb, line 45</span>
|
|
192
|
+
45: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">FloatBenchmarkFuntions</span>.<span class="ruby-identifier">double_sum</span>(<span class="ruby-identifier">xs</span>)
|
|
193
|
+
46: <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
194
|
+
47: <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">xs</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">i</span>].<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">x</span> }
|
|
195
|
+
48: <span class="ruby-keyword kw">end</span>
|
|
196
|
+
49: <span class="ruby-keyword kw">end</span>
|
|
197
|
+
</pre>
|
|
198
|
+
</div>
|
|
199
|
+
|
|
200
|
+
</div>
|
|
201
|
+
</div>
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
<div id="method-M000011" class="method-detail">
|
|
205
|
+
<a name="M000011"></a>
|
|
206
|
+
|
|
207
|
+
<div class="method-heading">
|
|
208
|
+
|
|
209
|
+
<a href="#M000011" class="method-signature">
|
|
210
|
+
|
|
211
|
+
<span class="method-name">griewank</span><span class="method-args">(xs)</span>
|
|
212
|
+
|
|
213
|
+
</a>
|
|
214
|
+
|
|
215
|
+
</div>
|
|
216
|
+
|
|
217
|
+
<div class="method-description">
|
|
218
|
+
|
|
219
|
+
<p>
|
|
220
|
+
Griewank (Törn & Zilinskas 1989)
|
|
221
|
+
</p>
|
|
222
|
+
<p>
|
|
223
|
+
global minimum: f(x) = 0 at x(i) = 0, i = 1..n
|
|
224
|
+
</p>
|
|
225
|
+
|
|
226
|
+
<p><a class="source-toggle" href="#"
|
|
227
|
+
onclick="toggleCode('M000011-source');return false;">[Source]</a></p>
|
|
228
|
+
<div class="method-source-code" id="M000011-source">
|
|
229
|
+
<pre>
|
|
230
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/float_benchmark_functions.rb, line 91</span>
|
|
231
|
+
91: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">FloatBenchmarkFuntions</span>.<span class="ruby-identifier">griewank</span>(<span class="ruby-identifier">xs</span>)
|
|
232
|
+
92: <span class="ruby-identifier">product</span> = <span class="ruby-value">1.0</span>
|
|
233
|
+
93: <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">each_with_index</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">product</span> <span class="ruby-operator">*=</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">cos</span> <span class="ruby-identifier">x</span> <span class="ruby-operator">/</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">sqrt</span>(<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>) }
|
|
234
|
+
94: <span class="ruby-value">1</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">x</span><span class="ruby-operator">**</span><span class="ruby-value">2</span> <span class="ruby-operator">/</span> (<span class="ruby-value">400</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span>) } <span class="ruby-operator">-</span> <span class="ruby-identifier">product</span>
|
|
235
|
+
95: <span class="ruby-keyword kw">end</span>
|
|
236
|
+
</pre>
|
|
237
|
+
</div>
|
|
238
|
+
|
|
239
|
+
</div>
|
|
240
|
+
</div>
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
<div id="method-M000008" class="method-detail">
|
|
244
|
+
<a name="M000008"></a>
|
|
245
|
+
|
|
246
|
+
<div class="method-heading">
|
|
247
|
+
|
|
248
|
+
<a href="#M000008" class="method-signature">
|
|
249
|
+
|
|
250
|
+
<span class="method-name">rastgrin</span><span class="method-args">(xs)</span>
|
|
251
|
+
|
|
252
|
+
</a>
|
|
253
|
+
|
|
254
|
+
</div>
|
|
255
|
+
|
|
256
|
+
<div class="method-description">
|
|
257
|
+
|
|
258
|
+
<p>
|
|
259
|
+
Rastgrin (Törn & Zilinskas 1989)
|
|
260
|
+
</p>
|
|
261
|
+
<p>
|
|
262
|
+
global minimum: f(x) = 0 at x(i) = 0, i = 1..n
|
|
263
|
+
</p>
|
|
264
|
+
|
|
265
|
+
<p><a class="source-toggle" href="#"
|
|
266
|
+
onclick="toggleCode('M000008-source');return false;">[Source]</a></p>
|
|
267
|
+
<div class="method-source-code" id="M000008-source">
|
|
268
|
+
<pre>
|
|
269
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/float_benchmark_functions.rb, line 63</span>
|
|
270
|
+
63: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">FloatBenchmarkFuntions</span>.<span class="ruby-identifier">rastgrin</span>(<span class="ruby-identifier">xs</span>)
|
|
271
|
+
64: <span class="ruby-value">10</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">x</span><span class="ruby-operator">**</span><span class="ruby-value">2</span> <span class="ruby-operator">-</span> <span class="ruby-value">10</span> <span class="ruby-operator">*</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">cos</span>(<span class="ruby-value">2</span> <span class="ruby-operator">*</span> <span class="ruby-constant">Math</span><span class="ruby-operator">::</span><span class="ruby-constant">PI</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">x</span>) }
|
|
272
|
+
65: <span class="ruby-keyword kw">end</span>
|
|
273
|
+
</pre>
|
|
274
|
+
</div>
|
|
275
|
+
|
|
276
|
+
</div>
|
|
277
|
+
</div>
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
<div id="method-M000009" class="method-detail">
|
|
281
|
+
<a name="M000009"></a>
|
|
282
|
+
|
|
283
|
+
<div class="method-heading">
|
|
284
|
+
|
|
285
|
+
<a href="#M000009" class="method-signature">
|
|
286
|
+
|
|
287
|
+
<span class="method-name">rosenbrock</span><span class="method-args">(xs)</span>
|
|
288
|
+
|
|
289
|
+
</a>
|
|
290
|
+
|
|
291
|
+
</div>
|
|
292
|
+
|
|
293
|
+
<div class="method-description">
|
|
294
|
+
|
|
295
|
+
<p>
|
|
296
|
+
Rosenbrock (De Jong 1975)
|
|
297
|
+
</p>
|
|
298
|
+
<p>
|
|
299
|
+
global minimum: f(x) = 0 at x(i) = 1, i = 1..n
|
|
300
|
+
</p>
|
|
301
|
+
|
|
302
|
+
<p><a class="source-toggle" href="#"
|
|
303
|
+
onclick="toggleCode('M000009-source');return false;">[Source]</a></p>
|
|
304
|
+
<div class="method-source-code" id="M000009-source">
|
|
305
|
+
<pre>
|
|
306
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/float_benchmark_functions.rb, line 71</span>
|
|
307
|
+
71: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">FloatBenchmarkFuntions</span>.<span class="ruby-identifier">rosenbrock</span>(<span class="ruby-identifier">xs</span>)
|
|
308
|
+
72: (<span class="ruby-value">0</span><span class="ruby-operator">..</span><span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">-</span> <span class="ruby-value">2</span>).<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
309
|
+
73: <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-value">100</span> <span class="ruby-operator">*</span> (<span class="ruby-identifier">xs</span>[<span class="ruby-identifier">i</span>]<span class="ruby-operator">**</span><span class="ruby-value">2</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">xs</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>])<span class="ruby-operator">**</span><span class="ruby-value">2</span> <span class="ruby-operator">+</span> (<span class="ruby-value">1</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">xs</span>[<span class="ruby-identifier">i</span>])<span class="ruby-operator">**</span><span class="ruby-value">2</span>
|
|
310
|
+
74: <span class="ruby-keyword kw">end</span>
|
|
311
|
+
75: <span class="ruby-keyword kw">end</span>
|
|
312
|
+
</pre>
|
|
313
|
+
</div>
|
|
314
|
+
|
|
315
|
+
</div>
|
|
316
|
+
</div>
|
|
317
|
+
|
|
318
|
+
|
|
319
|
+
<div id="method-M000005" class="method-detail">
|
|
320
|
+
<a name="M000005"></a>
|
|
321
|
+
|
|
322
|
+
<div class="method-heading">
|
|
323
|
+
|
|
324
|
+
<a href="#M000005" class="method-signature">
|
|
325
|
+
|
|
326
|
+
<span class="method-name">sinus_sum</span><span class="method-args">(xs)</span>
|
|
327
|
+
|
|
328
|
+
</a>
|
|
329
|
+
|
|
330
|
+
</div>
|
|
331
|
+
|
|
332
|
+
<div class="method-description">
|
|
333
|
+
|
|
334
|
+
<p>
|
|
335
|
+
Sinus Sum function (Schwefel 1995)
|
|
336
|
+
</p>
|
|
337
|
+
<p>
|
|
338
|
+
global minimum: f(x) = 0 at x(i) = 420.9687, i = 1..n
|
|
339
|
+
</p>
|
|
340
|
+
|
|
341
|
+
<p><a class="source-toggle" href="#"
|
|
342
|
+
onclick="toggleCode('M000005-source');return false;">[Source]</a></p>
|
|
343
|
+
<div class="method-source-code" id="M000005-source">
|
|
344
|
+
<pre>
|
|
345
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/float_benchmark_functions.rb, line 37</span>
|
|
346
|
+
37: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">FloatBenchmarkFuntions</span>.<span class="ruby-identifier">sinus_sum</span>(<span class="ruby-identifier">xs</span>)
|
|
347
|
+
38: <span class="ruby-value">418.98289</span> <span class="ruby-operator">*</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-operator">-</span><span class="ruby-identifier">x</span> <span class="ruby-operator">*</span> <span class="ruby-constant">Math</span>.<span class="ruby-identifier">sin</span>(<span class="ruby-constant">Math</span>.<span class="ruby-identifier">sqrt</span>(<span class="ruby-identifier">x</span>.<span class="ruby-identifier">abs</span>)) }
|
|
348
|
+
39: <span class="ruby-keyword kw">end</span>
|
|
349
|
+
</pre>
|
|
350
|
+
</div>
|
|
351
|
+
|
|
352
|
+
</div>
|
|
353
|
+
</div>
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
<div id="method-M000007" class="method-detail">
|
|
357
|
+
<a name="M000007"></a>
|
|
358
|
+
|
|
359
|
+
<div class="method-heading">
|
|
360
|
+
|
|
361
|
+
<a href="#M000007" class="method-signature">
|
|
362
|
+
|
|
363
|
+
<span class="method-name">sphere</span><span class="method-args">(xs)</span>
|
|
364
|
+
|
|
365
|
+
</a>
|
|
366
|
+
|
|
367
|
+
</div>
|
|
368
|
+
|
|
369
|
+
<div class="method-description">
|
|
370
|
+
|
|
371
|
+
<p>
|
|
372
|
+
Sphere function (Rechenberg 1973 and De Jong 1975)
|
|
373
|
+
</p>
|
|
374
|
+
<p>
|
|
375
|
+
global minimum: f(x) = 0 at x(i) = 0, i = 1..n
|
|
376
|
+
</p>
|
|
377
|
+
|
|
378
|
+
<p><a class="source-toggle" href="#"
|
|
379
|
+
onclick="toggleCode('M000007-source');return false;">[Source]</a></p>
|
|
380
|
+
<div class="method-source-code" id="M000007-source">
|
|
381
|
+
<pre>
|
|
382
|
+
<span class="ruby-comment cmt"># File lib/evosynth/problems/float_benchmark_functions.rb, line 55</span>
|
|
383
|
+
55: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">FloatBenchmarkFuntions</span>.<span class="ruby-identifier">sphere</span>(<span class="ruby-identifier">xs</span>)
|
|
384
|
+
56: <span class="ruby-identifier">xs</span>.<span class="ruby-identifier">inject</span>(<span class="ruby-value">0</span><span class="ruby-value">.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">x</span><span class="ruby-operator">**</span><span class="ruby-value">2</span> }
|
|
385
|
+
57: <span class="ruby-keyword kw">end</span>
|
|
386
|
+
</pre>
|
|
387
|
+
</div>
|
|
388
|
+
|
|
389
|
+
</div>
|
|
390
|
+
</div>
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
</div>
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
</div>
|
|
400
|
+
|
|
401
|
+
<div id="validator-badges">
|
|
402
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
403
|
+
</div>
|
|
404
|
+
|
|
405
|
+
</body>
|
|
406
|
+
</html>
|