Skip to main content

Module eda

Module eda 

Source
Expand description

Estimation-of-distribution algorithms (EDAs).

An EDA replaces the crossover and mutation operators of a classical GA with an explicit probabilistic model of the promising region of search space. Each generation runs a fitsample loop:

  1. Evaluate the current population (done externally by the harness).
  2. Truncation-select the best fraction of the population.
  3. fit the model to those survivors.
  4. sample a fresh population.

The model is supplied as a ProbabilityModel; the generic EdaStrategy driver is model-agnostic. Five reference models ship here:

  • UnivariateGaussian — UMDA, a per-dimension Gaussian (unweighted MLE, ÷k variance, min_variance floor; fitness is accepted but ignored).
  • UnivariateBernoulli — PBIL, a per-bit probability vector (no classic probability-mutation step; fitness is used only to identify the best/worst individual).
  • CompactGenetic — cGA, a virtual-population probability vector (winner/loser come from the truncation-selected subset, not a fresh pairwise draw as in classic cGA).
  • DependencyChain — a continuous-Gaussian MIMIC chain capturing pairwise dependencies (fitness accepted but ignored).
  • BayesianNetwork — BOA, a BIC-scored Bayesian network (bounded-in-degree DAG over binary genes; non-incremental, unweighted fit; Pelikan, Goldberg & Cantú-Paz 1999).

The three binary models (UnivariateBernoulli, CompactGenetic, and BayesianNetwork) emit raw {0, 1} genes; the EdaParams::bounds clamp is therefore a no-op for them.

§References

  • Mühlenbein & Paaß (1996), From recombination of genes to the estimation of distributions I. Binary parameters.
  • Baluja (1994), Population-based incremental learning: a method for integrating genetic search based function optimization and competitive learning.
  • Harik, Lobo & Goldberg (1999), The compact genetic algorithm.
  • De Bonet, Isbell & Viola (1997), MIMIC: Finding optima by estimating probability densities.
  • Pelikan, Goldberg & Cantú-Paz (1999), BOA: The Bayesian optimization algorithm.

Re-exports§

pub use bayesian_network::BayesianNetwork;
pub use bayesian_network::BayesianNetworkParams;
pub use bayesian_network::BayesianNetworkState;
pub use compact_genetic::CompactGenetic;
pub use compact_genetic::CompactGeneticParams;
pub use compact_genetic::CompactGeneticState;
pub use dependency_chain::DependencyChain;
pub use dependency_chain::DependencyChainParams;
pub use dependency_chain::DependencyChainState;
pub use univariate_bernoulli::UnivariateBernoulli;
pub use univariate_bernoulli::UnivariateBernoulliParams;
pub use univariate_bernoulli::UnivariateBernoulliState;
pub use univariate_gaussian::UnivariateGaussian;
pub use univariate_gaussian::UnivariateGaussianParams;
pub use univariate_gaussian::UnivariateGaussianState;

Modules§

bayesian_network
Bayesian-network model (BOA — Bayesian Optimization Algorithm) for binary search spaces.
compact_genetic
Compact Genetic Algorithm (cGA) model for binary search spaces.
dependency_chain
Continuous-Gaussian dependency-chain model (MIMIC-style EDA) for continuous search spaces.
univariate_bernoulli
Univariate Bernoulli model (PBIL — Population-Based Incremental Learning) for binary search spaces.
univariate_gaussian
Univariate Gaussian model (UMDA — Univariate Marginal Distribution Algorithm) for continuous search spaces.

Structs§

EdaParams
Static configuration for an EdaStrategy run.
EdaState
Generation-to-generation state carried by EdaStrategy.
EdaStrategy
Generic estimation-of-distribution strategy.