 ;; @@
 (def run-config
   (let [vars '[x]
-        functions (expression/get-functions #{:plus :minus :times :cos :sin})
+        functions (expression/get-functions #{:plus :minus :times})
         terminals (expression/terminal-generators vars)
         size-limit 80
         min-size 15
         ea-config (spea2/spea2-config
                     {:goals [:error :complexity]
-                     :archive-size 100
-                     :binary-ops [{:op (partial genetics/ninety-ten-sl-crossover size-limit) :repeat 45}]
-                     :unary-ops [{:op (partial genetics/random-tree-mutation functions terminals 3) :repeat 10}]})
+                     :archive-size 50
+                     :binary-ops [{:op (partial genetics/ninety-ten-sl-crossover size-limit) :repeat 23}]
+                     :unary-ops [{:op (partial genetics/random-tree-mutation functions terminals 3) :repeat 4}]})
         score-functions {:complexity tree/count-nodes
                          :error (fn [ex] (score/abs-error vars coords data ex))}]
     {:initial-zeitgeist      (evolution/make-zeitgeist
-                               (genetics/full-population functions terminals 100 7))
+                               (genetics/full-population functions terminals 50 7))
      :ea-config              ea-config
      :transformations        [(partial transform/apply-to-fraction-of-genotypes
                                        (partial transform/hill-descent

(time (def result (evolution/run-evolution run-config metrics)))
;; @@
;; ->
;;; ....................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................&quot;Elapsed time: 23855.184728 msecs&quot;
;;; 
;; <-
;; =>

(pareto-plot-population [:complexity :error] result)
;; @@
;; =>
;;; {"type":"vega","content":{"width":400,"height":247.2187957763672,"padding":{"bottom":20,"top":10,"right":10,"left":50},"scales":[{"name":"x","type":"linear","range":"width","zero":false,"domain":{"data":"fa5d2c59-3987-4782-947e-64a76501f21b","field":"data.x"}},{"name":"y","type":"linear","range":"height","nice":true,"zero":false,"domain":{"data":"fa5d2c59-3987-4782-947e-64a76501f21b","field":"data.y"}}],"axes":[{"scale":"x","type":"x"},{"scale":"y","type":"y"}],"data":[{"name":"fa5d2c59-3987-4782-947e-64a76501f21b","values":[{"x":1,"y":18.06185808871807},{"x":9,"y":17.437473383893103},{"x":25,"y":11.943621322043592},{"x":29,"y":10.404705812981964},{"x":15,"y":16.14043932830481},{"x":53,"y":7.646756642039627},{"x":53,"y":7.646756642039627},{"x":37,"y":8.205173007300937},{"x":37,"y":8.205173007300937},{"x":33,"y":9.809189102893447},{"x":33,"y":9.809189102893447},{"x":33,"y":9.809189102893447},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":35,"y":8.810792232696498},{"x":35,"y":8.810792232696498},{"x":35,"y":8.810792232696498},{"x":35,"y":8.810792232696498},{"x":35,"y":8.810792232696498},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":31,"y":10.38147296274901},{"x":31,"y":10.38147296274901},{"x":31,"y":10.38147296274901},{"x":31,"y":10.38147296274901},{"x":31,"y":10.38147296274901},{"x":27,"y":11.695158539297882},{"x":31,"y":10.38147296274901},{"x":27,"y":11.695158539297882},{"x":21,"y":15.348083185323146},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882}]},{"name":"620dda5c-f695-4b87-96c2-419366f5a96e","values":[{"x":49,"y":24.948035873127004},{"x":27,"y":17.82780948394664},{"x":43,"y":13956.856125472761},{"x":27,"y":113.49301755791079},{"x":17,"y":123.03530418850637},{"x":21,"y":394.9190213041745},{"x":25,"y":119.85400947772324},{"x":19,"y":18.39449947809655},{"x":19,"y":480.47440138059255},{"x":15,"y":481.23958712141206},{"x":15,"y":1965.4653502624392},{"x":39,"y":2104.3305671154135},{"x":15,"y":19.157947113392847},{"x":27,"y":20.23190520756959},{"x":15,"y":382.7917993818284},{"x":57,"y":20.33417369670331},{"x":17,"y":37.61673737180879},{"x":31,"y":128.36340809284184},{"x":15,"y":196620.49061618868},{"x":15,"y":205.5159840772227},{"x":39,"y":1305.592781139606},{"x":27,"y":1283.829642255697},{"x":15,"y":8057.752965593768},{"x":35,"y":303.5394288039683},{"x":19,"y":19.331540025427454},{"x":51,"y":77.65521933361605},{"x":15,"y":9450.139690750208},{"x":45,"y":147.19863980372298},{"x":15,"y":961.5212234105867},{"x":15,"y":791.7582724638464},{"x":31,"y":739.4303990881267},{"x":19,"y":20.491680726671394},{"x":31,"y":418.547767303149},{"x":15,"y":18.137687430096943},{"x":45,"y":1020.5895154783803},{"x":17,"y":66.69785021093253},{"x":71,"y":1097.29691917324},{"x":15,"y":245.74691307396137},{"x":35,"y":1384.552482419898},{"x":15,"y":17.855447413977206},{"x":27,"y":33.658361422291506},{"x":15,"y":194901.95600480653},{"x":59,"y":20.956228435069807},{"x":25,"y":45567.461816445655},{"x":25,"y":101.42688089731035},{"x":19,"y":68.85047808005694},{"x":15,"y":451.870011344135},{"x":43,"y":2970.4670702452204},{"x":41,"y":21.71229204824581},{"x":21,"y":79.3717864423943}]},{"name":"9c00dcae-10e6-4b15-8484-c844ced05ddc","values":[{"x":1,"y":18.06185808871807},{"x":9,"y":17.437473383893103},{"x":25,"y":11.943621322043592},{"x":29,"y":10.404705812981964},{"x":15,"y":16.14043932830481},{"x":53,"y":7.646756642039627},{"x":53,"y":7.646756642039627},{"x":37,"y":8.205173007300937},{"x":37,"y":8.205173007300937},{"x":33,"y":9.809189102893447},{"x":33,"y":9.809189102893447},{"x":33,"y":9.809189102893447},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":17,"y":16.12554308773659},{"x":35,"y":8.810792232696498},{"x":35,"y":8.810792232696498},{"x":35,"y":8.810792232696498},{"x":35,"y":8.810792232696498},{"x":35,"y":8.810792232696498},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882},{"x":31,"y":10.38147296274901},{"x":31,"y":10.38147296274901},{"x":31,"y":10.38147296274901},{"x":31,"y":10.38147296274901},{"x":31,"y":10.38147296274901},{"x":27,"y":11.695158539297882},{"x":31,"y":10.38147296274901},{"x":27,"y":11.695158539297882},{"x":21,"y":15.348083185323146},{"x":27,"y":11.695158539297882},{"x":27,"y":11.695158539297882}]}],"marks":[{"type":"symbol","from":{"data":"fa5d2c59-3987-4782-947e-64a76501f21b"},"properties":{"enter":{"x":{"scale":"x","field":"data.x"},"y":{"scale":"y","field":"data.y"},"fill":{"value":"red"},"fillOpacity":{"value":1}},"update":{"shape":"circle","size":{"value":70},"stroke":{"value":"transparent"}},"hover":{"size":{"value":210},"stroke":{"value":"white"}}}},{"type":"symbol","from":{"data":"620dda5c-f695-4b87-96c2-419366f5a96e"},"properties":{"enter":{"x":{"scale":"x","field":"data.x"},"y":{"scale":"y","field":"data.y"},"fill":{"value":"blue"},"fillOpacity":{"value":1}},"update":{"shape":"circle","size":{"value":70},"stroke":{"value":"transparent"}},"hover":{"size":{"value":210},"stroke":{"value":"white"}}}},{"type":"symbol","from":{"data":"9c00dcae-10e6-4b15-8484-c844ced05ddc"},"properties":{"enter":{"x":{"scale":"x","field":"data.x"},"y":{"scale":"y","field":"data.y"},"fill":{"value":"#ff29d2"},"fillOpacity":{"value":1}},"update":{"shape":"circle","size":{"value":70},"stroke":{"value":"transparent"}},"hover":{"size":{"value":210},"stroke":{"value":"white"}}}}]},"value":"#gorilla_repl.vega.VegaView{:content {:width 400, :height 247.2188, :padding {:bottom 20, :top 10, :right 10, :left 50}, :scales [{:name \"x\", :type \"linear\", :range \"width\", :zero false, :domain {:data \"fa5d2c59-3987-4782-947e-64a76501f21b\", :field \"data.x\"}} {:name \"y\", :type \"linear\", :range \"height\", :nice true, :zero false, :domain {:data \"fa5d2c59-3987-4782-947e-64a76501f21b\", :field \"data.y\"}}], :axes [{:scale \"x\", :type \"x\"} {:scale \"y\", :type \"y\"}], :data ({:name \"fa5d2c59-3987-4782-947e-64a76501f21b\", :values ({:x 1, :y 18.06185808871807} {:x 9, :y 17.437473383893103} {:x 25, :y 11.943621322043592} {:x 29, :y 10.404705812981964} {:x 15, :y 16.14043932830481} {:x 53, :y 7.646756642039627} {:x 53, :y 7.646756642039627} {:x 37, :y 8.205173007300937} {:x 37, :y 8.205173007300937} {:x 33, :y 9.809189102893447} {:x 33, :y 9.809189102893447} {:x 33, :y 9.809189102893447} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 35, :y 8.810792232696498} {:x 35, :y 8.810792232696498} {:x 35, :y 8.810792232696498} {:x 35, :y 8.810792232696498} {:x 35, :y 8.810792232696498} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 31, :y 10.38147296274901} {:x 31, :y 10.38147296274901} {:x 31, :y 10.38147296274901} {:x 31, :y 10.38147296274901} {:x 31, :y 10.38147296274901} {:x 27, :y 11.695158539297882} {:x 31, :y 10.38147296274901} {:x 27, :y 11.695158539297882} {:x 21, :y 15.348083185323146} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882})} {:name \"620dda5c-f695-4b87-96c2-419366f5a96e\", :values ({:x 49, :y 24.948035873127004} {:x 27, :y 17.82780948394664} {:x 43, :y 13956.856125472761} {:x 27, :y 113.49301755791079} {:x 17, :y 123.03530418850637} {:x 21, :y 394.9190213041745} {:x 25, :y 119.85400947772324} {:x 19, :y 18.39449947809655} {:x 19, :y 480.47440138059255} {:x 15, :y 481.23958712141206} {:x 15, :y 1965.4653502624392} {:x 39, :y 2104.3305671154135} {:x 15, :y 19.157947113392847} {:x 27, :y 20.23190520756959} {:x 15, :y 382.7917993818284} {:x 57, :y 20.33417369670331} {:x 17, :y 37.61673737180879} {:x 31, :y 128.36340809284184} {:x 15, :y 196620.49061618868} {:x 15, :y 205.5159840772227} {:x 39, :y 1305.592781139606} {:x 27, :y 1283.829642255697} {:x 15, :y 8057.752965593768} {:x 35, :y 303.5394288039683} {:x 19, :y 19.331540025427454} {:x 51, :y 77.65521933361605} {:x 15, :y 9450.139690750208} {:x 45, :y 147.19863980372298} {:x 15, :y 961.5212234105867} {:x 15, :y 791.7582724638464} {:x 31, :y 739.4303990881267} {:x 19, :y 20.491680726671394} {:x 31, :y 418.547767303149} {:x 15, :y 18.137687430096943} {:x 45, :y 1020.5895154783803} {:x 17, :y 66.69785021093253} {:x 71, :y 1097.29691917324} {:x 15, :y 245.74691307396137} {:x 35, :y 1384.552482419898} {:x 15, :y 17.855447413977206} {:x 27, :y 33.658361422291506} {:x 15, :y 194901.95600480653} {:x 59, :y 20.956228435069807} {:x 25, :y 45567.461816445655} {:x 25, :y 101.42688089731035} {:x 19, :y 68.85047808005694} {:x 15, :y 451.870011344135} {:x 43, :y 2970.4670702452204} {:x 41, :y 21.71229204824581} {:x 21, :y 79.3717864423943})} {:name \"9c00dcae-10e6-4b15-8484-c844ced05ddc\", :values ({:x 1, :y 18.06185808871807} {:x 9, :y 17.437473383893103} {:x 25, :y 11.943621322043592} {:x 29, :y 10.404705812981964} {:x 15, :y 16.14043932830481} {:x 53, :y 7.646756642039627} {:x 53, :y 7.646756642039627} {:x 37, :y 8.205173007300937} {:x 37, :y 8.205173007300937} {:x 33, :y 9.809189102893447} {:x 33, :y 9.809189102893447} {:x 33, :y 9.809189102893447} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 17, :y 16.12554308773659} {:x 35, :y 8.810792232696498} {:x 35, :y 8.810792232696498} {:x 35, :y 8.810792232696498} {:x 35, :y 8.810792232696498} {:x 35, :y 8.810792232696498} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882} {:x 31, :y 10.38147296274901} {:x 31, :y 10.38147296274901} {:x 31, :y 10.38147296274901} {:x 31, :y 10.38147296274901} {:x 31, :y 10.38147296274901} {:x 27, :y 11.695158539297882} {:x 31, :y 10.38147296274901} {:x 27, :y 11.695158539297882} {:x 21, :y 15.348083185323146} {:x 27, :y 11.695158539297882} {:x 27, :y 11.695158539297882})}), :marks ({:type \"symbol\", :from {:data \"fa5d2c59-3987-4782-947e-64a76501f21b\"}, :properties {:enter {:x {:scale \"x\", :field \"data.x\"}, :y {:scale \"y\", :field \"data.y\"}, :fill {:value \"red\"}, :fillOpacity {:value 1}}, :update {:shape \"circle\", :size {:value 70}, :stroke {:value \"transparent\"}}, :hover {:size {:value 210}, :stroke {:value \"white\"}}}} {:type \"symbol\", :from {:data \"620dda5c-f695-4b87-96c2-419366f5a96e\"}, :properties {:enter {:x {:scale \"x\", :field \"data.x\"}, :y {:scale \"y\", :field \"data.y\"}, :fill {:value \"blue\"}, :fillOpacity {:value 1}}, :update {:shape \"circle\", :size {:value 70}, :stroke {:value \"transparent\"}}, :hover {:size {:value 210}, :stroke {:value \"white\"}}}} {:type \"symbol\", :from {:data \"9c00dcae-10e6-4b15-8484-c844ced05ddc\"}, :properties {:enter {:x {:scale \"x\", :field \"data.x\"}, :y {:scale \"y\", :field \"data.y\"}, :fill {:value \"#ff29d2\"}, :fillOpacity {:value 1}}, :update {:shape \"circle\", :size {:value 70}, :stroke {:value \"transparent\"}}, :hover {:size {:value 210}, :stroke {:value \"white\"}}}})}}"}
;; <=

;; @@
