Initialize diploid genomes to pairs of same; implement diploid vumad; mess around with mul3
This commit is contained in:
parent
aeae30d0d4
commit
3ca6d4175f
@ -44,7 +44,10 @@
|
|||||||
;;
|
;;
|
||||||
(loop [generation 0
|
(loop [generation 0
|
||||||
population (utils/pmapallv
|
population (utils/pmapallv
|
||||||
(fn [_] {:plushy (genome/make-random-plushy instructions max-initial-plushy-size)})
|
(fn [_] {:plushy (let [plushy (genome/make-random-plushy instructions max-initial-plushy-size)]
|
||||||
|
(if (:diploid argmap)
|
||||||
|
(interleave plushy plushy)
|
||||||
|
plushy))})
|
||||||
(range population-size)
|
(range population-size)
|
||||||
argmap)] ;creates population of random plushys
|
argmap)] ;creates population of random plushys
|
||||||
(let [evaluated-pop (sort-by :total-error
|
(let [evaluated-pop (sort-by :total-error
|
||||||
|
@ -164,6 +164,9 @@
|
|||||||
:set-c2 ;; defined here
|
:set-c2 ;; defined here
|
||||||
:set-c1 ;; defined here
|
:set-c1 ;; defined here
|
||||||
:set-c0 ;; defined here
|
:set-c0 ;; defined here
|
||||||
|
;; PROVIDE ACCESS ALSO TO c0-c5?
|
||||||
|
;; AND/OR BOOLEAN TAGGING?
|
||||||
|
|
||||||
;; Recommended by Kalkreuth et al: BUFa, NOTa, AND, OR, XOR, NAND, NOR, XNOR
|
;; Recommended by Kalkreuth et al: BUFa, NOTa, AND, OR, XOR, NAND, NOR, XNOR
|
||||||
:boolean_bufa ;; defined here
|
:boolean_bufa ;; defined here
|
||||||
:boolean_nota ;; defined here
|
:boolean_nota ;; defined here
|
||||||
@ -173,15 +176,21 @@
|
|||||||
:boolean_nand ;; defined here
|
:boolean_nand ;; defined here
|
||||||
:boolean_nor ;; defined here
|
:boolean_nor ;; defined here
|
||||||
:boolean_xnor ;; defined here
|
:boolean_xnor ;; defined here
|
||||||
|
|
||||||
|
;:boolean_pop
|
||||||
;:boolean_dup
|
;:boolean_dup
|
||||||
;:boolean_swap
|
;:boolean_swap
|
||||||
;:boolean_rot
|
;:boolean_rot
|
||||||
;:boolean_pop
|
|
||||||
;:exec_pop
|
;:exec_pop
|
||||||
;:exec_dup
|
;:exec_dup
|
||||||
|
;:exec_swap
|
||||||
|
;:exec_rot
|
||||||
;'close
|
;'close
|
||||||
true
|
|
||||||
false))
|
;true
|
||||||
|
;false
|
||||||
|
))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -231,7 +240,7 @@
|
|||||||
:error-function error-function
|
:error-function error-function
|
||||||
:training-data (:train train-and-test-data)
|
:training-data (:train train-and-test-data)
|
||||||
:testing-data (:test train-and-test-data)
|
:testing-data (:test train-and-test-data)
|
||||||
:max-generations 100
|
:max-generations 1000
|
||||||
:population-size 1000
|
:population-size 1000
|
||||||
:max-initial-plushy-size 100
|
:max-initial-plushy-size 100
|
||||||
:step-limit 1000
|
:step-limit 1000
|
||||||
@ -239,12 +248,15 @@
|
|||||||
;:parent-selection :tournament
|
;:parent-selection :tournament
|
||||||
:tournament-size 5
|
:tournament-size 5
|
||||||
:umad-rate 0.01
|
:umad-rate 0.01
|
||||||
:variation {:vumad 1}
|
:variation {:umad 1
|
||||||
|
:reproduction 0
|
||||||
|
:tail-aligned-crossover 0
|
||||||
|
}
|
||||||
;:diploid true
|
;:diploid true
|
||||||
;:variation {:diploid-umad 0.8
|
;:variation {:diploid-vumad 0.8
|
||||||
; :diploid-uniform-silent-replacement 0.1
|
; :diploid-uniform-silent-replacement 0.1
|
||||||
; :diploid-flip 0.1}
|
; :diploid-flip 0.1}
|
||||||
;:replacement-rate 0.1
|
;:replacement-rate 0.01
|
||||||
;:diploid-flip-rate 0.1
|
;:diploid-flip-rate 0.01
|
||||||
:elitism false}
|
:elitism false}
|
||||||
(apply hash-map (map #(if (string? %) (read-string %) %) args)))))
|
(apply hash-map (map #(if (string? %) (read-string %) %) args)))))
|
||||||
|
@ -266,6 +266,12 @@ The function `new-individual` returns a new individual produced by selection and
|
|||||||
(diploid-uniform-addition (:instructions argmap) (:umad-rate argmap))
|
(diploid-uniform-addition (:instructions argmap) (:umad-rate argmap))
|
||||||
(diploid-uniform-deletion (:umad-rate argmap)))
|
(diploid-uniform-deletion (:umad-rate argmap)))
|
||||||
;
|
;
|
||||||
|
:diploid-vumad ;; variable umad: :umad-rate is interpreted as max, actual uniform 0-max
|
||||||
|
(let [rate (rand (:umad-rate argmap))]
|
||||||
|
(-> (:plushy (selection/select-parent pop argmap))
|
||||||
|
(diploid-uniform-addition (:instructions argmap) rate)
|
||||||
|
(diploid-uniform-deletion rate)))
|
||||||
|
;
|
||||||
:diploid-uniform-addition
|
:diploid-uniform-addition
|
||||||
(-> (:plushy (selection/select-parent pop argmap))
|
(-> (:plushy (selection/select-parent pop argmap))
|
||||||
(diploid-uniform-addition (:instructions argmap) (:umad-rate argmap)))
|
(diploid-uniform-addition (:instructions argmap) (:umad-rate argmap)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user