Print

Print


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?