There are indications for and against this hypothesis by various groups.
If you wish to make apple pie from scratch, you must first create the universe
- Carl Sagan
Substrate
and Products
:
Substrate
can just be used (i.e. real substrates if the whole metabolism should be simulated, PPM
[1] in our simplified case)Products
are nodes in our chemistry environment.In Code:
data Compound = Substrate Nutrient
| Produced Component
| GenericCompound Int
[1]: plants primary metabolism
Substrate
:PPM
with a fixed Amount to account for effects of sucking primary-metabolism-products out of the primary metabolic cycleCompound 1
, Compound 2
…Enzyme
s as
Substrate
and/or Products
Products
Enzyme
s all
1
input to 1
Output with a production rate of 1
per Enzyme
-1 Compound 2 -> +1 Compound 5
)Predator
s consist of
Compound
s that can kill themPredator
need not necessary be biologically motivated
Compound
s:Enzyme
s:Predator
s:Additional rules:
PPM
is treated as a separate species (fungi, animals, …)A Plant
consists of
Genome
, a simple list of genes
(Enzyme, Quantity, Activation)
Quantity
is just an optimization (=Int) to group identical Activation
sActivation
is a float \(\in [0..1]\) to regulate the activity of the Enzyme
geneticallyabsorbNutrients
-Function to simulate various effects when absorbing nutrients out of the environment, depending on the environment (i.e. can use informations about chemistry, predators, etc.)
PPM
as “nutrient” and we take everything given to us.Creation of compounds from the given resources is an iterative process:
We now iterate \(s_i = (\mathbb{1} + \Delta_c) \cdot s_{i-1}\) for a fixed number of times (currently: \(100\)) to simulate the metabolism[2].
[2]: Thats a ‘lie’, we calculate \((\mathbb{1} + \Delta_c)^{100}\) efficiently via lapack
-internals
Genome
: an Enzyme
which converts \(i\) to \(j\) with quantity \(q\) and activity \(a\) yield \[\begin{eqnarray*}
\Delta_c[i,j] &\mathrel{+}=& q\cdot a,\\
\Delta_c[j,i] &\mathrel{+}=& q\cdot a, \\
\Delta_c[i,i] &\mathrel{-}=& q\cdot a, \\
\Delta_c[j,j] &\mathrel{-}=& q\cdot a
\end{eqnarray*}.\]
Given a simple Metabolism with \(1\) nutrient (first row/column) and \(2\) Enzymes in sequence, we have given \(\Delta_c\) wtih corresponding startvector \(s_0\): \[\Delta_c = 0.01 \cdot \begin{pmatrix} -1 & 1 & 0 \\ 1 & -2 & 1 \\ 0 & 1 & -1 \\ \end{pmatrix}, s_0 = \begin{pmatrix}\text{PPM:} & 3 \\ \text{Compound1:} & 0 \\ \text{Compound2:} & 0\end{pmatrix}.\]
In the simulation this yields us \[s_{100} \approx \begin{pmatrix}\text{PPM:} & 1 \\ \text{Compound1:} & 1 \\ \text{Compound2:} & 1\end{pmatrix},\] which is the expected outcome for an equilibrium.
All this yields the formula:
\[F_d := 1 - e^{- (D_{pop} \cdot P_a) (1-D_t(P_i))}\]
in inheritance each gene of the parent goes through different steps (with given default-values)[3]
[3]: in case of quantity \(q > 1\) the process is repeated \(q\) times independently.
AlwaysAttack
, AttackRandom
, AttackInterval Int
)It doesn’t matter how beautiful your theory is, it doesn’t matter how smart you are. If it doesn’t agree with experiment, it’s wrong.
- Richard P. Feynman