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:
OptimizationResultOutcome of a multi-objective Bayesian-optimization run.
yis the(N, M)matrix of observed objective vectors (all minimized);pareto_maskflags the non-dominated rows, andpareto_x/pareto_yare those points and their objective vectors.- 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
iis dominated when some other row is<=it on every objective and strictly<on at least one; the mask isTruefor the rows that survive (the Pareto-optimal set).
- 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
objectivesoverbounds(ParEGO).Each callable in
objectivesmaps a(d,)point to a scalar; all are minimized. Seeds with ann_init-point Latin-hypercube design, then runsn_itersteps, 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.