What is Multi-Objective Optimization?

Multi-Objective Optimization (MOO) involves minimizing multiple objective functions \((f_1(x), \ldots, f_m(x))\) simultaneously over a decision variable \(x\). Typically, no single solution optimizes all objectives; instead, a set of Pareto optimal solutions exists, representing trade-offs where improving one objective worsens another. As shown in Fig. 1 , these solutions under function \(f\) forms the Pareto front (PF).

../_images/moo.png

Fig. 1 A Pareto front example for a bi-objective optimization problem.

Traditionally, MOO is combined with evolutionary algorithms, known as Multi-Objective Evolutionary Algorithms (MOEAs), which have over 30 years of research [1] [8]. Notable algorithms include NSGAs [2], and MOEA/D [3]. Popular MOEA libraries include PlatEMO [4], Pymoo [5], EvoX [6], and Pagmo [7]. However, MOEAs are typically limited to problems with small decision variable dimensions, making them challenging to scale for large-scale machine learning tasks.

LibMOON is a gradient-based multi-objective optimization library built on PyTorch. It provides access to gradients of objective functions, \((\nabla f_1(x), \ldots, \nabla f_m(x))\), or estimates them using zero-order methods. By leveraging gradient information, LibMOON effectively supports large-scale machine learning tasks.

References