Use case
Tax policy models in Julia efficiently solved with Artelys Knitro
Economists work routinely with tax policy models formulated as inequality-constrained nonconvex optimization problems. They have a degeneracy feature: the number of active inequality constraints at a solution is typically several times larger than the number of variables in the problem, which makes them particularly difficult to solve.

The NCL algorithm, designed by Kenneth Judd, Ding Ma, Michael Saunders, and Dominique Orban as part of Ding Ma’s PhD thesis at Stanford, addresses the difficulty in solving such models. The idea is to approximate the ill-posed problem with a sequence of well-posed subproblems without the degeneracy feature. Early subproblems can be solved loosely. Accuracy is only required as we approach a solution of the original model.

The first version of NCL is implemented entirely in AMPL and calls Artelys Knitro’s barrier algorithm with appropriate options to solve the subproblems tackling tax policy models with thousands of variables and half a million constraints.

NCL’s success on the tax models prompted them to investigate a generalization for any optimization model. The Julia language offers the requisite tools: the Julia interface to Artelys KNITRO and the JuliaSmoothOptimizers (JSO) infrastructure for optimization. In particular, JSO’s generic modeling features gives access to large test sets by way of the Julia interface to the CUTEst collection and to AMPL models.

Thanks to the work of Pierre-Élie Personnaz during his internship at GERAD, numerical results on realistic tax problems were presented at the ICCOPT 2019 conference in Berlin with performance that surpass all previous results. The NCL solver showcases how powerful the combination of Julia, JSO, and Artelys Knitro can be for optimization. Ongoing improvements include primal and dual warm starts, progressive tolerances, and parameter tuning.

Start with a tutorial!


You’re not familiar with nonlinear optimization? This tutorial will present some examples of nonlinear problems for various applications. You will discover nonlinear programming methods using the Artelys Knitro solver in a Python notebook, through different examples.

Free trial


Get your trial license to test Artelys Knitro’s performances on your own mathematical optimization problem. The trial package includes free support and maintenance. You can have access to Artelys Knitro for free with a 1-month unlimited version or a 6-month limited version.

Artelys Knitro has unmatched performance

Best Nonlinear Solver

Artelys Knitro has been ranked every year by public benchmarks consistently showing Artelys Knitro finds both feasible and proven optimal solutions faster than competing solvers.

Technical support

The Artelys technical support team comprises Artelys’consultants (PhD-level) who are used to solving the most difficult problems and deploying enterprise-wide optimization solutions. They can advise on algorithmic or software features that may result in enhanced performance in your usage of Artelys Knitro.

Updates and new features

The development team works continuously to provide two releases of Artelys Knitro every year. Based on feedback, we always improve our solver to meet users’ requirements and need to solve larger models faster.

© ARTELYS • All rights reserved • Legal mentions

Pin It on Pinterest

Share This