Skip to content
HN On Hacker News ↗

Quicopt — Optimization

▲ 51 points • 46 comments • by paddi91 • 4mo ago • HN discussion ↗

Pangram verdict · v3.3

We believe that this document is a mix of AI-generated, AI-assisted, and human-written content

49 %

AI likelihood · overall

Mixed
23% human-written 39% AI-generated
SEGMENTS · HUMAN 1 of 3
SEGMENTS · AI 1 of 3
WORD COUNT 707
PEAK AI % 84% · §1
Analyzed
Jul 11
backend: pangram/v3.3
Segments scanned
3 windows
avg 236 words each
Distribution
23 / 39%
human / AI fraction
Verdict
Mixed
Pangram v3.3

Article text · 707 words · 3 segments analyzed

Human AI-generated
§1 AI · 84%

Solve your first modelQuicopt is a solver for hard optimization problems. The point of this page is to get you from an empty directory to a solved model in three steps: install, run an example, understand what happened. You build the model in a standard Python modeling front-end — OR-Tools MathOpt or Pyomo, nothing Quicopt-specific to learn — and hand it to a single client.solve() call.Everything here runs on the free tier: no account, no API key to manage — your first call sets one up automatically. It is a small entry point to try the API; if you have questions or want to go further, talk to us.Step 1 — InstallThe client is one package on PyPI. Install it with the front-end you model in — the examples on this page use OR-Tools MathOpt:If you prefer Pyomo, install quicopt[pyomo] instead — solve() accepts both kinds of model directly. That's the whole setup: no license file, no signup, no key to copy anywhere.Step 2 — Run an exampleTwo ready-to-run scripts — a QUBO and a small MILP. Save either one and run it. Switch tabs to compare — each slide shows the model and exactly what prints:qubo.pyfrom ortools.math_opt.python import mathopt from quicopt import Client

# A QUBO: 4 binary variables, a quadratic objective, no constraints. model = mathopt.Model(name="qubo") x = [model.add_binary_variable(name=f"x{i}") for i in range(4)]

# Reward each variable; penalise adjacent pairs on the 4-cycle 0-1-2-3-0. # Distinct linear weights break the symmetry, so the optimum is unique. model.minimize( -(1.0 * x[0] + 0.7 * x[1] + 1.3 * x[2] + 0.5 * x[3]) + 2.0 * (x[0] * x[1] + x[1] * x[2] + x[2] * x[3] + x[0] * x[3]) )

client = Client("https://try.quicoptapi.pgi.fz-juelich.de")

§2 Mixed · 32%

result = client.solve(model) print(result.display) $ python qubo.py├── shots │ ├── 1 · Heuristic 1 -2.3 0.0s ◀ best │ ├── 2 · Heuristic 2 -2.3 0.0s │ └── 3 · Heuristic 2 -2.3 0.0s ├── status: heuristic ├── feasible: n/a ├── objective: -2.3 ├── x: x0=1, x1=0, x2=1, x3=0 (4 variables) └── solve_time: 0.0017 sStep 3 — Understand what happenedThe example did three things:Built a model — a standard MathOpt Model with variables, an objective, and (in the MILP) constraints. Nothing in it is Quicopt-specific; the same code runs against any MathOpt-compatible solver, and a Pyomo model works the same way.Called client.solve(model) — the client converted the model, sent it to the Quicopt API, and took care of the API key: your very first call needs no key, one is set up automatically and reused for every later call on the same Client.Printed and returned the result — result.display is the framed view the server renders; the Result object also carries status, objective, and the solution keyed by your variable names. Every field is described in the API reference.What you can solve todayThe API currently solves LP, QP, MILP, MINLP, QUBO, PUBO/HUBO, and NLP models — there is a runnable example for each. One free-tier edge to know: in a non-linear model, integer variables beyond binary on/off decisions aren't accepted yet. Black-box objectives are coming soon; a model outside today's classes is declined with a readable message, never a half-solved result.Beyond the free tierThe free tier is a small, one-time entry point to try the API. Questions, something unclear, or real models you want to try Quicopt on?

§3 Human · 16%

Just ask:Questions? Talk to us.Whether something's unclear or you want to try Quicopt on your real models — tell us what you're optimizing.Talk to us →Where nextExamples — a runnable model for every supported problem class, including how an infeasible model comes back.API reference — the quicopt Python client in full: Client, solve(), the Result fields, and the async job API.Modeling front-ends — what you can express in Pyomo and OR-Tools MathOpt.About this serviceThe free evaluation API is provided as-is, for evaluation and research only — without availability, functionality or result guarantees, and without any service level. Liability is limited, to the extent permitted by law, to intent and gross negligence.We keep the data you send over the API to improve future versions of our solvers. Please don't submit personal, confidential or otherwise sensitive data inside an optimization model — the service isn't designed for that. Full details: Privacy Policy · Legal notice.