cuOpt 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.
1---2name: cuopt-numerical-optimization-api-cli3description: LP, MILP, and QP (beta) with cuOpt — CLI only (MPS files, cuopt_cli). Use when the user is solving LP, MILP, or QP from MPS via command line.4license: Apache-2.05---6789# cuOpt Numerical Optimization — CLI1011Solve 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.1213Confirm problem type and formulation (variables, objective, constraints, variable types) before coding.1415This skill is **CLI only** (MPS input).1617## Basic usage1819```bash20# Solve LP or MILP from MPS file21cuopt_cli problem.mps2223# With options24cuopt_cli problem.mps --time-limit 120 --mip-relative-tolerance 0.0125```2627## Common options2829```bash30cuopt_cli --help3132# Time limit (seconds)33cuopt_cli problem.mps --time-limit 1203435# MIP gap tolerance (stop when within X% of optimal)36cuopt_cli problem.mps --mip-relative-tolerance 0.0013738# MIP absolute tolerance39cuopt_cli problem.mps --mip-absolute-tolerance 0.00014041# Presolve, iteration limit, method42cuopt_cli problem.mps --presolve --iteration-limit 10000 --method 143```4445## MPS format (required sections, in order)46471. **NAME** — problem name482. **ROWS** — N (objective), L/G/E (constraints)493. **COLUMNS** — variable names, row names, coefficients504. **RHS** — right-hand side values515. **BOUNDS** (optional) — LO, UP, FX, BV, LI, UI526. **ENDATA**5354Integer variables: use `'MARKER' 'INTORG'` before and `'MARKER' 'INTEND'` after the integer columns.5556## QP via CLI (beta)5758Quadratic 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.5960**QP rules:**61- **MINIMIZE only.** For maximization, negate the objective coefficients (and Q entries) in the MPS file.62- **Continuous variables only** — do not mix integer markers with quadratic objectives.6364## Troubleshooting6566- **Failed to parse MPS** — Check ENDATA, section order (NAME, ROWS, COLUMNS, RHS, [BOUNDS], ENDATA), integer markers.67- **Infeasible** — Check constraint directions (L/G/E) and RHS values.6869## Examples7071- [assets/README.md](assets/README.md) — Build/run for sample MPS files72- [lp_simple](assets/lp_simple/) — Minimal LP (PROD_X, PROD_Y, two constraints)73- [lp_production](assets/lp_production/) — Production planning: chairs + tables, wood/labor74- [milp_facility](assets/milp_facility/) — Facility location with binary open/close7576## Getting the CLI7778CLI is included with the Python package (`cuopt`). Install via pip or conda; then run `cuopt_cli --help` to verify.