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) = base*37 |
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) = base*61 |
つぎに、いろいろとパラメーターを当てはめると
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 = 102.5663706 |
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 = 2236.84955 |
ここで現在のパラメーターを代入すると
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 = 4247.781864 - 4986.233502250909032 |
シードに与える初期エネルギーを1000とすれば
36 | 1000 - 244.2300767 = 755.7699233 >= 0 |
61 | 1000 - (-738.451638250909032) = 1738.451638250909032 >= 0 |