2013年9月20日 星期五

Parameter file for ECJ

The following is an example of parameter file for running ECJ.

#No. of breeding threads, in general, it is set it to match the

#no. of cores or
#processors running on the computer
breedthreads = 1

#No. of evaluation threads

evalthreads = 1

#Setting the seed to ensure ECJ to produce the exact same 

#results.
seed.0 = 4357

# This setup the evolution state, which is created by ec.Evolve 

# for performing evolutionary process.
# However, prior to create the ec.EvolutionState, ec.Evolve will 
# create the following objects beforehand.
# i . Parameter Database, which holds all parameters 
# that ec.EvolutionState uses to build and process
# ii. Output, e.g. out.stat
# iii. Checkpointing Facility
# iv. No. of Threads, and random number generators, 
# one per thread
# v. No. of Jobs
state = ec.simple.SimpleEvolutionState

# Load class for population holding the individuals in the evolutionary process pop = ec.Population

# Load class for Initializer to create the initial population

# ec.simple.SimpleInitializer is the only known class
init = ec.simple.SimpleInitializer

# Finisher for clean up job at the very end of the run

ec.simple.SimpleFinisher is the only known class
finish = ec.simple.SimpleFinisher

# Breeder for creating new population based on existing 

# population using mutation and/or crossover
# There are four types of breeder in ECJ including:
DEBreederMuCommaLambdaBreederPSOBreederSimpleBreeder
breed = ec.simple.SimpleBreeder

# For assigning qualifier to each member of the Population

# There are four types of evaluator in ECJ including:
CompetitiveEvaluatorMultiPopCoevolutionaryEvaluator,
SimpleEvaluator
eval = ec.simple.SimpleEvaluator

# For statistics generation

ChartableStatisticsRandomRestartsSimpleShortStatistics,
SimpleStatisticsTarpeianStatistics
stat = ec.simple.SimpleStatistics

# For importing / exporting individuals from/to the population

InterPopulationExchangeIslandExchangeSimpleExchanger
exch = ec.simple.SimpleExchanger

# Parameters for the EvolutionState

generations = 1000

# whether or not to quit ECJ when it finds an ideal individual. 

# otherwise, it will continue until it runs out of generation.
quit-on-run-complete = false

# checkpointing is a facility to save state of process to a file

checkpoint = false
checkpoint-prefix = ec
# modulo tells by how many generation it will create one 
# checkpoint file
checkpoint-modulo = 1

# Output file

stat.file = $out.stat

# No. of population pop.subpops = 1

# Class of the population subpop.0, which is a repository of 
# individuals
pop.subpop.0 = ec.Subpopulation

# Size of the subpop.0 pop.subpop.0.size = 50

# This tells ECJ not to regenerate individual if it is 
# duplicate. 
pop.subpop.0.duplicate-retries = 0
# Species of the individual 
pop.subpop.0.species = ec.vector.BitVectorSpecies

# Define the fitness model and ec.simple.SimpleFitness defines 

# fitness values from 0.0 inclusive to infinity exclusive, 
# where 0.0 is the worst fitness
# Further, it can define an ideal fitness to any value 
# other than 0.
# There are three types of fitness in 
# ECJ KozaFitnessMultiObjectiveFitnessSimpleFitness 
pop.subpop.0.species.fitness = ec.simple.SimpleFitness

# Define representation

# The type of individual in the species
pop.subpop.0.species.ind = ec.vector.BitVectorIndividual

# Parameters of the species 

pop.subpop.0.species.genome-size = 200
pop.subpop.0.species.crossover-type = one
pop.subpop.0.species.crossover-prob = 0.3
pop.subpop.0.species.mutation-prob = 0.01

# Define pipeline for creating new individuals

# Top node is a vector mutation pipe 
pop.subpop.0.species.pipe = ec.vector.breed.VectorMutationPipeline
# Lower node is a vector crossover pipe
pop.subpop.0.species.pipe.source.0 = ec.vector.breed.VectorCrossoverPipeline
# Define two sources of individual for the crossover using tournament selection
pop.subpop.0.species.pipe.source.0.source.0 = ec.select.TournamentSelection
pop.subpop.0.species.pipe.source.0.source.1 = same

# set tournament size to 2 for all tournament cases

select.tournament.size = 2

# set the fitness function
eval.problem = ec.app.tutorial1.MaxOnes