Commit Graph

49 Commits

Author SHA1 Message Date
Sachin Grover
b7adb2aa42 Add SPDX license identifier if not present already in source file
Fixes: #9220
2020-07-17 20:24:12 +05:30
Kamil Śliwak
bff012c76d [yul-phaser] Change default metric weights so that everything has a cost
- The CodeSize::DefaultWeights gives zeros to instructions that it assumes will be optimised out. Obviously, we cannot make this assumption here since phaser is meant to find the best way for the optimiser to work.
2020-05-20 16:47:23 +02:00
Kamil Śliwak
b776021870 [yul-phaser] Command-line options for altering weights used by CodeSize metric 2020-05-20 16:47:23 +02:00
Kamil Śliwak
40dfac7683 [yul-phaser] Require specifying weights for Program::codeSize() 2020-05-20 16:47:23 +02:00
Kamil Śliwak
163e35dd23 [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.
2020-04-24 17:31:50 +02:00
Kamil Śliwak
35395a4b9c [yul-phaser] Phaser: Missing word in --metric-aggregator option description 2020-04-24 17:31:50 +02:00
Kamil Śliwak
424edecd21 [yul-phaser] Phaser: List all available values of enum options in --help 2020-04-24 17:31:50 +02:00
Kamil Śliwak
d9e2735361 [yul-phaser] Add options for selecting crossover operator used by the algorithms 2020-04-20 15:30:10 +02:00
Kamil Śliwak
0efea99fa5 [yul-phaser] Phaser: Allow selecting the classic algorithm on the command line 2020-04-06 19:06:08 +02:00
Kamil Śliwak
e41ea6d25e [yul-phaser] Add --show-seed option and don't print seed by default 2020-03-25 10:21:18 +01:00
Kamil Śliwak
cd16a6e178 [yul-phaser] Add --show-cache-stats option 2020-03-25 10:21:18 +01:00
Kamil Śliwak
d33ba54a38 [yul-phaser] Add print-optimised-programs and print-optimised-asts modes 2020-03-25 10:21:18 +01:00
Kamil Śliwak
1272a9335c [yul-phaser] Add --mode option 2020-03-25 10:21:18 +01:00
Kamil Śliwak
c875b3d944 [yul-phaser] Add --show-only-top-chromosome and --hide-round options 2020-03-25 10:21:18 +01:00
Kamil Śliwak
ec10a3d378 [yul-phaser] Add --show-initial-population option 2020-03-25 10:21:18 +01:00
Kamil Śliwak
98db50ccac [yul-phaser] Add --program-cache option 2020-03-24 17:39:24 +01:00
Kamil Śliwak
3b49fbb8a5 [yul-phaser] Add ProgramCacheFactory class 2020-03-24 17:39:24 +01:00
Kamil Śliwak
e2ff9698d3 [yul-phaser] AlgorithmRunner: Add support for ProgramCache 2020-03-24 17:39:24 +01:00
Kamil Śliwak
259f738f17 [yul-phaser] ProgramBasedMetric: Add the ability to use ProgramCache 2020-03-24 17:39:24 +01:00
Kamil Śliwak
a66ceb11c6 [yul-phaser] Add --prefix option 2020-03-23 16:31:35 +01:00
Kamil Śliwak
905147321b [yul-phaser] Phaser: Change default metric to RelativeCodeSize 2020-03-18 16:28:16 +01:00
Kamil Śliwak
d86652cb96 [yul-phaser] Add --metric-aggregator option 2020-03-18 16:28:16 +01:00
Kamil Śliwak
bc46323bed [yul-phaser] Phaser: Accepting multiple input programs
- Use average of metric values for individual programs as the overall metric.
2020-03-18 16:28:16 +01:00
Kamil Śliwak
01050940fd [yul-phaser] Add --relative-metric-scale option 2020-03-18 16:28:16 +01:00
Kamil Śliwak
8e64c5c6f0 [yul-phaser] Add --metric option 2020-03-18 16:28:16 +01:00
Kamil Śliwak
2563e7a7e3 [yul-phaser] Add --no-randomise-duplicates option 2020-03-18 13:30:58 +01:00
Kamil Śliwak
18f0d6eb94 [yul-phaser] AlgorithmRunner: Duplicate chromosome randomisation 2020-03-18 13:30:58 +01:00
Kamil Śliwak
b11eff7c88 [yul-phaser] Add options for all algorithm-specific parameters 2020-03-18 13:30:58 +01:00
Kamil Śliwak
55ea92dbec [yul-phaser] Add --min-chromosome-length and --max-chromosome-length options 2020-03-18 13:30:58 +01:00
Kamil Śliwak
3f7ada1689 [yul-phaser] Add --population-autosave option 2020-03-18 13:30:58 +01:00
Kamil Śliwak
04c7c56d84 [yul-phaser] Add --population-from-file option 2020-03-18 13:30:58 +01:00
Kamil Śliwak
5e00b57e02 [yul-phaser] Add --population option 2020-03-18 13:30:58 +01:00
Kamil Śliwak
af090876b5 [yul-phaser] Add --random-population option 2020-03-18 13:30:58 +01:00
Kamil Śliwak
d8e5f8f965 [yul-phaser] Add --rounds option 2020-03-18 13:30:58 +01:00
Kamil Śliwak
63f13c5b18 [yul-phaser] Add --chromosome-repetitions option 2020-03-18 13:30:58 +01:00
Kamil Śliwak
760e7c3cc5 [yul-phaser] Don't return exit code from Phaser::main() and just assume 0 if it does not throw. 2020-03-16 20:32:59 +01:00
Kamil Śliwak
d86b5019dc [yul-phaser] Phaser: Returning exit code 0 instead of 2 when --help is requested
- I don't think we really need to discern it from normal operation. It's what user requested so it's a success.
2020-03-16 20:32:59 +01:00
Kamil Śliwak
f05a07d0cc [yul-phaser] Create BadInput exception hierarchy and make exceptions used by Phaser more specific 2020-03-16 20:32:59 +01:00
Kamil Śliwak
53803801f7 [yul-phaser] Move handling of boost::program_options::error to the top-level exception handler 2020-03-16 20:32:59 +01:00
Kamil Śliwak
8ca0d90aae [yul-phaser] Returning an ErrorList from Program::load() if program has errors and printing them in Phaser 2020-03-16 20:32:59 +01:00
Kamil Śliwak
98fcba8ef3 [yul-phaser] Phaser: Reimplement << and >> operators using serializeChoice() and deserializeChoice() 2020-03-13 11:21:23 +01:00
Kamil Śliwak
a80512a71d [yul-phaser] Phaser: Name option parameters in command-line help 2020-03-13 11:21:23 +01:00
Kamil Śliwak
df90cf5d7a [yul-phaser] Phaser: Make all option descriptions consistenly end with a full stop 2020-03-13 11:21:23 +01:00
Kamil Śliwak
ffc21632b6 [yul-phaser] Phaser: Split command-line option description into groups 2020-03-13 11:21:23 +01:00
Kamil Śliwak
7cf5c4e266 [yul-phaser] Phaser: Extract preparation of option description into a separate function 2020-03-13 11:21:23 +01:00
Kamil Śliwak
2d177c7623 [yul-phaser] Phaser: Refactor object creation in runAlgorithm() into a set of factories 2020-03-13 11:21:23 +01:00
Kamil Śliwak
2110bf10cf [yul-phaser] AlgorithmRunner: Create a structure to store runner's options 2020-03-13 11:21:23 +01:00
Kamil Śliwak
b8244f6a43 [yul-phaser] Extract the code that controls execution of algorithm rounds from GeneticAlgorithm into AlgorithmRunner 2020-03-13 11:21:23 +01:00
Kamil Śliwak
0c1b88508e [yul-phaser] Refactor the code from main into a Phaser class 2020-03-13 11:21:23 +01:00