Quadratic Programming
Continuous variables, a quadratic objective, linear constraints.
In plain terms
Often the cost of a decision doesn’t grow in a straight line: deviating twice as far from a target hurts four times as much, and risks compound when choices interact. Quadratic programming captures exactly that: smooth trade-offs around a sweet spot, with limits to respect.
The technical picture
Quadratic programming extends LP with a quadratic objective: costs and risks that grow with the square of a decision, and pairwise interactions between variables (portfolio risk, tracking error, control effort) under linear constraints.
Quicopt takes the quadratic objective in its native form through the same modeling interface as every other class: no reformulation, no separate solver to license and integrate.
Mathematical model▾
Minimize a quadratic objective subject to linear constraints over continuous variables.
Example
From install to solved model: a small, self-contained example, copy-paste ready.
Install the client
$ pip install "quicopt[mathopt]"Copy the example
from ortools.math_opt.python import mathopt
from quicopt import Client
# A QP: continuous variables, a convex quadratic objective, a linear constraint.
# Unconstrained the optimum would be (1, 2); the constraint x + y <= 2 pushes
# it to (0.5, 1.5) with objective 0.5.
model = mathopt.Model(name="qp")
x = model.add_variable(lb=0.0, name="x")
y = model.add_variable(lb=0.0, name="y")
model.add_linear_constraint(x + y <= 2)
model.minimize((x - 1) * (x - 1) + (y - 2) * (y - 2))
client = Client("https://try.quicoptapi.pgi.fz-juelich.de")
result = client.solve(model)
print(result.display)Run it
$ python qp.py├── status: optimal ├── feasible: true ├── objective: 0.4999999825141841 ├── x: x=0.5, y=1.5 (2 variables) └── solve_time: 0.3984 s
Docs, API reference and more examples live in the Developer Hub →
Benchmark
How Quicopt performs on representative quadratic programs.
Measured results for this class are being prepared and will appear here.