Interesting approach. I was thinking more along the lines of my primitives being "move-randomly" "drop-pheromone" "pickup-food" "move-towards-home" where my functions would be like "if-food-here" or "if-carrying-food" or "move-to-adjacent-food-else". I'll put some thought into what you said though, thanks. If I were to model it like above, doubleData wouldn't make a lot of sense,w ould it?
DoubleData are basically doubles, that will do for now.
Basically, you could copy another two-paramter function (such as +-*/)
and rename it goto. It will then accept two doubles, which is fine. No
need to change that. You probably wanna make goto return a double
aswell, as you will get things like goto(goto(x,y), z) which won't
make sense otherwise.
2010/3/28 cheese mokney <[log in to unmask]>:
> Huge thanks for the reply. You've been very helpful and it's appreciated.
> Finally, in tutorial 4, you evaluate terminals as "DoubleData". What would
> be a suitable replacement for my program? This particuliar mapping seems
> like it should be easy but it's not quite clicking.
> On Sun, Mar 28, 2010 at 12:49 PM, Claes Gyllenswärd <[log in to unmask]>
>> It still sounds like tutorial 4 is the starting place.
>> I would start like this:
>> Reduce the logic to very shortest and simplest function that you can
>> measure a fitness on.
>> Say a random walking direction. No food < lots of food, ofc.
>> This is easy to describe as goto(x, y). Write each program to a file
>> from the evaluator, and run your program, read and interpret your
>> program, and return the fitness.
>> Rinse and repeat with more functions to enable more complicated behaviour.
>> 2010/3/28 cheese mokney <[log in to unmask]>:
>> > Thanks for the reply. To be more specific, I have a program with a
>> > bunch of
>> > ants trying to eat food from food piles placed across the map. From
>> > their
>> > home base, they move randomly until finding a food pile. They take a
>> > piece
>> > of food and move it back to home. On the way home, they drop
>> > "pheromones"
>> > which guide other ants to the food pile. If an ant sense pheromone, it
>> > follows it instead of moving randomly so it can be guided to home.
>> > As you can see, a lot of that is logic guided and I'd like to use a GP
>> > to
>> > run it instead.
>> > On Sun, Mar 28, 2010 at 9:05 AM, Claes Gyllenswärd <[log in to unmask]>
>> > wrote:
>> >> What are doing is a bit more complex than that, but I think tutorial 4
>> >> is what you are looking for.
>> >> You should be able to start there and expand from it. If not, try to
>> >> be more specific about your problem
>> >> 2010/3/28 cheese mokney <[log in to unmask]>:
>> >> > Hi all,
>> >> > I have created a simple simulation with a GUI and programmed the
>> >> > logic
>> >> > rules
>> >> > in and tested the simulation. Now, instead of programming hte logic
>> >> > rules
>> >> > in, I want to give the rules and conditions as functions and
>> >> > terminals
>> >> > to a
>> >> > GP and have the program be run via GP. How can I implement ECJ's gp
>> >> > modules
>> >> > in my project? How might I set this up? Is there a decent example I
>> >> > can be
>> >> > pointed to?
>> >> > Thanks!