Skip to main content

Module constrained_bo

Module constrained_bo 

Source
Expand description

Constrained Bayesian Optimization.

Extends the standard Bayesian optimization framework to handle black-box constraints that are expensive to evaluate (e.g. safety constraints, physical feasibility conditions, computational limits).

§Constraint Handling Strategies

MethodDescription
Expected Feasible Improvement (EFI)EI weighted by probability of satisfying all constraints
Probability of Feasibility (PoF)Pure probability that a point is feasible
Constrained EI (cEI)EI penalised multiplicatively by PoF for each constraint
Augmented Lagrangian BOAdds constraint violation penalties to the GP posterior

§Example

use scirs2_optimize::bayesian::constrained_bo::{
    ConstrainedBo, ConstrainedBoConfig, BlackBoxConstraint,
};
use scirs2_core::ndarray::ArrayView1;

// Minimize x[0]^2 + x[1]^2 subject to x[0] + x[1] >= 1.
let obj = |x: &[f64]| x[0].powi(2) + x[1].powi(2);

// Constraint g(x) <= 0 means "feasible". So g(x) = 1 - x[0] - x[1].
let con = BlackBoxConstraint {
    name: "sum_geq_1".into(),
    // returns positive => infeasible, <= 0 => feasible.
    evaluate: Box::new(|x: &[f64]| 1.0 - x[0] - x[1]),
};

let config = ConstrainedBoConfig {
    n_initial: 5,
    seed: Some(42),
    ..Default::default()
};

let mut cbo = ConstrainedBo::new(
    vec![(-2.0_f64, 2.0_f64), (-2.0_f64, 2.0_f64)],
    vec![con],
    config,
).expect("create");

let result = cbo.optimize(obj, 20).expect("opt");
println!("Best feasible x: {:?}  f: {:.4}", result.x_best, result.f_best);

Structs§

BlackBoxConstraint
A black-box constraint function.
ConstrainedBo
Bayesian optimizer with support for expensive black-box constraints.
ConstrainedBoConfig
Configuration for constrained Bayesian optimization.
ConstrainedBoResult
Result of constrained Bayesian optimization.
ConstrainedObservation
A single evaluated point in constrained BO.
ExpectedFeasibleImprovement
Expected Feasible Improvement: EI weighted by joint probability of feasibility.
ProbabilityOfFeasibility
Probability of Feasibility for a single constraint GP.

Enums§

ConstrainedAcquisitionStrategy
Strategy for handling constraints in the acquisition function.

Functions§

constrained_optimize
Run constrained Bayesian optimization with the default EFI strategy.