charlie 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. data/History.txt +3 -0
  2. data/Manifest.txt +53 -0
  3. data/README.txt +90 -0
  4. data/Rakefile +43 -0
  5. data/TODO.txt +28 -0
  6. data/data/BENCHMARK +53 -0
  7. data/data/CROSSOVER +49 -0
  8. data/data/GENOTYPE +49 -0
  9. data/data/MUTATION +43 -0
  10. data/data/SELECTION +48 -0
  11. data/data/template.html +34 -0
  12. data/examples/bit.rb +10 -0
  13. data/examples/function_opt_2peak.rb +24 -0
  14. data/examples/function_opt_sombero.rb +38 -0
  15. data/examples/gladiatorial_simple.rb +17 -0
  16. data/examples/gladiatorial_sunburn.rb +89 -0
  17. data/examples/gridwalk.rb +29 -0
  18. data/examples/output/flattened_sombero.html +6400 -0
  19. data/examples/output/flattened_sombero2_.html +3576 -0
  20. data/examples/output/fopt1_dblopt.html +2160 -0
  21. data/examples/output/hill10.html +5816 -0
  22. data/examples/output/hill2.csv +24 -0
  23. data/examples/output/hill2.html +384 -0
  24. data/examples/output/royalroad1_report.html +1076 -0
  25. data/examples/output/royalroad2_report.html +1076 -0
  26. data/examples/output/royalroadquick_report.html +504 -0
  27. data/examples/output/tsp.html +632 -0
  28. data/examples/output/weasel1_report.html +1076 -0
  29. data/examples/output/weasel2_report.html +240 -0
  30. data/examples/royalroad.rb +26 -0
  31. data/examples/royalroad2.rb +18 -0
  32. data/examples/simple_climb_hill2.rb +47 -0
  33. data/examples/tsp.rb +35 -0
  34. data/examples/weasel.rb +36 -0
  35. data/lib/charlie.rb +35 -0
  36. data/lib/charlie/crossover.rb +49 -0
  37. data/lib/charlie/etc/minireport.rb +45 -0
  38. data/lib/charlie/etc/monkey.rb +136 -0
  39. data/lib/charlie/genotype.rb +45 -0
  40. data/lib/charlie/list/list_crossover.rb +30 -0
  41. data/lib/charlie/list/list_genotype.rb +53 -0
  42. data/lib/charlie/list/list_mutate.rb +75 -0
  43. data/lib/charlie/mutate.rb +25 -0
  44. data/lib/charlie/permutation/permutation.rb +47 -0
  45. data/lib/charlie/population.rb +156 -0
  46. data/lib/charlie/selection.rb +162 -0
  47. data/test/t_common.rb +32 -0
  48. data/test/test_basic.rb +32 -0
  49. data/test/test_benchmark.rb +56 -0
  50. data/test/test_cross.rb +28 -0
  51. data/test/test_mutator.rb +44 -0
  52. data/test/test_permutation.rb +23 -0
  53. data/test/test_sel.rb +39 -0
  54. metadata +115 -0
@@ -0,0 +1,24 @@
1
+ "TruncationSelection(1)", "NullCrossover", "ListMutator([:expected_n, 1],[:uniform, 0.1])", "0.0155407", "0.999984840066567, 0.99999173242527, 0.999981225125291, 0.999801382627955, 0.999993478269697, 0.999983044173997, 0.999984468895493, 0.9999970336525, 0.99994863599369, 0.99999941528079"
2
+ "TruncationSelection(1)", "NullCrossover", "ListMutator([:expected_n, 1],[:uniform, 0.2])", "0.0146516", "0.99976567001638, 0.999987515248073, 0.999995958776318, 0.999990173567598, 0.999909261106532, 0.999985294619143, 0.99999533495086, 0.999849576632407, 0.99995535673259, 0.9996827190481"
3
+ "TruncationSelection(1)", "NullCrossover", "ListMutator([:expected_n, 1],[:gaussian, 0.3])", "0.0160041", "0.999739544558247, 0.999706864373926, 0.999849478675699, 0.999948552267389, 0.999912219327139, 0.999956595408292, 0.999987367499176, 0.99997173341923, 0.999932542392534, 0.999696977081784"
4
+ "TruncationSelection(1)", "NullCrossover", "ListMutator([:expected_n, 2],[:uniform, 0.1])", "0.0163067", "0.999964589550901, 0.999967609141184, 0.999983496756813, 0.999816825802952, 0.999822112886929, 0.999899902867329, 0.999803740347009, 0.999900526757172, 0.999996969049335, 0.999886264323936"
5
+ "TruncationSelection(1)", "NullCrossover", "ListMutator([:expected_n, 2],[:uniform, 0.2])", "0.0170774", "0.999176400155291, 0.99978922505131, 0.999846092249253, 0.999759192576791, 0.999874146380956, 0.999842720083739, 0.999194763858884, 0.999964527022658, 0.999844773723187, 0.999987558825867"
6
+ "TruncationSelection(1)", "NullCrossover", "ListMutator([:expected_n, 2],[:gaussian, 0.3])", "0.0224331", "0.997848027591449, 0.998165616484014, 0.999122995350354, 0.999069026959453, 0.998092527474596, 0.997975835258613, 0.999756488516757, 0.999429426062198, 0.999200968284332, 0.999794265483621"
7
+ "TruncationSelection(1)", "SinglePointCrossover", "ListMutator([:expected_n, 1],[:uniform, 0.1])", "0.0155232", "0.999996658516869, 0.999995061720008, 0.999857155912082, 0.999999232567834, 0.999968481635259, 0.999920073518716, 0.999877333893596, 0.999994093854097, 0.999980148325565, 0.999999386979182"
8
+ "TruncationSelection(1)", "SinglePointCrossover", "ListMutator([:expected_n, 1],[:uniform, 0.2])", "0.0156782", "0.999955887161838, 0.999946643474916, 0.999991932365181, 0.999842965576792, 0.99999176740012, 0.999901701988179, 0.99994524128706, 0.999973685254002, 0.999544063101203, 0.99957375424002"
9
+ "TruncationSelection(1)", "SinglePointCrossover", "ListMutator([:expected_n, 1],[:gaussian, 0.3])", "0.0163469", "0.999835908902959, 0.999810964820132, 0.999974956053191, 0.998659124789752, 0.999927524318357, 0.999867162032905, 0.999934424448587, 0.999492797439223, 0.999964598328498, 0.999945005201043"
10
+ "TruncationSelection(1)", "SinglePointCrossover", "ListMutator([:expected_n, 2],[:uniform, 0.1])", "0.0176619", "0.999980676364388, 0.99988796028879, 0.999859503728489, 0.999930005714589, 0.999952850643937, 0.99999887134968, 0.999983879120805, 0.999949841884288, 0.999925370720385, 0.999996372370748"
11
+ "TruncationSelection(1)", "SinglePointCrossover", "ListMutator([:expected_n, 2],[:uniform, 0.2])", "0.02008", "0.999419578593427, 0.999994074920342, 0.999860949383564, 0.998961048984393, 0.999913090659613, 0.999886943099206, 0.9999343924607, 0.999844769362641, 0.999705188642238, 0.999761462447401"
12
+ "TruncationSelection(1)", "SinglePointCrossover", "ListMutator([:expected_n, 2],[:gaussian, 0.3])", "0.0186616", "0.99999745788857, 0.999710993778359, 0.99352808457376, 0.999521329050216, 0.999126178909654, 0.999540249040892, 0.999198104753605, 0.999868224958377, 0.998154165254404, 0.998458882342793"
13
+ "TournamentSelection(4,nil)", "NullCrossover", "ListMutator([:expected_n, 1],[:uniform, 0.1])", "0.0207188", "0.999995943607482, 0.99999238028455, 0.999962888858171, 0.999921117548763, 0.999990064319574, 0.999993938404716, 0.999997262490666, 0.999959232589719, 0.999987987930431, 0.999963091215878"
14
+ "TournamentSelection(4,nil)", "NullCrossover", "ListMutator([:expected_n, 1],[:uniform, 0.2])", "0.0205108", "0.999789014325789, 0.999977203716979, 0.999976753438658, 0.999908837271688, 0.999967667947303, 0.999886695691089, 0.999856894478734, 0.999638734957528, 0.999978894802743, 0.999704728555823"
15
+ "TournamentSelection(4,nil)", "NullCrossover", "ListMutator([:expected_n, 1],[:gaussian, 0.3])", "0.0216599", "0.999977981844999, 0.9999281735222, 0.999961128503631, 0.999998301776958, 0.999719359195175, 0.999952867386607, 0.999206407664725, 0.999650455858144, 0.999454079666767, 0.999213215655701"
16
+ "TournamentSelection(4,nil)", "NullCrossover", "ListMutator([:expected_n, 2],[:uniform, 0.1])", "0.0232655", "0.999879467155006, 0.99996527953627, 0.999972300942115, 0.999832639037898, 0.999868859572262, 0.999925067925754, 0.999684244789687, 0.999912760855437, 0.999932454327986, 0.999798201649738"
17
+ "TournamentSelection(4,nil)", "NullCrossover", "ListMutator([:expected_n, 2],[:uniform, 0.2])", "0.0223461", "0.999872225810571, 0.999866959172462, 0.999690090926404, 0.999643917453126, 0.99966895663027, 0.999854791331619, 0.999675472633996, 0.999691330253685, 0.999802193071782, 0.999850211944301"
18
+ "TournamentSelection(4,nil)", "NullCrossover", "ListMutator([:expected_n, 2],[:gaussian, 0.3])", "0.0254185", "0.997258088113574, 0.99999364509515, 0.999503853981637, 0.999649422187799, 0.999288098238693, 0.998753450039768, 0.999797983519618, 0.999187256695278, 0.999686789629273, 0.999333742485504"
19
+ "TournamentSelection(4,nil)", "SinglePointCrossover", "ListMutator([:expected_n, 1],[:uniform, 0.1])", "0.0218824", "0.999982553650627, 0.999984178750068, 0.999988361294454, 0.999993210061836, 0.999872472182004, 0.999997245863394, 0.999945687673916, 0.999844303209312, 0.999928425022647, 0.999948761087982"
20
+ "TournamentSelection(4,nil)", "SinglePointCrossover", "ListMutator([:expected_n, 1],[:uniform, 0.2])", "0.0218735", "0.999933104802947, 0.999973062548822, 0.999781440732802, 0.999947372000542, 0.999899834193249, 0.999761548608479, 0.999958771924476, 0.999983036387091, 0.999875089076361, 0.999998771304369"
21
+ "TournamentSelection(4,nil)", "SinglePointCrossover", "ListMutator([:expected_n, 1],[:gaussian, 0.3])", "0.0227257", "0.999340230087191, 0.999568455673287, 0.999979231382499, 0.999980947396868, 0.999725303420841, 0.999872173231182, 0.998656940899297, 0.999855564501807, 0.999854796735529, 0.999871428329097"
22
+ "TournamentSelection(4,nil)", "SinglePointCrossover", "ListMutator([:expected_n, 2],[:uniform, 0.1])", "0.0240309", "0.999973047582737, 0.999795421855697, 0.999886393657216, 0.999991538421527, 0.999958314040011, 0.999939874209393, 0.999976074769775, 0.999929767127212, 0.999998038714023, 0.999932780734962"
23
+ "TournamentSelection(4,nil)", "SinglePointCrossover", "ListMutator([:expected_n, 2],[:uniform, 0.2])", "0.0240184", "0.998982313313384, 0.999775501672241, 0.999688755852926, 0.999328249022713, 0.999742174824128, 0.999054404426978, 0.999758226347156, 0.999830767748958, 0.999977965863504, 0.999868607209331"
24
+ "TournamentSelection(4,nil)", "SinglePointCrossover", "ListMutator([:expected_n, 2],[:gaussian, 0.3])", "0.0260264", "0.999199899702894, 0.999333396767949, 0.999076052906583, 0.998944944114376, 0.999690969834, 0.998657559270536, 0.999676642662817, 0.996734281329671, 0.99826555379041, 0.999926605487206"
@@ -0,0 +1,384 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
6
+ <title>GA Benchmark Report</title>
7
+ <style type='text/css'>
8
+ table{
9
+ background: #ccc;
10
+ font-family: Verdana, Helvetica, sans-serif;
11
+ }
12
+ th {
13
+ background: #666;
14
+ color: white;
15
+ padding: 3px;
16
+ font-weight: bold;
17
+ }
18
+ td {
19
+ color: #333;
20
+ background: #e2e2e2;
21
+ padding: 2px;
22
+ text-align: center;
23
+ }
24
+ </style>
25
+
26
+ </script>
27
+ <script type="text/javascript">
28
+
29
+ </script>
30
+ </head>
31
+ <body>
32
+ <h1>Information</h1>
33
+
34
+ <table>
35
+ <tr><td>Genotype class</td><td>Hill2</td></tr>
36
+ <tr><td>Population size</td><td>10</td></tr>
37
+ <tr><td># of generations per run</td><td>20</td></tr>
38
+ <tr><td>Number of tests </td><td>24</td></tr>
39
+ <tr><td>Tests repeated </td><td>10 times</td></tr>
40
+ <tr><td>Number of runs </td><td>240</td></tr>
41
+ <tr><td>Total number of generations </td><td>4800</td></tr>
42
+ <tr><td>Total time</td><td>4.81 seconds</td></tr>
43
+ </table
44
+ <h1>Stats for all</h1><table>
45
+ <tr><th>.</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
46
+ <tr>
47
+ <td>All</td>
48
+ <td>0.99353</td>
49
+ <td>1.00000</td>
50
+ <td>0.99969</td>
51
+ <td>0.00061</td>
52
+ <td>0.02002</td>
53
+ </tr>
54
+ </table><h1>Stats for selection</h1><table>
55
+ <tr><th>selection</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
56
+ <tr>
57
+ <td>TournamentSelection(4,nil)</td>
58
+ <td>0.99673</td>
59
+ <td>1.00000</td>
60
+ <td>0.99970</td>
61
+ <td>0.00048</td>
62
+ <td>0.02287</td>
63
+ </tr>
64
+ <tr>
65
+ <td>TruncationSelection(1)</td>
66
+ <td>0.99353</td>
67
+ <td>1.00000</td>
68
+ <td>0.99968</td>
69
+ <td>0.00072</td>
70
+ <td>0.01716</td>
71
+ </tr>
72
+ </table><h1>Stats for crossover</h1><table>
73
+ <tr><th>crossover</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
74
+ <tr>
75
+ <td>NullCrossover</td>
76
+ <td>0.99726</td>
77
+ <td>1.00000</td>
78
+ <td>0.99972</td>
79
+ <td>0.00046</td>
80
+ <td>0.01966</td>
81
+ </tr>
82
+ <tr>
83
+ <td>SinglePointCrossover</td>
84
+ <td>0.99353</td>
85
+ <td>1.00000</td>
86
+ <td>0.99966</td>
87
+ <td>0.00073</td>
88
+ <td>0.02038</td>
89
+ </tr>
90
+ </table><h1>Stats for mutation</h1><table>
91
+ <tr><th>mutation</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
92
+ <tr>
93
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.1])</td>
94
+ <td>0.99980</td>
95
+ <td>1.00000</td>
96
+ <td>0.99996</td>
97
+ <td>0.00005</td>
98
+ <td>0.01842</td>
99
+ </tr>
100
+ <tr>
101
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.1])</td>
102
+ <td>0.99968</td>
103
+ <td>1.00000</td>
104
+ <td>0.99992</td>
105
+ <td>0.00007</td>
106
+ <td>0.02032</td>
107
+ </tr>
108
+ <tr>
109
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.2])</td>
110
+ <td>0.99954</td>
111
+ <td>1.00000</td>
112
+ <td>0.99989</td>
113
+ <td>0.00012</td>
114
+ <td>0.01818</td>
115
+ </tr>
116
+ <tr>
117
+ <td>ListMutator([:expected_n, 1],[:gaussian, 0.3])</td>
118
+ <td>0.99866</td>
119
+ <td>1.00000</td>
120
+ <td>0.99975</td>
121
+ <td>0.00032</td>
122
+ <td>0.01918</td>
123
+ </tr>
124
+ <tr>
125
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.2])</td>
126
+ <td>0.99896</td>
127
+ <td>0.99999</td>
128
+ <td>0.99970</td>
129
+ <td>0.00027</td>
130
+ <td>0.02088</td>
131
+ </tr>
132
+ <tr>
133
+ <td>ListMutator([:expected_n, 2],[:gaussian, 0.3])</td>
134
+ <td>0.99353</td>
135
+ <td>1.00000</td>
136
+ <td>0.99894</td>
137
+ <td>0.00115</td>
138
+ <td>0.02313</td>
139
+ </tr>
140
+ </table><h1>Raw Stats</h1><table>
141
+ <tr><th>selection</th><th>crossover</th><th>mutation</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
142
+ <tr>
143
+ <td>TournamentSelection(4,nil)</td>
144
+ <td>NullCrossover</td>
145
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.1])</td>
146
+ <td>0.99992</td>
147
+ <td>1.00000</td>
148
+ <td>0.99998</td>
149
+ <td>0.00002</td>
150
+ <td>0.02072</td>
151
+ </tr>
152
+ <tr>
153
+ <td>TruncationSelection(1)</td>
154
+ <td>NullCrossover</td>
155
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.1])</td>
156
+ <td>0.99980</td>
157
+ <td>1.00000</td>
158
+ <td>0.99997</td>
159
+ <td>0.00006</td>
160
+ <td>0.01554</td>
161
+ </tr>
162
+ <tr>
163
+ <td>TruncationSelection(1)</td>
164
+ <td>SinglePointCrossover</td>
165
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.1])</td>
166
+ <td>0.99986</td>
167
+ <td>1.00000</td>
168
+ <td>0.99996</td>
169
+ <td>0.00005</td>
170
+ <td>0.01552</td>
171
+ </tr>
172
+ <tr>
173
+ <td>TournamentSelection(4,nil)</td>
174
+ <td>SinglePointCrossover</td>
175
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.1])</td>
176
+ <td>0.99984</td>
177
+ <td>1.00000</td>
178
+ <td>0.99995</td>
179
+ <td>0.00005</td>
180
+ <td>0.02188</td>
181
+ </tr>
182
+ <tr>
183
+ <td>TruncationSelection(1)</td>
184
+ <td>SinglePointCrossover</td>
185
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.1])</td>
186
+ <td>0.99986</td>
187
+ <td>1.00000</td>
188
+ <td>0.99995</td>
189
+ <td>0.00004</td>
190
+ <td>0.01766</td>
191
+ </tr>
192
+ <tr>
193
+ <td>TournamentSelection(4,nil)</td>
194
+ <td>SinglePointCrossover</td>
195
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.1])</td>
196
+ <td>0.99980</td>
197
+ <td>1.00000</td>
198
+ <td>0.99994</td>
199
+ <td>0.00006</td>
200
+ <td>0.02403</td>
201
+ </tr>
202
+ <tr>
203
+ <td>TournamentSelection(4,nil)</td>
204
+ <td>SinglePointCrossover</td>
205
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.2])</td>
206
+ <td>0.99976</td>
207
+ <td>1.00000</td>
208
+ <td>0.99991</td>
209
+ <td>0.00008</td>
210
+ <td>0.02187</td>
211
+ </tr>
212
+ <tr>
213
+ <td>TruncationSelection(1)</td>
214
+ <td>NullCrossover</td>
215
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.2])</td>
216
+ <td>0.99968</td>
217
+ <td>1.00000</td>
218
+ <td>0.99991</td>
219
+ <td>0.00011</td>
220
+ <td>0.01465</td>
221
+ </tr>
222
+ <tr>
223
+ <td>TruncationSelection(1)</td>
224
+ <td>NullCrossover</td>
225
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.1])</td>
226
+ <td>0.99980</td>
227
+ <td>1.00000</td>
228
+ <td>0.99990</td>
229
+ <td>0.00007</td>
230
+ <td>0.01631</td>
231
+ </tr>
232
+ <tr>
233
+ <td>TournamentSelection(4,nil)</td>
234
+ <td>NullCrossover</td>
235
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.1])</td>
236
+ <td>0.99968</td>
237
+ <td>0.99997</td>
238
+ <td>0.99988</td>
239
+ <td>0.00008</td>
240
+ <td>0.02327</td>
241
+ </tr>
242
+ <tr>
243
+ <td>TruncationSelection(1)</td>
244
+ <td>SinglePointCrossover</td>
245
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.2])</td>
246
+ <td>0.99954</td>
247
+ <td>0.99999</td>
248
+ <td>0.99987</td>
249
+ <td>0.00016</td>
250
+ <td>0.01568</td>
251
+ </tr>
252
+ <tr>
253
+ <td>TruncationSelection(1)</td>
254
+ <td>NullCrossover</td>
255
+ <td>ListMutator([:expected_n, 1],[:gaussian, 0.3])</td>
256
+ <td>0.99970</td>
257
+ <td>0.99999</td>
258
+ <td>0.99987</td>
259
+ <td>0.00011</td>
260
+ <td>0.01600</td>
261
+ </tr>
262
+ <tr>
263
+ <td>TournamentSelection(4,nil)</td>
264
+ <td>NullCrossover</td>
265
+ <td>ListMutator([:expected_n, 1],[:uniform, 0.2])</td>
266
+ <td>0.99964</td>
267
+ <td>0.99998</td>
268
+ <td>0.99987</td>
269
+ <td>0.00012</td>
270
+ <td>0.02051</td>
271
+ </tr>
272
+ <tr>
273
+ <td>TournamentSelection(4,nil)</td>
274
+ <td>NullCrossover</td>
275
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.2])</td>
276
+ <td>0.99964</td>
277
+ <td>0.99987</td>
278
+ <td>0.99976</td>
279
+ <td>0.00009</td>
280
+ <td>0.02235</td>
281
+ </tr>
282
+ <tr>
283
+ <td>TruncationSelection(1)</td>
284
+ <td>SinglePointCrossover</td>
285
+ <td>ListMutator([:expected_n, 1],[:gaussian, 0.3])</td>
286
+ <td>0.99866</td>
287
+ <td>0.99997</td>
288
+ <td>0.99974</td>
289
+ <td>0.00038</td>
290
+ <td>0.01635</td>
291
+ </tr>
292
+ <tr>
293
+ <td>TruncationSelection(1)</td>
294
+ <td>SinglePointCrossover</td>
295
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.2])</td>
296
+ <td>0.99896</td>
297
+ <td>0.99999</td>
298
+ <td>0.99973</td>
299
+ <td>0.00030</td>
300
+ <td>0.02008</td>
301
+ </tr>
302
+ <tr>
303
+ <td>TruncationSelection(1)</td>
304
+ <td>NullCrossover</td>
305
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.2])</td>
306
+ <td>0.99918</td>
307
+ <td>0.99999</td>
308
+ <td>0.99973</td>
309
+ <td>0.00028</td>
310
+ <td>0.01708</td>
311
+ </tr>
312
+ <tr>
313
+ <td>TournamentSelection(4,nil)</td>
314
+ <td>NullCrossover</td>
315
+ <td>ListMutator([:expected_n, 1],[:gaussian, 0.3])</td>
316
+ <td>0.99921</td>
317
+ <td>1.00000</td>
318
+ <td>0.99971</td>
319
+ <td>0.00030</td>
320
+ <td>0.02166</td>
321
+ </tr>
322
+ <tr>
323
+ <td>TournamentSelection(4,nil)</td>
324
+ <td>SinglePointCrossover</td>
325
+ <td>ListMutator([:expected_n, 1],[:gaussian, 0.3])</td>
326
+ <td>0.99866</td>
327
+ <td>0.99998</td>
328
+ <td>0.99967</td>
329
+ <td>0.00039</td>
330
+ <td>0.02273</td>
331
+ </tr>
332
+ <tr>
333
+ <td>TournamentSelection(4,nil)</td>
334
+ <td>SinglePointCrossover</td>
335
+ <td>ListMutator([:expected_n, 2],[:uniform, 0.2])</td>
336
+ <td>0.99898</td>
337
+ <td>0.99998</td>
338
+ <td>0.99960</td>
339
+ <td>0.00033</td>
340
+ <td>0.02402</td>
341
+ </tr>
342
+ <tr>
343
+ <td>TournamentSelection(4,nil)</td>
344
+ <td>NullCrossover</td>
345
+ <td>ListMutator([:expected_n, 2],[:gaussian, 0.3])</td>
346
+ <td>0.99726</td>
347
+ <td>0.99999</td>
348
+ <td>0.99925</td>
349
+ <td>0.00074</td>
350
+ <td>0.02542</td>
351
+ </tr>
352
+ <tr>
353
+ <td>TournamentSelection(4,nil)</td>
354
+ <td>SinglePointCrossover</td>
355
+ <td>ListMutator([:expected_n, 2],[:gaussian, 0.3])</td>
356
+ <td>0.99673</td>
357
+ <td>0.99993</td>
358
+ <td>0.99895</td>
359
+ <td>0.00088</td>
360
+ <td>0.02603</td>
361
+ </tr>
362
+ <tr>
363
+ <td>TruncationSelection(1)</td>
364
+ <td>NullCrossover</td>
365
+ <td>ListMutator([:expected_n, 2],[:gaussian, 0.3])</td>
366
+ <td>0.99785</td>
367
+ <td>0.99979</td>
368
+ <td>0.99885</td>
369
+ <td>0.00071</td>
370
+ <td>0.02243</td>
371
+ </tr>
372
+ <tr>
373
+ <td>TruncationSelection(1)</td>
374
+ <td>SinglePointCrossover</td>
375
+ <td>ListMutator([:expected_n, 2],[:gaussian, 0.3])</td>
376
+ <td>0.99353</td>
377
+ <td>1.00000</td>
378
+ <td>0.99871</td>
379
+ <td>0.00182</td>
380
+ <td>0.01866</td>
381
+ </tr>
382
+ </table>
383
+ </body>
384
+ </html>
@@ -0,0 +1,1076 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+
3
+ <html xmlns="http://www.w3.org/1999/xhtml">
4
+ <head>
5
+ <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
6
+ <title>GA Benchmark Report</title>
7
+ <style type='text/css'>
8
+ table{
9
+ background: #ccc;
10
+ font-family: Verdana, Helvetica, sans-serif;
11
+ }
12
+ th {
13
+ background: #666;
14
+ color: white;
15
+ padding: 3px;
16
+ font-weight: bold;
17
+ }
18
+ td {
19
+ color: #333;
20
+ background: #e2e2e2;
21
+ padding: 2px;
22
+ text-align: center;
23
+ }
24
+ </style>
25
+
26
+ </script>
27
+ <script type="text/javascript">
28
+
29
+ </script>
30
+ </head>
31
+ <body>
32
+ <h1>Information</h1>
33
+
34
+ <table>
35
+ <tr><td>Genotype class</td><td>RoyalRoad</td></tr>
36
+ <tr><td>Population size</td><td>20</td></tr>
37
+ <tr><td># of generations per run</td><td>100</td></tr>
38
+ <tr><td>Number of tests </td><td>90</td></tr>
39
+ <tr><td>Tests repeated </td><td>10 times</td></tr>
40
+ <tr><td>Number of runs </td><td>900</td></tr>
41
+ <tr><td>Total number of generations </td><td>90000</td></tr>
42
+ <tr><td>Total time</td><td>2102.87 seconds</td></tr>
43
+ </table
44
+ <h1>Stats for all</h1><table>
45
+ <tr><th>.</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
46
+ <tr>
47
+ <td>All</td>
48
+ <td>0.00000</td>
49
+ <td>6.00000</td>
50
+ <td>1.90445</td>
51
+ <td>1.19712</td>
52
+ <td>2.33649</td>
53
+ </tr>
54
+ </table><h1>Stats for selection</h1><table>
55
+ <tr><th>selection</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
56
+ <tr>
57
+ <td>Elitism(RouletteSelection,1)</td>
58
+ <td>0.00000</td>
59
+ <td>5.00000</td>
60
+ <td>2.56111</td>
61
+ <td>0.90163</td>
62
+ <td>5.16408</td>
63
+ </tr>
64
+ <tr>
65
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
66
+ <td>0.00000</td>
67
+ <td>5.00000</td>
68
+ <td>2.35000</td>
69
+ <td>0.97454</td>
70
+ <td>3.13040</td>
71
+ </tr>
72
+ <tr>
73
+ <td>TruncationSelection(0.3)</td>
74
+ <td>0.00000</td>
75
+ <td>6.00000</td>
76
+ <td>2.10556</td>
77
+ <td>1.09289</td>
78
+ <td>1.86523</td>
79
+ </tr>
80
+ <tr>
81
+ <td>TruncationSelection(1)</td>
82
+ <td>0.00000</td>
83
+ <td>5.00000</td>
84
+ <td>1.98889</td>
85
+ <td>1.08007</td>
86
+ <td>0.71210</td>
87
+ </tr>
88
+ <tr>
89
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
90
+ <td>0.00000</td>
91
+ <td>3.00000</td>
92
+ <td>0.51667</td>
93
+ <td>0.66228</td>
94
+ <td>0.81062</td>
95
+ </tr>
96
+ </table><h1>Stats for crossover</h1><table>
97
+ <tr><th>crossover</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
98
+ <tr>
99
+ <td>UniformCrossover</td>
100
+ <td>0.00000</td>
101
+ <td>6.00000</td>
102
+ <td>2.20667</td>
103
+ <td>1.26647</td>
104
+ <td>2.46176</td>
105
+ </tr>
106
+ <tr>
107
+ <td>SinglePointCrossover</td>
108
+ <td>0.00000</td>
109
+ <td>6.00000</td>
110
+ <td>1.88333</td>
111
+ <td>1.19571</td>
112
+ <td>2.34229</td>
113
+ </tr>
114
+ <tr>
115
+ <td>NullCrossover</td>
116
+ <td>0.00000</td>
117
+ <td>5.00000</td>
118
+ <td>1.62333</td>
119
+ <td>1.04632</td>
120
+ <td>2.20540</td>
121
+ </tr>
122
+ </table><h1>Stats for mutation</h1><table>
123
+ <tr><th>mutation</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
124
+ <tr>
125
+ <td>ListMutator([:expected_n, 3],:flip)</td>
126
+ <td>0.00000</td>
127
+ <td>6.00000</td>
128
+ <td>2.13333</td>
129
+ <td>1.25255</td>
130
+ <td>2.53078</td>
131
+ </tr>
132
+ <tr>
133
+ <td>ListMutator([:n_point, 3],:flip)</td>
134
+ <td>0.00000</td>
135
+ <td>6.00000</td>
136
+ <td>2.10667</td>
137
+ <td>1.22826</td>
138
+ <td>2.10112</td>
139
+ </tr>
140
+ <tr>
141
+ <td>ListMutator([:n_point, 2],:flip)</td>
142
+ <td>0.00000</td>
143
+ <td>5.00000</td>
144
+ <td>1.97333</td>
145
+ <td>1.13694</td>
146
+ <td>2.02357</td>
147
+ </tr>
148
+ <tr>
149
+ <td>ListMutator([:expected_n, 2],:flip)</td>
150
+ <td>0.00000</td>
151
+ <td>5.00000</td>
152
+ <td>1.94000</td>
153
+ <td>1.18451</td>
154
+ <td>2.74517</td>
155
+ </tr>
156
+ <tr>
157
+ <td>ListMutator(:single_point,:flip)</td>
158
+ <td>0.00000</td>
159
+ <td>4.00000</td>
160
+ <td>1.66667</td>
161
+ <td>1.06249</td>
162
+ <td>2.15282</td>
163
+ </tr>
164
+ <tr>
165
+ <td>ListMutator([:expected_n, 1],:flip)</td>
166
+ <td>0.00000</td>
167
+ <td>5.00000</td>
168
+ <td>1.60667</td>
169
+ <td>1.20497</td>
170
+ <td>2.46546</td>
171
+ </tr>
172
+ </table><h1>Raw Stats</h1><table>
173
+ <tr><th>selection</th><th>crossover</th><th>mutation</th><th>min</th><th>max</th><th>avg</th><th>stddev</th><th>avg-time</th></tr>
174
+ <tr>
175
+ <td>Elitism(RouletteSelection,1)</td>
176
+ <td>UniformCrossover</td>
177
+ <td>ListMutator([:n_point, 3],:flip)</td>
178
+ <td>3.00000</td>
179
+ <td>4.00000</td>
180
+ <td>3.30000</td>
181
+ <td>0.45826</td>
182
+ <td>5.27849</td>
183
+ </tr>
184
+ <tr>
185
+ <td>TruncationSelection(0.3)</td>
186
+ <td>SinglePointCrossover</td>
187
+ <td>ListMutator([:expected_n, 3],:flip)</td>
188
+ <td>2.00000</td>
189
+ <td>6.00000</td>
190
+ <td>3.20000</td>
191
+ <td>1.16619</td>
192
+ <td>2.06712</td>
193
+ </tr>
194
+ <tr>
195
+ <td>Elitism(RouletteSelection,1)</td>
196
+ <td>UniformCrossover</td>
197
+ <td>ListMutator([:expected_n, 3],:flip)</td>
198
+ <td>2.00000</td>
199
+ <td>4.00000</td>
200
+ <td>3.10000</td>
201
+ <td>0.70000</td>
202
+ <td>5.84678</td>
203
+ </tr>
204
+ <tr>
205
+ <td>Elitism(RouletteSelection,1)</td>
206
+ <td>UniformCrossover</td>
207
+ <td>ListMutator([:n_point, 2],:flip)</td>
208
+ <td>2.00000</td>
209
+ <td>4.00000</td>
210
+ <td>3.10000</td>
211
+ <td>0.70000</td>
212
+ <td>2.62428</td>
213
+ </tr>
214
+ <tr>
215
+ <td>Elitism(RouletteSelection,1)</td>
216
+ <td>UniformCrossover</td>
217
+ <td>ListMutator([:expected_n, 2],:flip)</td>
218
+ <td>2.00000</td>
219
+ <td>4.00000</td>
220
+ <td>3.00000</td>
221
+ <td>0.63246</td>
222
+ <td>9.18205</td>
223
+ </tr>
224
+ <tr>
225
+ <td>TruncationSelection(1)</td>
226
+ <td>SinglePointCrossover</td>
227
+ <td>ListMutator([:n_point, 3],:flip)</td>
228
+ <td>1.00000</td>
229
+ <td>5.00000</td>
230
+ <td>3.00000</td>
231
+ <td>1.18322</td>
232
+ <td>0.54386</td>
233
+ </tr>
234
+ <tr>
235
+ <td>TruncationSelection(1)</td>
236
+ <td>UniformCrossover</td>
237
+ <td>ListMutator([:n_point, 2],:flip)</td>
238
+ <td>1.00000</td>
239
+ <td>5.00000</td>
240
+ <td>3.00000</td>
241
+ <td>1.41421</td>
242
+ <td>0.64450</td>
243
+ </tr>
244
+ <tr>
245
+ <td>TruncationSelection(0.3)</td>
246
+ <td>UniformCrossover</td>
247
+ <td>ListMutator([:n_point, 3],:flip)</td>
248
+ <td>1.00000</td>
249
+ <td>6.00000</td>
250
+ <td>2.90000</td>
251
+ <td>1.37477</td>
252
+ <td>1.95091</td>
253
+ </tr>
254
+ <tr>
255
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
256
+ <td>SinglePointCrossover</td>
257
+ <td>ListMutator([:expected_n, 2],:flip)</td>
258
+ <td>2.00000</td>
259
+ <td>4.00000</td>
260
+ <td>2.90000</td>
261
+ <td>0.70000</td>
262
+ <td>3.50589</td>
263
+ </tr>
264
+ <tr>
265
+ <td>TruncationSelection(0.3)</td>
266
+ <td>UniformCrossover</td>
267
+ <td>ListMutator([:expected_n, 2],:flip)</td>
268
+ <td>1.00000</td>
269
+ <td>4.00000</td>
270
+ <td>2.90000</td>
271
+ <td>1.13578</td>
272
+ <td>2.41361</td>
273
+ </tr>
274
+ <tr>
275
+ <td>Elitism(RouletteSelection,1)</td>
276
+ <td>UniformCrossover</td>
277
+ <td>ListMutator(:single_point,:flip)</td>
278
+ <td>2.00000</td>
279
+ <td>4.00000</td>
280
+ <td>2.90000</td>
281
+ <td>0.53852</td>
282
+ <td>4.47603</td>
283
+ </tr>
284
+ <tr>
285
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
286
+ <td>UniformCrossover</td>
287
+ <td>ListMutator([:n_point, 2],:flip)</td>
288
+ <td>2.00000</td>
289
+ <td>4.00000</td>
290
+ <td>2.80000</td>
291
+ <td>0.60000</td>
292
+ <td>3.31306</td>
293
+ </tr>
294
+ <tr>
295
+ <td>Elitism(RouletteSelection,1)</td>
296
+ <td>NullCrossover</td>
297
+ <td>ListMutator([:n_point, 2],:flip)</td>
298
+ <td>2.00000</td>
299
+ <td>5.00000</td>
300
+ <td>2.80000</td>
301
+ <td>0.87178</td>
302
+ <td>4.40568</td>
303
+ </tr>
304
+ <tr>
305
+ <td>Elitism(RouletteSelection,1)</td>
306
+ <td>SinglePointCrossover</td>
307
+ <td>ListMutator([:expected_n, 3],:flip)</td>
308
+ <td>2.00000</td>
309
+ <td>4.00000</td>
310
+ <td>2.80000</td>
311
+ <td>0.74833</td>
312
+ <td>7.14830</td>
313
+ </tr>
314
+ <tr>
315
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
316
+ <td>UniformCrossover</td>
317
+ <td>ListMutator([:expected_n, 3],:flip)</td>
318
+ <td>2.00000</td>
319
+ <td>4.00000</td>
320
+ <td>2.80000</td>
321
+ <td>0.87178</td>
322
+ <td>2.79092</td>
323
+ </tr>
324
+ <tr>
325
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
326
+ <td>UniformCrossover</td>
327
+ <td>ListMutator([:n_point, 3],:flip)</td>
328
+ <td>1.00000</td>
329
+ <td>4.00000</td>
330
+ <td>2.70000</td>
331
+ <td>1.00499</td>
332
+ <td>2.66936</td>
333
+ </tr>
334
+ <tr>
335
+ <td>Elitism(RouletteSelection,1)</td>
336
+ <td>UniformCrossover</td>
337
+ <td>ListMutator([:expected_n, 1],:flip)</td>
338
+ <td>1.00000</td>
339
+ <td>4.00000</td>
340
+ <td>2.70000</td>
341
+ <td>0.90000</td>
342
+ <td>4.69184</td>
343
+ </tr>
344
+ <tr>
345
+ <td>Elitism(RouletteSelection,1)</td>
346
+ <td>SinglePointCrossover</td>
347
+ <td>ListMutator([:n_point, 3],:flip)</td>
348
+ <td>2.00000</td>
349
+ <td>4.00000</td>
350
+ <td>2.70000</td>
351
+ <td>0.64031</td>
352
+ <td>5.35953</td>
353
+ </tr>
354
+ <tr>
355
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
356
+ <td>NullCrossover</td>
357
+ <td>ListMutator([:expected_n, 3],:flip)</td>
358
+ <td>2.00000</td>
359
+ <td>4.00000</td>
360
+ <td>2.70000</td>
361
+ <td>0.64031</td>
362
+ <td>3.50963</td>
363
+ </tr>
364
+ <tr>
365
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
366
+ <td>SinglePointCrossover</td>
367
+ <td>ListMutator([:n_point, 3],:flip)</td>
368
+ <td>2.00000</td>
369
+ <td>4.00000</td>
370
+ <td>2.70000</td>
371
+ <td>0.64031</td>
372
+ <td>2.83191</td>
373
+ </tr>
374
+ <tr>
375
+ <td>Elitism(RouletteSelection,1)</td>
376
+ <td>SinglePointCrossover</td>
377
+ <td>ListMutator([:expected_n, 2],:flip)</td>
378
+ <td>2.00000</td>
379
+ <td>4.00000</td>
380
+ <td>2.70000</td>
381
+ <td>0.78102</td>
382
+ <td>5.17191</td>
383
+ </tr>
384
+ <tr>
385
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
386
+ <td>UniformCrossover</td>
387
+ <td>ListMutator([:expected_n, 1],:flip)</td>
388
+ <td>0.00000</td>
389
+ <td>5.00000</td>
390
+ <td>2.60000</td>
391
+ <td>1.35647</td>
392
+ <td>3.27598</td>
393
+ </tr>
394
+ <tr>
395
+ <td>Elitism(RouletteSelection,1)</td>
396
+ <td>NullCrossover</td>
397
+ <td>ListMutator([:n_point, 3],:flip)</td>
398
+ <td>2.00000</td>
399
+ <td>3.00000</td>
400
+ <td>2.60000</td>
401
+ <td>0.48990</td>
402
+ <td>3.55887</td>
403
+ </tr>
404
+ <tr>
405
+ <td>Elitism(RouletteSelection,1)</td>
406
+ <td>NullCrossover</td>
407
+ <td>ListMutator([:expected_n, 3],:flip)</td>
408
+ <td>2.00000</td>
409
+ <td>3.00000</td>
410
+ <td>2.60000</td>
411
+ <td>0.48990</td>
412
+ <td>3.38195</td>
413
+ </tr>
414
+ <tr>
415
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
416
+ <td>UniformCrossover</td>
417
+ <td>ListMutator([:expected_n, 2],:flip)</td>
418
+ <td>1.00000</td>
419
+ <td>4.00000</td>
420
+ <td>2.60000</td>
421
+ <td>0.91652</td>
422
+ <td>3.47778</td>
423
+ </tr>
424
+ <tr>
425
+ <td>TruncationSelection(1)</td>
426
+ <td>SinglePointCrossover</td>
427
+ <td>ListMutator([:expected_n, 3],:flip)</td>
428
+ <td>1.00000</td>
429
+ <td>4.00000</td>
430
+ <td>2.60000</td>
431
+ <td>0.91652</td>
432
+ <td>0.69329</td>
433
+ </tr>
434
+ <tr>
435
+ <td>TruncationSelection(0.3)</td>
436
+ <td>UniformCrossover</td>
437
+ <td>ListMutator([:expected_n, 3],:flip)</td>
438
+ <td>1.00000</td>
439
+ <td>4.00000</td>
440
+ <td>2.50000</td>
441
+ <td>1.02470</td>
442
+ <td>2.40179</td>
443
+ </tr>
444
+ <tr>
445
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
446
+ <td>SinglePointCrossover</td>
447
+ <td>ListMutator([:expected_n, 3],:flip)</td>
448
+ <td>1.00000</td>
449
+ <td>3.00000</td>
450
+ <td>2.50000</td>
451
+ <td>0.80623</td>
452
+ <td>3.52362</td>
453
+ </tr>
454
+ <tr>
455
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
456
+ <td>UniformCrossover</td>
457
+ <td>ListMutator(:single_point,:flip)</td>
458
+ <td>1.00000</td>
459
+ <td>4.00000</td>
460
+ <td>2.40000</td>
461
+ <td>1.11355</td>
462
+ <td>3.31442</td>
463
+ </tr>
464
+ <tr>
465
+ <td>TruncationSelection(1)</td>
466
+ <td>UniformCrossover</td>
467
+ <td>ListMutator(:single_point,:flip)</td>
468
+ <td>1.00000</td>
469
+ <td>4.00000</td>
470
+ <td>2.40000</td>
471
+ <td>0.80000</td>
472
+ <td>0.62823</td>
473
+ </tr>
474
+ <tr>
475
+ <td>TruncationSelection(1)</td>
476
+ <td>UniformCrossover</td>
477
+ <td>ListMutator([:n_point, 3],:flip)</td>
478
+ <td>2.00000</td>
479
+ <td>3.00000</td>
480
+ <td>2.40000</td>
481
+ <td>0.48990</td>
482
+ <td>0.64127</td>
483
+ </tr>
484
+ <tr>
485
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
486
+ <td>NullCrossover</td>
487
+ <td>ListMutator([:n_point, 3],:flip)</td>
488
+ <td>1.00000</td>
489
+ <td>4.00000</td>
490
+ <td>2.40000</td>
491
+ <td>0.80000</td>
492
+ <td>2.75471</td>
493
+ </tr>
494
+ <tr>
495
+ <td>TruncationSelection(1)</td>
496
+ <td>UniformCrossover</td>
497
+ <td>ListMutator([:expected_n, 2],:flip)</td>
498
+ <td>1.00000</td>
499
+ <td>5.00000</td>
500
+ <td>2.40000</td>
501
+ <td>1.20000</td>
502
+ <td>0.79256</td>
503
+ </tr>
504
+ <tr>
505
+ <td>Elitism(RouletteSelection,1)</td>
506
+ <td>NullCrossover</td>
507
+ <td>ListMutator([:expected_n, 2],:flip)</td>
508
+ <td>2.00000</td>
509
+ <td>3.00000</td>
510
+ <td>2.40000</td>
511
+ <td>0.48990</td>
512
+ <td>5.18943</td>
513
+ </tr>
514
+ <tr>
515
+ <td>TruncationSelection(0.3)</td>
516
+ <td>UniformCrossover</td>
517
+ <td>ListMutator([:n_point, 2],:flip)</td>
518
+ <td>2.00000</td>
519
+ <td>4.00000</td>
520
+ <td>2.40000</td>
521
+ <td>0.66332</td>
522
+ <td>1.82892</td>
523
+ </tr>
524
+ <tr>
525
+ <td>Elitism(RouletteSelection,1)</td>
526
+ <td>NullCrossover</td>
527
+ <td>ListMutator([:expected_n, 1],:flip)</td>
528
+ <td>1.00000</td>
529
+ <td>4.00000</td>
530
+ <td>2.40000</td>
531
+ <td>1.11355</td>
532
+ <td>6.48375</td>
533
+ </tr>
534
+ <tr>
535
+ <td>TruncationSelection(0.3)</td>
536
+ <td>SinglePointCrossover</td>
537
+ <td>ListMutator([:n_point, 3],:flip)</td>
538
+ <td>1.00000</td>
539
+ <td>4.00000</td>
540
+ <td>2.30000</td>
541
+ <td>1.00499</td>
542
+ <td>1.48793</td>
543
+ </tr>
544
+ <tr>
545
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
546
+ <td>NullCrossover</td>
547
+ <td>ListMutator([:n_point, 2],:flip)</td>
548
+ <td>2.00000</td>
549
+ <td>4.00000</td>
550
+ <td>2.30000</td>
551
+ <td>0.64031</td>
552
+ <td>2.72908</td>
553
+ </tr>
554
+ <tr>
555
+ <td>TruncationSelection(1)</td>
556
+ <td>UniformCrossover</td>
557
+ <td>ListMutator([:expected_n, 3],:flip)</td>
558
+ <td>1.00000</td>
559
+ <td>4.00000</td>
560
+ <td>2.30000</td>
561
+ <td>0.78102</td>
562
+ <td>0.78032</td>
563
+ </tr>
564
+ <tr>
565
+ <td>Elitism(RouletteSelection,1)</td>
566
+ <td>SinglePointCrossover</td>
567
+ <td>ListMutator([:n_point, 2],:flip)</td>
568
+ <td>1.00000</td>
569
+ <td>4.00000</td>
570
+ <td>2.30000</td>
571
+ <td>1.00499</td>
572
+ <td>5.45548</td>
573
+ </tr>
574
+ <tr>
575
+ <td>TruncationSelection(0.3)</td>
576
+ <td>SinglePointCrossover</td>
577
+ <td>ListMutator([:expected_n, 1],:flip)</td>
578
+ <td>0.00000</td>
579
+ <td>5.00000</td>
580
+ <td>2.30000</td>
581
+ <td>1.48661</td>
582
+ <td>2.00741</td>
583
+ </tr>
584
+ <tr>
585
+ <td>TruncationSelection(1)</td>
586
+ <td>UniformCrossover</td>
587
+ <td>ListMutator([:expected_n, 1],:flip)</td>
588
+ <td>1.00000</td>
589
+ <td>4.00000</td>
590
+ <td>2.20000</td>
591
+ <td>0.87178</td>
592
+ <td>0.80500</td>
593
+ </tr>
594
+ <tr>
595
+ <td>TruncationSelection(0.3)</td>
596
+ <td>NullCrossover</td>
597
+ <td>ListMutator([:expected_n, 3],:flip)</td>
598
+ <td>1.00000</td>
599
+ <td>4.00000</td>
600
+ <td>2.20000</td>
601
+ <td>1.16619</td>
602
+ <td>1.98134</td>
603
+ </tr>
604
+ <tr>
605
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
606
+ <td>SinglePointCrossover</td>
607
+ <td>ListMutator([:n_point, 2],:flip)</td>
608
+ <td>1.00000</td>
609
+ <td>3.00000</td>
610
+ <td>2.10000</td>
611
+ <td>0.70000</td>
612
+ <td>2.75254</td>
613
+ </tr>
614
+ <tr>
615
+ <td>TruncationSelection(0.3)</td>
616
+ <td>UniformCrossover</td>
617
+ <td>ListMutator(:single_point,:flip)</td>
618
+ <td>1.00000</td>
619
+ <td>3.00000</td>
620
+ <td>2.10000</td>
621
+ <td>0.53852</td>
622
+ <td>1.80931</td>
623
+ </tr>
624
+ <tr>
625
+ <td>TruncationSelection(0.3)</td>
626
+ <td>SinglePointCrossover</td>
627
+ <td>ListMutator([:expected_n, 2],:flip)</td>
628
+ <td>1.00000</td>
629
+ <td>3.00000</td>
630
+ <td>2.10000</td>
631
+ <td>0.70000</td>
632
+ <td>2.01595</td>
633
+ </tr>
634
+ <tr>
635
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
636
+ <td>NullCrossover</td>
637
+ <td>ListMutator([:expected_n, 2],:flip)</td>
638
+ <td>1.00000</td>
639
+ <td>3.00000</td>
640
+ <td>2.00000</td>
641
+ <td>0.63246</td>
642
+ <td>3.48539</td>
643
+ </tr>
644
+ <tr>
645
+ <td>TruncationSelection(0.3)</td>
646
+ <td>SinglePointCrossover</td>
647
+ <td>ListMutator([:n_point, 2],:flip)</td>
648
+ <td>1.00000</td>
649
+ <td>3.00000</td>
650
+ <td>2.00000</td>
651
+ <td>0.63246</td>
652
+ <td>1.48127</td>
653
+ </tr>
654
+ <tr>
655
+ <td>TruncationSelection(0.3)</td>
656
+ <td>SinglePointCrossover</td>
657
+ <td>ListMutator(:single_point,:flip)</td>
658
+ <td>1.00000</td>
659
+ <td>4.00000</td>
660
+ <td>2.00000</td>
661
+ <td>1.00000</td>
662
+ <td>1.46890</td>
663
+ </tr>
664
+ <tr>
665
+ <td>TruncationSelection(0.3)</td>
666
+ <td>NullCrossover</td>
667
+ <td>ListMutator([:n_point, 2],:flip)</td>
668
+ <td>1.00000</td>
669
+ <td>3.00000</td>
670
+ <td>2.00000</td>
671
+ <td>0.77460</td>
672
+ <td>1.48694</td>
673
+ </tr>
674
+ <tr>
675
+ <td>TruncationSelection(0.3)</td>
676
+ <td>UniformCrossover</td>
677
+ <td>ListMutator([:expected_n, 1],:flip)</td>
678
+ <td>1.00000</td>
679
+ <td>3.00000</td>
680
+ <td>2.00000</td>
681
+ <td>0.63246</td>
682
+ <td>2.39827</td>
683
+ </tr>
684
+ <tr>
685
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
686
+ <td>NullCrossover</td>
687
+ <td>ListMutator(:single_point,:flip)</td>
688
+ <td>1.00000</td>
689
+ <td>3.00000</td>
690
+ <td>1.90000</td>
691
+ <td>0.83066</td>
692
+ <td>2.71660</td>
693
+ </tr>
694
+ <tr>
695
+ <td>TruncationSelection(1)</td>
696
+ <td>NullCrossover</td>
697
+ <td>ListMutator([:expected_n, 2],:flip)</td>
698
+ <td>1.00000</td>
699
+ <td>3.00000</td>
700
+ <td>1.90000</td>
701
+ <td>0.83066</td>
702
+ <td>0.68871</td>
703
+ </tr>
704
+ <tr>
705
+ <td>TruncationSelection(1)</td>
706
+ <td>SinglePointCrossover</td>
707
+ <td>ListMutator([:expected_n, 2],:flip)</td>
708
+ <td>1.00000</td>
709
+ <td>4.00000</td>
710
+ <td>1.80000</td>
711
+ <td>0.97980</td>
712
+ <td>0.75790</td>
713
+ </tr>
714
+ <tr>
715
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
716
+ <td>SinglePointCrossover</td>
717
+ <td>ListMutator(:single_point,:flip)</td>
718
+ <td>0.00000</td>
719
+ <td>3.00000</td>
720
+ <td>1.80000</td>
721
+ <td>0.87178</td>
722
+ <td>2.74115</td>
723
+ </tr>
724
+ <tr>
725
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
726
+ <td>SinglePointCrossover</td>
727
+ <td>ListMutator([:expected_n, 1],:flip)</td>
728
+ <td>0.00000</td>
729
+ <td>3.00000</td>
730
+ <td>1.70000</td>
731
+ <td>0.90000</td>
732
+ <td>3.53007</td>
733
+ </tr>
734
+ <tr>
735
+ <td>TruncationSelection(1)</td>
736
+ <td>NullCrossover</td>
737
+ <td>ListMutator([:n_point, 3],:flip)</td>
738
+ <td>0.00000</td>
739
+ <td>3.00000</td>
740
+ <td>1.70000</td>
741
+ <td>0.90000</td>
742
+ <td>0.84176</td>
743
+ </tr>
744
+ <tr>
745
+ <td>TruncationSelection(1)</td>
746
+ <td>SinglePointCrossover</td>
747
+ <td>ListMutator(:single_point,:flip)</td>
748
+ <td>0.00000</td>
749
+ <td>4.00000</td>
750
+ <td>1.70000</td>
751
+ <td>1.18743</td>
752
+ <td>0.49450</td>
753
+ </tr>
754
+ <tr>
755
+ <td>Elitism(RouletteSelection,1)</td>
756
+ <td>SinglePointCrossover</td>
757
+ <td>ListMutator([:expected_n, 1],:flip)</td>
758
+ <td>1.00000</td>
759
+ <td>3.00000</td>
760
+ <td>1.70000</td>
761
+ <td>0.64031</td>
762
+ <td>4.55075</td>
763
+ </tr>
764
+ <tr>
765
+ <td>Elitism(RouletteSelection,1)</td>
766
+ <td>NullCrossover</td>
767
+ <td>ListMutator(:single_point,:flip)</td>
768
+ <td>0.00000</td>
769
+ <td>3.00000</td>
770
+ <td>1.60000</td>
771
+ <td>0.91652</td>
772
+ <td>5.45210</td>
773
+ </tr>
774
+ <tr>
775
+ <td>TruncationSelection(1)</td>
776
+ <td>NullCrossover</td>
777
+ <td>ListMutator([:expected_n, 3],:flip)</td>
778
+ <td>0.00000</td>
779
+ <td>3.00000</td>
780
+ <td>1.60000</td>
781
+ <td>0.91652</td>
782
+ <td>0.69458</td>
783
+ </tr>
784
+ <tr>
785
+ <td>TruncationSelection(0.3)</td>
786
+ <td>NullCrossover</td>
787
+ <td>ListMutator([:n_point, 3],:flip)</td>
788
+ <td>1.00000</td>
789
+ <td>3.00000</td>
790
+ <td>1.50000</td>
791
+ <td>0.67082</td>
792
+ <td>1.49356</td>
793
+ </tr>
794
+ <tr>
795
+ <td>TruncationSelection(1)</td>
796
+ <td>SinglePointCrossover</td>
797
+ <td>ListMutator([:n_point, 2],:flip)</td>
798
+ <td>0.00000</td>
799
+ <td>2.00000</td>
800
+ <td>1.50000</td>
801
+ <td>0.67082</td>
802
+ <td>0.53176</td>
803
+ </tr>
804
+ <tr>
805
+ <td>TruncationSelection(0.3)</td>
806
+ <td>NullCrossover</td>
807
+ <td>ListMutator(:single_point,:flip)</td>
808
+ <td>0.00000</td>
809
+ <td>3.00000</td>
810
+ <td>1.40000</td>
811
+ <td>0.80000</td>
812
+ <td>1.43132</td>
813
+ </tr>
814
+ <tr>
815
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
816
+ <td>NullCrossover</td>
817
+ <td>ListMutator([:expected_n, 1],:flip)</td>
818
+ <td>0.00000</td>
819
+ <td>4.00000</td>
820
+ <td>1.40000</td>
821
+ <td>1.28062</td>
822
+ <td>3.42506</td>
823
+ </tr>
824
+ <tr>
825
+ <td>TruncationSelection(1)</td>
826
+ <td>NullCrossover</td>
827
+ <td>ListMutator([:n_point, 2],:flip)</td>
828
+ <td>1.00000</td>
829
+ <td>3.00000</td>
830
+ <td>1.40000</td>
831
+ <td>0.66332</td>
832
+ <td>1.00801</td>
833
+ </tr>
834
+ <tr>
835
+ <td>Elitism(RouletteSelection,1)</td>
836
+ <td>SinglePointCrossover</td>
837
+ <td>ListMutator(:single_point,:flip)</td>
838
+ <td>0.00000</td>
839
+ <td>2.00000</td>
840
+ <td>1.40000</td>
841
+ <td>0.80000</td>
842
+ <td>4.69621</td>
843
+ </tr>
844
+ <tr>
845
+ <td>TruncationSelection(1)</td>
846
+ <td>SinglePointCrossover</td>
847
+ <td>ListMutator([:expected_n, 1],:flip)</td>
848
+ <td>0.00000</td>
849
+ <td>3.00000</td>
850
+ <td>1.40000</td>
851
+ <td>1.01980</td>
852
+ <td>0.66203</td>
853
+ </tr>
854
+ <tr>
855
+ <td>TruncationSelection(1)</td>
856
+ <td>NullCrossover</td>
857
+ <td>ListMutator(:single_point,:flip)</td>
858
+ <td>0.00000</td>
859
+ <td>2.00000</td>
860
+ <td>1.30000</td>
861
+ <td>0.64031</td>
862
+ <td>0.94244</td>
863
+ </tr>
864
+ <tr>
865
+ <td>TruncationSelection(1)</td>
866
+ <td>NullCrossover</td>
867
+ <td>ListMutator([:expected_n, 1],:flip)</td>
868
+ <td>0.00000</td>
869
+ <td>3.00000</td>
870
+ <td>1.20000</td>
871
+ <td>0.74833</td>
872
+ <td>0.66710</td>
873
+ </tr>
874
+ <tr>
875
+ <td>TruncationSelection(0.3)</td>
876
+ <td>NullCrossover</td>
877
+ <td>ListMutator([:expected_n, 1],:flip)</td>
878
+ <td>0.00000</td>
879
+ <td>2.00000</td>
880
+ <td>1.10000</td>
881
+ <td>0.70000</td>
882
+ <td>1.92369</td>
883
+ </tr>
884
+ <tr>
885
+ <td>TruncationSelection(0.3)</td>
886
+ <td>NullCrossover</td>
887
+ <td>ListMutator([:expected_n, 2],:flip)</td>
888
+ <td>0.00000</td>
889
+ <td>2.00000</td>
890
+ <td>1.00000</td>
891
+ <td>0.44721</td>
892
+ <td>1.92598</td>
893
+ </tr>
894
+ <tr>
895
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
896
+ <td>SinglePointCrossover</td>
897
+ <td>ListMutator(:single_point,:flip)</td>
898
+ <td>0.00000</td>
899
+ <td>3.00000</td>
900
+ <td>1.00000</td>
901
+ <td>1.00000</td>
902
+ <td>0.64087</td>
903
+ </tr>
904
+ <tr>
905
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
906
+ <td>SinglePointCrossover</td>
907
+ <td>ListMutator([:n_point, 2],:flip)</td>
908
+ <td>0.00000</td>
909
+ <td>3.00000</td>
910
+ <td>0.70000</td>
911
+ <td>0.90000</td>
912
+ <td>0.57629</td>
913
+ </tr>
914
+ <tr>
915
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
916
+ <td>NullCrossover</td>
917
+ <td>ListMutator([:n_point, 3],:flip)</td>
918
+ <td>0.00000</td>
919
+ <td>2.00000</td>
920
+ <td>0.70000</td>
921
+ <td>0.64031</td>
922
+ <td>0.55388</td>
923
+ </tr>
924
+ <tr>
925
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
926
+ <td>NullCrossover</td>
927
+ <td>ListMutator([:expected_n, 1],:flip)</td>
928
+ <td>0.00000</td>
929
+ <td>2.00000</td>
930
+ <td>0.60000</td>
931
+ <td>0.66332</td>
932
+ <td>0.78037</td>
933
+ </tr>
934
+ <tr>
935
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
936
+ <td>UniformCrossover</td>
937
+ <td>ListMutator([:n_point, 2],:flip)</td>
938
+ <td>0.00000</td>
939
+ <td>2.00000</td>
940
+ <td>0.60000</td>
941
+ <td>0.66332</td>
942
+ <td>0.96849</td>
943
+ </tr>
944
+ <tr>
945
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
946
+ <td>SinglePointCrossover</td>
947
+ <td>ListMutator([:expected_n, 2],:flip)</td>
948
+ <td>0.00000</td>
949
+ <td>1.00000</td>
950
+ <td>0.60000</td>
951
+ <td>0.48990</td>
952
+ <td>0.79080</td>
953
+ </tr>
954
+ <tr>
955
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
956
+ <td>NullCrossover</td>
957
+ <td>ListMutator([:n_point, 2],:flip)</td>
958
+ <td>0.00000</td>
959
+ <td>1.00000</td>
960
+ <td>0.60000</td>
961
+ <td>0.48990</td>
962
+ <td>0.54719</td>
963
+ </tr>
964
+ <tr>
965
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
966
+ <td>NullCrossover</td>
967
+ <td>ListMutator(:single_point,:flip)</td>
968
+ <td>0.00000</td>
969
+ <td>2.00000</td>
970
+ <td>0.60000</td>
971
+ <td>0.66332</td>
972
+ <td>0.52552</td>
973
+ </tr>
974
+ <tr>
975
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
976
+ <td>SinglePointCrossover</td>
977
+ <td>ListMutator([:n_point, 3],:flip)</td>
978
+ <td>0.00000</td>
979
+ <td>1.00000</td>
980
+ <td>0.50000</td>
981
+ <td>0.50000</td>
982
+ <td>0.70692</td>
983
+ </tr>
984
+ <tr>
985
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
986
+ <td>UniformCrossover</td>
987
+ <td>ListMutator([:expected_n, 1],:flip)</td>
988
+ <td>0.00000</td>
989
+ <td>2.00000</td>
990
+ <td>0.50000</td>
991
+ <td>0.67082</td>
992
+ <td>0.99593</td>
993
+ </tr>
994
+ <tr>
995
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
996
+ <td>UniformCrossover</td>
997
+ <td>ListMutator(:single_point,:flip)</td>
998
+ <td>0.00000</td>
999
+ <td>2.00000</td>
1000
+ <td>0.50000</td>
1001
+ <td>0.67082</td>
1002
+ <td>0.95476</td>
1003
+ </tr>
1004
+ <tr>
1005
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
1006
+ <td>UniformCrossover</td>
1007
+ <td>ListMutator([:expected_n, 2],:flip)</td>
1008
+ <td>0.00000</td>
1009
+ <td>2.00000</td>
1010
+ <td>0.50000</td>
1011
+ <td>0.80623</td>
1012
+ <td>0.99657</td>
1013
+ </tr>
1014
+ <tr>
1015
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
1016
+ <td>NullCrossover</td>
1017
+ <td>ListMutator([:expected_n, 3],:flip)</td>
1018
+ <td>0.00000</td>
1019
+ <td>1.00000</td>
1020
+ <td>0.50000</td>
1021
+ <td>0.50000</td>
1022
+ <td>0.79443</td>
1023
+ </tr>
1024
+ <tr>
1025
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
1026
+ <td>UniformCrossover</td>
1027
+ <td>ListMutator([:expected_n, 3],:flip)</td>
1028
+ <td>0.00000</td>
1029
+ <td>1.00000</td>
1030
+ <td>0.40000</td>
1031
+ <td>0.48990</td>
1032
+ <td>1.05763</td>
1033
+ </tr>
1034
+ <tr>
1035
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
1036
+ <td>NullCrossover</td>
1037
+ <td>ListMutator([:expected_n, 2],:flip)</td>
1038
+ <td>0.00000</td>
1039
+ <td>1.00000</td>
1040
+ <td>0.30000</td>
1041
+ <td>0.45826</td>
1042
+ <td>0.78304</td>
1043
+ </tr>
1044
+ <tr>
1045
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
1046
+ <td>SinglePointCrossover</td>
1047
+ <td>ListMutator([:expected_n, 1],:flip)</td>
1048
+ <td>0.00000</td>
1049
+ <td>2.00000</td>
1050
+ <td>0.30000</td>
1051
+ <td>0.64031</td>
1052
+ <td>0.78470</td>
1053
+ </tr>
1054
+ <tr>
1055
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
1056
+ <td>UniformCrossover</td>
1057
+ <td>ListMutator([:n_point, 3],:flip)</td>
1058
+ <td>0.00000</td>
1059
+ <td>1.00000</td>
1060
+ <td>0.20000</td>
1061
+ <td>0.40000</td>
1062
+ <td>0.84377</td>
1063
+ </tr>
1064
+ <tr>
1065
+ <td>ScaledRouletteSelection[1,2,3,4,...]</td>
1066
+ <td>SinglePointCrossover</td>
1067
+ <td>ListMutator([:expected_n, 3],:flip)</td>
1068
+ <td>0.00000</td>
1069
+ <td>1.00000</td>
1070
+ <td>0.20000</td>
1071
+ <td>0.40000</td>
1072
+ <td>1.28995</td>
1073
+ </tr>
1074
+ </table>
1075
+ </body>
1076
+ </html>