| View previous topic :: View next topic |
| Author |
Message |
Ken T. Guest
|
Posted: Thu Nov 20, 2008 4:18 am Post subject: Genetic Programming Representations |
|
|
I took my first foray into genetic programming last weekend. I'm
familiar with other kinds of evolutionary computation, but I've never
before tried to evolve programs.
So, my first choice was which representation to use. I decided to use a
representation that I'm familiar with, allows for fast evaluation, and
permits the use of something close to the standard operators from genetic
algorithms and evolutionary computation. So I wrote a simple virtual
machine for a primitive processor I created to make implementation easy.
I used double point crossover, and something close to a standard mutation
operator from EAs or GAs.
This worked great.
I wrote the Sante Fe Ant Trail problem to test the system out with, and
it performs well, or so I thought.
Then I looked at the kind of results that people were getting with tree
structures and mine just don't compare. The reason was obvious. The
search space for my general processor is much bigger than that of the
standard tree based program for solving Artificial Ants.
The more I thought about this, the more it made me wonder, do you
normally know enough about a problem you wish to solve with GP to reduce
the complexity of the output down to only a fraction of that that would
be required for a general purpose processor, even a primitive one?
It also made me wonder whether it is reasonable to compare results
between different attempts to solve a problem with GP. For example, my
program had to evolve out the operations Prog2 and Prog3 that are
included in the non-terminal set for the standard implementation of The
Sante Fe Ant Trail.
Any comments on this topic would be appreciated. How does this work out
in practice?
Thanks.
--
Ken T.
A distributed system is one in which the failure of a computer you
didn't even know existed can render your own computer unusable.
-- Les Lamport |
|
| |
|
Back to top |
Ken T. Guest
|
Posted: Thu Nov 20, 2008 5:50 am Post subject: Re: Genetic Programming Representations |
|
|
On Wed, 19 Nov 2008 22:18:08 +0000, I wrote:
| Quote: | I took my first foray into genetic programming last weekend. I'm
familiar with other kinds of evolutionary computation, but I've never
before tried to evolve programs.
..... |
One more thing I wanted to ask about. I implemented intron counting
based on what I read in the text I have on Genetic programming. I
thought it would be interesting to see the explosive intron growth
mentioned in the book.
Well, my results were somewhat different than that reported in the text.
Introns rapidly take over more than 90% of the program. If I stop at
this point, I'm still missing a good possibility of improvement. If I
continue up to 99%, there is still no assurance that my run has
stagnated.
The only think I can think of that might be happening is that some
individuals in the population have been destroyed so utterly that most of
their length isn't being executed. There must be many of these because a
sample of 5% of the population results in > 95% introns.
Maybe I should just ignore this metric? Any hints on what I might be
doing wrong?
--
Ken T.
When you choose the lesser of two evils, always remember that it is
still an evil.
-- Max Lerner |
|
| |
|
Back to top |
|