Concepedia

Abstract

Decomposition is a general approach to solving a problem by breaking it up into smaller ones and solving each of the smaller ones separately, either in parallel or sequentially. (When it is done sequentially, the advantage comes from the fact that problem complexity grows more than linearly.) Problems for which decomposition works in one step are called (block) separable, or trivially parallelizable. As a general example of such a problem, suppose the variable x can be partitioned into subvectors x1;:::;xk, the objective is a sum of functions of xi, and each constraint involves only variables from one of the subvectors xi. Then evidently we can solve each problem involving xi separately (and in parallel), and then re-assemble the solution x. Of course this is a trivial, and not too interesting, case. A more interesting situation occurs when there is some coupling or interaction between the subvectors, so the problems cannot be solved independently. For these cases there are techniques that solve the overall problem by iteratively solving a sequence of smaller problems. There are many ways to do this; in this note we consider some simple examples that illustrate the ideas. Decomposition is an old idea, and appears in early work on large-scale LPs from the 1960s [DW60]. A good reference on decomposition methods is chapter 6 of Bertsekas [Ber99].

References

YearCitations

Page 1