[yul-phaser] Tweak default values according to experiment results

- Long chromosomes in the intial population are better. Set minimum and maximum to 100.
- The classic algorithm does not work well without elite. 50% performed better but I think it might be too large. Let's set it to 25%.
- Switch to uniform crossover since this is what was used in most experiments and performed well.
This commit is contained in:
Kamil Śliwak 2020-03-20 18:44:45 +01:00
parent 35395a4b9c
commit 163e35dd23

View File

@ -473,17 +473,17 @@ Phaser::CommandLineDescription Phaser::buildCommandLineDescription()
)
(
"min-chromosome-length",
po::value<size_t>()->value_name("<NUM>")->default_value(12),
po::value<size_t>()->value_name("<NUM>")->default_value(100),
"Minimum length of randomly generated chromosomes."
)
(
"max-chromosome-length",
po::value<size_t>()->value_name("<NUM>")->default_value(30),
po::value<size_t>()->value_name("<NUM>")->default_value(100),
"Maximum length of randomly generated chromosomes."
)
(
"crossover",
po::value<CrossoverChoice>()->value_name("<NAME>")->default_value(CrossoverChoice::SinglePoint),
po::value<CrossoverChoice>()->value_name("<NAME>")->default_value(CrossoverChoice::Uniform),
(
"Type of the crossover operator to use.\n"
"\n"
@ -542,7 +542,7 @@ Phaser::CommandLineDescription Phaser::buildCommandLineDescription()
classicGeneticAlgorithmDescription.add_options()
(
"classic-elite-pool-size",
po::value<double>()->value_name("<FRACTION>")->default_value(0),
po::value<double>()->value_name("<FRACTION>")->default_value(0.25),
"Percentage of population to regenerate using mutations in each round."
)
(