This blog is for documentation of the Autoconstructive Evolution project in the spring, 2011 course on Research in Artificial Intelligence at Hampshire College.
The code now runs perfectly again with no nasty java errors 🙂
Completed function for replacing some percentage of all point on a given tree with new subtrees
“Mutates Across the board with p % of every point being replaced by a subtree”
(let [old-genome (:genome i)
new-genome (loop [z old-genome i ((* count-points old-genome (/ p 100)) )]
(if (zero? i)
(zip/root (zip/replace z (random-code 20 pushcollider-atom-generators)))
(recur (zip/next z) (dec i))))]
(if (> (count-points new-genome) 50)
(individual. new-genome (evaluate new-genome)))))
I’ve been working with push collider. It’s slow going.
Doing a lot of reading on different mutation and crossover operators.
Trying to figure out ways to make some of those operators autoconstructive.
I found out that the uniform crossover operator has been shown to help programs find solutions faster than programs with only mutation operators and programs with only one-point and two-point crossover operators.
Im currently grappling with the question o how to make a crossover operator autoconstructive.
I’ve been working on Euler problems to try to get more familiar with Clojure.
for this week I set the goal of implementing auto simplify in push collider. It seems like it should be much easier than it is proving to be. I’m having a lot of trouble understanding the auto simplify code in clojush. As a result, I don’t actually know what the numbers I’m putting into the function do.
Recommend forking and we’ll get started, shall we?
As commit note says, everything is vanilla and waiting to be used.
Link here: https://github.com/dj/autoevo
I didn’t play with Clojure as much as I would like this week, I’m finding that learning the peculiarities of eclipse is unexpectedly challenging. despite still getting some errors I don’t know how to deal with, I am getting a feel for clojure.
Still getting proficient at Clojure.
Considered how much of a human touch you can introduce into the system.
Tried setting up a git server n hero(Hero HD died).