We continue to investigate the four CA proliferon adjusting links between CA  in order to stabilize it. The objective is to avoid instantaneous changes like  If[ tolerance[3]/20 > maxwidth, kill[CA-3]].  Killing CA-3 is a too abrupt change since it reduces tolerance from a high value to zero.  This condition was therefore eliminated. The other condition,  If[ tolerance[2] > maxtolerance, kill[CA-3]] remains. 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 CA-3 and accumulates them. The CA behave as described  in the previous experiment, and are  driven by CA-3.

maxwidth = Min[tolerance[0] / 100, 40]  ;  Maximal CA width
maxtolerance = 2000.                                 ; Maximal CA-2 (accumulator tolerance)

CA-1 and CA-3 feed CA-2 the accumulator with their daily tolerance production:
delivery[2, 1, Min[maxwidth, tolerance[3] / 20 , 2] ;
delivery[2, 2, Min[maxwidth, tolerance[3] / 20 , 2] ;
delivery[2, 3, Max[maxwidth, 10], 2] ;

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 more vigorous and supports better the other CA. However a tolerance[1] < 10, is too weak to stabilize the proliferon during its first days of existence. Delivery set point during this period is set to 10 : delivery[2, 3, Max[maxwidth,10], 2] ;

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[2] > maxtolerance, kill[CA-3]]

When  the experiment starts,  CA-0 plants three zygotes which have difficulty to survive. CA-2 is the first to grow since it gets tolerance from CA-3. Next, CA-3 starts growing, and only then CA-1  rises,  since it  depends on CA-3. The CA  switch  between two rules as specified above. When controlled by the first rule they accumulate tolerance and under the second rule they output it. CA-1 and CA-3  deliver their  daily product to CA-2  (accumulator). The experiment lasted 2000 time units (days).

CA-3 is pacing the unit.  Its survival depends on  its width, maxwidth and the CA-2 tolerance. Maxwidth depends on CA-1 tolerance. CA-3  rises to 40 units and remains at this level. Survival[3]  = f [width, tolerance[1], tolerance[2]]


Imagine that CA-2 is a fruit. When filled with tolerance it is ripe for reaping. It is cut off at t = 700. CA-0 replaces it  with a zygote. Nevertheless the entire proliferon is perturbed, yet regains its solution. Apparently CA-2 remembers the trauma, and for an instant (t = 2300)  its tolerance vanishes. After regaining its solution CA-2 may be reaped again

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