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.
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).
Much more balanced rule triggers now. I can start testing the suicide probabilities that evolve now.
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}
}
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}
}
The first run I tried seemed to evolve suicide in old, low health, low food. But later runs didn't evolve suicide as strongly.
The old age, low health/food rules don't trigger any more. Almost all older agents have plenty of energy.
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.
Nothing.
Suicide probability almost always zero now that I introduce split value mutation.
No major suicide.
No major suicide.
Evolves out.
(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.
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.
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 ) ) ) )