Call diploid-flip when appropriate; make new-individual robust to missing rates
This commit is contained in:
parent
224d33c19d
commit
b6a9a410c1
@ -83,15 +83,22 @@
|
|||||||
(let [prob (rand)
|
(let [prob (rand)
|
||||||
[xover add del] (if (:diploid argmap)
|
[xover add del] (if (:diploid argmap)
|
||||||
[diploid-crossover diploid-uniform-addition diploid-uniform-deletion]
|
[diploid-crossover diploid-uniform-addition diploid-uniform-deletion]
|
||||||
[crossover uniform-addition uniform-deletion])]
|
[crossover uniform-addition uniform-deletion])
|
||||||
|
xover-rate (or (:crossover (:variation argmap)) 0)
|
||||||
|
umad-rate (or (:umad (:variation argmap)) 0)
|
||||||
|
flip-rate (or (:flip (:variation argmap)) 0)]
|
||||||
(cond
|
(cond
|
||||||
(< prob (:crossover (:variation argmap)))
|
(< prob xover-rate)
|
||||||
(xover (:plushy (selection/select-parent pop argmap))
|
(xover (:plushy (selection/select-parent pop argmap))
|
||||||
(:plushy (selection/select-parent pop argmap)))
|
(:plushy (selection/select-parent pop argmap)))
|
||||||
(< prob (+ (:crossover (:variation argmap))
|
;
|
||||||
(:umad (:variation argmap))))
|
(< prob (+ xover-rate umad-rate))
|
||||||
(del (add (:plushy (selection/select-parent pop argmap))
|
(del (add (:plushy (selection/select-parent pop argmap))
|
||||||
(:instructions argmap)
|
(:instructions argmap)
|
||||||
(:umad-rate argmap))
|
umad-rate)
|
||||||
(:umad-rate argmap))
|
umad-rate)
|
||||||
|
;
|
||||||
|
(< prob (+ xover-rate umad-rate flip-rate))
|
||||||
|
(diploid-flip (:plushy (selection/select-parent pop argmap)) flip-rate)
|
||||||
|
;
|
||||||
:else (:plushy (selection/select-parent pop argmap))))})
|
:else (:plushy (selection/select-parent pop argmap))))})
|
||||||
|
Loading…
x
Reference in New Issue
Block a user