Politica ecologica - Ecological politics Giovanni Verzotti  - Home

Modello di ecosistema.

A life cycle computer model. (1991- additional specifications: 1998 ; 2009)

(Per chi non volesse affrontare tecnicamente la questione vedere L'uso della propensione alla fede come mestiere per vivere)

According to investigations about ecosystem behaviour by Lotka,Volterra and others, I propose here a computer simulated matter energized cycle. The matter is transferred alternatively between a energy graduate population, mainly producers, consumers and decomposers, the first ones sun power supplied, with intermediate compartments filled by the same 'dead' population. Living populations differ from dead ones for their ability, represented by algorithms operating into computer memory, that return their numeric consistence. The model allows to test balance of population variation, cycle behaviour and might be used in many cyclic context, such as economy, networks, policy.

A way to describe an ecosystem cycle is:

D x1/D t = f(x n , x 1 , t, e), D xi /D t = f(x i-1, x i , t, e),       xi,t = population living into i compartment at time t,  i = 2,3,..n   e = energy,     t = time .

It is useful to compute pollution or new temporary energy sources, but following first and second thermodynamic principles 'wells' and 'sources' are not allowed (only codes, as DNA, and their expression able to structure the matter are not conservative). Then any i , any t,

xi,t = constant ( >0)

Each compartment is a function of the previous one. Computing with a discrete generation system over an oriented graph, using an ordinary computer work sheet, I consider three matter compartments (resources and two “dis-organics” combined only in diagrams), a source of energy subdivided in renewable and not, producers and its parasites compartment to exemplify, consumers (zoo) and de-compositors (bacteria). Matter and energy supplied in discrete bio-quanta ( matter and energy constituting a cell is a good model of bio-quantum). I mean “dis-organics” as matter containing energy but not enough information to "live"; two population (producers and decomposers), operating with algorithm (information) provided: the first ones (i.e. phototrophs) give energy charged copy of themselves; the second ones (i.e. bacteria) return resources during their replica using energy charged matter. In this model populations are computed with decimals, time flows as a trend of events not as a clock, it is possible to adjust or change many variables with parameters, algorithms are function of probability to find 'food' following classic Lotka-Volterra equations, growth is exponential, it is considered matter only to replicate and energy to replicate and survive. The model include a sub population of producers to transform matter, only to duplicate (ratio of these parasitism is adjustable with parameter); consumers are divided in secondary (zoo) and primary decomposers ('bacteria'). Secondary consumers must have a distinct 'job' (algorithm or information) otherwise we split only in two an existing population: here secondary consumers return bulk matter easier to consume by 'bacteria'. This preference is adjustable with parameter (a ). Growth algorithms are of type:

n t+1= n t {1+ k p}

where n is population , p probability to find 'food', k adjustable coefficient, keeping on account that decomposers (bacteria) return r resources each replication using energy accumulate in dis-organics. Death algorithm for each species may be fixed either as percentage of dead elements over population or related with its enemies, reliability of self devices and any accident causing irreversible information destruction (here is treated only percentage and predators probability). It is possible to switch off any parameter during computation.

Fig. 1- Model used in computer simulation. Dead are combined in dis-organics only in diagrams representation.

Diagrams report only the most important variables. For a complete report refer to program.

Results.

Fig. 2- The simplest situation: resources and producers (phyto and its parasites at low rate) with enough energy and without predators. Producers grow reducing resources and tend to limit r/k (r = resources and k arbitrary ratio of producer vs. resources)

Fig. 3- Introducing decomposers (bacteria) the cycle is stabilized.

Fig. 4- Adding consumers (zoo) the cycle reach an equilibrium depending on groups relative ability.

Fig. 5. The same as fig. 3 but with excess of producers fitness (proa=1). The rest of living mass is not able to manage the conversion to resources.

Fig. 6. The same as fig. 3 with excess of zoo proliferation (propla=1) or phyto destruction: the cycle tends to end owing to producers plunder.

Fig. 7 . The same as fig. 3 with high rate of parasitism (tan = 0,8) that hampers the cycle progress.

Fig. 8 . The same as fig. 3 with sudden lack of energy at time 11: producers and their parasites die, zoo and bacteria grow up due to dis-organics increase (organic remains) and the cycle tends either to end, or to reach the equilibrium allowed by renewable energy residual, if any. In fact and unfortunately humans have acquired the ability to change growth and death factors of life cycle, as parameters with first letter “k..” and “pro..” in the cycle model listed below.

The least bulk matter remaining (resources and dis-organics), the best the cycle, keeping on account ties environment. When environment conditions are defined, any growth exceeding stable steady state is transitory or clue of drift that may lead to a different steady state .

Consequent remarks (extracted from letter dated Jan 13th 1993, and published on March 28th 2009).

1) The cycle stops if resource, phototrophs, bacteria and obviously the sun, tend to lack. We can imagine a mutant man, able to use CO2,  donor and electrons acceptors, sun energy on his skin, but he would change himself in a vegetable.

2) The matter of all species is the same, changing only the functions, the organizations and its know how, then death is necessary. Death sets oneself matter at disposal of others organisms.

3) Thermodynamics principles are true in spite of human financial and economics interests.

4) Keeping constant the matter, the more humanity or new species, the less in other living organisms. The species change itself only for mutation and each species ought to reach the optimized steady state (possibly reducing dis-organics at minimum).

5) Only change of mortality and birth rate modify the system conditions. The species are obliged to production and demolition functions. Any activity absorbing energy, resources or products changes birth or death rates. Reciprocally changing birth or death rates change the balance among species, until extinction with profit of the other . Should the specie instead learns the function of another one, there is a compensation among species with exchange or transfer of rolls. In fact human specie is changing these factors.

6) Increasing or decreasing resources increase populations but reciprocal ratios don't change.

10) The function and denomination of groups are determined by their algorithm, that return in a fixed computer memory location their numeric consistence.

11) In human systems are not important juridical right but the best informative algorithm related to resources and environment circumstances, keeping on account that we are intermediate specie, useful but not necessary in the ecosystem . In case the algorithm doesn't insure survival, the relevant population (its cultural project) extinguish and the resources are divided among all the other ones. This is true for each biological species.

(Note: in economy is nearly the same thing, keeping on account that human organizations producing objects useful o useless to surviving with energy consumption, either for their production or for their use).

Conclusions.

This model of environment behaviour may be improved but I propose it mainly to redirect political and economical interventions, provided to critical survival conditions respect: (i) resources conservation and (ii) matter recycling.

Program list.

The program core in a worksheet cell as follows (required Framework.II  of Ashton Tate (1986) and perhaps PC with low clock frequency- Full program at disposal on request ):

@local(indice,zona,avi1,avi2,amo1,mo1,ri1,pla1,plamo1,co1,mo2,ba1,bamo,kbamo,ba,ri,co,mo,pla,avi,ka,kamo,kpla,kplamo,

kco,kb,ktot,tot,alfa,proa,propar,propla,prob,bari,av1,am1,tan,kam1,av0,av2, source,well,ken,rest),

indice:=1, zona:=(B6:V27),

tot:=O2*C4+W2*C4+T2*J4+S2+R2*L4+Q2+P2*N4,

ka:=C4,kamo:=D4,kpla:=J4,kplamo:=K4,kb:=N4,kco:=L4, ba:=P2,ri:=Q2,co:=R2,mo:=S2,pla:=T2,avi:=W2,av1:=O2, tan:=E4,av0:=O2,kam1:=F4,kbamo:=O4,avi1:=0,amo1:=0, mo1:=0, ri1:=0,pla1:=0,plamo1:=0, co1:=0,mo2:=0,ba1:=0,bamo:=0,am1:=0, avi2:=0,av2:=0,v4primo:=0, source :=V4+u3, ken:=V2, ktot:=(kpla+kco),

alfa:=@if(@and(M4<1,M4>0),M4,1),M4:=alfa, ; to display filter on alfa

@while (indice <25, proa:= @if(G4<=0,ri/(tot),G4), ;probability producers find food for replication

propar:=avi/tot, ; probability parasites find host

ri:= @if(ri>0,ri,0),

@put(zona,ri), ;col.b, resources

@next(zona), ;col.c, producers growth no more than double using ka*resources/prod. + energy /ken minus cost to pay parasites av0

@if(source>0, ;if1

@if(avi*proa>0, ;if2

@if(source/ken>avi*proa+av0*propar, ;if3 parasites must be rewiewed owing to growth

@if((ri/ka)>avi*proa+av0*propar, ;if4 depending from avi,but if av0=0 must not grow

@list(avi1:=avi+avi*proa*(1-tan), av1:=av0+av0*propar*tan), ;else if4

@list(avi1:=avi+(ri/ka)*proa*(1-tan),

av1:=av0+(ri/ka)*propar*tan) ), ;close if4 else if3

@if((ri/ka)>avi*proa+av0*propar, ;if5

@list(avi1:=avi+source/ken*proa*(1-tan),

av1:=av0+source/ken*propar*tan), ;else if5

@if((ri/ka)>source/ken, ;if6

@list(avi1:=avi+(source/ken)*proa*(1-tan),

av1:=av0+(source/ken)*propar*tan), ;else if6

@list(avi1:=avi+(ri/ka)*proa*(1-tan),

av1:=av0+(ri/ka)*propar*tan) ))), ;close if 6-5-3 else if2

@list(avi1:= avi, av1:=av0) ), ;close if2, else if1

@list(avi1:=avi,av1:=av0) ), ;close if1

@put(zona,avi1),

@next(zona), ;col.d, producers die at rate kamo defined as:

kamo:=@if(D4<0,(ba+pla)/tot,D4),;it is possible to fix kamo>0

amo1:=@if(source>0, @if(avi>0,@if(avi1<avi,(avi-avi1)+avi*kamo, avi1*kamo),avi1),avi1),;if source<=0 all die

@put(zona,amo1),

@next(zona), ;col.e, put parasites computed above

@put(zona,av1),

@next(zona), ;col.f, parasites die at rate kam1

kam1:=@if(F4<0,(ba+pla)/tot,F4),

am1:=@if(source>0,@if(av1>0,

@if(av1<av0,(av0-av)+kam1*av1,av1*kam1),av1),av1),

@put(zona,am1),

av2:=@if(av1-am1>=0,av1-am1,0), ;progr. parasites,change variab.(for ri)

@next(zona), ;col.g, progr. deaths,converted amo1 e am1 in quanta

mo1:= amo1*ka+am1*ka+mo,

@put(zona,mo1),

@next(zona), ;col.h progr. producers

avi2:=@if(avi1-amo1>0,avi1-amo1,0),

@put(zona,avi2),

@next(zona), ;col.i progr.resources,protect from producers reduction ;not parasites because depending from producers

ri1:=ri-@if((avi1-avi)>0,(avi1-avi)*ka+(av1-av0)*ka,0),

@put(zona,ri1), ;avi1 is total

@next(zona),

propla:=@if(H4<=0,mo1/tot,H4),;col j secondary consumers grow eating mo1 no more 2*pla

@if(@and(pla>=0,mo1>=0),

@if(mo1/ktot>pla*propla,

@list(pla1:=pla+pla*propla,

co1:=co+pla*propla,

mo2:=mo1-(pla1-pla)*ktot), ; mo2 in quanta

@list(pla1:=pla+mo1*propla/ktot,

co1:=co+propla*mo1/ktot,

mo2:=mo1-(pla1-pla)*ktot)), ; close if2 now else if1

@list(pla1:=pla,mo2:=mo1,co1:=co) ),

@put (zona,pla1),

@next(zona), ; col k secondary consumers die

kplamo:=@if(K4<0,ba/tot,K4),

plamo1: =@if(pla1>0,pla1*kplamo,pla1),pla:=pla1-plamo1, ;report.in col.r

@put(zona,plamo1),

@next(zona), ;col. l progr. co1 evaluated with pla1

@put(zona,co1),

@next(zona), ;col. m progr mo2, evaluated with pla1,plus plamo1(quanta)

mo2:=mo2+plamo1*kpla,

@put (zona,mo2),

prob:= @if(I4<=0,(co1*kco+mo2)/(tot),I4),; prob must be here for ba updating

@next(zona), ;col. n, primary consumers grow eating co1, then mo2

@if(ba>0, @if(mo2>0, @if(co1>0, ; if1, if2, if3

@if(kco*co1>(1+kb*prob)*ba, ;if4

@list(co:=co1-prob*ba*(kb+1)/kco, mo:=mo2,ba1:=ba+prob*ba),

@if((kco*co1+mo2)>(1+kb*prob)*ba, ;if5 in else if4

@list(co:=co1*(1-prob),

mo:=mo2-alfa*prob*(ba-co1*kco*prob/(kb+1))*(kb+1),

ba1:=ba+prob*co1*kco/(kb+1)+alfa*prob*(ba-prob*kco*co1/(kb+1))), ; else if5

@list(co:=co1*(1-prob),mo:=(1-alfa*prob)*mo2,

ba1:=ba+prob*(co1*kco/(kb+1)+alfa*mo2/(kb+1))) ;list closed

) ; close if5

), ;if4'closed, else if3=co1<=0

@if(mo2>(1+kb*prob)*ba, @list(co:=co1,mo:=mo2-prob*alfa*ba*(kb+1), ba1:=ba+alfa*ba*prob),

@list(co:=co1,mo:=mo2*(1-alfa*prob), ba1:=ba+prob*alfa*mo2/(kb+1))) ; close if6

), ; close if3 elseif2 mo2<=0

@if(co1>0,@if(kco*co1>(1+kb)*ba, ;if7 e if8

@list(mo:=mo2,co:=co1-prob*ba*(kb+1)/kco,ba1:=ba+ba*prob),

@list(co:=co1*(1-prob),mo:=mo2,ba1:=ba+prob*co1*kco/(kb+1))

), ;if8 closed else if7= co1<=0

@list(mo:=mo2,co:=co1,ba1:=ba) ) ;if7

), ; now branch else ba<=0 if2

@list(co:=co1,mo:=mo2,ba1:=ba)), ;if1 note:ba are previous ones

@put(zona,ba1),

@next(zona), ;col.o prim. consum dead (go to ri),protect from dimin. sec. consum.;follow two way to cause mortality put semicolon before not desired

kbamo:=@if(O4<0,ba1/tot,O4),

bamo:=@if(ba1>0,ba1*Kbamo,ba1),

; bamo:=@if(ba1>0,ba1^2*kbamo/tot,ba1),

bari:=@if((ba1-ba)>0,(ba1-ba),0), ;each plamo eaten 1 resource free

ri:= ri1+bamo*kb+bari, ; (1)**see mo here cancel bari with option mo not ri

@put(zona,bamo), ;resources in quanta,for every kb

@next(zona), ;col.p progr. sec. consumers and protect from errors:else gives *FALSE!

ba:=@if(ba1-bamo>=0,ba1-bamo),

@put (zona,ba),

@next(zona), ;col.q,progr resources:sec. consum.* kb+res. released during growth

@put(zona,ri), ;computed before ba, because ba updated in col n

@next(zona), ;col.r, progr calculated with ba1

@put(zona,co), @next(zona), ;col.s, mo the same col. r

; mo:=mo+bari, *(1)**active when sec. consumers become mo,not ri(take away bari in ri)

mo:= mo,              @put(zona,mo), @next(zona), ;col. t,progr primary consumers pla1-plamo1

@put(zona,pla),

@next(zona), ;col.u,progr. parasites

well:=@if(avi1-avi>0,(avi1-avi)*ken,0),+@if(av1-av0>0,(av1-av0)*ken,0), ;to compute before change of variab.

avi:=avi2,av0:=av2, ;change variables, see col. F

@put(zona,av0), @next(zona), ;col v

rest:= U3-well, <CR> v4:=@if(rest>0, V4, V4+rest), source:=u3+v4,

;energy is shared in renewable(u3) added each cycle and unrenewable(v4)

@put (zona,well), @next(zona), ; col b next row

indice:=indice+1)

;There is independent matter test, with the same formula for tot (see program start).