Ondrej Pacovsky wrote:
> David R White wrote:
>> Hi Ondrej,
>> In the past I've written individuals out to a C source file, compiled
>> them using GCC and run them through a processor simulator. It is
>> fairly straightforward to implement, I use makeCTree and override
>> this method where necessary.
> This is quite interesting, is the source available somewhere ?
I don't have any generic source for this, it's very much
problem-specific. However, I'm happy to help. Might be better to take
detailed discussion outside of the mailing list? You can always post any
generalised code at a later point.
>> It is quite slow, but there are plenty of ways to speed up the
>> process of compiling and evaluating, depending on the nature of the
>> problem you're trying to solve. I've also recently started using
>> Master-Slave evaluation to run my experiments across machines, which
>> is a very scalable way of dealing with this situation. Whether it
>> will be fast enough for your work depends on the problem you're
>> solving (e.g. can you compile the individual and evaluate it in a
>> single execution? or would you have to re-compile or execute multiple
>> times?) and the number of generations and population size.
> I need to re-compile each individual each time it changes (usually
> every generation). But my fitness eval means calling >10^3 times the
> same individual, so the cost of compilation could be overcome if the
> single tree eval call is significantly faster after compilation.
Again, it will depend on the nature of your fitness evaluation.
>> Ondrej Pacovsky wrote:
>>> I was wondering whether someone tried converting the GP individual to
>>> java (or other) code (perhaps by the ECJ to Java converter) and
>>> compiling it before actually running the evaluation. This is of course
>>> quite slow, but for symbolic regression on many training values
>>> could be
>>> interesting. Thinking of 10^3 and more evals per individual per
>>> -- Ondrej
David R White
Department of Computer Science
University of York
York YO10 5DD