Why Decompose: Block Structure in Large Problems
Large-scale linear programs often hide block structure in their constraint matrices. Recognizing block-diagonal, block-angular, and dual block-angular forms reveals when an LP separates into smaller, independent (or near-independent) subproblems — the foundation of Dantzig–Wolfe, Benders, and other decomposition algorithms. This lesson shows how to identify these structures and quantify the computational payoff of exploiting them.
Tutorial
Block-Diagonal Structure: When an LP Separates Completely
When a linear program has hundreds of thousands of variables and constraints, solving it as one giant problem is wasteful — and often infeasible. Many large-scale LPs have block structure: their constraint matrix can be permuted so that every nonzero entry lies inside a few well-defined blocks, with zeros everywhere else.
The simplest case is block-diagonal structure, where the constraint matrix has the form
Each block acts on its own variables and its own constraints. The full LP
decouples into independent LPs — one per block. We solve each separately (and in parallel); the global optimum is the sum of the subproblem optima, because no variable or constraint links the blocks.
For example, the constraint matrix
splits into one subproblem on and a second on — two LPs that share nothing.