constrained-optimization
Installation
SKILL.md
Constrained optimization
Use this methodology to turn an optimization request into a defensible decision record.
Workflow
- Frame the decision. Name the decision maker, feasible action window, variable domains (continuous, integer, categorical, binary), bounds, units, and whether each variable is controllable.
- State objectives. Write objective direction, units, aggregation, baseline, and acceptable tradeoffs. Keep multiple objectives separate until a decision maker chooses weights, lexicographic priority, epsilon constraints, or a Pareto review.
- Classify constraints. Mark each as hard (must hold), soft (preference with an explicit penalty or relaxation), or informational. Define equality/inequality tolerance, feasibility predicate, and how violations are measured. Never hide a hard violation in a penalty score.
- Establish baselines. Validate a known feasible incumbent, a simple exact or bounded baseline where available, and a heuristic baseline when exact solving is impractical. State what each baseline proves and does not prove.
- Choose the method. Match solver family to domains, smoothness, scale, and proof needs. An exact solver can establish optimality or a bound when its status and gap support it; a heuristic supplies a candidate and empirical evidence. Do not call timeout or unknown an infeasible result.
- Run a fair comparison. Fix an objective/constraint implementation, feasibility checker, compute budget, stopping rule, and reporting schema. For stochastic methods, use equal budgets and declared seeds/repeats. Keep solver configuration separate from the formulation.
- Independently validate. Recompute objective and every constraint from the returned decision using an independent implementation or checker. Report feasible-best, violation magnitude, bound/gap, status, runtime, and unresolved unknowns separately.
- Decide and monitor. Select a feasible solution or Pareto set with the tradeoff rationale, sensitivity/robustness evidence, owner, and rollback/re-optimization trigger. Record “infeasible under these constraints” only when infeasibility is proven or independently certified.
Routing and exit
Load references/formulation-and-evidence.md for formulation, feasibility, solver status, bounds/gaps, and comparison rules. Load references/multiobjective-and-robustness.md for Pareto decisions and stochastic sensitivity. Use the formulation record to define the problem before solving, and the solution audit to verify a returned candidate.