Simple Complexity

A Note on Scalarization Error in Lexicographic Optimization

By Samuel Belko, published on July 25, 2025.

In this post, I describe an insight I realized in my master's thesis on design optimization of hybrid railway vehicles.

For brevity, we consider a one-dimensional, unconstrained setting. Let f1,f2:RRf_1, f_2 : \mathbb{R} \to \mathbb{R} and suppose that for some constants L,UL,U and all xx holds Lf2(x)U L \leq f_2(x) \leq U.

Consider a lexicographic problem

minx  f2(x)   subject to   f1(x)minxf1(x). \min_{x} \; f_2(x) \; \text{ subject to } \; f_1(x) \leq \min_{x'} f_1(x').

For some K>0K>0, consider a scalarized version of (1)

minx  f1(x)+Kf2(x). \min_{x} \; f_1(x) + K f_2(x).

Furthermore, consider an optimizer xlexix^*_{\text{lexi}} of (1) and xscalx^*_{\text{scal}} of (2). By the lexicographic constraint in problem (1), we get

f1(xlexi)f1(xscal). f_1(x^*_{\text{lexi}} ) \leq f_1(x^*_{\text{scal}}).

Optimality of xscalx^*_{\text{scal}} implies

f1(xscal)+Kf2(xscal)f1(xlexi)+Kf2(xlexi). f_1(x^*_{\text{scal}} ) + K f_2 (x^*_{\text{scal}}) \leq f_1(x^*_{\text{lexi}} ) + K f_2 (x^*_{\text{lexi}}).

Hence, we obtain that

0f1(xscal)f1(xlexi)Kf2(xlexi)Kf2(xscal)K(UL) 0 \leq f_1(x^*_{\text{scal}}) - f_1(x^*_{\text{lexi}} ) \leq K f_2 (x^*_{\text{lexi}}) - K f_2 (x^*_{\text{scal}}) \leq K ( U - L)

holds. In particular

f2(xscal)f2(xlexi) f_2 (x^*_{\text{scal}}) \leq f_2 (x^*_{\text{lexi}})

follows.

In conclusion, by choosing KK sufficiently small, f1(xscal)f_1 (x^*_{\text{scal}}) and f1(xlexi)f_1 ( x^*_{\text{lexi}}) can become arbitrarily close. Irrespective of the choice of KK, f2(xscal)f_2(x^*_{\text{scal}}) is always at least as good as f2(xlexi)f_2( x^*_{\text{lexi}}).

The above insight is simple, yet it proved to be useful for greatly speeding up solving (1) by merging objectives and solving (2) instead. Though brief, I hope this this post sheds some light on scalarization in the lexicographic setting.

CC BY-SA 4.0 Samuel Belko. Last modified: July 26, 2025. Website built with Franklin.jl and the Julia programming language.