
Signature
Daniel Dyer
http://www.uncommons.org
>>> This all still very much work-in-progress, but feel free to download
>>> and play, and to make comments and suggestions for improvements to both
[quoted text clipped - 9 lines]
> It's a possibility. What kind of problems do you envisage applying this
> to?
Generating random programs/algorithms to solve a given problem.
Honestly, though, I haven't put much thought into this, so I'm not sure how
feasible it would be. If I had to undertake this task, I'd probably try to
generate code for a functional language with zero side effects (so variable
assignments don't exist, and so variables don't exist, and so I don't have
to worry about checking that a variable is declared before it's used, for
example).
An easy mutation scheme would be to select a random point in the tree,
discard everything below it, and generate a new subtree branch. The problem
with that is that the degree of "mutancy" depends on how high up in the tree
the random point is chosen, and depending on the grammar, there may be zero
randomness involved in selecting the children below a certain point. I'm not
sure how one would implement cross-over with trees, however. Did you
implement cross-over for permutations, and if so, how did you do it?
- Oliver
Daniel Dyer - 25 Sep 2006 22:48 GMT
>>> How about a candidate factory which generates a random XML
>>> document which complies to a provided XSD? Or a subset might be handy
[quoted text clipped - 13 lines]
> so I don't have to worry about checking that a variable is declared
> before it's used, for example).
The functional idea is one that had occurred to me too, though I haven't
really considered it beyond "hey, maybe I could evolve Haskell
programs...". http://www.genetic-programming.org/ has a lot of detail
about evolving programs.
> An easy mutation scheme would be to select a random point in the
> tree, discard everything below it, and generate a new subtree branch.
[quoted text clipped - 4 lines]
> with trees, however. Did you implement cross-over for permutations, and
> if so, how did you do it?
When implementing an EA for the travelling salesman problem, I used only
mutation for the permutations. However, ordered cross-over operations are
possible (see http://www.permutationcity.co.uk/projects/mutants/tsp.html
for an example).
Dan.

Signature
Daniel Dyer
http://www.uncommons.org