discopt.decomposition#
Decomposition methods for structured (MI)NLP.
This package provides decomposition algorithms that exploit problem structure:
Benders decomposition (
discopt.decomposition.benders) — for block-angular / two-stage problems with complicating variables. Classical Benders handles a linear recourse LP; Generalized Benders (solve_gbd) handles a convex nonlinear recourse subproblem and is dispatched automatically when the model is nonlinear.Lagrangian relaxation (
discopt.decomposition.lagrangian) — dual bounds and primal recovery for problems with coupling constraints.
Both build on the shared structure layer (discopt.decomposition.structure),
which resolves user annotations (model.first_stage(...),
model.mark_coupling(...)) and auto-detects block structure.