# Copyright 2010 by Sean Luke and George Mason University # Licensed under the Academic Free License version 3.0 # See the file "LICENSE" for more information # We don't include koza.params as a parent here -- doing so creates # lots of parameter file inheritance problems. Instead you should # include this parameter file FIRST, and then include something # which ultimately includes the koza.params parameter file later. # The problem is redefined as a GEProblem. The ACTUAL problem # will be defined in eval.problem.problem eval.problem = ec.gp.ge.GEProblem # We first define the GESpecies and state that it uses a GrammarParser # by default. pop.subpop.0.species = ec.gp.ge.GESpecies pop.subpop.0.species.parser = ec.gp.ge.GrammarParser # The individual is a GEIndividual pop.subpop.0.species = ec.gp.ge.GESpecies pop.subpop.0.species.ind = ec.gp.ge.GEIndividual pop.subpop.0.species.fitness = ec.gp.koza.KozaFitness # We'll allow 256 possibilities per gene (the maximum anyway # since GEIndividual is a ByteVectorIndividual). Crossover-type # is entirely unused. pop.subpop.0.species.min-gene = -128 pop.subpop.0.species.max-gene = 127 pop.subpop.0.species.mutation-prob = 0.01 # This isn't used at all but we include it here to quiet a warning from ECJ pop.subpop.0.species.crossover-type = one # Individuals are built using geometric series. The minimum allowed # size is 5. pop.subpop.0.species.genome-size = geometric pop.subpop.0.species.geometric-prob = 0.85 pop.subpop.0.species.min-initial-size = 5 # The following pipeline is fairly arbitrary. You may wish to create # your own pipeline instead. pop.subpop.0.species.pipe = ec.breed.MultiBreedingPipeline pop.subpop.0.species.pipe.num-sources = 3 pop.subpop.0.species.pipe.source.0 = ec.vector.breed.ListCrossoverPipeline pop.subpop.0.species.pipe.source.0.source.0 = ec.gp.ge.breed.GETruncationPipeline pop.subpop.0.species.pipe.source.0.source.0.source.0 = ec.select.TournamentSelection pop.subpop.0.species.pipe.source.0.source.1 = same pop.subpop.0.species.pipe.source.0.prob = 0.2 pop.subpop.0.species.pipe.source.1 = ec.vector.breed.GeneDuplicationPipeline pop.subpop.0.species.pipe.source.1.source.0 = ec.gp.ge.breed.GETruncationPipeline pop.subpop.0.species.pipe.source.1.source.0.source.0 = ec.select.TournamentSelection pop.subpop.0.species.pipe.source.1.prob = 0.55 pop.subpop.0.species.pipe.source.2 = ec.vector.breed.VectorMutationPipeline pop.subpop.0.species.pipe.source.2.source.0 = ec.select.TournamentSelection pop.subpop.0.species.pipe.source.2.prob = 0.05 # This does a nice job but we're getting rid of it for now #breed.elite.0 = 1 select.tournament.size = 7 # Build the dummy GP Individual information. This stuff is necessary to convince # GP that all is well and good with the trees that GE is creating and handing to # GP to evaluate. pop.subpop.0.species.gp-species = ec.gp.GPSpecies pop.subpop.0.species.gp-species.fitness = ec.gp.koza.KozaFitness pop.subpop.0.species.gp-species.ind = ec.gp.GPIndividual pop.subpop.0.species.gp-species.ind.numtrees = 1 pop.subpop.0.species.gp-species.ind.tree.0 = ec.gp.GPTree pop.subpop.0.species.gp-species.ind.tree.0.tc = tc0 # We'll never use this, so let's set it to Reproduction, which is simple pop.subpop.0.species.gp-species.pipe = ec.breed.ReproductionPipeline pop.subpop.0.species.gp-species.pipe.num-sources = 1 pop.subpop.0.species.gp-species.pipe.source.0 = ec.select.TournamentSelection