schrum2 / MM-NEATv2

MM-NEAT version 2.0 is no longer supported. Please get MM-NEAT 3+ from https://github.com/schrum2/MM-NEAT
Other
11 stars 5 forks source link

Make HyperNEAT Work with MultiPop Coevolution #388

Closed DarwinJohnson closed 7 years ago

DarwinJohnson commented 7 years ago

Using HyperNEAT doesn't work when evolving with multiple populations. Find a way to fix this.

schrum2 commented 7 years ago

Do put some work into this. We probably need to sit down and talk about it, but if I'm not around then go ahead and document the cause of the error in this GitHub issue (stack trace, along with any other useful information you can figure out)

DarwinJohnson commented 7 years ago

The way Fitness Functions were being registered has been fixed, and the Other Scores are now tracked properly. The MultiPop Coevolution batch file now all run, even those using HyperNEAT.

DarwinJohnson commented 7 years ago

It looks like the Othello-HNMultiPopCompCoevolve Batch File has crashed after 5 generations. I am unsure why it is crashing this time. Here is a picture of the error trace:

othello-hnmultipopcompcoevolve2 error

DarwinJohnson commented 7 years ago

The Error happened again. This appears to not just be a one-time thing. This will need to be fixed soon.

DarwinJohnson commented 7 years ago

Here is the Error Trace from Eclipse:

Exception in thread "main" java.lang.AssertionError: Archetype 0 added at pos 5 (inno=1,ftype=1,ntype=1,frozen=false) did not exhibit proper node order after node addition: [(inno=-1,ftype=1,ntype=0,frozen=false), (inno=-2,ftype=1,ntype=0,frozen=false), (inno=-3,ftype=1,ntype=0,frozen=false), (inno=-4,ftype=1,ntype=0,frozen=false), (inno=-5,ftype=1,ntype=0,frozen=false), (inno=1,ftype=1,ntype=1,frozen=false), (inno=-6,ftype=1,ntype=0,frozen=false), (inno=-7,ftype=1,ntype=0,frozen=false), (inno=-8,ftype=1,ntype=0,frozen=false), (inno=-9,ftype=1,ntype=0,frozen=false), (inno=-10,ftype=1,ntype=0,frozen=false), (inno=-11,ftype=1,ntype=0,frozen=false), (inno=-12,ftype=1,ntype=0,frozen=false), (inno=-13,ftype=1,ntype=0,frozen=false), (inno=-14,ftype=1,ntype=0,frozen=false), (inno=-15,ftype=1,ntype=0,frozen=false), (inno=-16,ftype=1,ntype=0,frozen=false), (inno=-17,ftype=1,ntype=0,frozen=false), (inno=-18,ftype=1,ntype=0,frozen=false), (inno=-19,ftype=1,ntype=0,frozen=false), (inno=-20,ftype=1,ntype=0,frozen=false), (inno=-21,ftype=1,ntype=0,frozen=false), (inno=-22,ftype=1,ntype=0,frozen=false), (inno=-23,ftype=1,ntype=0,frozen=false), (inno=-24,ftype=1,ntype=0,frozen=false), (inno=-25,ftype=1,ntype=0,frozen=false), (inno=-26,ftype=1,ntype=0,frozen=false), (inno=-27,ftype=1,ntype=0,frozen=false), (inno=-28,ftype=1,ntype=0,frozen=false), (inno=-29,ftype=1,ntype=0,frozen=false), (inno=-30,ftype=1,ntype=0,frozen=false), (inno=-31,ftype=1,ntype=0,frozen=false), (inno=-32,ftype=1,ntype=0,frozen=false), (inno=-33,ftype=1,ntype=0,frozen=false), (inno=-34,ftype=1,ntype=0,frozen=false), (inno=-35,ftype=1,ntype=0,frozen=false), (inno=-36,ftype=1,ntype=0,frozen=false), (inno=-37,ftype=1,ntype=0,frozen=false), (inno=-38,ftype=1,ntype=0,frozen=false), (inno=-39,ftype=1,ntype=0,frozen=false), (inno=-40,ftype=1,ntype=0,frozen=false), (inno=-41,ftype=1,ntype=0,frozen=false), (inno=-42,ftype=1,ntype=0,frozen=false), (inno=-43,ftype=1,ntype=0,frozen=false), (inno=-44,ftype=1,ntype=0,frozen=false), (inno=-45,ftype=1,ntype=0,frozen=false), (inno=-46,ftype=1,ntype=0,frozen=false), (inno=-47,ftype=1,ntype=0,frozen=false), (inno=-48,ftype=1,ntype=0,frozen=false), (inno=-49,ftype=1,ntype=0,frozen=false), (inno=-50,ftype=1,ntype=0,frozen=false), (inno=-51,ftype=1,ntype=0,frozen=false), (inno=-52,ftype=1,ntype=0,frozen=false), (inno=-53,ftype=1,ntype=0,frozen=false), (inno=-54,ftype=1,ntype=0,frozen=false), (inno=-55,ftype=1,ntype=0,frozen=false), (inno=-56,ftype=1,ntype=0,frozen=false), (inno=-57,ftype=1,ntype=0,frozen=false), (inno=-58,ftype=1,ntype=0,frozen=false), (inno=-59,ftype=1,ntype=0,frozen=false), (inno=-60,ftype=1,ntype=0,frozen=false), (inno=-61,ftype=1,ntype=0,frozen=false), (inno=-62,ftype=1,ntype=0,frozen=false), (inno=-63,ftype=1,ntype=0,frozen=false), (inno=-64,ftype=1,ntype=0,frozen=false), (inno=-65,ftype=1,ntype=2,frozen=false)] at edu.utexas.cs.nn.evolution.EvolutionaryHistory.archetypeAdd(EvolutionaryHistory.java:499) at edu.utexas.cs.nn.evolution.genotypes.TWEANNGenotype.spliceNode(TWEANNGenotype.java:1121) at edu.utexas.cs.nn.evolution.genotypes.TWEANNGenotype.spliceMutation(TWEANNGenotype.java:1092) at edu.utexas.cs.nn.evolution.genotypes.TWEANNGenotype.spliceMutation(TWEANNGenotype.java:1073) at edu.utexas.cs.nn.evolution.mutation.tweann.SpliceNeuronMutation.mutate(SpliceNeuronMutation.java:29) at edu.utexas.cs.nn.evolution.mutation.Mutation.go(Mutation.java:29) at edu.utexas.cs.nn.evolution.genotypes.TWEANNGenotype.mutate(TWEANNGenotype.java:645) at edu.utexas.cs.nn.evolution.nsga2.NSGA2.generateNSGA2Children(NSGA2.java:159) at edu.utexas.cs.nn.evolution.mulambda.CoevolutionMuLambda.generateChildren(CoevolutionMuLambda.java:306) at edu.utexas.cs.nn.evolution.mulambda.CoevolutionMuLambda.processChildren(CoevolutionMuLambda.java:278) at edu.utexas.cs.nn.evolution.mulambda.CoevolutionMuLambda.getNextGeneration(CoevolutionMuLambda.java:211) at edu.utexas.cs.nn.experiment.evolution.MultiplePopulationGenerationalEAExperiment.run(MultiplePopulationGenerationalEAExperiment.java:148) at edu.utexas.cs.nn.MMNEAT.MMNEAT.run(MMNEAT.java:814) at edu.utexas.cs.nn.MMNEAT.MMNEAT.evolutionaryRun(MMNEAT.java:982) at edu.utexas.cs.nn.MMNEAT.MMNEAT.main(MMNEAT.java:942)

schrum2 commented 7 years ago

From a/the run that crashed, package up the results directory in a zip file and place in Google Drive, then email/share the link with me.

DarwinJohnson commented 7 years ago

Placed the zipped Results Directory in the Artifacts Drive and shared the link. The directory is from the same HNMultiPop Othello Task as the picture shown above.

DarwinJohnson commented 7 years ago

Attempted to run Othello-HNMultiPopCompCoevolve again, and another crash occured. Documented the crash log in another picture. Will export the JAR and run over the weekend to ensure that the code isn't working. Here is the documented crash:

othello-hnmultipopcompcoevolve4 error

schrum2 commented 7 years ago

After running for 20 generations without problems, I'm fairly certain this is fixed