Re: [jgap-users] GP: Saving an evolved program
Brought to you by:
klausikm
From: Klaus M. <jg...@kl...> - 2010-09-20 08:52:50
|
Hello Felix, you are right, the reason for the problem are that the GP commands do not support the persistent representation. The solution would be to realize this in CommandGene generically, which calls specialized methods in the GP commands (which are sub classes of CommandGene). Maybe you could instead use Xstream (or JGAPGPXStream). See class org.jgap.util.PersistableObject for a convenient method on accessing Xstream's functionality. Best Klaus www.klaus-meffert.com > -----Original Message----- > From: Felix H. Dahlke [mailto:fh...@ub...] > Sent: Friday, September 17, 2010 2:28 PM > To: jga...@li... > Subject: [jgap-users] GP: Saving an evolved program > > Hi, > > I'm planning to save and execute a program evolved using GP. > What is the best way to do that? > > I tried to store the first chromosome (there never seem to be > more) of my evolved program using the > getPersistentRepresentation() method as > follows: > > IGPProgram p = gp.getAllTimeBest(); > ProgramChromosome pc = p.getChromosome(0); > String pr = pc.getPersistentRepresentation(); > > This works fine, pr looks like this: > > > <org.jgap.gp.function.Add%23%3A2%3Ajava.lang.Class%3A0%3Anull% > 7Enull%7E> > > <org.jgap.gp.terminal.Argument%23%3A0%3Ajava.lang.Class%3A0%3A > null%7Enull%7E> > > <org.jgap.gp.function.Add%23%3A2%3Ajava.lang.Class%3A0%3Anull% > 7Enull%7E> > > <org.jgap.gp.terminal.Argument%23%3A0%3Ajava.lang.Class%3A0%3A > null%7Enull%7E> > > <org.jgap.gp.terminal.Argument%23%3A0%3Ajava.lang.Class%3A0%3A > null%7Enull%7E> > > I then try to load the chromosome from the persistent representation: > > ProgramChromosome npc = new > ProgramChromosome(gp.getGPConfiguration()); > npc.setValueFromPersistentRepresentation(pr); > > But this fails with the following exception: > > org.jgap.UnsupportedRepresentationException: > java.lang.NoSuchMethodException: > org.jgap.gp.function.Add.<init>(org.jgap.gp.impl.GPConfiguration) > at > org.jgap.gp.impl.ProgramChromosome.setValueFromPersistentRepre > sentation(ProgramChromosome.java:1385) > > > |