feat(algorithms): add Umda Univariate Marginal Distribution EDA for binary problems
Mühlenbein 1997 UMDA: simplest Estimation-of-Distribution Algorithm for `Vec<bool>` problems. Each generation: - Evaluate the current population - Select the top μ members by fitness - Estimate per-bit marginal probability p_i = (count of 1s at bit i in the μ-best) / μ - Sample population_size new individuals from the resulting product-of- Bernoullis distribution Single-objective only. Bit-wise probabilities are clamped to `[1 / (2 · μ), 1 - 1 / (2 · μ)]` to keep the population from collapsing to a deterministic single string before convergence is meaningful (standard Laplace-style smoothing for UMDA). Tests: solves OneMax (maximize Σ bits) on a 20-bit instance, deterministic reruns, panic on multi-objective.
This commit is contained in:
+2
-1
@@ -27,5 +27,6 @@ pub use crate::algorithms::{
|
||||
GeneticAlgorithm, GeneticAlgorithmConfig, HillClimber, HillClimberConfig, Ibea,
|
||||
IbeaConfig, Moead, MoeadConfig, Mopso, MopsoConfig, Nsga2, Nsga2Config, Nsga3, Nsga3Config, Paes, PaesConfig, ParticleSwarm,
|
||||
ParticleSwarmConfig, RandomSearch, RandomSearchConfig, SimulatedAnnealing,
|
||||
SimulatedAnnealingConfig, Spea2, Spea2Config, TabuSearch, TabuSearchConfig,
|
||||
SimulatedAnnealingConfig, Spea2, Spea2Config, TabuSearch, TabuSearchConfig, Umda,
|
||||
UmdaConfig,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user