Feasible point of the nested subproblem NLDS(t,k)
DefinitionStochasticProg_MultistageV2_NLDSFeasibleGiven a cut set , a node at stage and an ancestor decision , a pair is feasible for if , (resp. at the root), for every feasibility cut of , for every optimality cut of , and if has no optimality cut.
Definition code
import Mathlib
import Definitions.Def_StochasticProg_Multistage_Tree
import Definitions.Def_StochasticProg_MultistageV2_Instance
import Definitions.Def_StochasticProg_MultistageV2_rhs
import Definitions.Def_StochasticProg_MultistageV2_Cuts
namespace StochasticProg.MultistageV2
variable {H n m : ℕ} {T : Multistage.Tree H}
/-- `(x, θ)` is feasible for the current subproblem NLDS(t,k), (1.2)–(1.5), p. 267, at the
ancestor's current decision `xp = x^{t-1}_{a(k)}`: `x ≥ 0` (1.5),
`W^t x = h^t_k - T^{t-1}_k xp` (1.2), every feasibility cut `D x ≥ d` of `k` (1.3), every
optimality cut `E x + θ ≥ e` of `k` (1.4), and Step 0's `θ = 0` while `k` has no optimality
cut yet (p. 267; this also covers the stage-`H` problem, which has no `θ`). -/
def NLDSFeasible (inst : Instance H n m T) (C : Cuts T n) (k : T.Node) (xp : Fin n → ℝ)
(x : Fin n → ℝ) (θ : ℝ) : Prop :=
(∀ i, 0 ≤ x i) ∧
(inst.W (T.stage k)).mulVec x = rhs inst k xp ∧
(∀ q ∈ C.feas k, q.2 ≤ q.1 ⬝ᵥ x) ∧
(∀ q ∈ C.opt k, q.2 ≤ q.1 ⬝ᵥ x + θ) ∧
(C.opt k = ∅ → θ = 0)
end StochasticProg.MultistageV2
Source
Birge & Louveaux, Introduction to Stochastic Programming, 2nd ed. (2011), Ch. 6, §6.1, NLDS(t,k), (1.2)–(1.5), and Step 0, p. 267 (PDF p. 288)