Mixed-Integer Nonlinear Programming
Integer decisions together with a non-linear objective or constraints.
In plain terms
Now combine those all-or-nothing choices with effects that bend rather than run straight — economies of scale, physics, chemistry. That mix of discrete decisions and curved relationships is among the hardest optimization problems there is.
The technical picture
Mixed-integer nonlinear programming combines integrality with non-linearity — the most general and the hardest of the classical classes.
Algebraic global solvers handle MINLPs by reformulating or approximating the non-convex terms. Quicopt optimizes the original objective directly, using gradients only — no Hessian, and no auxiliary-variable blow-up.
Mathematical model▾
Minimize a non-linear objective subject to non-linear constraints, with a subset of variables restricted to integers.
Example
From install to solved model — a small, self-contained example, copy-paste ready.
Install the client
$ pip install "quicopt[pyomo]"Copy the example
import pyomo.environ as pyo
from quicopt import Client
# An MINLP: switch generating units on or off (binary) and set each unit's
# continuous output, under a non-linear (exp) fuel-cost curve. An off unit
# produces nothing and costs nothing.
caps, fixed, fuel = [4.0, 6.0], [2.0, 3.5], [1.0, 0.8]
demand = 5.0
m = pyo.ConcreteModel()
m.on = pyo.Var(range(2), domain=pyo.Binary)
m.p = pyo.Var(range(2), bounds=(0, None))
m.cap = pyo.Constraint(range(2), rule=lambda m, i: m.p[i] <= caps[i] * m.on[i])
m.demand = pyo.Constraint(expr=m.p[0] + m.p[1] >= demand)
m.obj = pyo.Objective(
expr=sum(fixed[i] * m.on[i] + fuel[i] * (pyo.exp(m.p[i] / caps[i]) - 1)
for i in range(2)),
sense=pyo.minimize)
client = Client("https://try.quicoptapi.pgi.fz-juelich.de")
result = client.solve(m)
print(result.display)Run it
$ python minlp.py├── status: heuristic ├── feasible: true ├── objective: 4.5407807127338655 ├── x: x1=0, x2=1, x3=0, x4=5.0 (4 variables) └── solve_time: 2.6109 s
Docs, API reference and more examples live in the Developer Hub →
Benchmark
How Quicopt performs on representative mixed-integer non-linear programs.
Measured results for this class are being prepared and will appear here.