Turn 消費エネルギーなど
0-27 (seed_keep+operator_base)*(turn+1)
  base = seed_keep+operator_base とおく
28-35 base*(turn+1)
+π*r*(edge_radius)^2*edge_calorie*edge_keep*(turn-27)
+π*r*(edge_radius)^2*edge_calorie
  edge_base = π*r*(edge_radius)^2*edge_calorie とおく
36-38 base*(turn+1)
+2*edge_base+leaf_energy
+edge_base*edge_keep*{(35-27)+2*(turn-35)}
+leaf_energy*leaf_keep*(turn-35)
-sun(1)*(turn-36)
  4/3*π*r(n)^3 * leaf_calorie = n*leaf_energyとして
sun(n) = π*r(n)^2*day_light/(haba)^2*down_size
= π*{(n*leaf_energy/leaf_calorie*3/4/π)^(1/3)}^2*day_light/(haba)^2*down_sizeとおく
39 base*(turn+1)
+2*edge_base+2*leaf_energy
+edge_base*edge_keep*{(35-27)+2*(turn-35)}
+leaf_energy*leaf_keep*{(38-35)+2*(turn-38)}
-sun(1)*(turn-36)
40 base*(turn+1)
+2*edge_base+3*leaf_energy
+edge_base*edge_keep*{(35-27)+2*(turn-35)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
-sun(1)*(39-36)-sun(2)*(turn-39)
41-47 base*(turn+1)
+2*edge_base+3*leaf_energy
+edge_base*edge_keep*{(35-27)+2*(turn-35)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)
48-52 base*(turn+1)
+3*edge_base+3*leaf_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(turn-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)
53 base*(turn+1)
+3*edge_base+3*leaf_energy+flower_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(turn-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
+flower_energy*flower_keep*(turn-52)
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)
54 base*(turn+1)
+3*edge_base+3*leaf_energy+2*flower_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(turn-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
+flower_energy*flower_keep*{(53-52)+2*(turn-53)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)
55-58 base*(turn+1)
+3*edge_base+3*leaf_energy+2*flower_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(turn-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
+flower_energy*flower_keep*{(53-52)+2*(54-53)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)
59 base*(turn+1)
+3*edge_base+3*leaf_energy+3*flower_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(turn-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
+flower_energy*flower_keep*{(53-52)+2*(54-53)+(turn-58)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)
60 base*(turn+1)
+3*edge_base+3*leaf_energy+4*flower_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(turn-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
+flower_energy*flower_keep*{(53-52)+2*(54-53)+(59-58)+2*(turn-59)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)
61 base*(turn+1)
+3*edge_base+3*leaf_energy+4*flower_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(turn-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
+flower_energy*flower_keep*{(53-52)+2*(54-53)+(59-58)+2*(60-59)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)

ここで、葉が光合成をはじめる直前(36,37回のexecute)と、2度目のbreedが行われる直前(60,61回のexecute)のエネルギーが初期値を超えないようにする。

36 base*(turn+1)
+2*edge_base+leaf_energy
+edge_base*edge_keep*{(35-27)+2*(turn-35)}
+leaf_energy*leaf_keep*(turn-35)
-sun(1)*(turn-36)

= base*(36+1)
+2*edge_base+leaf_energy
+edge_base*edge_keep*{(35-27)+2*(36-35)}
+leaf_energy*leaf_keep*(36-35)
-sun(1)*(36-36)

= base*37
+2*edge_base+leaf_energy
+edge_base*edge_keep*10+leaf_energy*leaf_keep

60 base*(turn+1)
+3*edge_base+3*leaf_energy+4*flower_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(turn-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(turn-39)}
+flower_energy*flower_keep*{(53-52)+2*(54-53)+(59-58)+2*(60-59)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(turn-40)

= base*(60+1)
+3*edge_base+3*leaf_energy+4*flower_energy
+edge_base*edge_keep*{(35-27)+2*(47-35)+3*(60-47)}
+leaf_energy*leaf_keep*{(38-35)+2*(39-38)+3*(60-39)}
+flower_energy*flower_keep*{(53-52)+2*(54-53)+(59-58)+2*(60-59)}
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(60-40)

= base*61
+3*edge_base+3*leaf_energy+4*flower_energy
+edge_base*edge_keep*71
+leaf_energy*leaf_keep*68
+flower_energy*flower_keep*6
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(60-40)


つぎに、いろいろとパラメーターを当てはめると

base = (seed_keep+operator_base) = 1+1 = 2
edge_base = π*r*(edge_radius)^2*edge_calorie
= π*8*(0.5)^2*1 = 6.283185307
leaf_energy = 16
flower_energy = 512
sun(n) = π*{(n*leaf_energy/leaf_calorie*3/4/π)^(1/3)}^2*day_light/(haba)^2*down_size
= π*{(n*16/1*3/4/π)^(1/3)}^2*day_light/(0.08)^2*0.7
= n^(2/3)*day_light*839.631753

 

36 base*37
+2*edge_base+leaf_energy
+edge_base*edge_keep*10+leaf_energy*leaf_keep

= 2*37 + 2*6.283185307 + 16
+6.28318307*edge_keep*10 + 16*leaf_keep

= 102.5663706
+62.8318307*edge_keep + 16*leaf_keep

60 base*61
+3*edge_base+3*leaf_energy+4*flower_energy
+edge_base*edge_keep*71
+leaf_energy*leaf_keep*68
+flower_energy*flower_keep*6
-sun(1)*(39-36)-sun(2)*(40-39)-sun(3)*(60-40)

= 2*62 + 3*6.283185307 + 3*16 + 4*512
+ 6.283185307*edge_keep*71 + 16*leaf_keep*68 + 512*flower_keep*6
- (1^(2/3)*3 + 2^(2/3)*1 + 3^(2/3)*20)*day_light*839.631753

= 2236.84955
+ 446.9557127*edge_keep + 1088*leaf_keep + 3072*flower_keep
- 38781.81612*day_light


ここで現在のパラメーターを代入すると

edge_keep = 2
leaf_keep = 1
flower_keep = 0.01
day_light = 0.1285714286

 

36 102.5663706 + 62.8318307*edge_keep + 16*leaf_keep
= 102.5663706 + 62.8318307*2 + 16*1
= 244.2300767
60 2236.84955
+ 446.9557127*edge_keep + 1088*leaf_keep + 3072*flower_keep
- 38781.81612*day_light

= 2236.84955
+ 446.9557127*2 + 1088*1 + 3072*0.01
- 38781.81612*0.1285714286

= 4247.781864 - 4986.233502250909032
= -738.451638250909032


シードに与える初期エネルギーを1000とすれば

36 1000 - 244.2300767 = 755.7699233 >= 0
61 1000 - (-738.451638250909032) = 1738.451638250909032 >= 0