Large Scale Systems

12 As mathematical-programming techniques and computer capabilities evolve, the spectrum of potential applications also broadens. Problems that previously were considered intractable, from a computational point of view, now become amenable to practical mathematical-programming solutions. Today, commercial linear-programming codes can solve general linear programs of about 4000 to 6000 constraints. Although this is an impressive accomplishment, many applied problems lead to formulations that greatly exceed this existing computational limit. Two approaches are available to deal with these types of problems. One alternative, that we have discussed in Chapter 5, leads to the partitioning of the overall problem into manageable subproblems, which are linked by means of a hierarchical integrative system. An application of this approach was presented in Chapter 6, where two interactivelinear-programming models were designed to support strategic and tactical decisions in the aluminum industry, including resource acquisition, swapping contracts, inventory plans, transportation routes, production schedules and market-penetration strategies. This hierarchical method of attacking large problems is particularly effective when the underlying managerial process involves various decision makers, whose areas of concern can be represented by a specific part of the overall problem and whose decisions have to be coordinated within the framework of a hierarchical organization. Some large-scale problems are not easily partitioned in this way. They present a monolithic structure that makes the interaction among the decision variables very hard to separate, and lead to situations wherein there is a single decision maker responsible for the actions to be taken, and where the optimal solution isvery sensitive to the overall variable interactions. Fortunately, these large-scale problems invariably contain special structure. The large-scale system approach is to treat the problem as a unit, devising specialized algorithms to exploit the structure of the problem. This alternative will be explored in this chapter, where two of the most important large-scale programming procedures—decomposition and column generation—will be examined. The idea of taking computational advantage of the special structure of a specific problem to develop an efficient algorithm is not new. The upper-bounding technique introduced in Chapter 2, the revised simplex method presented in Appendix B, and the network-solution procedures discussed in Chapter 8 all illustrate this point. This chapter further extends these ideas. Certain structural forms of large-scale problems reappear frequently in applications, and large-scale systems theory concentrates on the analysis of these problems. In this context, structure means the pattern of zero and nonzero coefficients in the constraints; the most important …