Input control

In the previous experiment tolerance accumulation by CA-2 was limited. Whenever CA-2 tolerance exceeded 1000 units, CA-3 was killed and started pacing only when CA-2 tolerance dropped below this level . Here this upper level is called maxtolerance. We now add another constraint.  Proliferon size depends on CA-0 tolerance. When the CA-0 zygote is planted its tolerance = 1.  As the stem process grows it accumulates tolerance, becomes stronger and supports better the other CA.  maxwidth sets the maximal CA width.

maxwidth = Min[tolerance[0] / 100, 80]
delivery[2, 1, Min[maxwidth, tolerance[3] / 20 , 2] ;
delivery[2, 2, Min[maxwidth, tolerance[3] / 20 , 2] ;
delivery[3, 3, 30, 0] ;

If[ p[1,prev] > p[1,now], set rule[1392]; else [set rule[1167]]
If[ p[2,prev] > p[2,now], set rule[1347]; else [set rule[1599]]
If[ p[3,prev] > p[3,now], set rule[663]; else [set rule[600]]

If[ tolerance[3]/20 > maxwidth, kill[CA-3]]
If[ tolerance[2] > maxtolerance, kill[CA-3]]

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, and are driven by CA-3.

When  the experiment starts,  CA-0 plants three zygotes. Only CA-3 survives and starts growing.  CA-1  and CA-2  have  to be seeded several times until they  start growing.   They depend on CA-3 and survive only when CA-3 has grown a bit. CA-3 serves as a pacer for the proliferon. When CA-3 tolerance reaches  maxwidth  CA-0 kills it, plants a new zygote instead and the cycle  starts again. Since maxwidth depends on CA-1 tolerance the cycles vary. When CA-3 tolerance rises, CA-1, CA-2 and CA-3 switch  between two rules as specified above. CA-1 delivers its daily product to CA-2  (accumulator). The experiment lasted 2000 time units (days). The first image depicts the CA when the experiment starts. The second image depicts then when the experiment ends.

CA-3 is pacing the unit.  Its survival depends on its width, maxwidth and CA-2 tolerance. Maxwidth depends on CA-1 tolerance. It rises to 80 units and remains at this level (v.  graph below).  From then and onward CA-3 fluctuates, and so does the interval between two consecutive CA-3 spikes.

survival[3] = CA-3[width, maxwidth, tolerance[2]] = CA-3[width, tolerance[1], tolerance[2]]

Initially CA-1 and CA-2 grow and are triggered by CA-3.  Then CA-2 tolerance reaches maxtolerance whereupon CA-3 oscillates more slowly and CA-2 and CA-3 decline. Ultimately the proliferon attains its solution  (strange attractor).

delivery: [j, j-1, While[p[j-1] > set point], 2]
Argument[1]: Activated CA.
Argument[2]: Activating CA.
Argument[3]: Delivery condition.
Argument[4]: Delivery amount.
p[j]:  daily production