1. The function of the toString() method is to provide a short,
typically one word, description of the function.
2. Your eval function is empty -- but this is where you need to
actually have your function do its work, the work you described in
toString().
Sean
On Aug 24, 2006, at 9:44 PM, Richard Hague wrote:
> I am using ECJ 15.
> I have designed a GP using ECJ that should create a
> program that controls a soccer agent. I am just unsure
> that I have designed it correctly.
>
> #Below is one of my functions I have used to create my
> move function set:
>
> public class ballfar extends GPNode
> {
> public String toString() {
> return " if(ball != null && ball.m_distance > 0.7)
> "
> + "{"
> + " if( ball.m_direction != 0 )"
> + " m_krislet.turn(ball.m_direction); "
> + " else "
> + " m_krislet.dash(10*ball.m_distance); "
> + "justKicked = false;"
> + "}"; }
>
> public void checkConstraints(final EvolutionState
> state,
> final int tree,
> final GPIndividual
> typicalIndividual,
> final Parameter
> individualBase)
> {
>
> super.checkConstraints(state,tree,typicalIndividual,individualBase);
> if (children.length!=2)
> state.output.error("Incorrect number of
> children for node " +
> toStringForError() + "
> at " +
> individualBase);
> }
>
>
> public void eval(final EvolutionState state,
> final int thread,
> final GPData input,
> final ADFStack stack,
> final GPIndividual individual,
> final Problem problem)
> {
>
>
> children[0].eval(state,thread,input,stack,individual,problem);
>
> children[1].eval(state,thread,input,stack,individual,problem);
>
>
> }
>
> }
>
> I put the code that the main robot class needs in the
> toString() method because I didn't know if there was
> anyway to print out the code within GPNodes from the
> finished tree of the individual. When the best
> individual is found I copy the tree from the out.stat
> file then play one game of soccer with it. The
> performance of the tree is calculated according to how
> well the soccer agent's play. This performance is used
> to calculate the fitness of the next generation.
>
> Am I doing this in the correct way??
> Will the GP be able to learn which functions produce a
> program using this method???
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
|