mixle.doe.multiobjective moduleΒΆ

Multi-objective Bayesian optimization via ParEGO (WS-E).

Optimizes several competing objectives at once, returning the Pareto-optimal set rather than a single point. Uses the ParEGO scheme (Knowles, 2006): at each step the observed objective vectors are min-max normalized and collapsed to a single scalar by a randomly drawn augmented Tchebycheff weighting

s_i = max_m ( w_m * yhat_{i,m} ) + rho * sum_m ( w_m * yhat_{i,m} ), w ~ uniform on the simplex,

and the standard single-objective GP-EI step (mixle.doe.bayesopt.propose_next()) proposes the next point for that scalarization. Sweeping the random weights across iterations traces out the whole Pareto front with one surrogate. All objectives are minimized by convention.

class MultiObjectiveResult(x, y, pareto_mask, pareto_x, pareto_y)[source]

Bases: OptimizationResult

Outcome of a multi-objective Bayesian-optimization run.

y is the (N, M) matrix of observed objective vectors (all minimized); pareto_mask flags the non-dominated rows, and pareto_x / pareto_y are those points and their objective vectors.

Parameters:
pareto_mask: ndarray
pareto_x: ndarray
pareto_y: ndarray
pareto_mask(y)[source]

Return a boolean mask of the non-dominated rows of y (an (N, M) minimization objective).

Row i is dominated when some other row is <= it on every objective and strictly < on at least one; the mask is True for the rows that survive (the Pareto-optimal set).

Parameters:

y (Any)

Return type:

ndarray

multi_minimize(objectives, bounds, n_init=10, n_iter=20, seed=None, *, rho=0.05, n_candidates=512, fit_kwargs=None)[source]

Multi-objective GP Bayesian optimization of objectives over bounds (ParEGO).

Each callable in objectives maps a (d,) point to a scalar; all are minimized. Seeds with an n_init-point Latin-hypercube design, then runs n_iter steps, each drawing a random Tchebycheff weighting, scalarizing the observed objectives, and taking one GP-EI step on that scalar. Returns the full evaluation history and the Pareto-optimal subset.

Parameters:
Return type:

MultiObjectiveResult