Skip to main content

Module isres

Module isres 

Source
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:
    1. Log-normal step-size adaptation: σ’ = σ * exp(τ’ N) * exp(τ Nᵢ)
    2. Differential variation with probability γ: helps escape narrow feasible regions by adding (x_best − x_random) to candidate.
    3. 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 probability 1 − 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§

IsresConfig
Configuration for isres.
IsresConstraint
A single inequality constraint fun(x) <= 0.
IsresReport
Result of an isres run.

Functions§

isres
Run ISRES.

Type Aliases§

IsresConstraintFn
Erased inequality constraint closure: feasible when <= 0.