EC4:  A More General Evolutionary Computation System

The Java code in this directory is a generalization of the EC3 code that
is used to generate the computational examples and experiments in Chapters 5 and 6.

The choice of internal genome representations has been expanded.  This is specified
in an EC4 configuration file via Representation=xxx where xxx can be:
	real
	binary
	binary gray
	integer

There are corresponding changes to the landscape classes to allow integer-valued
landscapes to be specified, as well as a large number of new integer-valued and
real-valued landscape instances to experiment with.

To support the experiments in chapter 6, several changes were made.  First, the
way in which intial populations are generated can now be controlled via
PopulationInitializatrion=xxx where xxx can be:
	random (the default)
	one_genome  (a uniform population)
	two_genomes  (a population with two genomes in equal proportions)

Second, multiple simulation runs using the same EC4 parameter settings can be
specified via RunCount=nnn.  The default value for nnn is 1.  If nnn is greater
than 1, when the current simulation run terminates, additional simulation runs
are performed under indentical initial conditions except that the random number
stream is NOT reset.

Finally, the report generation was generalized to collect additional statistics
needed for the experiments in Chapter 6.  In particular, for Report=xxx,
the following specifications for xxx have been added:
	ave		(report the average fitness of the population)
	repro_success	(report the number of reproductive successes)
	repro_success_delta (report the amount of fitness improvement)
	repro_fitness_delta (report all fitness changes Positive and negative)
	diversity	(report on population diversity)
	fixed_gen	(report the number of generations to fixed point convergence)
	fixed_fit	(report the fitness of the converged fixed point)
	robbins		(report distance of the population from Robbins equilibrium)



So, a typical experiment in Chapter 6 involving 100 independent runs to analyze the
change in population diversity of a particular EC configuration on the Rosenbrock 
landscape would be specified as follows:

  EA=UN
  PopSize=50 50
  PopulationInitialization=random
  ParentSelection=uniform_deterministic
  GenerationType=overlapping
  SurvivalSelection=binary_tournament
  Representation=binary gray
  Mutation=bitflip
  Crossover=uniform 0.2
  Landscape=RVP Rosenbrock 2  -5.0 5.0 hard - 50.0
  SimLimit=10000
  RandSeed=12345
  Report=diversity
  RunCount=100

 
As with EC1, EC2 and EC3 the complete details are best understood by
reading the EC4 code, which is what you are expected to do!




