Agent skill · Audited from source
cuopt-multi-objective-exploration
skill · nvidia/skillsApache-2.0 licenceAudited 28 Oct 2026 · source 8badbd7ed3f2
Is it safe? Yes — SAFE, grade B (89/100). We read this skill's source at commit 8badbd7ed3f2 and found no filesystem, network or shell access and no hard-coded secrets. What it does: Trace, complete, and interpret the Pareto frontier across competing objectives using repeated single-objective cuOpt solves (weighted-sum and ε-constraint).
Cite
Cite this page
ModelsAtlas. “cuopt-multi-objective-exploration (nvidia/skills)”. Retrieved 28 Oct 2026. https://modelsatlas.com/skills/nvidia/cuopt-multi-objective-exploration
Trust audit
Audit 0.4.1 · source read 28 Oct 2026
SAFE means nothing in the source contradicts what the skill says it does. Grade B is shared by 13,985 of 14,816 audited skills.
What the source does
- FilesystemNone observedNo reads or writes in the source
- NetworkNone observedNo outbound calls in the source
- ShellNone observedNo commands run in the source
- DependenciesPinnedNothing floats
- SecretsNone foundNo keys in source
Five audit layers
| Layer | What we check | Result | Findings |
|---|---|---|---|
L0 Provenance | Repo owner, licence, archive status, activity | PASS | 0 |
L1 Static source | Secrets, path traversal, supply chain, hidden code | NA | 0 |
L2 Instructions | Prompt injection, authority framing, hidden directives | PASS | 0 |
L3 Inventory | The files and declarations match the source | PASS | 0 |
L4 Sandbox | Run in isolation and watch behaviour | SKIPPED why | 0 |
Gates applied: no behavioural pass.
Findings (0)
No findings at any severity. We re-audit when the source changes.
Audit 0.4.1 · source sha 8badbd7ed3f2 · 28 Oct 2026Report an issue or request a re-scan
Provenance
Who published it, and what the verdict is pinned to
- Publishernvidia GitHub organizationOwner of the repository this skill is read from
- Source foldernvidia/skills/skills/cuopt-multi-objective-explorationThe exact folder we audited
- LicenceApache-2.0As the repository states it
- Commit pinned for this verdict8badbd7ed3f2A new audit runs when the source changes
- Repository statusNot archivedPushed today
- Sandboxed runNot runSkills are read, not executed; layer L4 is skipped
What it tells the agent
Full source on GitHub ↗Its description: Trace, complete, and interpret the Pareto frontier across competing objectives using repeated single-objective cuOpt solves (weighted-sum and ε-constraint).
---
name: cuopt-multi-objective-exploration
version: "26.12.00"
description: Trace, complete, and interpret the Pareto frontier across competing objectives using repeated single-objective cuOpt solves (weighted-sum and ε-constraint).
license: Apache-2.0
origin: cuopt-skill-evolution
metadata:
author: NVIDIA cuOpt Team
tags:
- multi-objective
- pareto
- epsilon-constraint
- tradeoff
- workflow
---
# Multi-Objective Exploration
cuOpt optimizes **one** objective per solve. Many real problems have several objectives that pull against each other — cost vs. service level, return vs. risk, makespan vs. overtime, distance vs. vehicle count. A single solve answers "what's optimal *for one particular weighting*," but it hides the tradeoff the user actually needs to see.
This skill turns a sequence of single-objective cuOpt solves into a **Pareto frontier** — the set of solutions where you can't improve one objective without giving up another — and gives the discipline to read it. It adds no solver features; it orchestrates the LP / MILP / QP solves already covered by the formulation and API skills.
## When this applies
Reach for this workflow when the problem has **two or more objectives with no agreed-upon weighting**, signalled by language like:
- "balance X and Y", "trade off", "as cheap as possible *without* hurting service"
- "minimize cost *and* maximize coverage", "I want options, not one answer"
- any objective the user is willing to relax in exchange for another
If there is a single clear objective (everything else is a hard constraint), this skill does not apply — formulate and solve once.
## Core idea — one solve is one point on a curve
A single optimum encodes **one implicit weighting** of the objectives. Change the weighting and the optimum moves. The frontier is the curve traced by all the non-dominated optima.
A solution **A dominates** B when A is at least as good on every objective and strictly better on one. Dominated solutions are never worth choosing. The **Pareto frontier** is exactly the non-dominated set; the user's job is to pick a point on it, and yours is to show them the whole curve plus where the tradeoff is sharpest.
Do not collapse a multi-objective problem to a single weighted number and report its optimum as "the answer" — that silently makes the tradeoff decision *for* the user. Trace the frontier and let them choose.
Objectives and constraints are interchangeable. A requirement currently treated as fixed — a coverage floor, a fairness cap, a budget — is often a latent objective: its level was assumed, not given. Promoting such a constraint to a parametric ε-constraint and sweeping it reveals a tradeoff you'd otherwise hide, so read a single-objective model's hard constraints as candidate objectives, not just limits — but only when the level was an assumption. A genuinely fixed, non-negotiable limit (a hard budget cap, a regulatory minimum) stays a constraint; don't manufacture a tradeoff that isn't there. Express any promoted quantity linearly so it can serve as an ε-constraint (see `cuopt-numerical-optimization-formulation`).
## Step 1 — define the objectives
An informative frontier needs objectives that genuinely conflict: if they don't pull against each other, it collapses to a single point with nothing to trade off. And each objective has to be formulated correctly, since a wrong form, sense, or scale distorts the tradeoff and shifts where the knee falls. Formulate each one with `cuopt-numerical-optimization-formulation` before sweeping.
## Step 2 — build a payoff table (anchor each objective)
Solve each objective **on its own** first. For *k* objectives this is *k* solves. Record, for each, the value of every objective at that optimum:
```text
f1 f2 f3
min f1 → f1* f2(at f1*) f3(at f1*)
min f2 → ... f2* ...
min f3 → ... ... f3*
```
The diagonal (`f1*`, `f2*`, ...) is each objective's best achievable value; the off-diagonals give the **range** each objective spans across the others' optima. This table does double duty:
- It sets the **sweep bounds** for the ε-constraint method (the feasible range of each constrained objective).
- It supplies the **scales** for normalization — objectives in dollars, percent, and hours can't be weighted meaningfully until divided by their ranges.
If any single-objective solve is already infeasible, stop and fix the model before sweeping — the frontier doesn't exist yet.
## Step 3 — choose a scalarization
### Weighted sum
Combine the objectives into one and sweep the weights:
```text
minimize w1·f1(x) + w2·f2(x) + ... , for a grid of weight vectors w
```
Cheap and trivial with any solver. Two limitations to respect:
- **It only finds points on the convex hull of the frontier.** Concave (non-convex) regions of the frontier are unreachable no matter how you choose weights, and for MILP the reachable points can be sparse with large gaps. A frontier that looks suspiciously linear or has only a few clustered points is the symptom.
- **Weights are not priorities until the objectives are normalized.** Divide each `f_k` by its payoff-table range first; otherwise the largest-magnitude objective dominates regardless of intent.
### ε-constraint (preferred for a complete frontier)
Keep one objective; move the rest to constraints and sweep their right-hand sides:
```text
minimize f1(x)
subject to f2(x) ≤ ε2
f3(x) ≤ ε3
(original constraints)
```
Sweep each `ε_k` across the range from the payoff table. Each `(ε2, ε3, ...)` combination is a single standard cuOpt solve. This recovers the **full** frontier, including the concave regions weighted-sum cannot reach, which is why it's the default when completeness matters. The cost is more solves (a grid over the constrained objectives) and bookkeeping of the ε values.
ε-constrain *linear* objectives directly. A quadratic objective (e.g. risk `xExcerpt, first 6,000 characters of SKILL.md, verbatim from the audited commit. It is text from someone else’s repository, quoted so you can judge it before your agent reads it.
Install
Pinned to the audited commit 8badbd7
git clone https://github.com/nvidia/skills git -C skills checkout 8badbd7ed3f2
The author documents no install command, so this uses the repository directly. Our verdict covers commit 8badbd7ed3f2 only.
Works in which agents?
What its own text says, not a test
| Agent | Status | More |
|---|---|---|
| Claude Code | Mentioned in its text, not tested | Skills for Claude Code · About Claude Code |
| Codex | Mentioned in its text, not tested | Skills for Codex · About Codex |
Audit history
Every audit, every source change
- ✓SAFE B 89 / 100
first audit · source
8badbd7ed3f2
README badge
For maintainers · shows the latest audit
[](https://modelsatlas.com/skills/nvidia/cuopt-multi-objective-exploration/)
The badge shows our verdict and grade for this skill, and links back to this page. It changes when the audit does.
Similar skills
All coding & review skills →nvidia/skills
LP, MILP, and QP (beta) with cuOpt — Python, C, and CLI. Use when the user is solving LP, MILP, or QP with any cuOpt interface.
nvidia/skills
Install cuOpt for Python, C, or server via pip, conda, or Docker; verify the install. For building cuOpt from source, see cuopt-developer.
nvidia/skills
Modify, build, test, debug, and contribute to NVIDIA cuOpt (C++/CUDA, Python, server, CI). Use for solver internals, PRs, DCO, and code conventions.
nvidia/skills
Use for CUDA-Q setup, simulation targets, QPU access, and @cudaq.kernel authoring guidance.
nvidia/skills
Launch AutoMagicCalib microservice and web UI from NGC release images via Docker Compose. Use when user says 'deploy auto calibration', 'launch auto calibration', 'launch AMC', 'start MS+UI', or 'set up…
nvidia/skills
Calibrates pre-recorded `cam_*.mp4` datasets through the AutoMagicCalib REST API. Use for user-supplied local MP4s; route live RTSP streams to `amc-run-rtsp-calibration`.
Add this badge to your README
[](https://modelsatlas.com/skills/nvidia/cuopt-multi-objective-exploration/)
<a href="https://modelsatlas.com/skills/nvidia/cuopt-multi-objective-exploration/"><img src="https://modelsatlas.com/skills/nvidia/cuopt-multi-objective-exploration/badge.svg" alt="ModelsAtlas: SAFE B"></a>
Questions about cuopt-multi-objective-exploration
What does the cuopt-multi-objective-exploration skill do?
Is cuopt-multi-objective-exploration safe to install?
What can cuopt-multi-objective-exploration access on my machine?
Which assistants does cuopt-multi-objective-exploration work with?
How current is this page?
Sources
- github.com/nvidia/skills/tree/main/skills/cuopt-multi-objective- — the audited source at commit 8badbd7ed3f2 and every finding aboveObserved · 28 Oct 2026
Spotted something wrong? Report a correction · Methodology
Keep going in your AI
Opens with this page as the source. We add nothing else to the prompt.
- What does the cuopt-multi-objective-exploration skill do?
- Is cuopt-multi-objective-exploration safe to install?
- What can cuopt-multi-objective-exploration access on my machine?