Expand description
Pure-Rust ISRES global constrained optimizer. Improved Stochastic Ranking Evolution Strategy (ISRES).
Reference: Runarsson, T.P. & Yao, X., “Search Biases in Constrained Evolutionary Optimization,” IEEE Transactions on Systems, Man, and Cybernetics, Part C, vol. 35, no. 2, pp. 233-243, 2005.
Pure-Rust implementation. Replaces NLopt’s ISRES (nlopt:isres) for
global constrained optimization with nonlinear inequality constraints.
§Algorithm
(μ, λ) evolution strategy where:
- Each individual carries
(x, σ)— parameter vector + per-dimension log-normal step sizes. - Each generation produces λ offspring; the top μ by stochastic ranking become the next generation’s parents.
- Mutation has three components:
- Log-normal step-size adaptation: σ’ = σ * exp(τ’ N) * exp(τ Nᵢ)
- Differential variation with probability γ: helps escape narrow feasible regions by adding (x_best − x_random) to candidate.
- Gaussian perturbation: x’ = x + σ’ .* Nᵢ(0,1).
Out-of-bounds components are reflected back into
[lo, hi].
- Stochastic ranking (the key contribution): bubble-sort the offspring
by interleaving objective and max-violation comparisons. With
probability
pf, compare two adjacent individuals by objective; with probability1 − pf, compare by maximum constraint violation. This biases selection toward the objective when feasibility is roughly equal, and toward feasibility otherwise.
§Constraint convention
Inequality constraints g_i(x) ≤ 0 are feasible at zero or below.
IsresConstraint::fun should return the violation magnitude — the
optimizer treats anything > 0 as infeasible.
Structs§
- Isres
Config - Configuration for
isres. - Isres
Constraint - A single inequality constraint
fun(x) <= 0. - Isres
Report - Result of an
isresrun.
Functions§
- isres
- Run ISRES.
Type Aliases§
- Isres
Constraint Fn - Erased inequality constraint closure: feasible when
<= 0.