cuopt-numerical-optimization-api-cli
About cuopt-numerical-optimization-api-cli
A CLI skill for solving LP, MILP, and QP problems with NVIDIA cuOpt from MPS files. It covers problem formulation, command options, QP constraints, and common input troubleshooting.
Key features
- 01Solve LP, MILP, and QP from MPS
- 02Configure time limits and MIP tolerance
- 03Follow MPS section and marker rules
- 04Apply QP-specific formulation constraints
- 05Troubleshoot parsing and infeasibility
Use cases
- 01Solving an LP or MILP stored as MPS
- 02Setting a solve time limit or MIP gap
- 03Running a continuous-variable QP from MPS
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ promptingcompany/ nv-skills --skill cuopt-numerical-optimization-api-cliAfter installing, type/cuopt-numerical-optimization-api-cliin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
BENCHMARK.mdskill-card.mdskill.oms.sigassets/README.mdassets/lp_production/production.mpsREADME.mdassets/lp_simple/README.mdsample.mpsassets/milp_facility/facility.mpsREADME.mdevals/evals.jsonDetails
From the project READMEcuOpt Numerical Optimization — CLI
Solve LP, MILP, and QP problems from MPS files via cuopt_cli. The same command, options, and MPS workflow apply across all three; QP uses the standard MPS quadratic-objective extension.
Confirm problem type and formulation (variables, objective, constraints, variable types) before coding.
This skill is CLI only (MPS input).
Basic usage
# Solve LP or MILP from MPS file
cuopt_cli problem.mps
# With options
cuopt_cli problem.mps --time-limit 120 --mip-relative-tolerance 0.01
Common options
cuopt_cli --help
# Time limit (seconds)
cuopt_cli problem.mps --time-limit 120
# MIP gap tolerance (stop when within X% of optimal)
cuopt_cli problem.mps --mip-relative-tolerance 0.001
# MIP absolute tolerance
cuopt_cli problem.mps --mip-absolute-tolerance 0.0001
# Presolve, iteration limit, method
cuopt_cli problem.mps --presolve --iteration-limit 10000 --method 1
MPS format (required sections, in order)
- NAME — problem name
- ROWS — N (objective), L/G/E (constraints)
- COLUMNS — variable names, row names, coefficients
- RHS — right-hand side values
- BOUNDS (optional) — LO, UP, FX, BV, LI, UI
- ENDATA
Integer variables: use 'MARKER' 'INTORG' before and 'MARKER' 'INTEND' after the integer columns.
QP via CLI (beta)
Quadratic objectives extend the standard MPS workflow — same cuopt_cli command, same options. Check cuopt_cli --help for QP-specific flags and the repo docs at docs/cuopt/source/cuopt-cli/ for the quadratic-objective MPS format.
QP rules:
- MINIMIZE only. For maximization, negate the objective coefficients (and Q entries) in the MPS file.
- Continuous variables only — do not mix integer markers with quadratic objectives.
Troubleshooting
- Failed to parse MPS — Check ENDATA, section order (NAME, ROWS, COLUMNS, RHS, [BOUNDS], ENDATA), integer markers.
- Infeasible — Check constraint directions (L/G/E) and RHS values.
Examples
- assets/README.md — Build/run for sample MPS files
- lp_simple — Minimal LP (PROD_X, PROD_Y, two constraints)
- lp_production — Production planning: chairs + tables, wood/labor
- milp_facility — Facility location with binary open/close
Getting the CLI
CLI is included with the Python package (cuopt). Install via pip or conda; then run cuopt_cli --help to verify.