Artelys Knitro 16.0: Model Nonlinear Problems Natively, Solve Them Concurrently
Artelys is pleased to announce the release of Knitro 16.0, a major version introducing two flagship features — a native Nonlinear Modeler and a Concurrent Solver — alongside significant performance and robustness improvements for nonlinear, mixed-integer and linear optimization problems.
Nonlinear Modeler: Build Nonlinear Models Natively, Without Callbacks
Until now, modeling general nonlinear expressions in Knitro’s native APIs required writing evaluation callbacks: implementing derivatives, providing sparsity patterns ; a time-consuming task reserved to experts, or delegated to external modeling layers.
Knitro 16.0 introduces a new expression-based modeling API, that lets you build nonlinear models directly within Knitro:
- Intuitive expression trees: define your objective and constraints using natural mathematical operators (arithmetic, powers, exponentials, logarithms, trigonometric and hyperbolic functions, and more), with operator overloading in Python for a lightweight, readable syntax.
- Automatic derivatives out-of-the-box: Knitro computes efficient first and second-order derivatives natively — no hand-coded gradients, Jacobians or Hessians, no sparsity pattern to provide.
- Parallel, deterministic and thread-safe evaluations: unlocking the full potential of Knitro’s parallel features such as multistart, mixed-integer algorithms and the new concurrent option.
- Advanced structure detection: linear and quadratic sub-expressions are automatically extracted from your nonlinear model, allowing Knitro’s internal components (presolve, scaling, branch-and-bound) to exploit the problem structure.
A simple example in Python:
import knitro
with knitro.Problem() as prob:
x0 = prob.add_variable(lb=-1.5, ub=4.0)
x1 = prob.add_variable(lb=-3.0, ub=3.0)
prob.add_objective(prob.sin(x0 + x1) + (x0 – x1)**2)
Improved Performance Across the Board for Mixed-Integer problems
Knitro 16.0 also enhances the efficiency and robustness of existing algorithms:
- Better solutions, sooner, on mixed-integer problems: the primal integral gap to best-known solutions is reduced by roughly 25% overall on convex MINLP problems, and by 30% on Hydro Unit-Commitment problems.
- Presolve improvements for mixed-integer and quadratic problems, contributing to more instances solved across our MINLP and MILP evaluation datasets.
Concurrent Solver: Faster and More Robust Nonlinear Optimization
Nonlinear optimization can be hard in practice: nonconvexity, degenerate constraints, convergence to infeasible stationary points, and no single algorithmic tuning works well for all problems. Inspired by the concurrent approaches of LP/MIP solvers, Knitro 16.0 introduces a concurrent option for nonlinear problems:
- Knitro runs multiple algorithm configurations in parallel — automatically selected based on the characteristics of your problem — and returns the first optimal solution found.
- The result: increased robustness, since multiple configurations cover a wider range of problems, and increased speed, since the fastest configuration wins.
- The feature is enabled with a single option (concurrent_solver=1), and a deterministic option lets you enforce fully reproducible runs when needed.
The impact on our benchmarks is substantial compared to Knitro 15.1:
- 100% of instances solved and 2 times faster on our pooling benchmark (nonconvex QCQP problems with applications in petroleum refining, blending, wastewater treatment).
- 20% faster on our AC optimal power flow benchmark with 99,9% of PGLib benchmark solved to optimality.
- 60% faster on quadratic models from QPLIB benchmark.
Combined with the new nonlinear modeler, whose parallel evaluations remove the evaluation bottleneck, the concurrent solver delivers the best performance profile ever achieved by Knitro on nonlinear problems.
Availability
The nonlinear modeler is available in the C, Python and AMPL interfaces of Knitro 16.0. As always, Knitro is available on Windows, Linux and macOS (including ARM architectures), and the Python interface can be installed directly from PyPI (pip install knitro).
Nonlinear Modeler: Build Nonlinear Models Natively, Without Callbacks
Until now, modeling general nonlinear expressions in Knitro’s native APIs required writing evaluation callbacks: implementing derivatives, providing sparsity patterns ; a time-consuming task reserved to experts, or delegated to external modeling layers.
Knitro 16.0 introduces a new expression-based modeling API, that lets you build nonlinear models directly within Knitro:
- Intuitive expression trees: define your objective and constraints using natural mathematical operators (arithmetic, powers, exponentials, logarithms, trigonometric and hyperbolic functions, and more), with operator overloading in Python for a lightweight, readable syntax.
- Automatic derivatives out-of-the-box: Knitro computes efficient first and second-order derivatives natively — no hand-coded gradients, Jacobians or Hessians, no sparsity pattern to provide.
- Parallel, deterministic and thread-safe evaluations: unlocking the full potential of Knitro’s parallel features such as multistart, mixed-integer algorithms and the new concurrent option.
- Advanced structure detection: linear and quadratic sub-expressions are automatically extracted from your nonlinear model, allowing Knitro’s internal components (presolve, scaling, branch-and-bound) to exploit the problem structure.
A simple example in Python:
import knitro
with knitro.Problem() as prob:
x0 = prob.add_variable(lb=-1.5, ub=4.0)
x1 = prob.add_variable(lb=-3.0, ub=3.0)
prob.add_objective(prob.sin(x0 + x1) + (x0 – x1)**2)
Improved Performance Across the Board for Mixed-Integer problems
Knitro 16.0 also enhances the efficiency and robustness of existing algorithms:
- Better solutions, sooner, on mixed-integer problems: the primal integral gap to best-known solutions is reduced by roughly 25% overall on convex MINLP problems, and by 30% on Hydro Unit-Commitment problems.
- Presolve improvements for mixed-integer and quadratic problems, contributing to more instances solved across our MINLP and MILP evaluation datasets.
Concurrent Solver: Faster and More Robust Nonlinear Optimization
Nonlinear optimization can be hard in practice: nonconvexity, degenerate constraints, convergence to infeasible stationary points, and no single algorithmic tuning works well for all problems. Inspired by the concurrent approaches of LP/MIP solvers, Knitro 16.0 introduces a concurrent option for nonlinear problems:
- Knitro runs multiple algorithm configurations in parallel — automatically selected based on the characteristics of your problem — and returns the first optimal solution found.
- The result: increased robustness, since multiple configurations cover a wider range of problems, and increased speed, since the fastest configuration wins.
- The feature is enabled with a single option (concurrent_solver=1), and a deterministic option lets you enforce fully reproducible runs when needed.
The impact on our benchmarks is substantial compared to Knitro 15.1:
- 100% of instances solved and 2 times faster on our pooling benchmark (nonconvex QCQP problems with applications in petroleum refining, blending, wastewater treatment).
- 20% faster on our AC optimal power flow benchmark with 99,9% of PGLib benchmark solved to optimality.
- 60% faster on quadratic models from QPLIB benchmark.
Combined with the new nonlinear modeler, whose parallel evaluations remove the evaluation bottleneck, the concurrent solver delivers the best performance profile ever achieved by Knitro on nonlinear problems.
Availability
The nonlinear modeler is available in the C, Python and AMPL interfaces of Knitro 16.0. As always, Knitro is available on Windows, Linux and macOS (including ARM architectures), and the Python interface can be installed directly from PyPI (pip install knitro).
Our evaluation datasets combine academic benchmark libraries (MINLPLib, QPLIB, PGLib, MIPLIB, etc.) and instances from customer applications in energy systems, pricing, network optimization and process industries.
To learn more about Knitro 16.0 and its capabilities, visit the official documentation or review the detailed release notes.
Real-life modeling examples with different APIs are also available on GitHub.
Try Knitro 16.0
Artelys Knitro 16.0 is now available for download on Artelys website from your customer area. Users can explore the software’s features through a free trial or contact the Artelys team for licensing and pricing details.
Use-cases
Discover the use-cases that transform your ideas into practical realities, building a future where technology meets real needs in an exceptional way with Knitro.
First Successful Auction for the New French Capacity Mechanism!
— The first auction of the new French Capacity Mechanism was successfully held on Monday, 6 July 2026. Artelys is proud to provide the market clearing algorithm used to select the accepted capacity offers.
Artelys compared the compensation mechanisms available for hydropower across global electricity markets in collaboration with CEATI
— Artelys is proud to have issued a new report published by CEATI, providing a comprehensive benchmark of compensation mechanisms available to hydropower assets across electricity markets in North America, Europe, and beyond.
Artelys Crystal HPC: Our integrated, sovereign High-Performance Computing (HPC) managed platform for industries
— Organizations that run complex simulations, large-scale optimizations, or sensitive calculations face a threefold challenge: securing the computing power to match their ambitions, ensuring data sovereignty, and avoiding weeks of setup time before seeing initial results.
Artelys Expands to Switzerland with the Launch of Artelys Switzerland
— Artelys is pleased to announce the establishment of Artelys Switzerland, a new subsidiary based in Sion. This strategic expansion marks a significant step in the company’s continued international growth and reflects its commitment to better serving clients across the Swiss market and the broader DACH region.
subscribe to our newsletters
© ARTELYS • All rights reserved • Legal mentions