Pith. sign in

REVIEW 3 major objections 5 minor 28 references

MultiObjectiveAlgorithms.jl: a Julia package for solving multi-objective optimization problems

T0 review · 3 major / 5 minor · reviewed 2026-08-06 · deepseek-v4-flash

Pith's one-line read MultiObjectiveAlgorithms.jl brings ten scalarization-based exact algorithms to JuMP and reproduces published nondominated-set counts on benchmark instances.

desk verdict A genuinely useful MOO library with a paper that overstates its benchmark validation; the software is the contribution, and it should go to review. read the letter →

arxiv 2507.05501 v2 pith:ES2N3B6N submitted 2025-07-07 math.OC

classification math.OC MSC 90C29
keywords multi-objectiveoptimizationscalarizationJuliaJuMPmeta-solvernondominatedsetefficientsolutionsmathematicalprogrammingsoftware
verification ladder T0 review T1 audit T2 compute T3 formal

The pith

A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.

The reading

This paper presents an open-source Julia library, MultiObjectiveAlgorithms.jl, that solves multi-objective optimization problems by iteratively scalarizing them into sequences of single-objective subproblems. Its central claim is that the ten implemented algorithms are correct: for the published multi-objective binary knapsack benchmarks, the exact algorithms return the same average numbers of nondominated solutions as the original studies, and every returned objective vector is nondominated. To make this possible, the paper extends the JuMP modeling language to accept vector-valued objectives, so one model can be solved by algorithms that return a representative set, a minimum supported set, or a minimum complete set. A sympathetic reader should care because the library puts sophisticated multi-objective methods within reach of practitioners who already know JuMP and lets researchers compare new algorithms against established ones with a few lines of code.

What carries the argument

The load-bearing object is the scalarization subproblem $\operatorname{SP}(u,v)$, which minimizes $u^\top f_0(x)$ subject to the original constraints and the additional bound $f_0(x) \le v$; changing $u$ and $v$ across solves and filtering dominated candidates is how every algorithm produces its finite solution set. Around this subproblem, the paper builds a modular algorithm interface in which each method subtypes an AbstractAlgorithm and implements a single minimize_multiobjective function, keeping each implementation under 250 lines and making new algorithms drop into JuMP immediately. The same interface handles objective-sense conversion, subproblem caching, and translation of returned vectors into JuMP's multiple-result format.

What would settle it

Enumerate all feasible solutions of a small binary knapsack instance to compute the true nondominated set, then run the EpsilonConstraint algorithm with $\varepsilon=1$ and the TambyVanderpooten algorithm; finding a returned point that is dominated by a feasible solution, or a true nondominated point that no returned point attains, would disprove the minimum-complete-set claim.

Watch

Extended reading notes

Core claim

The paper's claim is that MultiObjectiveAlgorithms.jl faithfully implements ten exact, preference-free solution algorithms for the multi-objective problem, all built on the same scalarization mechanism. For pure integer linear problems, the TambyVanderpooten and KirlikSayin enumeration algorithms are claimed to return a minimum complete set of efficient solutions, the supported-set Dichotomy algorithm returns a minimum supported set, and the Lexicographic and Hierarchical algorithms return single or representative solutions; for every algorithm the library returns a finite set of points and asserts only that each objective vector is nondominated. The paper validates correctness by reproducing published benchmark results: on the multi-objective binary knapsack instances, the average nondominated-set sizes are 405.4 for $(p,n)=(2,200)$, 4,090.0 for $(3,100)$, and 2,240.1 for $(4,50)$. It also records the main caveat to its own guarantee: one run of Dichotomy with HiGHS returned a valid nondominated but unsupported point because the scalarized objective value lay within the MIP gap, an outcome the algorithm should not produce in theory.

Load-bearing premise

The correctness of every returned set depends on the underlying solver solving each single-objective subproblem to proven optimality, and when that fails—as the paper reports for one HiGHS run with the Dichotomy algorithm—a returned list can contain a point the theory says should not appear.

Editorial extensions

If this is right

  • A user can switch between representative, supported, and complete-set algorithms by changing one line in a JuMP model, making it straightforward to compare the trade-off between solution-set size and solve time on the same instance.
  • Because the library builds on JuMP and MathOptInterface, one formulation covers linear, integer, conic, semidefinite, and general nonlinear problems, limited only by what the chosen single-objective solver can handle.
  • For pure discrete problems, users can obtain the full nondominated set rather than a single compromise point, which distinguishes the library from the multi-objective features of most commercial solvers.
  • The benchmark timing results indicate that essentially all runtime is spent inside the subproblem solver, so algorithm choice primarily changes the number of subproblems while library overhead stays small.
  • The finite-set design means that continuous problems are solved by returning a finite list of nondominated points, so users need to know whether their chosen algorithm gives a complete, supported, or merely representative set.

Reading between the lines

Editorial extensions of the paper, not claims the author makes directly.

  • If the benchmark ratios hold more broadly, the practical frontier for exact multi-objective optimization is single-objective MIP speed; improvements to scalar solvers and warm-starting should transfer almost directly to these algorithms.
  • The observed HiGHS behavior suggests that users who rely on a minimum-supported-set guarantee should tighten the subproblem optimality gap, since default tolerances can admit unsupported points even when each solve looks optimal.
  • The same SP(u,v) abstraction could host preference-based or approximate algorithms without touching the JuMP interface, because the solver interaction is already isolated in one place.
Share X Bluesky LinkedIn Reddit HN

Signed reviews

No signed human review yet.

Editorial analysis

A structured set of objections, weighed in public.

Desk editor's note, referee report, and a circularity audit.

Referee Report

3 major / 5 minor

Summary. The paper describes MultiObjectiveAlgorithms.jl (MOA.jl), a Julia package built on JuMP for solving multi-objective optimization problems. It formulates a multi-objective problem with a vector-valued objective, defines solution concepts (efficient solutions, nondominated points, supported points, minimum complete sets), and presents ten scalarization-based exact algorithms implemented through a modular interface. After a didactic code example, the paper reports benchmarks on binary knapsack instances from Tamby and Vanderpooten (2021), compares MOA.jl with other modeling languages and solvers, and discusses design principles. The central claims are that the library correctly implements the ten algorithms and that it supports a wide range of problem classes, from linear and integer to conic, semi-definite, and general nonlinear, through JuMP and third-party solvers.

Significance. If the claims are correct, MOA.jl is a valuable open-source infrastructure contribution: it gives practitioners a single JuMP-native interface to multiple multi-objective algorithms, makes switching between algorithms and solvers easy, and provides reproducible benchmark code. The explicit design choice to return finite sets of points, together with the honest discussion of its trade-offs in Section 5.2, is a useful contribution to the software-oriented literature. The paper does not claim algorithmic novelty; its value is in software engineering, dissemination, and lowering the barrier to using multi-objective optimization. However, the evidence presented for correctness is weaker than the claims: the external validation compares only aggregate cardinalities, and the benchmark itself documents a violation of a stated algorithmic guarantee. These issues need to be resolved before the correctness claims can be fully accepted.

major comments (3)
  1. [Section 3] The statement "We verified that our solutions match those reported in Tamby and Vanderpooten (2021)" is not supported by the reported comparison. The verification only compares the average number of nondominated solutions (405.4, 4090.0, 2240.1) with the averages reported in the reference. Distinct nondominated sets can have the same cardinality, so equality of average set sizes does not demonstrate that the generated objective vectors coincide with the reference sets. The paper should either provide a pointwise comparison of the objective vectors on the shared instances, or weaken the claim to, for example, "the average number of nondominated solutions is comparable." This matters because this benchmark is the only external evidence that the algorithms produce the correct nondominated sets.
  2. [Section 3 and Table 1] The Dichotomy algorithm is listed in Table 1 as returning a minimum supported set, but the benchmark in Section 3 reports that for two (p,n)=(2,200) instances HiGHS finds a non-supported point because the scalarized objective is within the MIP gap. The returned output is therefore not a minimum supported set, contrary to the advertised guarantee. This is not merely a theoretical caveat: it is a concrete failure mode that a user can encounter with default settings. The library should either check and disclose solver optimality gaps, qualify the solution type as "supported up to solver tolerance," or revise the algorithm contract so that the returned set is no longer promised to be a minimum supported set.
  3. [Abstract, Section 2.1, Section 6] The paper claims support for conic, semi-definite, and general nonlinear problems, but no benchmark or test in Section 3 exercises these problem classes, and Table 1's "Solution" column explicitly states its guarantees only for "pure linear or pure integer" problems. For nonconvex nonlinear models, the scalar subproblems require global solvers, and the exactness guarantees described for the algorithms cannot hold without additional assumptions. The paper should either state this limitation explicitly in the abstract and in Section 2, or include at least a small correctness test for a conic or quadratic case if the broad support claim is retained.
minor comments (5)
  1. [Abstract and Table 3] The abstract states that MOA.jl is released under the MPL-2 license, while Table 3 lists the license as BSD-3. These should be made consistent.
  2. [Section 2, code listing] The code example uses `assert_is_solved_and_feasible(model)` without defining or referencing this function; since the code is meant as a didactic example, a brief note about the source of this helper would improve clarity.
  3. [Algorithm 1] The pseudo-code for the epsilon-constraint algorithm has formatting issues, such as "opt∗1" and "ub1" without proper subscripts; this makes the algorithm harder to read than necessary.
  4. [Section 1.2] The sentence "MOA.jlis a meta-solver. In high-level Julia code it modifies the vectors..." reads awkwardly; it would be clearer as "MOA.jl is a meta-solver: at a high level, it modifies the vectors...".
  5. [Section 5.2] Section 5.2 says the library makes "no quality assertions about the returned list, other than that each objective vector is non-dominated," but Table 1 promises minimum complete sets or minimum supported sets for specific problem classes. These two statements should be reconciled so that users can know what guarantee actually applies to a given algorithm and problem class.

Circularity Check

0 steps flagged · score 0.0 of 10

No circularity: the paper is a software/implementation report whose correctness evidence is external benchmark comparison and cited published algorithms, not a fitted or self-referential derivation.

full rationale

This paper is a software description rather than a mathematical derivation chain. Its central claims are that MOA.jl implements ten scalarization-based algorithms, that these algorithms are based on previously published methods, and that on benchmark instances the number of nondominated points found matches Tamby and Vanderpooten (2021). None of these claims is obtained by fitting a parameter to an output and then re-predicting that same output. The benchmark check compares mean cardinalities (405.4, 4090.0, 2240.1) against the external publication's reported averages, and the authors openly note that Dichotomy with HiGHS can return a non-supported point because the scalarized objective lies within the MIP gap. These are validation-strength and correctness-caveat issues, not circularity. The self-citations to JuMP, MathOptInterface, vOptSolver, and the authors' own archived code are routine infrastructure attribution; JuMP and MathOptInterface are not invoked as proof of the multi-objective algorithm guarantees, and vOptSolver is credited only as a predecessor project. No equation is defined in terms of a predicted quantity, no fitted parameter is renamed as a prediction, no uniqueness theorem from the authors' prior work is imported to force an ansatz, and no known result is repackaged under new coordinates. The derivation chain, such as it is, reduces to published algorithm descriptions and external benchmark data, so no significant circularity is present.

Assumptions & free parameters 0 free parameters · 3 assumptions · 0 invented entities

The central claim depends on the correctness of the underlying solvers and the validity of the scalarization approach. No free parameters are fitted. No new entities are postulated.

assumptions (3)
  • domain assumption Subproblem solvers (Gurobi, HiGHS) return optimal solutions to the scalarized subproblem SP(u,v) for each iteration.
    All algorithms rely on exact or near-exact solves of the single-objective subproblems; the paper itself notes HiGHS can return a non-supported point due to MIP gap (Section 3), which would break theoretical guarantees.
  • domain assumption The scalarization framework of Problem (2) is valid for all claimed problem classes (linear, integer, conic, semi-definite, nonlinear).
    The abstract and Section 1.2 claim support for these classes; this is inherited from JuMP's modeling capabilities, but no experiments demonstrate these classes.
  • standard math Pareto dominance and efficiency are defined as in the cited literature (Ehrgott 2005).
    Definitions in Section 1.1 follow standard texts; this is background, not an ad hoc assumption.

how reviews work

0 comments
Cite this review

Pith. "Pith review of MultiObjectiveAlgorithms.jl: a Julia package for solving multi-objective optimization problems." pith.science (2026). https://pith.science/paper/ES2N3B6N

@misc{pith2026250705501,
  author       = {Pith},
  title        = {Pith review of: MultiObjectiveAlgorithms.jl: a Julia package for solving multi-objective optimization problems},
  year         = {2026},
  howpublished = {\url{https://pith.science/paper/ES2N3B6N}},
  note         = {Machine review of arXiv:2507.05501}
}
read the original abstract

We present MultiObjectiveAlgorithms.jl, an open-source Julia library for solving multi-objective optimization problems written in JuMP. MultiObjectiveAlgorithms.jl implements a number of different solution algorithms, which all rely on an iterative scalarization of the problem from a multi-objective optimization problem to a sequence of single-objective subproblems. As part of this work, we extended JuMP to support vector-valued objective functions. Because it is based on JuMP, MultiObjectiveAlgorithms.jl can use a wide variety of commercial and open-source solvers to solve the single-objective subproblems, and it supports problem classes ranging from linear, to conic, semi-definite, and general nonlinear. MultiObjectiveAlgorithms.jl is available at https://github.com/jump-dev/MultiObjectiveAlgorithms.jl under a MPL-2 license.

Discussion (0). Continue with ORCID to comment.

Reference graph

Works this paper leans on

28 extracted references · 27 canonical work pages

  1. [1]

    ://mp.ampl.com/modeling-mo.html, date visited: 2025-06-21

    AMPL Optimization Inc (2025) Multiple objective. ://mp.ampl.com/modeling-mo.html, date visited: 2025-06-21

  2. [2]

    Management Science 25(1):73--78

    Aneja Y, Nair K (1979) Bicriteria transportation problem. Management Science 25(1):73--78

  3. [3]

    Journal of Global Optimization 13:1–24

    Benson H (1998) An outer approximation algorithm for generating all efficient extreme points in the outcome set of a multiple objective linear programming problem. Journal of Global Optimization 13:1–24

  4. [4]

    SIAM Review 59(1):65--98

    Bezanson J, Edelman A, Karpinski S, Shah VB (2017) Julia: A Fresh Approach to Numerical Computing . SIAM Review 59(1):65--98

  5. [5]

    Algorithms-ESA, LNCS 9294

    B \"o kler F, Mutzel P (2015) Output-sensitive algorithms for enumerating the extreme nondominated points of multiobjective combinatorial optimization problems. Algorithms-ESA, LNCS 9294

  6. [6]

    PaMILO: A Solver for Multi-Objective Mixed Integer Linear Optimization and Beyond

    B \"o kler F, Nemesch L, Wagner MH (2023) Pamilo: A solver for multi-objective mixed integer linear optimization and beyond. ://dx.doi.org/10.48550/arXiv.2207.09155

  7. [7]

    Greuel GM, Koch T, Paule P, Sommese A, eds., Proceedings of the International Conference on Mathematical Software, volume 9725 of Lecture Notes in Computer Science

    Borndörfer R, Schenker S, Skutella M, Strunk T (2016) Polyscip. Greuel GM, Koch T, Paule P, Sommese A, eds., Proceedings of the International Conference on Mathematical Software, volume 9725 of Lecture Notes in Computer Science

  8. [8]

    Bynum ML, Hackebeil GA, Hart WE, Laird CD, Nicholson BL, Siirola JD, Watson JP, Woodruff DL (2021) Pyomo--optimization modeling in Python , volume 67 (Cham, Switzerland: Springer Science & Business Media), third edition

Show all 28 references
  1. [9]

    European Journal of Operational Research 25(2):292--300

    Chalmet L, Lemonidis L, Elzinga D (1986) An algorithm for the bi-criterion integer programming problem. European Journal of Operational Research 25(2):292--300

  2. [10]

    Optimization 70:1487--1511

    Csirmaz L (2021) Inner approximation algorithm for solving linear multiobjective optimization problems. Optimization 70:1487--1511

  3. [11]

    The Journal of Machine Learning Research 17(1):2909--2913

    Diamond S, Boyd S (2016) CVXPY : A python-embedded modeling language for convex optimization. The Journal of Machine Learning Research 17(1):2909--2913

  4. [12]

    Information Sciences 565(7):210--228

    Dominguez-Rios M, Chicano F, Alba E (2021) Effective anytime algorithm for multiobjective combinatorial optimization problems. Information Sciences 565(7):210--228

  5. [13]

    Ehrgott M (2005) Multicriteria Optimization ( Berlin; New York : Springer ), 2nd edition, ISBN 978-3-540-21398-7

  6. [14]

    OR Spektrum 22(4):425--460, ://dx.doi.org/10.1007/S002910000046

    Ehrgott M, Gandibleux X (2000) A survey and annotated bibliography of multiobjective combinatorial optimization. OR Spektrum 22(4):425--460, ://dx.doi.org/10.1007/S002910000046

  7. [15]

    European Journal of Operational Research ://dx.doi.org/10.1016/j.ejor.2025.06.012

    Ehrgott M, Köksalan M, Kadziński M, Deb K (2025) Fifty years of multi-objective optimization and decision-making: From mathematical programming to evolutionary computation. European Journal of Operational Research ://dx.doi.org/10.1016/j.ejor.2025.06.012

  8. [16]

    Natural Computing 17:585–609

    Emmerich M, Deutz A (2018) A tutorial on multiobjective optimization: fundamentals and evolutionary methods. Natural Computing 17:585–609

  9. [17]

    ://www.gams.com/50/docs/T_LIBINCLUDE_MOO.html, date visited: 2025-05-21

    GAMS Software GmbH (2025) Multi-objective optimization. ://www.gams.com/50/docs/T_LIBINCLUDE_MOO.html, date visited: 2025-05-21

  10. [18]

    IFORS2017 : 21st C onference of the I nternational F ederation of O perational R esearch S ocieties

    Gandibleux X, Soleilhac G, Przybylski A, Ruzika S (2017) v O pt S olver: an open source software environment for multiobjective mathematical optimization. IFORS2017 : 21st C onference of the I nternational F ederation of O perational R esearch S ocieties. J uly 17-21, 2017. Q ...

  11. [19]

    ://docs.gurobi.com/projects/optimizer/en/current/features/multiobjective.html, date visited: 2025-05-21

    Gurobi Optimization, LLC (2025) Multiple objectives . ://docs.gurobi.com/projects/optimizer/en/current/features/multiobjective.html, date visited: 2025-05-21

  12. [20]

    IEEE transactions on systems, man, and cybernetics 3:296--297

    Haimes Y, Lisdon L, Wismer D (1971) On a bicriterion formulation of the problems of integrated system identification and system optimization. IEEE transactions on systems, man, and cybernetics 3:296--297

  13. [21]

    Mathematical Programming Computation 10(1):119--142

    Huangfu Q, Hall JAJ (2018) Parallelizing the dual revised simplex method. Mathematical Programming Computation 10(1):119--142

  14. [22]

    European Journal of Operational Research 232(3):479--488

    Kirlik G, Sayın S (2014) A new algorithm for generating all nondominated solutions of multiobjective discrete optimization problems. European Journal of Operational Research 232(3):479--488

  15. [23]

    Technical report, CentER, Center for Economic Research

    Koenen M, Balvert M, Fleuren H (2023) A renewed take on weighted sum in sandwich algorithms: Modification of the criterion space. Technical report, CentER, Center for Economic Research

  16. [24]

    INFORMS Journal on Computing 34(2):672--689

    Legat B, Dowson O, Dias Garcia J, Lubin M (2021) MathOptInterface : a data structure for mathematical optimization problems. INFORMS Journal on Computing 34(2):672--689

  17. [25]

    Mathematical Programming Computation 15(3):581--589

    Lubin M, Dowson O, Garcia JD, Huchette J, Legat B, Vielma JP (2023) JuMP 1.0: R ecent improvements to a modeling language for mathematical optimization. Mathematical Programming Computation 15(3):581--589

  18. [26]

    European Journal of Operational Research 260(3):807--813

    Löhne A, Weißing B (2017) The vector linear program solver bensolve -- notes on theoretical background. European Journal of Operational Research 260(3):807--813

  19. [27]

    ://au.mathworks.com/help/gads/paretosearch.html, date visited: 2025-06-29

    MATLAB (2025) paretosearch -- find points in pareto set. ://au.mathworks.com/help/gads/paretosearch.html, date visited: 2025-06-29

  20. [28]

    INFORMS Journal on Computing 33(1):72--85

    Tamby S, Vanderpooten D (2021) Enumeration of the nondominated set of multiobjective discrete optimization problems. INFORMS Journal on Computing 33(1):72--85

Pith tools

Reviewed August 6, 2026 · model on record in the stance chip above.