Lexicographic and Multi-Objective Optimization in CP

Techniques for handling more than one objective in a constraint programming model: Pareto dominance, lexicographic optimization, and weighted-sum scalarization.

Step 1 of 157%

Tutorial

Multi-Objective Problems and Pareto Dominance

Many CP models have more than one criterion we'd like to optimize. A scheduling model might want both low makespan and low total tardiness; a routing model might want low cost and low travel time. With more than one objective, "optimal" is ambiguous unless we specify how to compare candidate solutions.

The fundamental notion is Pareto dominance. For minimization objectives f1,f2,,fkf_1, f_2, \ldots, f_k, solution ss dominates solution ss' — written sss \prec s' — when

fi(s)fi(s)for every i,andfj(s)<fj(s)for at least one j.f_i(s) \le f_i(s') \quad \text{for every } i, \qquad \text{and} \qquad f_j(s) < f_j(s') \quad \text{for at least one } j.

A solution that is not dominated by any other feasible solution is called Pareto-optimal (or non-dominated). The set of all Pareto-optimal solutions is the Pareto front.

For example, consider four schedules evaluated on (makespan, total tardiness):

A:(10,12),B:(12,8),C:(11,11),D:(14,14).A: (10, 12), \quad B: (12, 8), \quad C: (11, 11), \quad D: (14, 14).

Solution AA dominates DD because 10<1410 < 14 and 12<1412 < 14. Comparing the remaining pairs, each beats the other on one objective, so none of AA, BB, CC dominates another. The Pareto front is {A,B,C}\{A, B, C\}.

navigate · Enter open · Esc close · ⌘K/Ctrl K toggle