PROG was Koza's attempt to provide block-like functionality similar
to Lisp's "progn" or "prog1" functions. But in Lisp, ALL functions
return values. (progn . . . . ) returns the value of the last item
evaluated within it. prog1 returns the value of the first item.
There's absolutely no reason why ECJ can't be set up to do that
also. All nodes can return values if you wish.
If you're new to GP as well as ECJ, then ECJ may be somewhat
daunting. And if you're doing control of an *actual* robot, this is
probably going to be too slow as evolutionary computation methods
generally take a very large number of evaluations. I presume you're
doing this in simulation? If so, what simulator? Robotics projects
are always interesting to our group -- see http://cs.gmu.edu/~eclab/
robots/flockbots/
Sean
On Jun 12, 2006, at 2:44 PM, Serethos wrote:
> Im very new to ECJ and GP so I need a little Basic help. I want to
>
> realize a control program for a robot with servo motors and some IR-
> Sensors. To control him I take something like that:
>
> Terminal Set = {IR0, IR1, ..IRn, Constant:0.255}
> Function Set = {+, -, /, *, sleep(x), SetServo0,
> SetServo1,..SetServon, Proc4, <, >, ...}
>
> As I understand the Proc-Function (like in Koza's Ant control) is
> only a way to express a serial chain of commands. It has no return
> value and therfore can't be a node to most other functions like +,
> -, sleep etc. (while normal arithmetic functions with a return
> value are "node-compüatible" to each other)
>
> How can I manage this constraints?
|