Multi-Objective Optimization
Every method so far has chased a single number — one objective to push as low as it will go. Real engineering is rarely so tidy. A design must be light and strong, fast and cheap, accurate and robust, and these pull against each other: buy more of one and you pay in the other. When objectives conflict, "the optimum" stops being a point and becomes a set — the collection of sensible compromises, each best in its own way, none beating all the others. This chapter is about that set: how to define it precisely through Pareto dominance, how to picture it as the Pareto front, how to compute it by scalarization or by evolution, and how a human finally chooses one design from it.
- Why conflicting objectives replace a single optimum with a set of compromises, and the split between decision space and objective space.
- Pareto dominance and Pareto optimality — the exact meaning of "better in all objectives."
- The Pareto front as a trade-off surface, with its ideal and nadir points.
- The weighted sum method, and the sharp reason it cannot reach a non-convex front.
- The ε-constraint method and compromise programming, which can.
- NSGA-II: non-dominated sorting, crowding distance and elitism — and how a decision maker finally chooses.
When One Objective Isn't Enough
Part 7 turns from methods to the harder questions real optimization raises, and the first is the most common of all: engineering objectives conflict. A transformer should be cheap and efficient, but efficiency demands more copper and better steel, which cost money. A control system should be fast and stable, but the gains that speed it up erode its stability margin. A portfolio should earn a high return at low risk, but the assets that promise more return carry more of it. In each case, improving one objective actively worsens another. There is no single design that is best on every count, because no such design exists.
A multi-objective problem simply writes several objectives down at once:
The notation hides a genuine difficulty: what does \(\min\) of a vector even mean? Real numbers are totally ordered — any two can be compared — but vectors are not. Is \((3, 8)\) better or worse than \((5, 4)\)? It is cheaper in the first objective and dearer in the second; the question has no answer until someone says how much a unit of the first is worth in terms of the second. This is the whole problem in miniature, and it forces a distinction the rest of the chapter depends on.
| Space | Lives in | A point is | What we compare |
|---|---|---|---|
| Decision space | \(\mathbb{R}^n\) (the variables \(\mathbf{x}\)) | A candidate design | Feasibility against the constraints \(\Omega\) |
| Objective space | \(\mathbb{R}^k\) (the values \(\mathbf{F}\)) | The score-vector of a design | One design against another, objective by objective |
Pareto Dominance & Optimality
The one comparison we can make between vectors without any trade-off information is the cautious one: a design is clearly better than another only if it is better in some objective and no worse in every other. This is Pareto dominance, named for the economist Vilfredo Pareto.
Read \(\mathbf{x} \prec \mathbf{y}\) as "\(\mathbf{x}\) dominates \(\mathbf{y}\)." It means \(\mathbf{x}\) is a strict improvement — better somewhere, worse nowhere. If neither dominates the other, the two are incomparable: each wins on some objective, and choosing between them needs a preference we have not yet supplied.
Dominance sorts the whole feasible set into two kinds of design. A design that is dominated by some other is simply wasteful — another feasible design beats it outright, so no rational decision maker would ever choose it. A design that is dominated by nothing feasible is Pareto optimal (or non-dominated, or efficient): you cannot improve any one of its objectives without giving up ground on another. The collection of all such designs is the Pareto-optimal set, and it is the true answer to a multi-objective problem — not one design, but every design worth considering.
The Pareto Front
The image of the Pareto-optimal set in objective space is the Pareto front — the boundary of the achievable region, along its lower-left edge for a minimisation. It is the trade-off surface made visible: every point on it is a design you might rationally build, and moving along it means trading a measured amount of one objective for a measured amount of another. The slope of the front at a point is literally the exchange rate between the objectives there.
Two reference points frame the front and recur throughout the methods that follow. The ideal point \(\mathbf{z}^{\star}\) takes the best value of each objective separately — the corner you would reach if the objectives did not conflict. It is almost never attainable; if it were, the problem would not be multi-objective. The nadir point takes the worst value each objective attains on the Pareto front, marking the front's opposite extreme. Together they bound the front and give the natural scale for normalising objectives that come in different units.
The shape of the front matters more than it first appears, because it decides which solution methods will work. A convex front bulges toward the ideal point; a non-convex (concave) front has stretches that bow away from it. Both are perfectly ordinary — many real problems produce fronts with concave regions, disconnected pieces, or sharp knees. As the next section shows, the simplest and most popular scalarization method is blind to exactly the concave stretches, which is why the shape is not a curiosity but a design constraint on the whole approach.
The Weighted Sum Method
The oldest way to handle several objectives is to collapse them into one. Assign each objective a weight reflecting its importance and add them up — a scalarization that turns the vector problem back into an ordinary single-objective one we already know how to solve.
Each choice of weights \(\mathbf{w}\) yields one Pareto-optimal point (provided the weights are strictly positive). Sweeping the weights across the simplex traces out points along the front, so a family of single-objective solves approximates the whole trade-off surface.
It is appealingly simple, and when the front is convex it works: every Pareto point can be reached by some weight vector. But the method carries a fatal blind spot on non-convex fronts, and the geometry makes the reason plain. Minimising \(w_1 f_1 + w_2 f_2\) is the same as sliding a straight line of slope \(-w_1/w_2\) toward the origin until it just touches the achievable region. The point it touches is always on the convex hull of the front. A solution sitting in a concave dip lies above the line joining its neighbours, so no such line can touch it first — some other point is always reached sooner.
ε-Constraint & Compromise Methods
The cure for the weighted sum's blindness is to stop adding objectives together. The ε-constraint method keeps just one objective to minimise and demotes the rest to constraints, each capped at a chosen bound \(\varepsilon_i\).
Minimise one objective while holding the others below their bounds; varying the bounds \(\varepsilon_i\) traces the front. Because the feasible region is carved out by constraints rather than by a supporting line, this method reaches concave points the weighted sum cannot — it can recover every Pareto-optimal solution.
The picture is a movable wall. Capping \(f_2 \le \varepsilon\) slices off the part of objective space above the wall; minimising \(f_1\) within what remains slides to the leftmost surviving point of the front — which may sit squarely in a concave dip. Push the wall down step by step and the found point walks along the entire front, concavities included. The price is that the bounds must be chosen with some care: set \(\varepsilon\) too tight and the problem becomes infeasible; too loose and the constraint is inactive and you recover only the single-objective optimum.
A third family sidesteps weights and bounds by measuring distance to the ideal point. Compromise programming minimises \(\lVert \mathbf{F}(\mathbf{x}) - \mathbf{z}^{\star}\rVert_p\) — the \(L_p\) distance from a design's score-vector to the unattainable ideal — and returns the Pareto point that comes closest to having everything at once. With \(p = 2\) it picks the balanced, "knee"-like solution; with \(p = \infty\) (the weighted Chebyshev form) it too can reach any Pareto point, convex or not. Objectives should be normalised by the ideal–nadir range first, so that a large-numbered objective does not swamp a small-numbered one purely through its units.
Evolutionary Methods & NSGA-II
Every scalarization shares one inconvenience: it delivers a single point per solve, so approximating the whole front means running the optimizer many times, once per weight or bound. Population methods have a decisive structural advantage here. A population is a set of solutions, so a single run can approximate the entire Pareto front at once — which is why the evolutionary algorithms of Chapters 24–25 became the dominant tools for multi-objective problems. The catch is that their selection step, built to rank a population by one number, must be rebuilt to rank by dominance instead.
The standard answer is Deb's NSGA-II (2002), and it earns its status from two ingredients that together push a population toward the front while spreading it evenly along it.
Non-dominated sorting peels the population into fronts: \(F_1\) is every non-dominated individual; remove them and \(F_2\) is the non-dominated remainder; and so on. Lower-numbered fronts are strictly preferred. Crowding distance then measures how isolated an individual is within its front, so that when a front must be split, the most isolated members survive and diversity is preserved.
Crowding distance is worth stating precisely, because it is how NSGA-II avoids the classic failure of collapsing onto one corner of the front. For each objective, sort the front and give every individual the normalised gap between its two neighbours; sum these gaps across objectives. The two boundary individuals — best and worst in each objective — are given infinite distance so they are never discarded, which anchors the spread of the front at its extremes.
The full generation then reads like a standard GA with a dominance-aware twist: combine parents and offspring (elitism — the best are never lost), sort the combined pool into fronts, and fill the next generation front by front until one front overflows the population size. That last, overflowing front is admitted in order of decreasing crowding distance, taking the isolated individuals and dropping the crowded ones. Selection for mating uses a tournament on the pair (front rank first, crowding distance as the tie-breaker). Pushed toward \(F_1\) by the sorting and spread along it by crowding, the population converges to a well-distributed approximation of the whole front in one run.
Choosing & Method Comparison
Whatever method produces the front, it produces a set, and an engineer must eventually build one design. Turning the Pareto set into a single choice is multi-criteria decision making, and the field is organised by when the decision maker's preferences enter.
| Approach | When preferences enter | How it works |
|---|---|---|
| A priori | Before optimizing | State weights or goals up front, then solve once for the single preferred point (e.g. weighted sum, goal programming) |
| A posteriori | After optimizing | Generate the whole front first (e.g. NSGA-II, ε-sweep), then let the decision maker pick from it |
| Interactive | During optimizing | Alternate between solving and eliciting preferences, refining the region of interest as the search proceeds |
The a posteriori route has become the default precisely because it separates the two hard things — computing the trade-offs, and judging them — and shows the decision maker the real cost of every preference before any is committed to. A common automatic pick from a generated front is the knee point, where the front bends most sharply: just before the knee, a small sacrifice in one objective buys a large gain in another; just after it, the exchange rate turns punishing. The knee is where a balanced compromise gives the most for the least, and compromise programming with \(p = 2\) tends to land near it.
Set against each other, the methods of this chapter divide cleanly by what they cost and what they can reach.
| Method | Output per run | Reaches non-convex front? | Main cost | Best for |
|---|---|---|---|---|
| Weighted sum | One point | No — hull only | Choosing weights; blind spots | Convex fronts, quick a-priori picks |
| ε-constraint | One point | Yes | Choosing feasible bounds \(\varepsilon\) | Recovering specific front regions |
| Compromise programming | One point | Yes (with \(p=\infty\)) | Normalisation; ideal point | Finding the balanced knee |
| NSGA-II | A whole front | Yes | Many evaluations per run | Approximating the entire trade-off surface |
Worked Examples
Problem. Six designs are scored on two objectives, both to be minimised: \(A(1,6)\), \(B(2,4)\), \(C(3,5)\), \(D(4,2)\), \(E(5,5)\), \(F(2,7)\). Which are Pareto optimal?
Solution. A design is dominated if another is \(\le\) in both objectives and \(<\) in at least one. Test each. \(A(1,6)\): nothing has \(f_1 \le 1\) except \(A\), so it is non-dominated. \(B(2,4)\): needs a rival with \(f_1\le2,\ f_2\le4\); \(A\) has \(f_2=6\), \(F\) has \(f_2=7\) — none qualifies, so \(B\) is non-dominated. \(C(3,5)\): \(B(2,4)\) has \(2\le3\) and \(4\le5\) — \(B\) dominates \(C\). \(D(4,2)\): no rival beats \(f_2=2\) at \(f_1\le4\), so non-dominated. \(E(5,5)\): \(B(2,4)\) dominates it. \(F(2,7)\): both \(A(1,6)\) and \(B(2,4)\) dominate it. The Pareto set is therefore \(\{A, B, D\}\) — the three designs no other design beats outright. The remaining three are simply wasteful: for each, one of \(A, B, D\) is at least as good everywhere and better somewhere.
Problem. Using the Pareto set \(A(1,6)\), \(B(2,4)\), \(D(4,2)\), which design does the weighted sum select for \(\mathbf{w} = (0.8,0.2)\), \((0.6,0.4)\), and \((0.2,0.8)\)?
Solution. Evaluate \(S = w_1 f_1 + w_2 f_2\) at each. For \(\mathbf{w}=(0.8,0.2)\): \(A = 0.8+1.2 = 2.0\); \(B = 1.6+0.8 = 2.4\); \(D = 3.2+0.4 = 3.6\). Minimum is \(A\) — heavy weight on \(f_1\) buys the small-\(f_1\) design. For \(\mathbf{w}=(0.6,0.4)\): \(A = 0.6+2.4 = 3.0\); \(B = 1.2+1.6 = 2.8\); \(D = 2.4+0.8 = 3.2\). Minimum is \(B\), the balanced middle. For \(\mathbf{w}=(0.2,0.8)\): \(A = 0.2+4.8 = 5.0\); \(B = 0.4+3.2 = 3.6\); \(D = 0.8+1.6 = 2.4\). Minimum is \(D\) — heavy weight on \(f_2\) buys the small-\(f_2\) design. The single knob \(\mathbf{w}\) slides the chosen solution smoothly from one end of the front to the other; the weights are the trade-off preference, made numerical.
Problem. A non-convex front has Pareto points \(P_1(1,5)\), \(P_2(3,4)\), \(P_3(5,1)\). Show that no positive weights make \(P_2\) the weighted-sum minimum.
Solution. Write \(\mathbf{w}=(t,\,1-t)\). Then \(S(P_1)=t+5(1-t)=5-4t\), \(S(P_2)=3t+4(1-t)=4-t\), \(S(P_3)=5t+(1-t)=1+4t\). For \(P_2\) to be strictly best it must beat both ends: \(4-t < 5-4t \Rightarrow t < \tfrac13\), and \(4-t < 1+4t \Rightarrow t > \tfrac35\). No \(t\) satisfies \(t<\tfrac13\) and \(t>\tfrac35\) at once, so \(P_2\) never wins. Check the crossover: at \(t=\tfrac12\), \(S(P_1)=S(P_3)=3.0\) while \(S(P_2)=3.5\) — as the weight sweeps, the minimum jumps straight from \(P_1\) to \(P_3\) and skips \(P_2\) entirely. \(P_2\) is a perfectly good Pareto solution sitting in the concave dip, and the weighted sum is structurally blind to it.
Problem. Same front \(P_1(1,5)\), \(P_2(3,4)\), \(P_3(5,1)\). Use the ε-constraint method — minimise \(f_1\) subject to \(f_2 \le \varepsilon\) — with \(\varepsilon = 5,\ 4,\ 1\).
Solution. At \(\varepsilon = 5\), all three satisfy \(f_2\le5\); minimising \(f_1\) gives \(P_1\) (\(f_1=1\)). At \(\varepsilon = 4\), the wall removes \(P_1\) (its \(f_2=5>4\)); the survivors are \(P_2(f_1=3)\) and \(P_3(f_1=5)\), so minimising \(f_1\) returns \(P_2\) — the very point the weighted sum could not reach. At \(\varepsilon = 1\), only \(P_3\) survives, giving \(P_3\). Sweeping \(\varepsilon\) downward thus walks the found solution \(P_1 \to P_2 \to P_3\) across the whole front, concavity and all. The lesson of Examples 3 and 4 together: when the front may be non-convex, prefer ε-constraint (or a Chebyshev/compromise scalarization) over the weighted sum.
Problem. For the same three points, find the ideal point and the Pareto solution closest to it in \(L_2\) distance.
Solution. The ideal point takes the best of each objective separately: \(z^\star = (\min f_1,\ \min f_2) = (1,\ 1)\) — unattainable, since no single point achieves both. Now measure each point's Euclidean distance to it. \(P_1(1,5)\): \(\sqrt{(1-1)^2+(5-1)^2}=\sqrt{16}=4\). \(P_2(3,4)\): \(\sqrt{(3-1)^2+(4-1)^2}=\sqrt{4+9}=\sqrt{13}\approx 3.61\). \(P_3(5,1)\): \(\sqrt{(5-1)^2+(1-1)^2}=\sqrt{16}=4\). The closest to the ideal is \(P_2\), at \(\sqrt{13}\approx3.61\) versus \(4\) for both extremes. Compromise programming therefore selects \(P_2\) — the balanced knee — which is exactly the concave point the weighted sum missed. (In a real problem the objectives would be normalised by the ideal–nadir range first, so units cannot bias the distance.)
Problem. Five non-dominated designs form a front: \(Q_1(1,10)\), \(Q_2(2,8)\), \(Q_3(4,5)\), \(Q_4(7,3)\), \(Q_5(9,1)\). Compute the NSGA-II crowding distances.
Solution. The ranges are \(f_1^{\max}-f_1^{\min}=9-1=8\) and \(f_2^{\max}-f_2^{\min}=10-1=9\). Boundary points get \(\infty\): \(Q_1\) (min \(f_1\), max \(f_2\)) and \(Q_5\) (max \(f_1\), min \(f_2\)) are both boundaries, so \(d_{Q_1}=d_{Q_5}=\infty\) — they are never discarded. For the interior points, sum the normalised neighbour-gaps over both objectives. \(Q_2\): \(\frac{4-1}{8}+\frac{10-5}{9}=0.375+0.556=0.931\). \(Q_3\): \(\frac{7-2}{8}+\frac{8-3}{9}=0.625+0.556=1.181\). \(Q_4\): \(\frac{9-4}{8}+\frac{5-1}{9}=0.625+0.444=1.069\). So \(Q_3\) sits in the least-crowded region (largest finite distance) and is the most valuable for diversity, while \(Q_2\) is the most crowded and would be dropped first if the front had to be trimmed. This single number is how NSGA-II spreads its population evenly instead of letting it pile up in one attractive corner.
Chapter Summary
When objectives conflict, the optimum is not a point but the Pareto set — every efficient compromise. Search runs in decision space; comparison happens in objective space.
\(\mathbf{x}\prec\mathbf{y}\): no worse in every objective, strictly better in one. Non-dominated designs are Pareto optimal; their image is the Pareto front.
The ideal point is the best of each objective (usually unattainable); the nadir marks the front's worst extreme. Together they scale the objectives.
Minimise \(\sum w_i f_i\). Simple, but reaches only the convex hull — genuinely concave Pareto points are invisible to it for any weights.
Cap all-but-one objective, or minimise distance to the ideal. Both reach non-convex fronts; compromise programming lands near the knee.
Non-dominated sorting into fronts + crowding distance for spread + elitism. One run approximates the whole front; a human then picks from it.
Problems
For dominance problems, test each pair objective by objective and remember that a tie in one objective still allows domination if the other is strictly better. For scalarization problems, watch the front's shape — if it is non-convex, expect the weighted sum to skip points. Difficulty rises down the list.
- Explain why a multi-objective problem generally has no single optimal solution, and distinguish decision space from objective space in one sentence each.
- State the definition of Pareto dominance for a minimisation, and explain what it means for two designs to be incomparable.
- Five designs score \((3,9)\), \((5,6)\), \((4,7)\), \((8,4)\), \((6,6)\) on two minimised objectives. Find the Pareto-optimal set and identify which design dominates each discarded one.
- Define the ideal and nadir points, and explain why the ideal point is almost never attainable in a genuine multi-objective problem.
- For the Pareto set \((2,8)\), \((4,5)\), \((7,2)\), find the weighted-sum choice for \(\mathbf{w}=(0.7,0.3)\), \((0.5,0.5)\), and \((0.2,0.8)\).
- Explain geometrically why the weighted sum can only return points on the convex hull of the Pareto front. What is a "supported" solution?
- A non-convex front has points \(A(1,6)\), \(B(4,4)\), \(C(6,1)\). Show that \(B\) never minimises the weighted sum, then find an \(\varepsilon\) for which minimising \(f_1\) subject to \(f_2\le\varepsilon\) returns \(B\).
- For the front in Problem 7, compute the ideal point and the \(L_2\) distance from each of \(A,B,C\) to it, and state which compromise programming selects.
- Describe the two core mechanisms of NSGA-II — non-dominated sorting and crowding distance — and say what each one is responsible for.
- A front has points \((1,9)\), \((3,6)\), \((5,4)\), \((8,2)\). Compute every crowding distance, and state which interior point would be dropped first under crowding.
- Contrast a priori, a posteriori, and interactive decision making, and explain why the a posteriori route has become the default. What is a knee point, and why is it attractive?
- Explain why population methods have a structural advantage over scalarization for approximating a whole Pareto front, and what selection must be replaced with to make a GA multi-objective.