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
| Method | Description |
|---|---|
| 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 BO | Adds 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§
- Black
BoxConstraint - A black-box constraint function.
- Constrained
Bo - Bayesian optimizer with support for expensive black-box constraints.
- Constrained
BoConfig - Configuration for constrained Bayesian optimization.
- Constrained
BoResult - Result of constrained Bayesian optimization.
- Constrained
Observation - A single evaluated point in constrained BO.
- Expected
Feasible Improvement - Expected Feasible Improvement: EI weighted by joint probability of feasibility.
- Probability
OfFeasibility - Probability of Feasibility for a single constraint GP.
Enums§
- Constrained
Acquisition Strategy - Strategy for handling constraints in the acquisition function.
Functions§
- constrained_
optimize - Run constrained Bayesian optimization with the default EFI strategy.