Code:
Gucki running
Number of Neurons: 30
Number of Links: 42
press return
Simulation step number 0
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:1 dst:3 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
Simulation step number 1
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:2 dst:4 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
Simulation step number 2
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 3
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 4
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 5
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 6
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 7
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 8
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
error, no pattern
Simulation step number 9
show state of the links:
0 - src:255 dst:0 use:0
1 - src:255 dst:0 use:0
2 - src:255 dst:0 use:0
3 - src:255 dst:0 use:0
4 - src:255 dst:0 use:0
5 - src:255 dst:0 use:0
6 - src:255 dst:0 use:0
7 - src:255 dst:0 use:0
8 - src:255 dst:0 use:0
9 - src:255 dst:0 use:0
10 - src:255 dst:0 use:0
11 - src:255 dst:0 use:0
12 - src:255 dst:0 use:0
13 - src:255 dst:0 use:0
14 - src:255 dst:0 use:0
15 - src:255 dst:0 use:0
16 - src:255 dst:0 use:0
17 - src:255 dst:0 use:0
18 - src:255 dst:0 use:0
19 - src:255 dst:0 use:0
20 - src:255 dst:0 use:0
21 - src:255 dst:0 use:0
22 - src:255 dst:0 use:0
23 - src:255 dst:0 use:0
24 - src:255 dst:0 use:0
25 - src:255 dst:0 use:0
26 - src:255 dst:0 use:0
27 - src:255 dst:0 use:0
28 - src:255 dst:0 use:0
29 - src:255 dst:0 use:0
30 - src:255 dst:0 use:0
31 - src:255 dst:0 use:0
32 - src:157 dst:32 use:96
33 - src:0 dst:0 use:0
34 - src:0 dst:0 use:8
35 - src:3 dst:5 use:0
36 - src:255 dst:0 use:0
37 - src:255 dst:0 use:0
38 - src:255 dst:0 use:0
39 - src:255 dst:0 use:0
40 - src:255 dst:0 use:0
41 - src:255 dst:0 use:0
show Neurons
0 - val:0, fire:0
1 - val:0, fire:0
2 - val:0, fire:0
3 - val:0, fire:0
4 - val:0, fire:0
5 - val:0, fire:0
6 - val:0, fire:0
7 - val:0, fire:0
8 - val:0, fire:0
9 - val:0, fire:0
10 - val:0, fire:0
11 - val:0, fire:0
12 - val:0, fire:0
13 - val:0, fire:0
14 - val:0, fire:0
15 - val:0, fire:0
16 - val:0, fire:0
17 - val:0, fire:0
18 - val:0, fire:0
19 - val:0, fire:0
20 - val:0, fire:0
21 - val:0, fire:0
22 - val:0, fire:0
23 - val:0, fire:0
24 - val:0, fire:0
25 - val:0, fire:0
26 - val:0, fire:0
27 - val:0, fire:0
28 - val:0, fire:0
29 - val:0, fire:0
simulations steps done: 10
Gucki stopped
Code:
#define RUNNING_ON_PC
#define NUMBEROFNEURONS 30
//********************** RUNNING ON PC ***********************************
#ifdef RUNNING_ON_PC
#include <iostream>
#include <stdint.h>
#include <stdio.h>
using namespace std;
#define FOREVER while(1)
typedef uint8_t uns8; // stdint.h compatibility
typedef bool BOOL;
#define FALSE 0
#define TRUE 1
// funktioniert nicht
static unsigned char* FSR;
#define INDF (*FSR)
#define LINK_SRC 0
#define LINK_DST 1
#define LINK_USE 2
#endif
//************************** RUNNING ON PIC ***************************************
#ifdef RUNNING_ON_PIC
#include "allpic.h"
#pragma config = 0b000110000100 // hex-datei: fuses des 12F629
#pragma cdata[0x2100] = \
0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,0xFF,0,0,\
0xFF,0xFF // eeprom initialisierung
#define EE_ROM // eeprom nutzen
#include "pic_mem.h"
#include "timeloop.h"
// LINK-Zugriffe
#define LINK_RD(a,m) ee_read((a) + offsetof(struct _link,m))
#define LINK_WR(a,m,v) ee_write((a) + offsetof(struct _link,m),v)
#endif
#define OUT_0 0 // GPIO
#define OUT_1 1 //
#define OUT_2 2 //
#define IN_2 3 //
#define IN_1 4 //
#define IN_0 5 //
//** alle sensoren, aktoren, triebe und neuronen nach abstraktion gestaffelt ******
uns8 zellen[NUMBEROFNEURONS]; // zellen im RAM anlegen
// cells are bit coded
// b7 b6 b5 b4 b3 b2 b1 b0
// FIRE_REQ ( cell potential )
#define FIRE_LIMIT 10 // fire_limit
#define RD_SUM (INDF & 0x3F) // ZELL-Zugriffe
#define WR_SUM(s) {INDF &= ~0x3F; INDF |= (s);}
#ifdef RUNNING_ON_PIC
#define RD_FIRE_REQ (INDF.7)
#define WR_FIRE_REQ(b) {INDF.7 = (b);}
#endif
#ifdef RUNNING_ON_PC
#define RD_FIRE_REQ !!(INDF&0x80)
#define WR_FIRE_REQ(b) {INDF&=~0x80;INDF|=b<<7;} //{INDF.7 = (b);}
#endif
#define SENS_0 0 // Sensoren
#define SENS_1 1
#define SENS_2 2
#define AKT_0 3 // spezialzellen definieren
#define AKT_1 4
#define AKT_2 5
#define TIMER 6 // Timer-Zelle
#define HUNGER 7 // Hunger-Zelle
#define FIRST_NEURON 8 // Beginn des Hirns
//******* verbunden werden zellen mit vielen links (dendriten) *********
#define NO_LINK -1
#define MAX_LINKS (128 / sizeof(struct _link)) // viele links im EEPROM
struct _link { // struktur eines EEPROM-links
uns8 src; // leerer link: src_zelle == NO_LINK
uns8 dst; // verbindet source- mit dest-zelle
uns8 use; // nützlichkeit dieses links
};
//********************** RUNNIN ON PC ***********************************
#ifdef RUNNING_ON_PC
_link Simulated_EEPROM[NUMBEROFNEURONS];
void initEEPROM()
{
for(int n=0;n<MAX_LINKS ;n++)
{
int address=n;
Simulated_EEPROM[address].src=0xFF;
Simulated_EEPROM[address].dst=0;
Simulated_EEPROM[address].use=0;
}
}
uns8 LINK_RD(uns8 address, uns8 component)
{
uns8 value = 0;
if (component == LINK_SRC) value = Simulated_EEPROM[address].src;
if (component == LINK_DST) value = Simulated_EEPROM[address].dst;
if (component == LINK_USE) value = Simulated_EEPROM[address].use;
return value;
}
void LINK_WR(uns8 address, uns8 component, uns8 value)
{
if (address < NUMBEROFNEURONS)
{
if (component == LINK_SRC) Simulated_EEPROM[address].src = value;
if (component == LINK_DST) Simulated_EEPROM[address].dst = value;
if (component == LINK_USE) Simulated_EEPROM[address].use = value;
} else
{
printf("Error: link address out of range, address:%d\n ",address);
}
}
void showAktor(int aktorId,bool bit)
{
/*
printf("%d:",aktorId);
if(bit) printf("ON ");
else printf("OFF ");
*/
}
void showLinks(uint8_t adr)
{
int src=Simulated_EEPROM[adr].src;
int dst=Simulated_EEPROM[adr].dst;
int use=Simulated_EEPROM[adr].use;
printf("%d - src:%d dst:%d use:%d\n",adr,src,dst,use);
}
void showNeurons()
{
for(int n=0;n<NUMBEROFNEURONS;n++)
{
int neuronNumber=n;
int potential=zellen[n]&0x3F;
int fireRequest=(zellen[n]&0x80)>>7;
printf("%d - val:%d, fire:%d\n",neuronNumber,potential,fireRequest);
}
}
void showAll()
{
puts("show state of the links:");
for (uint16_t n = 0; n < MAX_LINKS; n++)
{
showLinks(n);
}
puts("show Neurons");
showNeurons();
puts("");
}
#endif
static uns8 rand_link; // randomize link
static uns8 pattern;
static uns8 learn;
static void gi_lerne(void) // die genesis
{
uns8 zell_ind = sizeof(zellen), link, free, buf;
BOOL hit;
do { // Suche feuernde zellen
//FSR = &zellen[zell_ind]; // pointer auf zelle
//FSR = zellen + zell_ind;
FSR = zellen + --zell_ind; // pointer auf zelle
/**** sensoren, aktoren und triebe sind besondere zellen *****/
#ifdef RUNNING_ON_PIC
switch(zell_ind) {
case SENS_0: WR_FIRE_REQ(pattern.0); break;
case SENS_1: WR_FIRE_REQ(pattern.1); break;
case SENS_2: WR_FIRE_REQ(FALSE); break;
case AKT_0: GPIO.OUT_0 = RD_FIRE_REQ; continue;
case AKT_1: GPIO.OUT_1 = RD_FIRE_REQ; continue;
case AKT_2: GPIO.OUT_2 = RD_FIRE_REQ; continue;
default: break;
}
#endif
#ifdef RUNNING_ON_PC
switch(zell_ind) {
case SENS_0: WR_FIRE_REQ(pattern&1); break;
case SENS_1: WR_FIRE_REQ((pattern>>1)&1); break;
case SENS_2: WR_FIRE_REQ(FALSE); break;
case AKT_0: showAktor(0,RD_FIRE_REQ); continue;
case AKT_1: showAktor(1,RD_FIRE_REQ); continue;
case AKT_2: showAktor(2,RD_FIRE_REQ); continue;
default: break;
}
#endif
/***** diese zeilen sind der kern des systems *****************/
if(!RD_FIRE_REQ) continue; // zelle möchte nicht feuern
WR_FIRE_REQ(FALSE); // zell-feuerwunsch wird nun erfüllt
free = NO_LINK; link = 0; hit = FALSE; // verfolge die links
do { // alle links durchsuchen
buf = LINK_RD(link,LINK_SRC); // linkbyte lesen
if(buf == NO_LINK) free = link; // leeren link merken
else if(buf == zell_ind) { // einen link gefunden
uns8 hbuf = LINK_RD(link,LINK_USE); // nuetzlichkeit lesen
if(hbuf) hit = TRUE; // nutzlink gefunden
if(++hbuf > FIRE_LIMIT) hbuf = FIRE_LIMIT;// limitieren
FSR = zellen + LINK_RD(link,LINK_DST);// pointer auf dst-zelle
buf = RD_SUM + hbuf; // zellsumme berechnen
if(buf > FIRE_LIMIT) buf = FIRE_LIMIT; // limitieren
WR_SUM(buf); // zellsumme speichern
if((buf == FIRE_LIMIT)&&(!RD_FIRE_REQ)) {// will dst feuern?
WR_FIRE_REQ(TRUE); // FIRE_REQ vormerken
LINK_WR(link,LINK_USE,hbuf); // nuetzlichkeit inkrementieren
}
}
link += sizeof(struct _link); // nächsten link adressieren
} while(link < MAX_LINKS * sizeof(struct _link));
/** wenn kein nützlicher link gefunden und platz ist: erzeuge neuen link **/
if((!hit)&&(free != NO_LINK)) {
LINK_WR(free,LINK_SRC,zell_ind); // link neu erzeugen
if(learn) buf = learn; // gewollte verlinkung
else { // zufällige verlinkung
if(++rand_link >= sizeof(zellen)) rand_link = FIRST_NEURON;
buf = rand_link;
if((buf == zell_ind)&&(++buf >= sizeof(zellen))) buf = FIRST_NEURON;
}
LINK_WR(free,LINK_DST,buf);
LINK_WR(free,LINK_USE,0); // ob der link nützlich wird, weiß keiner
}
} while(++zell_ind < sizeof(zellen)); // nächste zelle
}
static void gi_verlerne(void) // links überarbeiten
{
uns8 link = 0, buf;
do { // alle links durchsuchen
if(LINK_RD(link,LINK_SRC) != NO_LINK) { // leere links skippen
buf = LINK_RD(link,LINK_USE); // nuetzlichkeit lesen
if(buf) LINK_WR(link,LINK_USE,--buf); // langsam verlernen
if(!buf) LINK_WR(link,LINK_SRC,NO_LINK);// link ganz löschen
}
link += sizeof(struct _link); // nächster link
} while(link < MAX_LINKS * sizeof(struct _link));
}
#define DELETE 0
#define REDUCE 1
#define SLEEP 2
static void gi_zellen(uns8 steuer) // zell-erregungen überarbeiten
{ // DELETE, REDUCE oder SLEEP
uns8 zell_ind = sizeof(zellen);
do { // Suche zellen
FSR = zellen + --zell_ind;
if(steuer == DELETE) INDF = 0; // flags und summe auf einen schlag
else if(steuer == REDUCE) {if(RD_SUM) WR_SUM(RD_SUM - 1);}
else if(RD_SUM > FIRE_LIMIT) WR_SUM(FIRE_LIMIT);
} while(zell_ind); // nächste zelle
}
#define NUMBER_OF_SIMULATION_STEPS 10
int main()
{
#ifdef RUNNING_ON_PC
printf("Gucki running\n" );
initEEPROM();
printf("Number of Neurons: %d\n",NUMBEROFNEURONS);
printf("Number of Links: %d\n",(int)MAX_LINKS);
puts("press return");
getchar();
#endif
#ifdef RUNNING_ON_PIC
RP0 = 1; // erstmal alle Spezialregister...
#asm
DW /*CALL*/ 0x2000 + /*ADRESSE*/ 0x03FF // oscal abholen
#endasm
OSCCAL = W; // und Oszillatorkalibrierung speichern
OPTION = 0; // global weak-pullup ein (je 20kOhm)
WPU = _BV(IN_0) | _BV(IN_1) | _BV(IN_2);
TRISIO = _BV(IN_0) | _BV(IN_1) | _BV(IN_2); // eingänge
RP0 = 0; // normale register und ram
CMCON = 0x07; // komparator aus
timeloop_init(); // timer initialisieren
#endif
rand_link = FIRST_NEURON;
gi_zellen(DELETE); // zellerregungen löschen
uns8 loop = 0;
int steps=0;
for(steps=0;steps<NUMBER_OF_SIMULATION_STEPS;steps++)
{
switch(loop)
{
case 0: pattern = 0x01; learn = AKT_0; break;
case 1: pattern = 0x02; learn = AKT_1; break;
case 2: pattern = 0x03; learn = AKT_2; break;
default:
{
#ifdef RUNNING_ON_PC
printf("error, no pattern\n");
#endif
}//FOREVER;
}
gi_lerne();
#ifdef RUNNING_ON_PC
printf("Simulation step number %d\n",steps);
showAll();
#endif
loop++;
#ifdef WEG
gi_verlerne(); // links langsam verlernen
if(!++loop) {
gi_verlerne(); // links langsam verlernen
gi_zellen(SLEEP); // schlafen
}
else if(!(loop & 0x1F)) // alle 32 durchläufe
gi_zellen(REDUCE); // zellerregungen vermindern
#endif
}
#ifdef RUNNING_ON_PC
printf("\nsimulations steps done: %d\n",steps);
printf(" Gucki stopped\n");
#endif
//return 0;
}
/* ENDE */
Wenn Du Linux hast, kannst Du die Datein mit
Lesezeichen