diff --git a/src/propeller/session.cljc b/src/propeller/session.cljc index e638c35..e0469cb 100755 --- a/src/propeller/session.cljc +++ b/src/propeller/session.cljc @@ -35,7 +35,7 @@ #_(genome/plushy->push (genome/make-random-plushy (get-stack-instructions #{:float :integer :exec :boolean}) 20)) -(gp/gp {:instructions propeller.problems.software.number-io/instructions +#_(gp/gp {:instructions propeller.problems.software.number-io/instructions :error-function propeller.problems.software.number-io/error-function :max-generations 500 :population-size 500 @@ -46,3 +46,30 @@ :umad-rate 0.1 :variation {:umad 0.5 :crossover 0.5} :elitism false}) + +#_(gp/gp {:instructions propeller.problems.simple-regression/instructions + :error-function propeller.problems.simple-regression/error-function + :max-generations 500 + :population-size 500 + :max-initial-plushy-size 100 + :step-limit 200 + :parent-selection :tournament + :tournament-size 5 + :umad-rate 0.01 + :variation {:umad 1.0 + :crossover 0.0} + :elitism false}) + +(gp/gp {:instructions propeller.problems.simple-regression/instructions + :error-function propeller.problems.simple-regression/error-function + :max-generations 500 + :population-size 500 + :max-initial-plushy-size 100 + :step-limit 200 + :parent-selection :tournament + :tournament-size 5 + :umad-rate 0.1 + :variation {:umad 1.0 + :crossover 0.0} + :elitism false}) + diff --git a/src/propeller/variation.cljc b/src/propeller/variation.cljc index ffe0e9e..8b98f18 100755 --- a/src/propeller/variation.cljc +++ b/src/propeller/variation.cljc @@ -84,21 +84,21 @@ [xover add del] (if (:diploid argmap) [diploid-crossover diploid-uniform-addition diploid-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)] + xover-prob (or (:crossover (:variation argmap)) 0) + umad-prob (or (:umad (:variation argmap)) 0) + flip-prob (or (:flip (:variation argmap)) 0)] (cond - (< prob xover-rate) + (< prob xover-prob) (xover (:plushy (selection/select-parent pop argmap)) (:plushy (selection/select-parent pop argmap))) ; - (< prob (+ xover-rate umad-rate)) + (< prob (+ xover-prob umad-prob)) (del (add (:plushy (selection/select-parent pop argmap)) (:instructions argmap) - umad-rate) - umad-rate) + (:umad-rate argmap)) + (:umad-rate argmap)) ; - (< prob (+ xover-rate umad-rate flip-rate)) - (diploid-flip (:plushy (selection/select-parent pop argmap)) flip-rate) + (< prob (+ xover-prob umad-prob flip-prob)) + (diploid-flip (:plushy (selection/select-parent pop argmap)) flip-prob) ; :else (:plushy (selection/select-parent pop argmap))))})