discopt.decomposition

Contents

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.

Submodules#