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,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>1188.35 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>2.55111</td>
51
+ <td>1.01798</td>
52
+ <td>1.32035</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>4.00000</td>
60
+ <td>2.75000</td>
61
+ <td>0.72169</td>
62
+ <td>3.37587</td>
63
+ </tr>
64
+ <tr>
65
+ <td>TruncationSelection(0.4)</td>
66
+ <td>0.00000</td>
67
+ <td>6.00000</td>
68
+ <td>2.57778</td>
69
+ <td>1.20164</td>
70
+ <td>0.74430</td>
71
+ </tr>
72
+ <tr>
73
+ <td>TruncationSelection(0.2)</td>
74
+ <td>0.00000</td>
75
+ <td>6.00000</td>
76
+ <td>2.55556</td>
77
+ <td>1.17956</td>
78
+ <td>0.67732</td>
79
+ </tr>
80
+ <tr>
81
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
82
+ <td>0.00000</td>
83
+ <td>5.00000</td>
84
+ <td>2.47778</td>
85
+ <td>0.77068</td>
86
+ <td>1.18314</td>
87
+ </tr>
88
+ <tr>
89
+ <td>TruncationSelection(0.3)</td>
90
+ <td>0.00000</td>
91
+ <td>6.00000</td>
92
+ <td>2.39445</td>
93
+ <td>1.07753</td>
94
+ <td>0.62114</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>1.00000</td>
101
+ <td>6.00000</td>
102
+ <td>2.79000</td>
103
+ <td>0.92695</td>
104
+ <td>1.39159</td>
105
+ </tr>
106
+ <tr>
107
+ <td>SinglePointCrossover</td>
108
+ <td>0.00000</td>
109
+ <td>6.00000</td>
110
+ <td>2.60333</td>
111
+ <td>1.03569</td>
112
+ <td>1.35195</td>
113
+ </tr>
114
+ <tr>
115
+ <td>NullCrossover</td>
116
+ <td>0.00000</td>
117
+ <td>5.00000</td>
118
+ <td>2.26000</td>
119
+ <td>1.01607</td>
120
+ <td>1.21752</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, 4],:flip)</td>
126
+ <td>1.00000</td>
127
+ <td>6.00000</td>
128
+ <td>2.78667</td>
129
+ <td>0.96324</td>
130
+ <td>1.40642</td>
131
+ </tr>
132
+ <tr>
133
+ <td>ListMutator([:n_point, 4],:flip)</td>
134
+ <td>0.00000</td>
135
+ <td>5.00000</td>
136
+ <td>2.66667</td>
137
+ <td>0.95685</td>
138
+ <td>1.19315</td>
139
+ </tr>
140
+ <tr>
141
+ <td>ListMutator([:expected_n, 3],:flip)</td>
142
+ <td>1.00000</td>
143
+ <td>6.00000</td>
144
+ <td>2.59333</td>
145
+ <td>0.99396</td>
146
+ <td>1.52118</td>
147
+ </tr>
148
+ <tr>
149
+ <td>ListMutator([:n_point, 3],:flip)</td>
150
+ <td>0.00000</td>
151
+ <td>6.00000</td>
152
+ <td>2.55333</td>
153
+ <td>1.09871</td>
154
+ <td>1.22181</td>
155
+ </tr>
156
+ <tr>
157
+ <td>ListMutator([:expected_n, 2],:flip)</td>
158
+ <td>0.00000</td>
159
+ <td>6.00000</td>
160
+ <td>2.36667</td>
161
+ <td>0.96896</td>
162
+ <td>1.36902</td>
163
+ </tr>
164
+ <tr>
165
+ <td>ListMutator([:n_point, 2],:flip)</td>
166
+ <td>0.00000</td>
167
+ <td>5.00000</td>
168
+ <td>2.34000</td>
169
+ <td>1.04454</td>
170
+ <td>1.21053</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>TruncationSelection(0.2)</td>
176
+ <td>UniformCrossover</td>
177
+ <td>ListMutator([:n_point, 3],:flip)</td>
178
+ <td>2.00000</td>
179
+ <td>5.00000</td>
180
+ <td>3.70000</td>
181
+ <td>1.00499</td>
182
+ <td>0.73535</td>
183
+ </tr>
184
+ <tr>
185
+ <td>TruncationSelection(0.4)</td>
186
+ <td>SinglePointCrossover</td>
187
+ <td>ListMutator([:expected_n, 4],:flip)</td>
188
+ <td>2.00000</td>
189
+ <td>6.00000</td>
190
+ <td>3.60000</td>
191
+ <td>1.20000</td>
192
+ <td>0.70015</td>
193
+ </tr>
194
+ <tr>
195
+ <td>TruncationSelection(0.4)</td>
196
+ <td>UniformCrossover</td>
197
+ <td>ListMutator([:expected_n, 4],:flip)</td>
198
+ <td>2.00000</td>
199
+ <td>4.00000</td>
200
+ <td>3.60000</td>
201
+ <td>0.66332</td>
202
+ <td>0.82496</td>
203
+ </tr>
204
+ <tr>
205
+ <td>TruncationSelection(0.4)</td>
206
+ <td>SinglePointCrossover</td>
207
+ <td>ListMutator([:n_point, 4],:flip)</td>
208
+ <td>1.00000</td>
209
+ <td>5.00000</td>
210
+ <td>3.40000</td>
211
+ <td>1.01980</td>
212
+ <td>0.55831</td>
213
+ </tr>
214
+ <tr>
215
+ <td>TruncationSelection(0.4)</td>
216
+ <td>UniformCrossover</td>
217
+ <td>ListMutator([:n_point, 4],:flip)</td>
218
+ <td>2.00000</td>
219
+ <td>5.00000</td>
220
+ <td>3.20000</td>
221
+ <td>0.97980</td>
222
+ <td>0.67205</td>
223
+ </tr>
224
+ <tr>
225
+ <td>TruncationSelection(0.4)</td>
226
+ <td>UniformCrossover</td>
227
+ <td>ListMutator([:n_point, 2],:flip)</td>
228
+ <td>2.00000</td>
229
+ <td>5.00000</td>
230
+ <td>3.20000</td>
231
+ <td>1.07703</td>
232
+ <td>0.63085</td>
233
+ </tr>
234
+ <tr>
235
+ <td>TruncationSelection(0.2)</td>
236
+ <td>NullCrossover</td>
237
+ <td>ListMutator([:expected_n, 3],:flip)</td>
238
+ <td>1.00000</td>
239
+ <td>5.00000</td>
240
+ <td>3.10000</td>
241
+ <td>1.13578</td>
242
+ <td>0.72820</td>
243
+ </tr>
244
+ <tr>
245
+ <td>TruncationSelection(0.3)</td>
246
+ <td>UniformCrossover</td>
247
+ <td>ListMutator([:expected_n, 4],:flip)</td>
248
+ <td>2.00000</td>
249
+ <td>5.00000</td>
250
+ <td>3.10000</td>
251
+ <td>0.94340</td>
252
+ <td>0.76413</td>
253
+ </tr>
254
+ <tr>
255
+ <td>Elitism(RouletteSelection,1)</td>
256
+ <td>UniformCrossover</td>
257
+ <td>ListMutator([:n_point, 2],:flip)</td>
258
+ <td>2.00000</td>
259
+ <td>4.00000</td>
260
+ <td>3.10000</td>
261
+ <td>0.53852</td>
262
+ <td>3.09772</td>
263
+ </tr>
264
+ <tr>
265
+ <td>Elitism(RouletteSelection,1)</td>
266
+ <td>SinglePointCrossover</td>
267
+ <td>ListMutator([:n_point, 3],:flip)</td>
268
+ <td>2.00000</td>
269
+ <td>4.00000</td>
270
+ <td>3.10000</td>
271
+ <td>0.83066</td>
272
+ <td>3.19543</td>
273
+ </tr>
274
+ <tr>
275
+ <td>TruncationSelection(0.2)</td>
276
+ <td>SinglePointCrossover</td>
277
+ <td>ListMutator([:n_point, 4],:flip)</td>
278
+ <td>1.00000</td>
279
+ <td>5.00000</td>
280
+ <td>3.10000</td>
281
+ <td>1.04403</td>
282
+ <td>0.56753</td>
283
+ </tr>
284
+ <tr>
285
+ <td>TruncationSelection(0.2)</td>
286
+ <td>SinglePointCrossover</td>
287
+ <td>ListMutator([:expected_n, 4],:flip)</td>
288
+ <td>1.00000</td>
289
+ <td>5.00000</td>
290
+ <td>3.00000</td>
291
+ <td>1.18322</td>
292
+ <td>0.74289</td>
293
+ </tr>
294
+ <tr>
295
+ <td>Elitism(RouletteSelection,1)</td>
296
+ <td>UniformCrossover</td>
297
+ <td>ListMutator([:expected_n, 3],:flip)</td>
298
+ <td>2.00000</td>
299
+ <td>4.00000</td>
300
+ <td>3.00000</td>
301
+ <td>0.44721</td>
302
+ <td>3.34729</td>
303
+ </tr>
304
+ <tr>
305
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
306
+ <td>SinglePointCrossover</td>
307
+ <td>ListMutator([:expected_n, 2],:flip)</td>
308
+ <td>2.00000</td>
309
+ <td>4.00000</td>
310
+ <td>3.00000</td>
311
+ <td>0.63246</td>
312
+ <td>1.26705</td>
313
+ </tr>
314
+ <tr>
315
+ <td>TruncationSelection(0.4)</td>
316
+ <td>UniformCrossover</td>
317
+ <td>ListMutator([:expected_n, 2],:flip)</td>
318
+ <td>2.00000</td>
319
+ <td>6.00000</td>
320
+ <td>2.90000</td>
321
+ <td>1.22066</td>
322
+ <td>0.79299</td>
323
+ </tr>
324
+ <tr>
325
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
326
+ <td>SinglePointCrossover</td>
327
+ <td>ListMutator([:expected_n, 3],:flip)</td>
328
+ <td>2.00000</td>
329
+ <td>5.00000</td>
330
+ <td>2.90000</td>
331
+ <td>0.94340</td>
332
+ <td>1.31625</td>
333
+ </tr>
334
+ <tr>
335
+ <td>TruncationSelection(0.3)</td>
336
+ <td>UniformCrossover</td>
337
+ <td>ListMutator([:n_point, 3],:flip)</td>
338
+ <td>1.00000</td>
339
+ <td>5.00000</td>
340
+ <td>2.90000</td>
341
+ <td>1.37477</td>
342
+ <td>0.61182</td>
343
+ </tr>
344
+ <tr>
345
+ <td>TruncationSelection(0.2)</td>
346
+ <td>UniformCrossover</td>
347
+ <td>ListMutator([:expected_n, 4],:flip)</td>
348
+ <td>1.00000</td>
349
+ <td>5.00000</td>
350
+ <td>2.90000</td>
351
+ <td>1.04403</td>
352
+ <td>0.79802</td>
353
+ </tr>
354
+ <tr>
355
+ <td>Elitism(RouletteSelection,1)</td>
356
+ <td>SinglePointCrossover</td>
357
+ <td>ListMutator([:n_point, 4],:flip)</td>
358
+ <td>2.00000</td>
359
+ <td>4.00000</td>
360
+ <td>2.90000</td>
361
+ <td>0.53852</td>
362
+ <td>4.16711</td>
363
+ </tr>
364
+ <tr>
365
+ <td>Elitism(RouletteSelection,1)</td>
366
+ <td>UniformCrossover</td>
367
+ <td>ListMutator([:expected_n, 4],:flip)</td>
368
+ <td>2.00000</td>
369
+ <td>4.00000</td>
370
+ <td>2.90000</td>
371
+ <td>0.70000</td>
372
+ <td>4.16104</td>
373
+ </tr>
374
+ <tr>
375
+ <td>TruncationSelection(0.2)</td>
376
+ <td>UniformCrossover</td>
377
+ <td>ListMutator([:n_point, 4],:flip)</td>
378
+ <td>2.00000</td>
379
+ <td>4.00000</td>
380
+ <td>2.90000</td>
381
+ <td>0.94340</td>
382
+ <td>0.66805</td>
383
+ </tr>
384
+ <tr>
385
+ <td>TruncationSelection(0.4)</td>
386
+ <td>SinglePointCrossover</td>
387
+ <td>ListMutator([:expected_n, 3],:flip)</td>
388
+ <td>1.00000</td>
389
+ <td>4.00000</td>
390
+ <td>2.80000</td>
391
+ <td>0.97980</td>
392
+ <td>1.22312</td>
393
+ </tr>
394
+ <tr>
395
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
396
+ <td>SinglePointCrossover</td>
397
+ <td>ListMutator([:n_point, 2],:flip)</td>
398
+ <td>2.00000</td>
399
+ <td>4.00000</td>
400
+ <td>2.80000</td>
401
+ <td>0.60000</td>
402
+ <td>1.02625</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>4.00000</td>
410
+ <td>2.80000</td>
411
+ <td>0.87178</td>
412
+ <td>3.60578</td>
413
+ </tr>
414
+ <tr>
415
+ <td>Elitism(RouletteSelection,1)</td>
416
+ <td>NullCrossover</td>
417
+ <td>ListMutator([:n_point, 3],:flip)</td>
418
+ <td>2.00000</td>
419
+ <td>4.00000</td>
420
+ <td>2.80000</td>
421
+ <td>0.60000</td>
422
+ <td>3.02402</td>
423
+ </tr>
424
+ <tr>
425
+ <td>Elitism(RouletteSelection,1)</td>
426
+ <td>NullCrossover</td>
427
+ <td>ListMutator([:expected_n, 2],:flip)</td>
428
+ <td>2.00000</td>
429
+ <td>4.00000</td>
430
+ <td>2.80000</td>
431
+ <td>0.74833</td>
432
+ <td>1.65442</td>
433
+ </tr>
434
+ <tr>
435
+ <td>Elitism(RouletteSelection,1)</td>
436
+ <td>SinglePointCrossover</td>
437
+ <td>ListMutator([:expected_n, 3],:flip)</td>
438
+ <td>2.00000</td>
439
+ <td>4.00000</td>
440
+ <td>2.80000</td>
441
+ <td>0.60000</td>
442
+ <td>4.74923</td>
443
+ </tr>
444
+ <tr>
445
+ <td>TruncationSelection(0.4)</td>
446
+ <td>UniformCrossover</td>
447
+ <td>ListMutator([:n_point, 3],:flip)</td>
448
+ <td>1.00000</td>
449
+ <td>5.00000</td>
450
+ <td>2.80000</td>
451
+ <td>1.07703</td>
452
+ <td>0.64045</td>
453
+ </tr>
454
+ <tr>
455
+ <td>Elitism(RouletteSelection,1)</td>
456
+ <td>UniformCrossover</td>
457
+ <td>ListMutator([:n_point, 3],:flip)</td>
458
+ <td>2.00000</td>
459
+ <td>3.00000</td>
460
+ <td>2.80000</td>
461
+ <td>0.40000</td>
462
+ <td>3.47754</td>
463
+ </tr>
464
+ <tr>
465
+ <td>TruncationSelection(0.3)</td>
466
+ <td>SinglePointCrossover</td>
467
+ <td>ListMutator([:expected_n, 4],:flip)</td>
468
+ <td>2.00000</td>
469
+ <td>4.00000</td>
470
+ <td>2.80000</td>
471
+ <td>0.74833</td>
472
+ <td>0.71149</td>
473
+ </tr>
474
+ <tr>
475
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
476
+ <td>UniformCrossover</td>
477
+ <td>ListMutator([:n_point, 2],:flip)</td>
478
+ <td>2.00000</td>
479
+ <td>3.00000</td>
480
+ <td>2.80000</td>
481
+ <td>0.40000</td>
482
+ <td>1.15931</td>
483
+ </tr>
484
+ <tr>
485
+ <td>TruncationSelection(0.3)</td>
486
+ <td>UniformCrossover</td>
487
+ <td>ListMutator([:expected_n, 2],:flip)</td>
488
+ <td>1.00000</td>
489
+ <td>4.00000</td>
490
+ <td>2.80000</td>
491
+ <td>0.97980</td>
492
+ <td>0.75990</td>
493
+ </tr>
494
+ <tr>
495
+ <td>Elitism(RouletteSelection,1)</td>
496
+ <td>UniformCrossover</td>
497
+ <td>ListMutator([:n_point, 4],:flip)</td>
498
+ <td>2.00000</td>
499
+ <td>4.00000</td>
500
+ <td>2.80000</td>
501
+ <td>0.60000</td>
502
+ <td>3.14362</td>
503
+ </tr>
504
+ <tr>
505
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
506
+ <td>NullCrossover</td>
507
+ <td>ListMutator([:expected_n, 4],:flip)</td>
508
+ <td>2.00000</td>
509
+ <td>4.00000</td>
510
+ <td>2.80000</td>
511
+ <td>0.87178</td>
512
+ <td>1.28411</td>
513
+ </tr>
514
+ <tr>
515
+ <td>TruncationSelection(0.3)</td>
516
+ <td>UniformCrossover</td>
517
+ <td>ListMutator([:n_point, 4],:flip)</td>
518
+ <td>2.00000</td>
519
+ <td>4.00000</td>
520
+ <td>2.70000</td>
521
+ <td>0.64031</td>
522
+ <td>0.59528</td>
523
+ </tr>
524
+ <tr>
525
+ <td>TruncationSelection(0.3)</td>
526
+ <td>UniformCrossover</td>
527
+ <td>ListMutator([:expected_n, 3],:flip)</td>
528
+ <td>2.00000</td>
529
+ <td>5.00000</td>
530
+ <td>2.70000</td>
531
+ <td>0.90000</td>
532
+ <td>0.76051</td>
533
+ </tr>
534
+ <tr>
535
+ <td>TruncationSelection(0.4)</td>
536
+ <td>UniformCrossover</td>
537
+ <td>ListMutator([:expected_n, 3],:flip)</td>
538
+ <td>2.00000</td>
539
+ <td>5.00000</td>
540
+ <td>2.70000</td>
541
+ <td>0.90000</td>
542
+ <td>0.83175</td>
543
+ </tr>
544
+ <tr>
545
+ <td>TruncationSelection(0.2)</td>
546
+ <td>SinglePointCrossover</td>
547
+ <td>ListMutator([:expected_n, 3],:flip)</td>
548
+ <td>1.00000</td>
549
+ <td>6.00000</td>
550
+ <td>2.70000</td>
551
+ <td>1.26886</td>
552
+ <td>0.70878</td>
553
+ </tr>
554
+ <tr>
555
+ <td>TruncationSelection(0.2)</td>
556
+ <td>UniformCrossover</td>
557
+ <td>ListMutator([:n_point, 2],:flip)</td>
558
+ <td>1.00000</td>
559
+ <td>4.00000</td>
560
+ <td>2.70000</td>
561
+ <td>0.78102</td>
562
+ <td>0.76941</td>
563
+ </tr>
564
+ <tr>
565
+ <td>Elitism(RouletteSelection,1)</td>
566
+ <td>SinglePointCrossover</td>
567
+ <td>ListMutator([:expected_n, 4],:flip)</td>
568
+ <td>2.00000</td>
569
+ <td>3.00000</td>
570
+ <td>2.70000</td>
571
+ <td>0.45826</td>
572
+ <td>2.38682</td>
573
+ </tr>
574
+ <tr>
575
+ <td>TruncationSelection(0.2)</td>
576
+ <td>UniformCrossover</td>
577
+ <td>ListMutator([:expected_n, 3],:flip)</td>
578
+ <td>1.00000</td>
579
+ <td>6.00000</td>
580
+ <td>2.70000</td>
581
+ <td>1.41774</td>
582
+ <td>0.83151</td>
583
+ </tr>
584
+ <tr>
585
+ <td>Elitism(RouletteSelection,1)</td>
586
+ <td>NullCrossover</td>
587
+ <td>ListMutator([:expected_n, 4],:flip)</td>
588
+ <td>2.00000</td>
589
+ <td>4.00000</td>
590
+ <td>2.70000</td>
591
+ <td>0.64031</td>
592
+ <td>3.96226</td>
593
+ </tr>
594
+ <tr>
595
+ <td>TruncationSelection(0.3)</td>
596
+ <td>SinglePointCrossover</td>
597
+ <td>ListMutator([:n_point, 3],:flip)</td>
598
+ <td>1.00000</td>
599
+ <td>6.00000</td>
600
+ <td>2.70000</td>
601
+ <td>1.41774</td>
602
+ <td>0.56080</td>
603
+ </tr>
604
+ <tr>
605
+ <td>Elitism(RouletteSelection,1)</td>
606
+ <td>NullCrossover</td>
607
+ <td>ListMutator([:n_point, 4],:flip)</td>
608
+ <td>2.00000</td>
609
+ <td>4.00000</td>
610
+ <td>2.70000</td>
611
+ <td>0.90000</td>
612
+ <td>2.14405</td>
613
+ </tr>
614
+ <tr>
615
+ <td>TruncationSelection(0.3)</td>
616
+ <td>SinglePointCrossover</td>
617
+ <td>ListMutator([:expected_n, 3],:flip)</td>
618
+ <td>1.00000</td>
619
+ <td>4.00000</td>
620
+ <td>2.60000</td>
621
+ <td>0.91652</td>
622
+ <td>0.68241</td>
623
+ </tr>
624
+ <tr>
625
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
626
+ <td>NullCrossover</td>
627
+ <td>ListMutator([:n_point, 3],:flip)</td>
628
+ <td>2.00000</td>
629
+ <td>4.00000</td>
630
+ <td>2.50000</td>
631
+ <td>0.80623</td>
632
+ <td>0.95349</td>
633
+ </tr>
634
+ <tr>
635
+ <td>TruncationSelection(0.4)</td>
636
+ <td>NullCrossover</td>
637
+ <td>ListMutator([:n_point, 4],:flip)</td>
638
+ <td>1.00000</td>
639
+ <td>4.00000</td>
640
+ <td>2.50000</td>
641
+ <td>0.80623</td>
642
+ <td>0.54696</td>
643
+ </tr>
644
+ <tr>
645
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
646
+ <td>SinglePointCrossover</td>
647
+ <td>ListMutator([:expected_n, 4],:flip)</td>
648
+ <td>1.00000</td>
649
+ <td>5.00000</td>
650
+ <td>2.50000</td>
651
+ <td>1.02470</td>
652
+ <td>1.26078</td>
653
+ </tr>
654
+ <tr>
655
+ <td>TruncationSelection(0.3)</td>
656
+ <td>UniformCrossover</td>
657
+ <td>ListMutator([:n_point, 2],:flip)</td>
658
+ <td>1.00000</td>
659
+ <td>4.00000</td>
660
+ <td>2.50000</td>
661
+ <td>0.92195</td>
662
+ <td>0.64953</td>
663
+ </tr>
664
+ <tr>
665
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
666
+ <td>SinglePointCrossover</td>
667
+ <td>ListMutator([:n_point, 4],:flip)</td>
668
+ <td>1.00000</td>
669
+ <td>4.00000</td>
670
+ <td>2.50000</td>
671
+ <td>0.80623</td>
672
+ <td>1.00428</td>
673
+ </tr>
674
+ <tr>
675
+ <td>Elitism(RouletteSelection,1)</td>
676
+ <td>UniformCrossover</td>
677
+ <td>ListMutator([:expected_n, 2],:flip)</td>
678
+ <td>2.00000</td>
679
+ <td>3.00000</td>
680
+ <td>2.50000</td>
681
+ <td>0.50000</td>
682
+ <td>3.63280</td>
683
+ </tr>
684
+ <tr>
685
+ <td>Elitism(RouletteSelection,1)</td>
686
+ <td>NullCrossover</td>
687
+ <td>ListMutator([:n_point, 2],:flip)</td>
688
+ <td>1.00000</td>
689
+ <td>4.00000</td>
690
+ <td>2.50000</td>
691
+ <td>0.92195</td>
692
+ <td>4.46962</td>
693
+ </tr>
694
+ <tr>
695
+ <td>TruncationSelection(0.2)</td>
696
+ <td>NullCrossover</td>
697
+ <td>ListMutator([:expected_n, 4],:flip)</td>
698
+ <td>1.00000</td>
699
+ <td>4.00000</td>
700
+ <td>2.50000</td>
701
+ <td>1.02470</td>
702
+ <td>0.76539</td>
703
+ </tr>
704
+ <tr>
705
+ <td>TruncationSelection(0.2)</td>
706
+ <td>NullCrossover</td>
707
+ <td>ListMutator([:n_point, 4],:flip)</td>
708
+ <td>1.00000</td>
709
+ <td>4.00000</td>
710
+ <td>2.50000</td>
711
+ <td>0.92195</td>
712
+ <td>0.56523</td>
713
+ </tr>
714
+ <tr>
715
+ <td>TruncationSelection(0.3)</td>
716
+ <td>SinglePointCrossover</td>
717
+ <td>ListMutator([:n_point, 4],:flip)</td>
718
+ <td>1.00000</td>
719
+ <td>4.00000</td>
720
+ <td>2.50000</td>
721
+ <td>1.02470</td>
722
+ <td>0.51799</td>
723
+ </tr>
724
+ <tr>
725
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
726
+ <td>UniformCrossover</td>
727
+ <td>ListMutator([:expected_n, 2],:flip)</td>
728
+ <td>1.00000</td>
729
+ <td>3.00000</td>
730
+ <td>2.50000</td>
731
+ <td>0.67082</td>
732
+ <td>1.34405</td>
733
+ </tr>
734
+ <tr>
735
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
736
+ <td>NullCrossover</td>
737
+ <td>ListMutator([:expected_n, 2],:flip)</td>
738
+ <td>1.00000</td>
739
+ <td>4.00000</td>
740
+ <td>2.40000</td>
741
+ <td>0.80000</td>
742
+ <td>1.19843</td>
743
+ </tr>
744
+ <tr>
745
+ <td>TruncationSelection(0.2)</td>
746
+ <td>SinglePointCrossover</td>
747
+ <td>ListMutator([:n_point, 3],:flip)</td>
748
+ <td>1.00000</td>
749
+ <td>4.00000</td>
750
+ <td>2.40000</td>
751
+ <td>0.80000</td>
752
+ <td>0.55045</td>
753
+ </tr>
754
+ <tr>
755
+ <td>TruncationSelection(0.4)</td>
756
+ <td>SinglePointCrossover</td>
757
+ <td>ListMutator([:expected_n, 2],:flip)</td>
758
+ <td>1.00000</td>
759
+ <td>3.00000</td>
760
+ <td>2.40000</td>
761
+ <td>0.80000</td>
762
+ <td>1.28007</td>
763
+ </tr>
764
+ <tr>
765
+ <td>TruncationSelection(0.4)</td>
766
+ <td>NullCrossover</td>
767
+ <td>ListMutator([:expected_n, 4],:flip)</td>
768
+ <td>1.00000</td>
769
+ <td>4.00000</td>
770
+ <td>2.40000</td>
771
+ <td>1.01980</td>
772
+ <td>0.72803</td>
773
+ </tr>
774
+ <tr>
775
+ <td>TruncationSelection(0.2)</td>
776
+ <td>UniformCrossover</td>
777
+ <td>ListMutator([:expected_n, 2],:flip)</td>
778
+ <td>1.00000</td>
779
+ <td>4.00000</td>
780
+ <td>2.40000</td>
781
+ <td>0.80000</td>
782
+ <td>0.78166</td>
783
+ </tr>
784
+ <tr>
785
+ <td>TruncationSelection(0.4)</td>
786
+ <td>SinglePointCrossover</td>
787
+ <td>ListMutator([:n_point, 3],:flip)</td>
788
+ <td>1.00000</td>
789
+ <td>4.00000</td>
790
+ <td>2.30000</td>
791
+ <td>1.18743</td>
792
+ <td>0.88123</td>
793
+ </tr>
794
+ <tr>
795
+ <td>Elitism(RouletteSelection,1)</td>
796
+ <td>SinglePointCrossover</td>
797
+ <td>ListMutator([:n_point, 2],:flip)</td>
798
+ <td>0.00000</td>
799
+ <td>3.00000</td>
800
+ <td>2.30000</td>
801
+ <td>0.90000</td>
802
+ <td>2.32517</td>
803
+ </tr>
804
+ <tr>
805
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
806
+ <td>NullCrossover</td>
807
+ <td>ListMutator([:expected_n, 3],:flip)</td>
808
+ <td>1.00000</td>
809
+ <td>3.00000</td>
810
+ <td>2.30000</td>
811
+ <td>0.64031</td>
812
+ <td>1.22106</td>
813
+ </tr>
814
+ <tr>
815
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
816
+ <td>NullCrossover</td>
817
+ <td>ListMutator([:n_point, 2],:flip)</td>
818
+ <td>0.00000</td>
819
+ <td>4.00000</td>
820
+ <td>2.30000</td>
821
+ <td>1.00499</td>
822
+ <td>0.93333</td>
823
+ </tr>
824
+ <tr>
825
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
826
+ <td>UniformCrossover</td>
827
+ <td>ListMutator([:expected_n, 3],:flip)</td>
828
+ <td>1.00000</td>
829
+ <td>3.00000</td>
830
+ <td>2.30000</td>
831
+ <td>0.64031</td>
832
+ <td>1.50506</td>
833
+ </tr>
834
+ <tr>
835
+ <td>Elitism(RouletteSelection,1)</td>
836
+ <td>SinglePointCrossover</td>
837
+ <td>ListMutator([:expected_n, 2],:flip)</td>
838
+ <td>1.00000</td>
839
+ <td>4.00000</td>
840
+ <td>2.30000</td>
841
+ <td>0.78102</td>
842
+ <td>4.22168</td>
843
+ </tr>
844
+ <tr>
845
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
846
+ <td>UniformCrossover</td>
847
+ <td>ListMutator([:n_point, 3],:flip)</td>
848
+ <td>1.00000</td>
849
+ <td>3.00000</td>
850
+ <td>2.30000</td>
851
+ <td>0.90000</td>
852
+ <td>1.14974</td>
853
+ </tr>
854
+ <tr>
855
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
856
+ <td>SinglePointCrossover</td>
857
+ <td>ListMutator([:n_point, 3],:flip)</td>
858
+ <td>1.00000</td>
859
+ <td>3.00000</td>
860
+ <td>2.20000</td>
861
+ <td>0.60000</td>
862
+ <td>1.03942</td>
863
+ </tr>
864
+ <tr>
865
+ <td>TruncationSelection(0.3)</td>
866
+ <td>NullCrossover</td>
867
+ <td>ListMutator([:expected_n, 2],:flip)</td>
868
+ <td>0.00000</td>
869
+ <td>3.00000</td>
870
+ <td>2.20000</td>
871
+ <td>1.07703</td>
872
+ <td>0.62449</td>
873
+ </tr>
874
+ <tr>
875
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
876
+ <td>NullCrossover</td>
877
+ <td>ListMutator([:n_point, 4],:flip)</td>
878
+ <td>2.00000</td>
879
+ <td>3.00000</td>
880
+ <td>2.20000</td>
881
+ <td>0.40000</td>
882
+ <td>1.02270</td>
883
+ </tr>
884
+ <tr>
885
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
886
+ <td>UniformCrossover</td>
887
+ <td>ListMutator([:expected_n, 4],:flip)</td>
888
+ <td>2.00000</td>
889
+ <td>3.00000</td>
890
+ <td>2.20000</td>
891
+ <td>0.40000</td>
892
+ <td>1.37187</td>
893
+ </tr>
894
+ <tr>
895
+ <td>TruncationSelection(0.3)</td>
896
+ <td>NullCrossover</td>
897
+ <td>ListMutator([:expected_n, 4],:flip)</td>
898
+ <td>1.00000</td>
899
+ <td>3.00000</td>
900
+ <td>2.10000</td>
901
+ <td>0.53852</td>
902
+ <td>0.63439</td>
903
+ </tr>
904
+ <tr>
905
+ <td>TruncationSelection(0.4)</td>
906
+ <td>SinglePointCrossover</td>
907
+ <td>ListMutator([:n_point, 2],:flip)</td>
908
+ <td>1.00000</td>
909
+ <td>4.00000</td>
910
+ <td>2.10000</td>
911
+ <td>1.13578</td>
912
+ <td>0.53980</td>
913
+ </tr>
914
+ <tr>
915
+ <td>TruncationSelection(0.2)</td>
916
+ <td>NullCrossover</td>
917
+ <td>ListMutator([:n_point, 3],:flip)</td>
918
+ <td>1.00000</td>
919
+ <td>4.00000</td>
920
+ <td>2.10000</td>
921
+ <td>1.13578</td>
922
+ <td>0.53796</td>
923
+ </tr>
924
+ <tr>
925
+ <td>Elitism(ScaledRouletteSelection[1,2,3,4,...],1)</td>
926
+ <td>UniformCrossover</td>
927
+ <td>ListMutator([:n_point, 4],:flip)</td>
928
+ <td>2.00000</td>
929
+ <td>3.00000</td>
930
+ <td>2.10000</td>
931
+ <td>0.30000</td>
932
+ <td>1.23929</td>
933
+ </tr>
934
+ <tr>
935
+ <td>TruncationSelection(0.3)</td>
936
+ <td>NullCrossover</td>
937
+ <td>ListMutator([:n_point, 4],:flip)</td>
938
+ <td>0.00000</td>
939
+ <td>5.00000</td>
940
+ <td>2.00000</td>
941
+ <td>1.48324</td>
942
+ <td>0.48483</td>
943
+ </tr>
944
+ <tr>
945
+ <td>TruncationSelection(0.2)</td>
946
+ <td>SinglePointCrossover</td>
947
+ <td>ListMutator([:n_point, 2],:flip)</td>
948
+ <td>1.00000</td>
949
+ <td>3.00000</td>
950
+ <td>2.00000</td>
951
+ <td>0.77460</td>
952
+ <td>0.49777</td>
953
+ </tr>
954
+ <tr>
955
+ <td>TruncationSelection(0.3)</td>
956
+ <td>NullCrossover</td>
957
+ <td>ListMutator([:n_point, 3],:flip)</td>
958
+ <td>1.00000</td>
959
+ <td>3.00000</td>
960
+ <td>1.90000</td>
961
+ <td>0.83066</td>
962
+ <td>0.47817</td>
963
+ </tr>
964
+ <tr>
965
+ <td>TruncationSelection(0.3)</td>
966
+ <td>NullCrossover</td>
967
+ <td>ListMutator([:expected_n, 3],:flip)</td>
968
+ <td>1.00000</td>
969
+ <td>3.00000</td>
970
+ <td>1.90000</td>
971
+ <td>0.83066</td>
972
+ <td>0.63175</td>
973
+ </tr>
974
+ <tr>
975
+ <td>TruncationSelection(0.3)</td>
976
+ <td>SinglePointCrossover</td>
977
+ <td>ListMutator([:n_point, 2],:flip)</td>
978
+ <td>0.00000</td>
979
+ <td>4.00000</td>
980
+ <td>1.90000</td>
981
+ <td>1.30000</td>
982
+ <td>0.53522</td>
983
+ </tr>
984
+ <tr>
985
+ <td>TruncationSelection(0.2)</td>
986
+ <td>NullCrossover</td>
987
+ <td>ListMutator([:expected_n, 2],:flip)</td>
988
+ <td>1.00000</td>
989
+ <td>5.00000</td>
990
+ <td>1.90000</td>
991
+ <td>1.22066</td>
992
+ <td>0.77607</td>
993
+ </tr>
994
+ <tr>
995
+ <td>TruncationSelection(0.3)</td>
996
+ <td>NullCrossover</td>
997
+ <td>ListMutator([:n_point, 2],:flip)</td>
998
+ <td>1.00000</td>
999
+ <td>3.00000</td>
1000
+ <td>1.90000</td>
1001
+ <td>0.70000</td>
1002
+ <td>0.48177</td>
1003
+ </tr>
1004
+ <tr>
1005
+ <td>TruncationSelection(0.2)</td>
1006
+ <td>SinglePointCrossover</td>
1007
+ <td>ListMutator([:expected_n, 2],:flip)</td>
1008
+ <td>0.00000</td>
1009
+ <td>4.00000</td>
1010
+ <td>1.90000</td>
1011
+ <td>1.13578</td>
1012
+ <td>0.64498</td>
1013
+ </tr>
1014
+ <tr>
1015
+ <td>TruncationSelection(0.3)</td>
1016
+ <td>SinglePointCrossover</td>
1017
+ <td>ListMutator([:expected_n, 2],:flip)</td>
1018
+ <td>1.00000</td>
1019
+ <td>3.00000</td>
1020
+ <td>1.90000</td>
1021
+ <td>0.70000</td>
1022
+ <td>0.69602</td>
1023
+ </tr>
1024
+ <tr>
1025
+ <td>TruncationSelection(0.4)</td>
1026
+ <td>NullCrossover</td>
1027
+ <td>ListMutator([:n_point, 3],:flip)</td>
1028
+ <td>0.00000</td>
1029
+ <td>4.00000</td>
1030
+ <td>1.80000</td>
1031
+ <td>1.24900</td>
1032
+ <td>0.49129</td>
1033
+ </tr>
1034
+ <tr>
1035
+ <td>TruncationSelection(0.4)</td>
1036
+ <td>NullCrossover</td>
1037
+ <td>ListMutator([:expected_n, 2],:flip)</td>
1038
+ <td>1.00000</td>
1039
+ <td>3.00000</td>
1040
+ <td>1.60000</td>
1041
+ <td>0.80000</td>
1042
+ <td>0.86075</td>
1043
+ </tr>
1044
+ <tr>
1045
+ <td>TruncationSelection(0.4)</td>
1046
+ <td>NullCrossover</td>
1047
+ <td>ListMutator([:expected_n, 3],:flip)</td>
1048
+ <td>1.00000</td>
1049
+ <td>3.00000</td>
1050
+ <td>1.60000</td>
1051
+ <td>0.66332</td>
1052
+ <td>0.67499</td>
1053
+ </tr>
1054
+ <tr>
1055
+ <td>TruncationSelection(0.4)</td>
1056
+ <td>NullCrossover</td>
1057
+ <td>ListMutator([:n_point, 2],:flip)</td>
1058
+ <td>0.00000</td>
1059
+ <td>4.00000</td>
1060
+ <td>1.50000</td>
1061
+ <td>1.02470</td>
1062
+ <td>0.51963</td>
1063
+ </tr>
1064
+ <tr>
1065
+ <td>TruncationSelection(0.2)</td>
1066
+ <td>NullCrossover</td>
1067
+ <td>ListMutator([:n_point, 2],:flip)</td>
1068
+ <td>0.00000</td>
1069
+ <td>4.00000</td>
1070
+ <td>1.50000</td>
1071
+ <td>1.11803</td>
1072
+ <td>0.52252</td>
1073
+ </tr>
1074
+ </table>
1075
+ </body>
1076
+ </html>