Evolving a Robot Controller

  • Inputs are sensor values
  • Outputs control the robot
  • Gene is the weights of a neural network
  • Fitness function is the number of blue pixels you see
In [117]:
import Graphics
import Myro
import math
from ai.ga import GA, Population, Gene
from ai.conx import SRN

Myro.init("sim")
robot = Myro.getRobot()
Myro.setOption("show-sensors", True)
You are using:
   Simulated Fluke, version 1.0.0
   Simulated Scribbler 2, version 1.0.0
Hello, my name is 'Scribby'!
In [118]:
Myro.getSimulation()
Out[118]:

Robot's Brain

                                 +--------------+
                                 |   2 Outputs  |                     Output Layer
                                 +--------------+
                                        ^
                                        |
                                 +--------------+
                                 |   5 Hiddens  | --------+           Hidden Layer
                                 +--------------+ ^       |
                                        ^          \      |
                                        |           \     |
 +-----------------------------------------------+   \    V
 |+-----------+  +------------+  +------------+  |  +-------------+
 || 2 Back IR |  | 3 Front IR |  | 10 Camera  |  |  |  5 Context  |   Input Layer
 |+-----------+  +------------+  +------------+  |  +-------------+
 +-----------------------------------------------+  
In [119]:
pic = robot.takePicture()
pic
Out[119]:
In [123]:
Myro.joystick()
Graphics.getWindow()
Out[123]:
In [124]:
pic = robot.takePicture()
pic
Out[124]:
In [34]:
getImage(pic)
Out[34]:
[0, 0, 0, 0, 1, 1, 1, 1, 0, 0]

Gene

117 weights

(input $\times$ hidden + context $\times$ hidden + hidden $\times$ output) + hidden + output

Evolution

  • Poluation size: 10, each 117 numbers
  • Mutation rate: 5%
  • Crossover rate: 60%
  • Elite: 10%
In [129]:
## Evolving a Robot Controller
## Calico Python
## D.S. Blank

def getImage(pic):
    bins = [0] * 10
    for p in pic.getPixels():
        rgb = p.getRGB()
        if rgb[0] == rgb[1] == 0:
            bins[int(p.x/256 * 10)] += 1
    bins = [v/pic.height for v in bins]
    return bins

class RobotGA(GA):
    def __init__(self, cnt):
        n = SRN()
        n.addThreeLayers(15, 5, 2)
        n.setVerbosity(0)
        n.setTolerance(.1)
        n.setLearning(0)
        n.setSequenceType("ordered-continuous")
        g = n.arrayify()
        self.network = n
        GA.__init__(self,
                    Population(cnt, Gene, size=len(g), verbose=1,
                               min=-10, max=10, maxStep = 1,
                               imin=-10, imax=10, 
                               elitePercent = .1),
                    mutationRate=0.05, crossoverRate=0.6,
                    maxGeneration=100, verbose=1)
    def fitnessFunction(self, genePos):
        robot.setPose(100, 250, 0)
        current = Graphics.Point(100, 250)
        step = 0
        fitness = .01
        step_limit = max(min(self.generation, 30), 5)
        while step < step_limit: # 2.5 steps per second
            self.network.unArrayify(self.pop.individuals[genePos].genotype)
            pic = robot.takePicture()
            Myro.show(pic)
            image = getImage(pic)
            sensors = (robot.getIR() + 
                       [v/6400 for v in robot.getObstacle()] + 
                       [0 if p == 0 else 1 for p in image])
            t, r = self.network.propagate(input=sensors)
            self.network.copyHiddenToContext()
            robot.move(t * 2.0 - 1, r * 2.0 - 1)
            fitness += sum(image)
            current = Graphics.Point(robot.frame.center)
            step += 1
        print(fitness)
        robot.stop()
        return fitness
    def isDone(self):
        return False
In [104]:
robotga = RobotGA(10)
Conx using seed: 1398350067.73
crossoverRate  = 0.600
mutationRate   = 0.050
populationSize = 10
elitePercent   = 0.100
maxGeneration  = 100
================================================================================
81.5516666667
0.01
0.01
0.01
57.3016666667
33.6766666667
60.8433333333
0.01
0.01
44.135
------------------------------------------------------------
Initial population
Fitness: Total  277.56 Best 81.55 Average 27.76 Worst  0.01
Elite fitness: [81.551666666666662]
In [105]:
robotga.evolve()
------------------------------------------------------------
Generation 1
73.6766666667
81.5516666667
37.4266666667
87.76
57.885
33.7183333333
55.1766666667
101.385
57.385
57.385
Fitness: Total  643.35 Best 101.39 Average 64.34 Worst 33.72
Elite fitness: [101.385]
------------------------------------------------------------
Generation 2
26.2183333333
9.17666666667
70.26
0.01
95.51
37.4266666667
83.51
73.7183333333
0.01
40.1766666667
Fitness: Total  436.02 Best 95.51 Average 43.60 Worst  0.01
Elite fitness: [95.509999999999991]
------------------------------------------------------------
Generation 3
83.51
0.01
75.76
38.76
73.7183333333
63.1766666667
63.51
75.01
73.7183333333
35.0933333333
Fitness: Total  582.27 Best 83.51 Average 58.23 Worst  0.01
Elite fitness: [83.509999999999991]
------------------------------------------------------------
Generation 4
89.76
58.0516666667
59.01
65.635
87.8016666667
101.385
5.46833333333
73.7183333333
65.9266666667
83.51
Fitness: Total  690.27 Best 101.39 Average 69.03 Worst  5.47
Elite fitness: [101.385]
------------------------------------------------------------
Generation 5
72.5933333333
46.5516666667
60.885
56.26
0.01
83.51
73.7183333333
109.26
83.51
95.51
Fitness: Total  681.81 Best 109.26 Average 68.18 Worst  0.01
Elite fitness: [109.26]
------------------------------------------------------------
Generation 6
143.635
59.7183333333
35.0516666667
47.635
48.3433333333
43.9683333333
29.5516666667
17.385
13.4683333333
9.92666666667
Fitness: Total  448.68 Best 143.64 Average 44.87 Worst  9.93
Elite fitness: [143.635]
------------------------------------------------------------
Generation 7
9.34333333333
9.55166666667
10.9683333333
13.6766666667
12.1766666667
17.3433333333
19.635
23.2183333333
21.8433333333
16.8016666667
Fitness: Total  154.56 Best 23.22 Average 15.46 Worst  9.34
Elite fitness: [23.218333333333334]
------------------------------------------------------------
Generation 8
18.5933333333
17.4683333333
16.4266666667
16.5933333333
15.26
15.3016666667
9.635
9.635
6.84333333333
11.135
Fitness: Total  136.89 Best 18.59 Average 13.69 Worst  6.84
Elite fitness: [18.593333333333334]
------------------------------------------------------------
Generation 9
9.92666666667
14.51
16.135
17.8016666667
22.51
25.5933333333
30.135
28.26
38.76
47.635
Fitness: Total  251.27 Best 47.64 Average 25.13 Worst  9.93
Elite fitness: [47.635]
------------------------------------------------------------
Generation 10
29.8016666667
84.3433333333
32.2183333333
27.51
23.01
19.9683333333
26.0933333333
19.8016666667
12.01
11.9683333333
Fitness: Total  286.73 Best 84.34 Average 28.67 Worst 11.97
Elite fitness: [84.343333333333334]
------------------------------------------------------------
Generation 11
45.4266666667
8.67666666667
11.8016666667
13.385
12.01
16.7183333333
16.9266666667
64.4266666667
24.885
31.1766666667
Fitness: Total  245.43 Best 64.43 Average 24.54 Worst  8.68
Elite fitness: [64.426666666666662]
------------------------------------------------------------
Generation 12
30.635
32.51
90.5933333333
91.0933333333
77.885
25.8016666667
99.2183333333
78.51
32.6766666667
36.01
Fitness: Total  594.93 Best 99.22 Average 59.49 Worst 25.80
Elite fitness: [99.218333333333334]
------------------------------------------------------------
Generation 13
90.885
24.8433333333
26.5933333333
67.7183333333
15.4683333333
40.7183333333
13.5933333333
12.01
14.885
8.67666666667
Fitness: Total  315.39 Best 90.89 Average 31.54 Worst  8.68
Elite fitness: [90.885]
------------------------------------------------------------
Generation 14
2.92666666667
108.468333333
12.01
92.135
127.676666667
29.5933333333
20.1766666667
24.8433333333
26.0516666667
23.26
Fitness: Total  467.14 Best 127.68 Average 46.71 Worst  2.93
Elite fitness: [127.67666666666665]
------------------------------------------------------------
Generation 15
165.885
34.4266666667
24.7183333333
53.135
88.9683333333
4.42666666667
59.3433333333
62.385
3.17666666667
2.96833333333
Fitness: Total  499.43 Best 165.89 Average 49.94 Worst  2.97
Elite fitness: [165.885]
------------------------------------------------------------
Generation 16
0.01
32.885
6.01
0.01
80.135
22.885
23.9683333333
0.01
44.9683333333
140.76
Fitness: Total  351.64 Best 140.76 Average 35.16 Worst  0.01
Elite fitness: [140.76]
------------------------------------------------------------
Generation 17
72.885
85.9266666667
45.4683333333
73.3433333333
72.26
93.5933333333
154.051666667
27.9266666667
4.385
42.635
Fitness: Total  672.48 Best 154.05 Average 67.25 Worst  4.39
Elite fitness: [154.05166666666665]
------------------------------------------------------------
Generation 18
0.01
0.01
0.01
1.51
102.01
32.6766666667
122.676666667
24.1766666667
90.01
37.3433333333
Fitness: Total  410.43 Best 122.68 Average 41.04 Worst  0.01
Elite fitness: [122.67666666666666]
------------------------------------------------------------
Generation 19
13.635
31.3016666667
16.9683333333
144.885
156.843333333
127.385
5.92666666667
4.385
43.385
52.0516666667
Fitness: Total  596.77 Best 156.84 Average 59.68 Worst  4.39
Elite fitness: [156.84333333333333]
------------------------------------------------------------
Generation 20
62.635
68.9683333333
0.01
0.01
0.01
105.093333333
0.01
86.0933333333
98.1766666667
29.4683333333
Fitness: Total  450.48 Best 105.09 Average 45.05 Worst  0.01
Elite fitness: [105.09333333333333]
------------------------------------------------------------
Generation 21
123.76
120.885
195.926666667
274.676666667
41.885
110.26
0.01
68.1766666667
150.26
12.1766666667
Fitness: Total 1098.02 Best 274.68 Average 109.80 Worst  0.01
Elite fitness: [274.67666666666668]
------------------------------------------------------------
Generation 22
22.9683333333
205.051666667
261.468333333
288.468333333
167.968333333
28.4266666667
0.01
21.385
0.01
186.468333333
Fitness: Total 1182.23 Best 288.47 Average 118.22 Worst  0.01
Elite fitness: [288.46833333333331]
------------------------------------------------------------
Generation 23
0.01
297.926666667
1.51
345.135
5.96833333333
145.593333333
0.01
123.968333333
199.843333333
205.093333333
Fitness: Total 1325.06 Best 345.14 Average 132.51 Worst  0.01
Elite fitness: [345.135]
------------------------------------------------------------
Generation 24
83.9266666667
55.5933333333
69.0933333333
254.968333333
163.218333333
230.051666667
225.051666667
300.551666667
2.96833333333
122.051666667
Fitness: Total 1507.48 Best 300.55 Average 150.75 Worst  2.97
Elite fitness: [300.55166666666668]
------------------------------------------------------------
Generation 25
267.343333333
71.4683333333
31.51
158.051666667
224.801666667
429.843333333
253.218333333
200.135
37.26
347.926666667
Fitness: Total 2021.56 Best 429.84 Average 202.16 Worst 31.51
Elite fitness: [429.84333333333331]
------------------------------------------------------------
Generation 26
Running script aborted!
In [107]:
robotga.evolve(cont=1)
------------------------------------------------------------
Generation 27
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
Fitness: Total    0.10 Best  0.01 Average  0.01 Worst  0.01
Elite fitness: [0.01]
------------------------------------------------------------
Generation 28
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
Fitness: Total    0.10 Best  0.01 Average  0.01 Worst  0.01
Elite fitness: [0.01]
------------------------------------------------------------
Generation 29
0.01
0.01
0.01
0.01
4.635
0.01
0.01
6.01
0.01
2.84333333333
Fitness: Total   13.56 Best  6.01 Average  1.36 Worst  0.01
Elite fitness: [6.01]
------------------------------------------------------------
Generation 30
2.84333333333
5.51
5.51
8.01
7.92666666667
152.301666667
22.4683333333
7.42666666667
18.01
7.34333333333
Fitness: Total  237.35 Best 152.30 Average 23.74 Worst  2.84
Elite fitness: [152.30166666666668]
------------------------------------------------------------
Generation 31
5.01
7.42666666667
167.801666667
241.885
214.468333333
38.4266666667
55.01
7.42666666667
7.51
255.635
Fitness: Total 1000.60 Best 255.64 Average 100.06 Worst  5.01
Elite fitness: [255.63500000000002]
------------------------------------------------------------
Generation 32
90.5516666667
8.76
241.468333333
14.0516666667
39.8433333333
18.0933333333
149.135
87.01
19.5516666667
16.9683333333
Fitness: Total  685.43 Best 241.47 Average 68.54 Worst  8.76
Elite fitness: [241.46833333333333]
------------------------------------------------------------
Generation 33
142.676666667
41.5933333333
26.5516666667
16.885
33.885
26.7183333333
19.8016666667
13.0933333333
15.7183333333
28.4683333333
Fitness: Total  365.39 Best 142.68 Average 36.54 Worst 13.09
Elite fitness: [142.67666666666668]
------------------------------------------------------------
Generation 34
24.9266666667
14.4266666667
25.885
152.093333333
136.01
109.843333333
35.4266666667
14.4266666667
11.76
19.8016666667
Fitness: Total  544.60 Best 152.09 Average 54.46 Worst 11.76
Elite fitness: [152.09333333333333]
------------------------------------------------------------
Generation 35
194.885
24.9266666667
11.76
11.7183333333
11.76
42.635
14.385
11.76
15.5933333333
11.7183333333
Fitness: Total  351.14 Best 194.89 Average 35.11 Worst 11.72
Elite fitness: [194.885]
------------------------------------------------------------
Generation 36
358.218333333
213.426666667
19.8433333333
152.885
175.926666667
11.6766666667
178.926666667
14.3433333333
42.01
212.843333333
Fitness: Total 1380.10 Best 358.22 Average 138.01 Worst 11.68
Elite fitness: [358.21833333333336]
------------------------------------------------------------
Generation 37
255.885
335.926666667
342.926666667
361.718333333
150.926666667
71.26
90.1766666667
77.4266666667
374.676666667
7.42666666667
Fitness: Total 2068.35 Best 374.68 Average 206.84 Worst  7.43
Elite fitness: [374.67666666666668]
------------------------------------------------------------
Generation 38
0.01
22.0933333333
7.635
174.593333333
45.385
42.2183333333
39.0516666667
0.01
0.01
515.635
Fitness: Total  846.64 Best 515.64 Average 84.66 Worst  0.01
Elite fitness: [515.635]
------------------------------------------------------------
Generation 39
9.92666666667
0.01
0.01
0.01
222.01
38.2183333333
0.01
123.051666667
51.385
0.01
Fitness: Total  444.64 Best 222.01 Average 44.46 Worst  0.01
Elite fitness: [222.01]
------------------------------------------------------------
Generation 40
125.968333333
14.635
110.468333333
307.926666667
7.51
0.01
0.01
31.5516666667
36.0516666667
25.0933333333
Fitness: Total  659.23 Best 307.93 Average 65.92 Worst  0.01
Elite fitness: [307.92666666666668]
------------------------------------------------------------
Generation 41
43.4266666667
35.5933333333
45.635
51.7183333333
87.9683333333
58.51
68.4683333333
334.593333333
0.01
98.6766666667
Fitness: Total  824.60 Best 334.59 Average 82.46 Worst  0.01
Elite fitness: [334.59333333333331]
------------------------------------------------------------
Generation 42
72.0516666667
89.6766666667
268.135
46.3016666667
106.135
8.01
11.6766666667
17.4683333333
37.7183333333
79.8433333333
Fitness: Total  737.02 Best 268.14 Average 73.70 Worst  8.01
Elite fitness: [268.13500000000005]
------------------------------------------------------------
Generation 43
110.801666667
474.051666667
25.3016666667
26.3016666667
58.2183333333
53.385
485.76
99.51
23.6766666667
60.7183333333
Fitness: Total 1417.73 Best 485.76 Average 141.77 Worst 23.68
Elite fitness: [485.76]
------------------------------------------------------------
Generation 44
1.67666666667
334.26
338.843333333
238.968333333
15.51
30.3433333333
41.385
307.51
20.9683333333
0.01
Fitness: Total 1329.48 Best 338.84 Average 132.95 Worst  0.01
Elite fitness: [338.84333333333331]
------------------------------------------------------------
Generation 45
0.01
868.676666667
146.051666667
153.135
23.5933333333
38.8433333333
476.885
0.01
41.135
9.76
Fitness: Total 1758.10 Best 868.68 Average 175.81 Worst  0.01
Elite fitness: [868.67666666666662]
------------------------------------------------------------
Generation 46
0.01
42.9683333333
0.01
0.01
0.01
695.51
76.1766666667
276.51
505.551666667
23.01
Fitness: Total 1619.77 Best 695.51 Average 161.98 Worst  0.01
Elite fitness: [695.51]
------------------------------------------------------------
Generation 47
14.76
767.26
81.0516666667
121.01
0.01
0.01
107.968333333
34.0516666667
174.76
121.26
Fitness: Total 1422.14 Best 767.26 Average 142.21 Worst  0.01
Elite fitness: [767.26]
------------------------------------------------------------
Generation 48
54.135
1.76
600.676666667
26.9266666667
100.718333333
256.426666667
89.2183333333
105.926666667
21.135
101.635
Fitness: Total 1358.56 Best 600.68 Average 135.86 Worst  1.76
Elite fitness: [600.67666666666662]
------------------------------------------------------------
Generation 49
0.01
35.01
102.176666667
344.426666667
20.4683333333
25.51
19.6766666667
7.76
35.0516666667
26.9266666667
Fitness: Total  617.02 Best 344.43 Average 61.70 Worst  0.01
Elite fitness: [344.42666666666662]
------------------------------------------------------------
Generation 50
11.0516666667
10.8016666667
43.4266666667
111.301666667
152.135
47.51
542.26
35.385
136.968333333
0.01
Fitness: Total 1090.85 Best 542.26 Average 109.09 Worst  0.01
Elite fitness: [542.26]
------------------------------------------------------------
Generation 51
53.6766666667
11.4683333333
0.01
0.01
0.01
755.01
7.76
469.385
0.01
0.01
Fitness: Total 1297.35 Best 755.01 Average 129.74 Worst  0.01
Elite fitness: [755.00999999999988]
------------------------------------------------------------
Generation 52
0.01
511.801666667
41.7183333333
68.8433333333
25.635
197.801666667
572.801666667
7.46833333333
0.01
527.301666667
Fitness: Total 1953.39 Best 572.80 Average 195.34 Worst  0.01
Elite fitness: [572.80166666666662]
------------------------------------------------------------
Generation 53
16.1766666667
0.01
286.468333333
548.51
67.4266666667
5.635
353.593333333
23.385
393.218333333
163.801666667
Fitness: Total 1858.23 Best 548.51 Average 185.82 Worst  0.01
Elite fitness: [548.51]
------------------------------------------------------------
Generation 54
0.01
9.34333333333
105.385
76.3016666667
5.84333333333
215.218333333
69.8016666667
15.7183333333
268.093333333
80.885
Fitness: Total  846.60 Best 268.09 Average 84.66 Worst  0.01
Elite fitness: [268.09333333333336]
------------------------------------------------------------
Generation 55
33.1766666667
24.7183333333
159.468333333
7.76
49.8433333333
17.3016666667
42.1766666667
33.5933333333
232.468333333
51.9683333333
Fitness: Total  652.48 Best 232.47 Average 65.25 Worst  7.76
Elite fitness: [232.46833333333333]
------------------------------------------------------------
Generation 56
7.51
376.051666667
13.0933333333
46.01
321.843333333
372.218333333
0.01
583.718333333
40.7183333333
0.01
Fitness: Total 1761.18 Best 583.72 Average 176.12 Worst  0.01
Elite fitness: [583.71833333333325]
------------------------------------------------------------
Generation 57
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
Fitness: Total    0.10 Best  0.01 Average  0.01 Worst  0.01
Elite fitness: [0.01]
------------------------------------------------------------
Generation 58
0.01
5.55166666667
53.5933333333
20.7183333333
140.593333333
7.51
8.885
174.718333333
19.76
198.926666667
Fitness: Total  630.27 Best 198.93 Average 63.03 Worst  0.01
Elite fitness: [198.9266666666667]
------------------------------------------------------------
Generation 59
18.4266666667
26.8016666667
13.0516666667
98.0933333333
18.3433333333
54.4683333333
19.8433333333
30.8016666667
290.176666667
27.385
Fitness: Total  597.39 Best 290.18 Average 59.74 Worst 13.05
Elite fitness: [290.17666666666668]
------------------------------------------------------------
Generation 60
11.385
17.885
19.1766666667
32.7183333333
18.8433333333
29.8016666667
165.968333333
90.9266666667
34.5516666667
21.0516666667
Fitness: Total  442.31 Best 165.97 Average 44.23 Worst 11.39
Elite fitness: [165.96833333333333]
------------------------------------------------------------
Generation 61
184.593333333
27.1766666667
25.3016666667
24.3016666667
73.01
13.4266666667
23.4266666667
313.385
187.843333333
26.8433333333
Fitness: Total  899.31 Best 313.39 Average 89.93 Worst 13.43
Elite fitness: [313.385]
------------------------------------------------------------
Generation 62
19.885
96.8016666667
308.676666667
36.51
220.093333333
432.801666667
565.51
243.51
322.218333333
28.6766666667
Fitness: Total 2274.68 Best 565.51 Average 227.47 Worst 19.89
Elite fitness: [565.51]
------------------------------------------------------------
Generation 63
7.76
19.0516666667
56.51
277.051666667
69.76
134.301666667
215.968333333
7.96833333333
26.5933333333
148.968333333
Fitness: Total  963.93 Best 277.05 Average 96.39 Worst  7.76
Elite fitness: [277.05166666666668]
------------------------------------------------------------
Generation 64
448.051666667
936.26
25.3433333333
94.4683333333
8.84333333333
0.01
13.4683333333
7.71833333333
8.01
0.01
Fitness: Total 1542.18 Best 936.26 Average 154.22 Worst  0.01
Elite fitness: [936.26]
------------------------------------------------------------
Generation 65
0.01
5.21833333333
70.51
90.1766666667
336.968333333
32.0516666667
9.26
56.4683333333
280.01
11.635
Fitness: Total  892.31 Best 336.97 Average 89.23 Worst  0.01
Elite fitness: [336.96833333333336]
------------------------------------------------------------
Generation 66
0.01
11.4266666667
1.55166666667
0.01
0.01
8.135
239.718333333
6.30166666667
0.01
0.01
Fitness: Total  267.18 Best 239.72 Average 26.72 Worst  0.01
Elite fitness: [239.71833333333336]
------------------------------------------------------------
Generation 67
161.843333333
261.093333333
110.01
44.135
143.135
51.635
484.968333333
0.01
12.4266666667
287.51
Fitness: Total 1556.77 Best 484.97 Average 155.68 Worst  0.01
Elite fitness: [484.96833333333331]
------------------------------------------------------------
Generation 68
7.885
187.968333333
460.135
108.26
0.01
85.7183333333
48.0516666667
19.0933333333
0.01
0.01
Fitness: Total  917.14 Best 460.14 Average 91.71 Worst  0.01
Elite fitness: [460.135]
------------------------------------------------------------
Generation 69
0.01
0.01
72.3016666667
53.2183333333
0.01
0.01
0.01
0.01
88.885
0.01
Fitness: Total  214.48 Best 88.89 Average 21.45 Worst  0.01
Elite fitness: [88.885]
------------------------------------------------------------
Generation 70
52.7183333333
81.51
27.635
41.01
441.26
599.801666667
21.1766666667
89.1766666667
102.51
67.635
Fitness: Total 1524.43 Best 599.80 Average 152.44 Worst 21.18
Elite fitness: [599.80166666666662]
------------------------------------------------------------
Generation 71
235.843333333
73.4266666667
72.9683333333
24.51
180.843333333
513.343333333
69.5933333333
119.176666667
0.01
0.01
Fitness: Total 1289.73 Best 513.34 Average 128.97 Worst  0.01
Elite fitness: [513.34333333333336]
------------------------------------------------------------
Generation 72
0.01
188.343333333
90.8016666667
452.343333333
0.01
0.01
71.4683333333
116.01
110.385
26.01
Fitness: Total 1055.39 Best 452.34 Average 105.54 Worst  0.01
Elite fitness: [452.34333333333336]
------------------------------------------------------------
Generation 73
646.343333333
19.8433333333
0.01
525.26
52.3433333333
55.5516666667
531.051666667
25.1766666667
0.01
18.9683333333
Fitness: Total 1874.56 Best 646.34 Average 187.46 Worst  0.01
Elite fitness: [646.34333333333336]
------------------------------------------------------------
Generation 74
673.635
54.385
95.385
0.01
0.01
0.01
0.01
0.01
0.01
0.01
Fitness: Total  823.48 Best 673.64 Average 82.35 Worst  0.01
Elite fitness: [673.635]
------------------------------------------------------------
Generation 75
0.01
31.0516666667
0.01
97.2183333333
0.01
0.01
0.01
0.01
0.01
0.01
Fitness: Total  128.35 Best 97.22 Average 12.84 Worst  0.01
Elite fitness: [97.21833333333332]
------------------------------------------------------------
Generation 76
20.1766666667
0.01
31.135
0.01
0.01
0.01
0.01
15.5516666667
23.8016666667
17.3016666667
Fitness: Total  108.02 Best 31.14 Average 10.80 Worst  0.01
Elite fitness: [31.135]
------------------------------------------------------------
Generation 77
0.01
0.01
0.01
23.9683333333
0.01
23.9683333333
0.01
0.01
0.01
0.01
Fitness: Total   48.02 Best 23.97 Average  4.80 Worst  0.01
Elite fitness: [23.968333333333337]
------------------------------------------------------------
Generation 78
25.3016666667
28.26
23.9683333333
41.8433333333
36.7183333333
0.01
0.01
0.01
0.01
30.01
Fitness: Total  186.14 Best 41.84 Average 18.61 Worst  0.01
Elite fitness: [41.843333333333327]
------------------------------------------------------------
Generation 79
22.2183333333
0.01
24.0933333333
26.635
23.4266666667
0.01
36.51
38.6766666667
43.4266666667
8.51
Fitness: Total  223.52 Best 43.43 Average 22.35 Worst  0.01
Elite fitness: [43.426666666666669]
------------------------------------------------------------
Generation 80
12.26
22.3433333333
33.385
0.01
0.01
20.385
24.51
37.7183333333
36.4266666667
0.01
Fitness: Total  187.06 Best 37.72 Average 18.71 Worst  0.01
Elite fitness: [37.718333333333334]
------------------------------------------------------------
Generation 81
0.01
16.4683333333
25.7183333333
21.6766666667
24.5516666667
16.26
10.76
23.3016666667
22.4266666667
0.01
Fitness: Total  161.18 Best 25.72 Average 16.12 Worst  0.01
Elite fitness: [25.718333333333334]
------------------------------------------------------------
Generation 82
41.5516666667
22.5516666667
0.01
24.7183333333
21.7183333333
0.01
21.6766666667
16.4683333333
0.01
21.8016666667
Fitness: Total  170.52 Best 41.55 Average 17.05 Worst  0.01
Elite fitness: [41.551666666666662]
------------------------------------------------------------
Generation 83
29.8016666667
19.5516666667
41.385
0.01
24.0516666667
46.4266666667
0.01
0.01
0.01
25.8433333333
Fitness: Total  187.10 Best 46.43 Average 18.71 Worst  0.01
Elite fitness: [46.426666666666662]
------------------------------------------------------------
Generation 84
20.01
25.7183333333
25.1766666667
21.7183333333
0.01
0.01
36.5933333333
0.01
21.385
14.6766666667
Fitness: Total  165.31 Best 36.59 Average 16.53 Worst  0.01
Elite fitness: [36.593333333333334]
------------------------------------------------------------
Generation 85
0.01
0.01
0.01
0.01
0.01
0.01
0.01
0.01
20.1766666667
33.01
Fitness: Total   53.27 Best 33.01 Average  5.33 Worst  0.01
Elite fitness: [33.01]
------------------------------------------------------------
Generation 86
26.385
47.5516666667
33.26
0.01
9.01
0.01
70.635
8.76
14.0933333333
0.01
Fitness: Total  209.73 Best 70.64 Average 20.97 Worst  0.01
Elite fitness: [70.635]
------------------------------------------------------------
Generation 87
83.9266666667
0.01
0.01
123.093333333
37.135
0.01
67.0516666667
76.5516666667
40.6766666667
73.3433333333
Fitness: Total  501.81 Best 123.09 Average 50.18 Worst  0.01
Elite fitness: [123.09333333333333]
------------------------------------------------------------
Generation 88
68.5933333333
37.0516666667
77.1766666667
50.9266666667
0.01
21.8016666667
0.01
0.01
170.843333333
0.01
Fitness: Total  426.43 Best 170.84 Average 42.64 Worst  0.01
Elite fitness: [170.84333333333333]
------------------------------------------------------------
Generation 89
181.843333333
92.9683333333
108.093333333
228.051666667
76.6766666667
193.718333333
48.6766666667
72.0933333333
132.843333333
93.8016666667
Fitness: Total 1228.77 Best 228.05 Average 122.88 Worst 48.68
Elite fitness: [228.05166666666665]
------------------------------------------------------------
Generation 90
114.426666667
0.01
91.3016666667
235.301666667
107.843333333
96.5516666667
0.01
100.801666667
186.343333333
0.01
Fitness: Total  932.60 Best 235.30 Average 93.26 Worst  0.01
Elite fitness: [235.3016666666667]
------------------------------------------------------------
Generation 91
112.135
89.7183333333
94.0516666667
160.26
178.968333333
77.2183333333
189.968333333
259.885
151.676666667
106.093333333
Fitness: Total 1419.98 Best 259.89 Average 142.00 Worst 77.22
Elite fitness: [259.885]
------------------------------------------------------------
Generation 92
169.093333333
75.01
148.801666667
204.843333333
102.176666667
185.843333333
199.843333333
63.7183333333
146.218333333
211.385
Fitness: Total 1506.93 Best 211.39 Average 150.69 Worst 63.72
Elite fitness: [211.38499999999996]
------------------------------------------------------------
Generation 93
172.01
321.218333333
77.385
210.093333333
138.593333333
0.01
93.135
264.385
0.01
115.76
Fitness: Total 1392.60 Best 321.22 Average 139.26 Worst  0.01
Elite fitness: [321.21833333333336]
------------------------------------------------------------
Generation 94
68.6766666667
123.176666667
79.01
93.135
102.593333333
108.385
106.593333333
142.51
207.301666667
142.968333333
Fitness: Total 1174.35 Best 207.30 Average 117.44 Worst 68.68
Elite fitness: [207.30166666666668]
------------------------------------------------------------
Generation 95
77.385
200.093333333
90.01
0.01
129.843333333
77.385
133.343333333
86.5933333333
129.593333333
108.385
Fitness: Total 1032.64 Best 200.09 Average 103.26 Worst  0.01
Elite fitness: [200.09333333333331]
------------------------------------------------------------
Generation 96
164.676666667
102.718333333
100.843333333
0.01
95.0933333333
82.7183333333
80.8016666667
133.01
86.385
196.051666667
Fitness: Total 1042.31 Best 196.05 Average 104.23 Worst  0.01
Elite fitness: [196.05166666666665]
------------------------------------------------------------
Generation 97
80.9683333333
598.343333333
97.4266666667
110.385
179.468333333
109.968333333
73.8433333333
67.635
43.6766666667
169.801666667
Fitness: Total 1531.52 Best 598.34 Average 153.15 Worst 43.68
Elite fitness: [598.34333333333325]
------------------------------------------------------------
Generation 98
129.926666667
92.4683333333
73.4683333333
84.01
77.385
56.7183333333
232.468333333
82.885
129.26
99.9266666667
Fitness: Total 1058.52 Best 232.47 Average 105.85 Worst 56.72
Elite fitness: [232.46833333333333]
------------------------------------------------------------
Generation 99
77.1766666667
71.885
183.676666667
58.6766666667
83.3016666667
110.51
228.176666667
63.885
129.885
80.9683333333
Fitness: Total 1088.14 Best 228.18 Average 108.81 Worst 58.68
Elite fitness: [228.17666666666668]
------------------------------------------------------------
Generation 100
0.01
203.76
150.218333333
97.5933333333
81.0933333333
224.635
227.01
52.8016666667
0.01
69.3433333333
Fitness: Total 1106.48 Best 227.01 Average 110.65 Worst  0.01
Elite fitness: [227.01]
------------------------------------------------------------
Done evolving at generation 100
Current best individual [#6] 7.37 -8.62 9.32 5.53 9.79 -5.46 1.87 -7.41 -7.97 5.74 -3.57 0.51 -1.76 -1.45 -5.35 -5.54 8.45 -3.29 4.02 -3.05 5.81 2.14 5.62 -6.41 -2.51 -2.24 10.00 8.54 -0.74 -0.48 5.37 5.25 -4.77 6.66 10.00 -0.97 3.23 6.86 9.45 0.34 2.57 8.30 2.60 -3.41 8.29 -0.56 -3.86 -8.06 -2.72 -9.83 -9.10 1.95 1.28 3.28 5.99 -8.22 5.67 -1.67 -5.18 -8.91 -3.31 -7.12 2.87 6.33 6.62 3.22 4.56 7.69 6.33 8.80 0.46 -7.77 0.89 -7.80 -2.12 -4.45 5.95 -7.20 -4.20 -3.44 0.01 -5.68 3.42 0.89 7.86 5.60 -1.58 4.82 6.43 0.64 7.23 7.07 8.75 4.38 -3.34 -1.72 4.30 8.59 6.26 8.22 -0.24 -7.54 -1.28 -8.76 3.82 4.71 8.33 -1.53 7.66 -1.24 4.29 -3.94 -7.57 -7.17 7.68 9.42 -5.61 Fitness 227.01
In [112]:
robotga.saveGenesToFile("genes3.pickle")
Saving 10 genes to 'genes3.pickle'...
In [113]:
robotga.loadGenesFromFile("genes3.pickle")
Loading 10 genes from 'genes3.pickle'...
In [114]:
robotga.evolve(cont=1)
------------------------------------------------------------
Generation 101
70.5516666667
100.801666667
Running script aborted!

Evolution of Communication

Based on:

Marocco, D., Nolfi, S. (2006), Self-Organization of Communication in Evolving Robots, In Rocha L. M. et al. (eds), Proceeding of the Tenth International Conference on Artificial Life, ALifeX. Boomington: MIT Press, pp. 199-205. Preprint retrieved on December 17, 2006 at http://laral.istc.cnr.it/marocco/Marocco_alife.pdf

In [48]:
calico.YouTubeVideo("NbZNO1Lx0hc")
Out[48]:
In [49]:
calico.YouTubeVideo("hpLJ7xfLaEQ")
Out[49]:
In [ ]:
 
In [ ]: