Sim: 2007/07-18-sui05

!! Analysis

Changed dtree to something that splits on age=0.2, energy=0.05 and food=0.01

Trying to spread rule triggers reasonably evenly across leaves of tree. With the tree above, I get ~70% of rule triggers on the low age, low energy, low food rule. The next highest is about 20% on high age, low energy, low food.

Made observations occur at start of cycle

Ok, now everything falls into the high food rules --- obviously --- since that's what's there at the start of cycles (it's constant-rate food).

Changed dtree to age=0.2, energy=0.05, food=0.025

Set seasonal food with magnitude of 10

Much more balanced rule triggers now. I can start testing the suicide probabilities that evolve now.

Set seasonal food magnitude to 20

Got the following (normalised) dtree:

{'Cycle': 1700 , 'Average Decision Tree': { 'Call Count': 19749 [Age]: 0.200000 [Energy]: 0.050000 [GlobalFood]: 0.025000 PV[ 0.442835, 0.505658, 0.051228, 0.000279, ] {0.391 / 7731} PV[ 0.243182, 0.739655, 0.017163, 0.000000, ] {0.244 / 4823} [GlobalFood]: 0.025000 PV[ 0.521845, 0.275742, 0.189952, 0.012462, ] {0.000 / 0} PV[ 0.170725, 0.577386, 0.251490, 0.000399, ] {0.000 / 0} [Energy]: 0.050000 [GlobalFood]: 0.025000 PV[ 0.105093, 0.812770, 0.082020, 0.000118, ] {0.091 / 1795} PV[ 0.163941, 0.801015, 0.035043, 0.000000, ] {0.169 / 3336} [GlobalFood]: 0.025000 PV[ 0.010535, 0.298340, 0.691124, 0.000000, ] {0.008 / 163} PV[ 0.003806, 0.378215, 0.617979, 0.000000, ] {0.096 / 1901} }

[T001] Set energy=0.025 for age<0.2

There might be a slight tendency towards suicide in the low everything rule. Early on, this rule gets triggered a modest amount, and yet suicide avg stays around 0.02. Later, though, the rule rarely ever gets triggered:

{'Cycle': 2280 , 'Average Decision Tree': { 'Call Count': 17921 [Age]: 0.200000 [Energy]: 0.025000 [GlobalFood]: 0.025000 PV[ 0.190436, 0.497306, 0.257718, 0.054540, ] {0.001 / 18} PV[ 0.175821, 0.531518, 0.252960, 0.039702, ] {0.000 / 2} [GlobalFood]: 0.025000 PV[ 0.000000, 0.992049, 0.007951, 0.000000, ] {0.469 / 8407} PV[ 0.123762, 0.871877, 0.004346, 0.000015, ] {0.224 / 4019} [Energy]: 0.050000 [GlobalFood]: 0.025000 PV[ 0.022158, 0.869316, 0.108526, 0.000000, ] {0.185 / 3317} PV[ 0.302361, 0.693921, 0.000000, 0.003718, ] {0.002 / 35} [GlobalFood]: 0.025000 PV[ 0.052634, 0.359503, 0.587825, 0.000038, ] {0.117 / 2101} PV[ 0.000000, 0.390566, 0.609434, 0.000000, ] {0.001 / 22} }

[T002] Increased pPerCycleEnergy to 4 (from 1)

The first run I tried seemed to evolve suicide in old, low health, low food. But later runs didn't evolve suicide as strongly.

[T003] Increased pPerCycleEnergy to 8

The old age, low health/food rules don't trigger any more. Almost all older agents have plenty of energy.

[T004] See dtree template below; food magnitude of 30

Age 0.05 ( Energy 0.025 ( GlobalFood 0.025 ( L L ) GlobalFood 0.025 ( L L ) ) Age 0.2 ( Energy 0.04 ( GlobalFood 0.025 ( L L ) GlobalFood 0.025 ( L L ) ) Energy 0.08 ( GlobalFood 0.025 ( L L ) GlobalFood 0.025 ( L L ) ) ) )

No significant suicide probabilities anywhere.

[T005] food magnitude of 40

Nothing.

[T006] food mag = 50, split value mutation of 0.01

Suicide probability almost always zero now that I introduce split value mutation.

[T007] DTree structure free to evolve, randomly generated dtrees at start

(also added suicide prop column)

No major suicide.

[T008] Switched to periodic drought (like abortion experiments). Created birthWidth/birthHeight parameters which are much closer to parent than mateWidth/Height

No major suicide.

[T009] Clip probabilities to 0 and 1 on storage (but don't normalise till use).

Evolves out.

[T010] Start with dtree that splits on age, health and food, and then let it evolve.

Source code

(Note, this uses periodic drought food supply, like abortion experiments.) Initially, there are more suicides in droughts, but this evolves out. Still, it's the closest thing to the right pattern I've yet seen.

[T011] Switch food supply function back to sinusoidal.

Source code

The cyclical pattern appears again, but just as with T010 it eventually fades away. Still, this makes me suspect that tweaking things like mutation and crossover will allow it to evolve in a stable way.

[T012] Try fixed structure decision trees

Source code

This shows that suicide can indeed evolve as a stable strategy in this simulation when I used fixed structure decision trees. The fixed structure is as before:

Age 0.05 ( Energy 0.025 ( GlobalFood 0.025 ( L L ) GlobalFood 0.025 ( L L ) ) Age 0.2 ( Energy 0.04 ( GlobalFood 0.025 ( L L ) GlobalFood 0.025 ( L L ) ) Energy 0.08 ( GlobalFood 0.025 ( L L ) GlobalFood 0.025 ( L L ) ) ) )