Control of tolerance accumulation
Here is another experiment with a similar design like
the previous one only with different rules.
The proliferon consists of a stem CA-0, and three transitional processes,
CA-1, CA-2, and CA-3. CA-2 gets resources from CA-1 and accumulates
them. CA-1 and CA-2 behave like in the previous experiment. Here they
are driven by CA-3.
delivery[2, 1, Min[70, tolerance / 20., 2] ;
delivery[2, 2, Min[70, tolerance / 20.,, 2] ;
delivery[3, 3, 30, 0] ;
If[ p[1,prev] > p[1,now], set rule;
else [set rule]
If[ p[2,prev] > p[2,now], set rule; else [set rule]
If[ p[3,prev] > p[3,now], set rule; else [set rule]
If[ tolerance/20. > 70, kill[CA-3]]
When the experiment starts, CA-0 plants three zygotes. Only CA-3 survives and starts growing. CA-1 dies and has to be seeded again three times until it starts growing. CA-2 has to be replanted only twice. Both depend on CA-3 and survive only when CA-3 has grown a bit. Like in the previous experiment. CA-3 serves as a pacer for the proliferon. When CA-3 tolerance reaches 70 units CA-0 kills it, plants a new zygote instead and the cycle starts again. When CA-3 tolerance rises, CA-1 and CA-2 switch between two rules as specified above. CA-1 delivers its daily product to CA-2 (accumulator).
Both CA depend on the triggering of CA-3 tolerance. When it rises they thrive and when it declines they get leaner. Before the experiment started, only the stem process (CA-0) produced output. When the experiment starts the total proliferon output rises swiftly and oscillates about a constant value.
Process specified function
Each process has a specified task:
CA-0 : Stem process
CA-1 : Output generator and sentinel process
CA-2 : Tolerance accumulator.
CA-3 : Pacer
In the next experiment CA-2 tolerance
accumulation is limited. Whenever CA-2 tolerance exceeds 1000 units,
CA-3 is killed and starts pacing only when CA-2 tolerance drops below
the 1000 level. If[ tolerance > 1000, kill[CA-3]].