Skip to main content

Module coevolution

Module coevolution 

Source
Expand description

Co-evolutionary algorithms.

Two populations evolve simultaneously, and each individual’s fitness depends on the other population. Two regimes ship in v1:

  • Competitive (CompetitiveCoEA) — populations are adversaries (predator vs. prey, Hillis 1990). Each is scored by how well it does against the other; the dynamic is an arms race.
  • Cooperative (CooperativeCoEA, CCGA — Potter & De Jong 1994) — a high-dimensional problem is decomposed across populations whose individuals combine (via representatives) into a full candidate.

§Why not Strategy?

Strategy::tell accepts a single fitness vector, but co-evolutionary fitness is inherently paired — each population receives a vector computed relative to the other. Rather than distort that contract, co-evolution gets its own CoEvolutionaryAlgorithm trait and a dedicated CoEvolutionaryHarness that adapts to the existing rlevo-core::evaluation::BenchEnv surface, exactly as EvolutionaryHarness does. Both co-evolutionary algorithms are built from ordinary inner Strategy instances, so every phase-1/2/3a/3b algorithm composes in unchanged.

§Pathology mitigation

Competitive co-evolution is prone to cycling; HallOfFameFitness wraps any CoupledFitness to anchor scores against an archive of past champions (Rosin & Belew 1997). It composes at construction — algorithms are hall-of-fame-agnostic.

§Coupling shape

CoupledFitness takes a slice of populations and is N-population-ready; v1 algorithms always pass exactly two. The harness exposes min(best_a, best_b) (canonical maximise) as the benchmark reward (the weaker population — lower canonical fitness — is the binding constraint).

§References

  • Hillis (1990), Co-evolving parasites improve simulated evolution as an optimization procedure.
  • Potter & De Jong (1994), A cooperative coevolutionary approach to function optimization (CCGA).
  • Rosin & Belew (1997), New methods for competitive coevolution (hall of fame).
  • Ficici (2004), Solution concepts in coevolutionary algorithms (cycling / intransitive dominance).

Re-exports§

pub use competitive::CompetitiveCoEA;
pub use competitive::CompetitiveCoEAParams;
pub use cooperative::CooperativeCoEA;
pub use cooperative::CooperativeCoEAParams;
pub use cooperative::CooperativeState;
pub use cooperative::RepresentativePolicy;
pub use fitness::CoupledFitness;
pub use harness::CoEAMetrics;
pub use harness::CoEvolutionaryHarness;
pub use hof::HallOfFame;
pub use hof::HallOfFameFitness;

Modules§

competitive
Competitive co-evolution — predator vs. prey (Hillis 1990).
cooperative
Cooperative co-evolution — CCGA (Potter & De Jong 1994).
fitness
Coupled fitness evaluation for co-evolutionary algorithms.
harness
Drive loop adapting a CoEvolutionaryAlgorithm to BenchEnv.
hof
Hall-of-fame pathology mitigation for competitive co-evolution.

Structs§

CoEAState
Joined state carrying both sub-strategy states plus per-population best/mean trackers.

Traits§

CoEvolutionaryAlgorithm
A co-evolutionary algorithm driving two populations under simultaneous updates.