ECF - Current features General: - minimal config: only individual structure (genotypes used), all other components may be used by default - XML configuration - parametrized framework components (no recompilation needed) - optional use of smart pointers (boost::shared_ptr) - evolution state checkpointing and restoring (milestone files) - batch (repeated) running with summary statistics - adding user defined components: genotypes, algorithms, operators - multilevel logging Genotypes (individual structure): - individuals may contain _any combination_ of genotypes (including user defined) - tree (genetic programming, more details below) - binary encoded real values (bounds, precision, dimension; 7 crx and 2 mutation operators) - floating point (bounds, dimension; 14 crx and 1 mutation operators) - bit string (2 crx and 2 mutation operators) - permutation vector (13 crx and 3 mutation operators) - planned: cartesian GP, GEP Algorithms: - most algorithms are _genotype independent_ - can be used with any combination of genotypes - GA/GP flavor: steady-state tournament, roulette wheel, elimination (generation gap) - clonal selection, immune optimization - evolutionary strategy (ES) - artificial bee colony (ABC) - differential evolution (DE) - particle swarm optimization (PSO) - genetic annealing (simulated annealing in parallel) - random search Evolutionary environment: - examples covering each genotype - many mutation and crossover operators for each genotype - individuals may contain multiple genotypes of any kind (+ used defined) - panmictic (global) or distributed population - 5 selection operators (fitness proportional, inverse fit. prop., best, worst, random) - 5 termination operators (best solution stagnation, fitness value, max. generations, max. time, max. evaluations) - parallel algorithms (GA/GP variants) - algorithm independent distributed evolution (e.g. distributed PSO, DE) - high-level algorithm implementation, genotype independent Genetic programming: - 5 crossover and 7 mutation operators - predefined functions (math, boolean) - no recompilation needed for function and terminal set redefinition (stated in config file) - constants, ERC terminals of different types - user defined functions - user defined terminal types (STGP planned) - multiple tree individuals (ADFs manual) Parallel environment: - parallel execution with MPI (multiprocessor node, network environment, cluster/grid) - many parallelization options (global/distributed EC, sync/async, migration) regardless of the algorithm - implicit parallelization concept