math_spec.boundedness
Provably unbounded models, named before a solver says a bare unbounded.
A variable that is unbounded on the side its objective term improves toward and appears in no constraint runs to infinity for any data at all. Advice rather than a refusal, because the same shape is what a half-written model looks like.
Which side improves is read off the sign the variable enters the objective
with: under minimize a +v term runs down toward lower. Where that
sign is not decidable without data — a parameter coefficient, or occurrences
of both signs — nothing is claimed.
Sign = Literal['+', '-'] | None
module-attribute
#
unbounded_notes(spec)
#
Name every variable the objective can drive to infinity unopposed.
Expands internally: a piecewise: block holds the variables it names,
and does so through the constraints it expands into, so the answer is
about the expansion whatever the caller happens to hold.
| RETURNS | DESCRIPTION |
|---|---|
list[Advice]
|
One note per variable that is unbounded on the side its objective term |
list[Advice]
|
improves toward and named by no constraint. |