broken state
This commit is contained in:
27
app/Main.hs
27
app/Main.hs
@ -104,11 +104,30 @@ loop loopAmount ps env = loop' loopAmount 0 ps env
|
||||
(!fs,cs) <- unzip <$> fitness plants
|
||||
let fps = zip plants fs -- gives us plants & their fitness in a tuple
|
||||
sumFitness = sum fs
|
||||
spc = meanAndVar `from` sumProducedCompounds $ cs
|
||||
ndc = meanAndVar `from` numDistinctCompounds $ cs
|
||||
-- $C_{\Sigma,mu}$: Durchschnittliche Menge an produzierten Stoffen
|
||||
-- $C_{\Sigma,sigma}$: Durchschnittliche Varianz an produzierten Stoffen
|
||||
(c_Sigma_mu, c_Sigma_sigma) = meanAndVar `from` sumProducedCompounds $ cs
|
||||
-- - $C_{i,\mu}$: Durchschnittliche Anzahl produzierter Komponenten
|
||||
-- - $C_{i,\sigma}$: Zusätzlich: Betrachtung der Varianz dieser Komponenten innerhalb der Population
|
||||
-- (Z.B. Stoff A wird immer mit $0.5$ produziert, hat also keine Varianz,
|
||||
-- wogegen Stoff B *im Schnitt* mit $0.5$ produziert wird, aber dies eine extreme
|
||||
-- Varianz auslöst)
|
||||
-- c_mu_sigma :: [(Amount,Amount)]
|
||||
(c_i_mu,c_i_sigma) = unzip $ meanAndVar `from` id <$> byProducts cs
|
||||
-- - $C_d$: Durchschnittliche Anzahl distinkter Produzierter Stoffe (sprich
|
||||
-- nicht-endemisch, $#i | C_{i,\sigma} > \epsilon$ )
|
||||
isEndemic :: Vector Bool
|
||||
isEndemic = (> 0.01) <$> fromList c_i_sigma
|
||||
(c_d_mu, c_d_sigma) = meanAndVar `from` (countWith isEndemic) $ cs
|
||||
-- - $C_{\sigma,\{\mu/\sigma\}}$: Mittelwert/Varianz von $\C_{i,\sigma}$
|
||||
(c_sigma_mu, c_sigma_sigma) = meanAndVar `from` id $ c_i_sigma
|
||||
-- - $\mathbf{E}[C_{\Sigma,plant} - C_{\Sigma,mu}]$: Durchschnittliche Abweichung der produzierten
|
||||
-- Stoffe gegenüber dem Schnitt der Gesamtpopulation
|
||||
e_hash_plant = F.mean `from` numDistinctCompounds $ cs
|
||||
-- mean and variance of fitness
|
||||
fns = meanAndVar `from` id $ fs
|
||||
cstats = meanAndVar `from` id <$> byProducts cs
|
||||
cstats' = meanAndVar `from` id $ snd <$> cstats
|
||||
-- - $P_\{\mu,\sigma\}$ Mittelwert/Varianz der Anteile der Stoffe in Pflanze i, die giftig sind
|
||||
toxs = meanAndVar `from` percentagePoisonous $ cs
|
||||
when (curLoop `mod` printEvery == 0) $ liftIO $ do
|
||||
printPopulation stringe (zip3 plants fs cs)
|
||||
putStrLn $ "Population statistics (mean,variance):"
|
||||
|
Reference in New Issue
Block a user