Most users need only four public types.
Input data for one deterministic ULS instance.
All vectors have length Horizon.
The common strategy interface.
Every algorithm exposes:
| Member | Meaning |
|---|---|
| Name | readable algorithm name |
| Kind | exact or heuristic |
| Solve(problem, cancellationToken) | solve the instance |
The common result wrapper.
| Member | Meaning |
|---|---|
| Status | optimal, feasible, infeasible, failed, … |
| ObjectiveValue | total cost when a solution exists |
| Solution | detailed production plan |
| Message | optional diagnostic information |
The detailed plan contains production quantities, ending inventories, setup decisions and cost components.
You only need the advanced layer when using solver selection, mathematical formulations, cutting-plane reports or custom execution backends. Those types remain fully documented in the generated class/namespace reference but are intentionally kept out of the basic workflow.
This split is deliberate: simple API first, implementation API second.