-
Notifications
You must be signed in to change notification settings - Fork 0
/
Thoughts.txt
129 lines (103 loc) · 2.72 KB
/
Thoughts.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Evolution simulator
THE TEST: method
Plan
Begränsad tid.
Success mäts i hur långt åt höger man kommer.
Eventuellt öka tiden efter ett antal generationer.
functino single_simulation(Creature,tid)
t=0
while t < tid:
creature.set forces 0()
creature.update internal forces()
for node in creature.nodes
do physics on the nodes
node.add_force(g*node.get_mass())
if at ground
N = - take z component of node.get_force()
node.add_force(N)
v = x component of node.get velocity()
friction = node.friktionskoeff*norm(N)* v/norm(v)
node.add_force(friction)
node.update acceleration()
node.update velocity()
if at ground and y velocity < 0
node.set y velocity 0()
node.update_position()
t += dt
draw(creature)
set the score of the creature to the length run.
function big_simulation()
generate a bunch of creatures
while true
fittness
sort
kill
reproduce
THE CREATURES: Class
En varelse består av ett antal noder och ett antal muskler.
Pseudo kåd
class
fields:
fitness=0
ID
Architecture// - should probably be a map. One can check if a graph is connected with bsf/dsf traversal of the graph
methods:
Constructor()
construct random
Constructor(creature)
construct baby
Update_internal_forces(t)
for each muscle
muscle.add_force_to_nodes(t)
class muskel
fields:
ID?
Node 1
Node 2
T // Total period
f // Fraction of period contracted
T_0 // Phase to begin in
k // spring constant
c // dampening constant
lengthContracted
lengthExtended
methods:
Constructor (all args)
Alternativ - konstruera muskel som muterad kopia? constructor(muskel)
eller båda? Nä inte båda
Constructor()
ger random värden till alla
add_force_to_nodes(t)
ger spännkraft vid tid t och lägger till till self.node1 och self.node2
class node
fields:
position
hastighet
acceleration
force
friktionskoefficient
radie
massa? lägga till senare, vi börjar med massa 1
ID?
methods:
Constructor (all args)
Alternativ - konstruera Node som muterad kopia? constructor(node)
eller båda? Nä inte båda
Constructor()
ger random värden till alla
position - getter
velocity - getter and (setter or just make y value 0)
acceleration - behöver ingen getter
force - getter
add_force(force_to_be_added)
force += force_to_be_added
set_force_0()
force = 0
Update acceleration()
Update velocity
update position
THE SELECTION: Class
Vi genererar 1000 varelser.
alla gör testet.
500 blir bortsorterade.
De 500 som är kvar får 1 barn var med små tweaks och (mer sällan) stora tweaks.