Algorithm Engineering — L13
One objective, trusted data. Real systems rarely grant either.
The textbook model has a clear objective and static data: \[ \min \{ f(x) \mid x\in\mathcal X \} \] Frequently, we do not have this in practice.


Quality is multidimensional. Tardiness, changeovers, plan stability: improving one can worsen another. What does better mean?
Reality is uncertain. Forecasts are wrong, measurements are stale, and execution deviates from plan. What world will we face?
Improving one objective can worsen another. Which solution is better?
A machine failed overnight. The production schedule must be rebuilt, and three repairs are feasible:
| repair | total tardiness | changeovers | changed jobs |
|---|---|---|---|
| A | 100 min | 20 | 35 |
| B | 120 min | 12 | 30 |
| C | 150 min | 25 | 40 |
All three columns matter: late orders pay penalties, changeovers consume capacity, and every changed job disrupts the shop floor.
Which repair is best?
C loses to both A and B in every column. A versus B is a genuine trade-off: the objective values alone do not tell us which is better.
For minimization, \(x\) dominates \(y\) iff
\[ \forall i: f_i(x)\le f_i(y), \; \exists j:f_j(x)<f_j(y). \]
Dominated solutions are unambiguously inferior (within the modeled objectives).
For visualization, consider only tardiness and changeovers. Their nondominated objective vectors form the shown Pareto front.

Pareto-optimal does not mean good. A terrible-but-nondominated solution is still terrible. And the front is a concept, not an algorithm.
Preference / decision model
How do objective vectors become a decision?
Search method
How are good solutions found?
Keep the questions separate: how do we compare solutions? and how do we find them? Many combinations are possible.
If someone can say what better means, write it into the model. The methods differ in what they ask that someone to know.
\[ \min_x\; \sum_i w_i\, f_i(x) \quad\leadsto\quad \min_x\;\; 1.0\cdot\text{tardiness} + 5.0\cdot\text{changeovers} + 0.2\cdot\text{changed jobs} \]
Strengths
Fine print
The weights act as exchange rates. This model declares one changeover worth exactly five minutes of tardiness. Who signed off on that?
Trap 1: scale. Normalizing to reference ranges
\[ \tilde f_i(x) = \frac{f_i(x)-r_i^{\text{low}}} {r_i^{\text{high}}-r_i^{\text{low}}} \]
fixes units, not preferences. The reference ranges are themselves modeling choices, and changing them changes the answer.
You also do not always know what sensible ranges are if this is based on customer data.
Trap 2: reachability.
In discrete problems, some efficient solutions are optimal for no nonnegative weight vector. Sweeping weights will never show them to you.
\[ \operatorname{lexmin}\big(f_1(x),\, f_2(x),\, \dots,\, f_k(x)\big) \]
Implemented as sequential solves, each preserving the optimum of the previous level:
\[ z_1^* = \min f_1(x) \]
\[ z_2^* = \min\{\,f_2(x): f_1(x)=z_1^*\,\}, \;\;\dots \]
Or allow a deliberate slack before optimizing the next level:
\[ f_1(x)\le z_1^*+\Delta \quad\text{or}\quad f_1(x)\le(1+\delta)z_1^*. \]
| candidate | rejected | tardiness | changeovers |
|---|---|---|---|
| A | 0 | 400 min | 3 |
| B | 1 | 0 min | 0 |
With rejected orders as first priority, A wins, however ugly the rest: higher levels have infinite precedence.
Tricks like \(\min\, M f_1 + f_2\) are dangerous.
Many solvers have inbuilt support for lexicographic objectives, including slack.
\[ \begin{aligned} \min_x\quad & f_1(x)\\ \text{s.t.}\quad & f_2(x)\le \epsilon_2\\ & f_3(x)\le \epsilon_3 \end{aligned} \]
How requirements are often stated:

You can also combine this with other methods, or making this soft-constraints, maximize the number of satisfied bounds, etc.
When nobody can name the exchange rate, do not guess it. Compute the alternatives.
Preferences are often formed by seeing trade-offs, not before.
Worth computing:

The output of optimization becomes a set. The decision happens afterwards, with a human in the loop.
Weighted sweep: vary \(\lambda\) in \(\min_x\; \lambda f_1(x) + (1-\lambda) f_2(x)\)
\(\epsilon\)-sweep: vary \(\epsilon\) in \(\min_x\; f_1(x) \;\;\text{s.t.}\;\; f_2(x)\le\epsilon\)
Multi-objective optimization can be a loop around the single-objective solver you already trust.
For every new candidate \(x\):
If the archive becomes too large:

An archive is nondominated only relative to the candidates seen so far. Heuristic search does not certify the true Pareto front.
Population selection uses two pressures
quality
diversity

NSGA-II (Deb et al. 2002) combines these ideas with elitist genetic search.
A genetic algorithm is not automatically the right multi-objective method. If you already have strong problem-specific search, add an archive before replacing it with a generic GA.
Each generation shrinks a temporary pool back to fixed size.
Crowding distance = objective-wise neighbor boxes.





| You have… | Reasonable first choice |
|---|---|
| meaningful exchange rates | weighted aggregation |
| a genuinely strict hierarchy | lexicographic optimization via sequential solves |
| strong priorities with some slack | sequential solves with additive or meaningful relative tolerance |
| known hard limits | \(\epsilon\)-constraints |
| unresolved preferences | curated nondominated alternatives |
| a strong single-objective solver | weighted or \(\epsilon\) sweeps around it |
| a strong heuristic search | a nondominated archive around it |
Part I asked what we want. Now: what world will we face?
A bakery decides at 5 a.m. how many sandwiches to prepare. Demand \(D\) reveals itself at lunch.
| \(p\) | selling price | 10 € |
| \(c\) | production cost | 4 € |
| \(v\) | evening salvage | 1 € |
One sandwich short loses the margin
\[ C_u = p-c = 6. \]
One sandwich left over loses
\[ C_o = c-v = 3. \]
Expected demand is 100. Prepare 100?

Not a skewed forecast. Demand here is symmetric; the asymmetric costs (\(C_u\neq C_o\)) shift the optimum.
Prepare one more unit?
For a current quantity \(q\), the marginal unit sells only if demand exceeds \(q\):
\[ \underbrace{C_u\,\mathbb P(D>q)}_{\text{expected gain}} - \underbrace{C_o\,\mathbb P(D\le q)}_{\text{expected waste}} \]

Add units while this is positive:
\[ C_u\big(1-F(q)\big) > C_o\,F(q) \;\;\Longleftrightarrow\;\; F(q) < \frac{C_u}{C_u+C_o} \;\;\Longrightarrow\;\; q^* = F^{-1}\!\left( \frac{C_u}{C_u+C_o} \right). \]
Here: \(\;\alpha=\dfrac{6}{6+3}=\dfrac23\), and with \(D\sim\mathcal N(100,20^2)\): \(\;q^*\approx109\).
Practice often separates prediction from optimization: predict-then-optimize (PtO).
\[ \begin{aligned} \text{data} &\;\longrightarrow\; \text{prediction } \hat d(x) \\ &\;\longrightarrow\; \text{optimization} \;\longrightarrow\; \text{decision} \end{aligned} \]
Squared-error loss targets the conditional mean \(\mathbb E[D\mid X=x]\); the newsvendor decision needs the conditional quantile \(F^{-1}_{D\mid X=x}(\alpha)\).

\[ \boxed{ \text{prediction-loss optimal} \;\not\Rightarrow\; \text{decision optimal} } \]
Even a perfect point forecast can be the wrong interface: it discards exactly the uncertainty information the decision needs.
“There is uncertainty” is not yet a diagnosis.

| mechanism | the mismatch | typical intervention |
|---|---|---|
| forecast / future realization | tomorrow’s demand is not yet known | better prediction where possible; quantiles, distributions, scenarios |
| measurement / state | current work-in-progress is observed imperfectly | sensing, reconciliation, state estimation |
| parameter | model form accepted, coefficient uncertain | calibration, sensitivity analysis, uncertainty sets, scenarios |
| model | abstraction omits relevant mechanisms | validation, richer model, redesign |
| execution | planned 08:00, actually started 08:17 | buffers, feedback, rescheduling, simpler plans |
Observe, then decide
\[ \xi \;\to\; x(\xi) \]
For this uncertainty, condition on the observation and optimize.
Decide, then observe
\[ x \;\to\; \xi \]
Here-and-now commitment before uncertainty resolves.
Decide, observe, react
\[ x_1 \;\to\; \xi \;\to\; x_2(\xi) \]
Partial commitment with recourse.
The information structure determines which decisions may adapt: a property of the process, not of the solver.
\[ \text{observe} \;\to\; \text{optimize} \;\to\; \text{execute the first steps} \;\to\; \text{observe again} \;\to\; \text{reoptimize} \]
Rolling-horizon reoptimization: defer commitment · incorporate fresh information · absorb disturbances · repeatedly repair the plan
Better feedback and shorter commitment horizons can beat greater conservatism. Not every uncertain problem needs one giant uncertainty-aware model.
Reoptimization is not free: too much replanning can create instability, churn, and plans that nobody trusts.
What is uncertain? forecast, state, parameter, model, execution?
What do we know about it? point estimate · bounds · samples · scenarios · probability distribution
When is it revealed, and what can still adapt? before commitment · after commitment · between decision stages · repeatedly over time
A set of plausible worlds, and protection against every one inside it.
Nominal planning trusts one estimate:
\[ \hat a^\top x \le b \]
but reality may use some \(a\neq\hat a\). A nominally feasible plan can then violate the actual constraint.
Describe plausible realizations by an uncertainty set \(\mathcal U\) and require feasibility for all of them:
\[ a^\top x \le b \quad \forall a\in\mathcal U \qquad\Longleftrightarrow\qquad \max_{a\in\mathcal U} a^\top x \le b. \]
Game view: choose \(x\), then an adversary picks the worst realization allowed by \(\mathcal U\).
Write \(\xi\) for the uncertain data in general (here the coefficients \(a\)). The same move protects an uncertain objective:
\[ \min_x\;\max_{\xi\in\mathcal U} c(x,\xi). \]
Nominal model: one realized world

\[ \begin{aligned} \min_x\quad & f(x)\\ \text{s.t.}\quad & x\in\mathcal X(\hat\xi) \end{aligned} \]
Robust model: survive all worlds

\[ \begin{aligned} \min_x\quad & f(x)\\ \text{s.t.}\quad & x\in\mathcal X(\xi) \quad \forall \xi\in\mathcal U \end{aligned} \]
Behind every coefficient of \(a^\top x \le b\) sits a distribution, not a single number.


The box protects against the worst tail of every coefficient simultaneously.
Every coefficient hitting its worst value at the same time is highly unlikely. The box guards a joint scenario that almost never occurs, so it is overly pessimistic.
Recall: if \(X_1,\dots,X_n\) are independent with mean \(\mu\) and standard deviation \(\sigma\), then
\[ \frac{X_1+X_2+\dots+X_n-n\mu}{\sigma\sqrt{n}}\;\xrightarrow{\ d\ }\;\mathcal N(0,1). \]
Can we exploit this to build a tighter uncertainty set?
Fair coin: the fraction of heads over \(n\) flips has mean \(0.5\) and spread \(0.5/\sqrt{n}\).
60% heads: near even odds over 5 tosses, a \(2\sigma\) rarity (\(\approx 3\%\)) over 100.
Winning every toss is the box corner: probability \(2^{-n}\). The plausible band spans a few \(\sigma\), and that width is the budget \(\Gamma\).
Bound the summed, standardized deviation from the nominal coefficients \(\hat a_i\):
\[ \mathcal U_\Gamma=\Big\{\,a:\;-\Gamma\sqrt{n}\;\le\;\sum_{i=1}^{n}\frac{a_i-\hat a_i}{\sigma_i}\;\le\;\Gamma\sqrt{n}\,\Big\}. \]
Keep a plausible interval per coefficient too (\(|a_i-\hat a_i|\le\sigma_i\)). Box plus budget give the corner-cut budgeted set.
\(\Gamma\) = standard deviations of coverage: \(\Gamma=2\Rightarrow\approx 95\%\), \(\Gamma=3\Rightarrow\approx 99.7\%\).
The coverage is asymptotic and assumes many, roughly independent terms. A few dominant coefficients or strong dependence loosen the guarantee.
Whatever the shape, it is an assumption, not a fit. Calibrate it from domain knowledge and data, then validate coverage and decisions out of sample.
A larger uncertainty set gives stronger protection, a smaller feasible region, and a nominal objective that cannot improve.
protection \(\longleftrightarrow\) conservatism
Robustness is a posture, not a switch: bound the uncertain world with a set that probability can justify and an optimizer can still solve.

Robust Optimization & Sequential Decision-Making by Phebe Vayanos (CompSustNet)
Weight possible futures probabilistically. And, when possible, react after learning which future arrived.
Robust
\[ \min_x\; \max_{\xi\in\mathcal U} c(x,\xi) \]
Protect against every realization represented by \(\mathcal U\).
Stochastic
\[ \min_x\; \mathbb E_{\xi\sim P} \big[c(x,\xi)\big] \]
Weight futures according to a probability model.
You have already solved one:
\[ \min_q \mathbb E\!\left[ C_u(D-q)^+ + C_o(q-D)^+ \right]. \]
The newsvendor optimizes one order quantity across a distribution of demands.
In a stochastic scenario model, each scenario is a coherent possible future with a probability or empirical weight.
| scenario | demand | weight |
|---|---|---|
| low | 80 | 0.2 |
| normal | 100 | 0.5 |
| high | 140 | 0.3 |
For one fixed decision \(x\):
\[ \min_x \sum_{s\in S} p_s\,c(x,\xi_s). \]
The same \(x\) is evaluated across all scenarios. There is no adaptation yet.
A scenario should often represent a joint future, not independent guesses for each coefficient: demand, prices, failures, and durations may move together.
Many real decisions are not made all at once.
Production planning
\[ x \;\longrightarrow\; \xi \;\longrightarrow\; y(\xi) \]
commit \(\;\to\;\) observe \(\;\to\;\) react
Good uncertainty handling is often about deciding what must happen now and what can wait.
A canonical form is
\[ \min_x \left[ c^\top x + \mathbb E_\xi\big[Q(x,\xi)\big] \right], \qquad Q(x,\xi) = \text{optimal cost of reacting after observing }\xi. \]
First stage: \(x\)
Second stage: \(y(\xi)\)
\(Q(x,\xi)\) is itself an optimization problem: given the commitment \(x\) and realization \(\xi\), choose the best feasible reaction.
For finite scenarios:
\[ x \longrightarrow \begin{cases} \xi_1 \longrightarrow y_1\\ \xi_2 \longrightarrow y_2\\ \xi_3 \longrightarrow y_3 \end{cases} \]
The deterministic equivalent has the conceptual form
\[ \min_{x,y_1,\dots,y_S} c^\top x + \sum_{s\in S} p_s\,q_s^\top y_s \]
subject to common first-stage constraints and scenario-specific recourse constraints.
\[ \boxed{x\text{ is shared across scenarios}} \qquad \boxed{y_s\text{ may differ after scenario }s\text{ is observed}} \]
Suppose capacity must be reserved before demand is known.
Wrong: scenario-specific first-stage copies \(x_{\text{low}},\; x_{\text{normal}},\; x_{\text{high}}\).
This secretly chooses today’s commitment after learning tomorrow’s scenario.
For a two-stage model, the first-stage copies must agree:
\[ x_{\text{low}} = x_{\text{normal}} = x_{\text{high}}. \]
General rule:
\[ \boxed{ \text{same information history} \;\Longrightarrow\; \text{same decision} } \]
A decision may depend only on information available when it is made.
Often the expectation cannot be evaluated analytically. Suppose we have representative samples \(\xi^{(1)},\dots,\xi^{(N)}\) of the uncertainty. Replace the expectation by the empirical average:
\[ \min_x\; \mathbb E[f(x,\xi)] \quad\rightsquigarrow\quad \min_x\; \frac1N \sum_{i=1}^N f(x,\xi^{(i)}). \]
For two-stage recourse:
\[ \min_x\; c^\top x + \frac1N \sum_{i=1}^N Q(x,\xi^{(i)}). \]
Samples make the expectation computationally tangible, at the cost of sampling error and often a much larger model.
Larger samples often stabilize the empirical objective, but they do not generally make an optimization problem smooth. They also enlarge scenario-based models.
Do not trust the scenarios used to choose the solution.
\[ \text{training scenarios} \;\longrightarrow\; \text{optimize} \;\longrightarrow\; x^* \;\longrightarrow\; \text{fresh evaluation scenarios} \]
Evaluate: mean realized cost · variability · violation / infeasibility rate · tail loss · stability of the chosen decision
\[ \boxed{ \text{good in-sample objective} \;\not\Rightarrow\; \text{good stochastic decision} } \]
Optimizing \(\;\min_x \mathbb E[c(x,\xi)]\;\) may rationally accept a rare disaster if its probability is small enough.
Risk treatment addresses the distribution of bad outcomes:
Multistage stochastic programming addresses something different: repeated information arrival and repeated adaptation,
\[ x_1 \to \xi_1 \to x_2 \to \xi_2 \to x_3 \to\cdots \]
A stochastic model is not automatically safe. It is only as credible as its probabilities, scenarios, risk criterion, and information structure.
We started with one objective and trusted data. We now have a response to each.
\[ \min \{ f(x) \mid x\in\mathcal X \} \]

Quality is multidimensional.

Reality is uncertain.
Ehrgott, Multicriteria Optimization (Ehrgott 2005) · robust optimization: (Ben-Tal et al. 2009; Bertsimas and Hertog 2022) · Birge & Louveaux, Introduction to Stochastic Programming (Birge and Louveaux 2011) · decision-focused learning: (Elmachtoub and Grigas 2022)
Algorithm Engineering SS 2026 — L13 Robustness & Multi-Objective