diff --git a/.DS_Store b/.DS_Store index feca861..4c8696c 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/src/.DS_Store b/src/.DS_Store index bf7db11..0590414 100644 Binary files a/src/.DS_Store and b/src/.DS_Store differ diff --git a/src/propeller/.DS_Store b/src/propeller/.DS_Store index ed2fbb1..a193822 100644 Binary files a/src/propeller/.DS_Store and b/src/propeller/.DS_Store differ diff --git a/src/propeller/problems/valiant.cljc b/src/propeller/problems/valiant.cljc index d47fd86..e43d899 100644 --- a/src/propeller/problems/valiant.cljc +++ b/src/propeller/problems/valiant.cljc @@ -25,11 +25,12 @@ (def instructions (vec (concat (for [i (range num-inputs)] (keyword (str "in" i))) (take num-inputs - (cycle [:boolean_and - :boolean_or - :boolean_not - :exec_if - 'close]))))) + (cycle [:boolean_xor + ;:boolean_or + ;:boolean_not + ;:exec_if + ;'close + ]))))) (defn error-function ([argmap individual] diff --git a/src/propeller/session.cljc b/src/propeller/session.cljc index 73bdf24..9f83bd4 100755 --- a/src/propeller/session.cljc +++ b/src/propeller/session.cljc @@ -156,19 +156,55 @@ ; :diploid true}) +;(gp/gp {:instructions propeller.problems.valiant/instructions +; :error-function propeller.problems.valiant/error-function +; :max-generations 500 +; :population-size 50 +; :max-initial-plushy-size 1000 +; :step-limit 2000 +; :parent-selection :tournament +; :tournament-size 10 +; :umad-rate 0.01 +; :diploid-flip-rate 0.01 +; :variation {:umad 0.9 +; :diploid-flip 0.1 +; } +; :elitism false +; :diploid true}) + +;(gp/gp {:instructions propeller.problems.valiant/instructions +; :error-function propeller.problems.valiant/error-function +; :max-generations 500 +; :population-size 100 +; :max-initial-plushy-size 1000 +; :step-limit 2000 +; :parent-selection :tournament +; :tournament-size 10 +; :umad-rate 0.01 +; :diploid-flip-rate 0.01 +; :variation {:umad 0.9 +; :diploid-flip 0.1 +; } +; :elitism false +; :diploid true}) + +;;; below is when I switched to just xor + (gp/gp {:instructions propeller.problems.valiant/instructions :error-function propeller.problems.valiant/error-function :max-generations 500 :population-size 500 - :max-initial-plushy-size 1000 + :max-initial-plushy-size 50 :step-limit 2000 :parent-selection :lexicase - :tournament-size 5 - :umad-rate 0.001 - :diploid-flip-rate 0.001 + :tournament-size 2 + :umad-rate 0.01 + :diploid-flip-rate 0.01 :variation {:umad 0.5 - :diploid-flip 0.5 + :crossover 0.25 + :diploid-flip 0.25 } :elitism false :diploid true}) + diff --git a/src/propeller/variation.cljc b/src/propeller/variation.cljc index 7c2acd3..1c01464 100755 --- a/src/propeller/variation.cljc +++ b/src/propeller/variation.cljc @@ -18,7 +18,7 @@ (defn diploid-crossover "Crosses over two individuals using uniform crossover. Pads shorter one." - [plushy-a plushy-b argmap] + [plushy-a plushy-b] (let [plushy-a (partition 2 plushy-a) plushy-b (partition 2 plushy-b) shorter (min-key count plushy-a plushy-b)