Skip to main content

nvidia-cuopt-numerical-optimization-api-c

LP, MILP, and QP (beta) with cuOpt — C API only. Use when the user is embedding LP, MILP, or QP in C/C++.

ソース情報

リポジトリ
autohandai/community-skills
ソースの最終更新活動
2026年6月30日 03:25
検出された SKILL.md の言語
英語
スター
11
フォーク
3

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
18 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
nvidia-cuopt-numerical-optimization-api-c
description
LP, MILP, and QP (beta) with cuOpt — C API only. Use when the user is embedding LP, MILP, or QP in C/C++.
license
Apache-2.0 AND CC-BY-4.0
metadata
{"version":"26.08.00","author":"NVIDIA"}
# cuOpt Numerical Optimization — C API Solve LP, MILP, and QP problems via the cuOpt C API. The same library, headers, build pattern, and core calls (`cuOptCreate*Problem`, `cuOptSolve`, `cuOptGetObjectiveValue`) apply across all three; QP extends the API with quadratic-objective creation calls. Confirm problem type and formulation (variables, objective, constraints, variable types) before coding. This skill is **C only**. ## Quick Reference: C API ```c #include <cuopt/linear_programming/cuopt_c.h> // CSR format for constraints cuopt_int_t row_offsets[] = {0, 2, 4}; cuopt_int_t col_indices[] = {0, 1, 0, 1}; cuopt_float_t values[] = {2.0, 3.0, 4.0, 2.0}; char var_types[] = {CUOPT_CONTINUOUS, CUOPT_INTEGER}; cuOptCreateRangedProblem( num_constraints, num_variables, CUOPT_MINIMIZE, 0.0, objective_coefficients, row_offsets, col_indices, values, constraint_lower, constraint_upper, var_lower, var_upper, var_types, &problem ); cuOptSolve(problem, settings, &solution); cuOptGetObjectiveValue(solution, &obj_value); ``` ## QP via C API (beta) QP uses the same library, include/lib paths, and build pattern as LP/MILP — only the problem-creation call differs (it accepts a quadratic objective). See the cuOpt C headers (`cpp/include/cuopt/linear_programming/`) for the QP-specific creation/solve calls and the repo docs at `docs/cuopt/source/cuopt-c/lp-qp-milp/` for end-to-end QP examples. **QP rules:** - **MINIMIZE only** (`CUOPT_MINIMIZE`). To maximize `f(x)`, negate objective coefficients and Q entries. - **Continuous variables only** — set `CUOPT_CONTINUOUS` for every variable; integer QP is not supported. - **Q should be PSD** for a convex problem. ## Debugging (MPS / C) **MPS parsing:** Required sections in order: NAME, ROWS, COLUMNS, RHS, (optional) BOUNDS, ENDATA. Integer markers: `'MARKER'`, `'INTORG'`, `'INTEND'`. **OOM or slow:** Check problem size (variables, constraints); use sparse matrix; set time limit and gap tolerance. ## Examples - [examples.md](resources/examples.md) — LP/MILP with build instructions - [assets/README.md](assets/README.md) — Build commands for all reference code below - [lp_basic](assets/lp_basic/) — Simple LP: create problem, solve, get solution - [lp_duals](assets/lp_duals/) — Dual values and reduced costs - [lp_warmstart](assets/lp_warmstart/) — PDLP warmstart (see README) - [milp_basic](assets/milp_basic/) — Simple MILP with integer variable - [milp_production_planning](assets/milp_production_planning/) — Production planning with resource constraints - [mps_solver](assets/mps_solver/) — Solve from MPS file via `cuOptReadProblem` For **CLI** (MPS files), use `cuopt_cli` and product docs. ## Escalate For contribution or build-from-source, use product or repo documentation.
GitHubで見る