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 …Enzymes as
Substrate and/or ProductsProductsEnzymes all
1 input to 1 Output with a production rate of 1 per Enzyme-1 Compound 2 -> +1 Compound 5)Predators consist of
Compounds that can kill themPredator need not necessary be biologically motivated
Compounds:Enzymes:Predators: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 ActivationsActivation 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