W3C XML Schema for Open BEAGLE files by Christian Gagne, originally created April 2004, last updated October 2005. Every Open BEAGLE files starts with root element "Beagle".
Root XML tag of Open BEAGLE document. Six main elements can be used: Logger, Evolver, Register, System, Vivarium and Seeds. There is four usual use cases: configuration file, log file, milestone file and seeds file. Configuration file includes Evolver and System elements. Log file includes Logger element. Milestone file includes Evolver, System and Vivarium elements. Seeds file includes Seeds element.
Log file is usually a mix of text message and different XML serialized objects such statistics, register, etc.
Stats element denote a statistical set of measures taken on a population (named by attribute "id"), at a given time (stated in attibute "generation"). Statistics are composed of two types of elements: items and measures. Items element are single value taken on the population associated to a key. Measures element are statistical measures (average, standard deviation, maximum, and minimum) taken on the whole population.
Seeds are individuals used to initialize a population.
The system list the register, the logger, the randomizer and some other optionnal system components such primitive super set in genetic programming.
A register is a sequence of entry, where each entry contains the value of a registered parameter named by the key attribute.
The randomizer contains the state of the Mersenne random number generator.
The primitive super set contains the list of primitives used to construct the GP programs.
A vivarium is made of the statistics for the actual generation, an hall-of-fame containing the best-of-run individuals, and the vivarium's demes.
An hall-of-fame contains the best-of-run individuals of a given population (vivarium or deme).
A deme is made of the statistics of the population for the actual generation, an hall-of-fame containing the best-of-run individuals, and a population of individuals.
An individual is the basic element of a population and is made of an optional fitness value and one or more genotypes, that is the actual representation of the individual.
This declares a very generic fitness measure that may contain almost anything. For more specific fitness description, see the following types related to the three standard genotype of the framework (simple fitness measure, multiobjective fitness measure, and Koza's GP fitness).
Representation of simple fitness value (associated to C++ classes Beagle::FitnessSimple and Beagle::FitnessSimpleMin).
Representation of multiobjective fitness value (associated to C++ classes Beagle::FitnessMultiObj and Beagle::FitnessMultiObjMin).
Representation of GP Koza's fitness (associated to C++ class Beagle::GP::FitnessKoza).
This declares a very generic genotype that may contain almost anything. For more specific genotype description, see the following types related to the five standard genotypes of the framework (GA bitstring, integer-valued GA, real-valued GA, non-isotropic SA-ES and GP trees).
Binary GA genotype representation.
Integer-valued GA genotype representation.
Real-valued GA genotype representation.
Non-isotropic self-adaptative evolution strategy genotype representation, that is a vector of (value,strategy) pairs.
Canonical GP tree genotype representation.
An evolvers is composed of a BootStrapSet followed by a MainLoopSet. Each of these sets contains a list operators to apply. As the name of all usable operators are not known beforehand so the content is relaxed to the use of any type. The real condition is that only elements associated to operators can be used.
If-then-else operator. Condition is given by a registered parameter (which name is attribute "parameter") which is compared to a given value (attribute "value"). If parameter value is equal to given value, operators in elements "PositiveOpSet" are applied on the population, otherwize operators in elements "NegativeOpSet" are applied.
Elements in replacement strategy must be breeder operators.
One element in an evaluation operator when used in a breeder tree. In a standard operator set, there must be no element in the operator.
Two elements must be in a crossover operator when used in a breeder tree. In a standard operator set, there must be no element.
One element must be in a mutation operator when used in a breeder tree. In a standard operator set, there must be no element.