ECJ-INTEREST-L Archives

August 2006

ECJ-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Proportional Font
Show Text Part by Default
Condense Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Date:
Thu, 24 Aug 2006 05:44:52 -0700
Reply-To:
ECJ Evolutionary Computation Toolkit <[log in to unmask]>
Subject:
MIME-Version:
1.0
Content-Transfer-Encoding:
8bit
Content-Type:
text/plain; charset=iso-8859-1
From:
Richard Hague <[log in to unmask]>
Comments:
Parts/Attachments:
text/plain (77 lines)
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 

ATOM RSS1 RSS2