Branch, Cut, and Price: Sequential and Parallel

Branch, cut, and price (BCP) is an LP-based branch and bound technique for solving large-scale discrete optimization problems (DOPs). In BCP, both cuts and variables can be generated dynamically throughout the search tree. The ability to handle constantly changing sets of cuts and variables allows these algorithms to undertake the solution of very large-scale DOPs; however, it also leads to interesting implementational challenges. These lecture notes, based on our experience over the last six years with implementing a generic framework for BCP called SYMPHONY (Single- or Multi-Process Optimization over Networks), address these challenges. They are an attempt to summarize some of what we and others have learned about implementing BCP, both sequential and parallel, and to provide a useful reference for those who wish to use BCP techniques in their own research.SYMPHONY, the software from which we have drawn most of our experience, is a powerful, state-of-the-art library that implements the generic framework of a BCP algorithm. The library's modular design makes it easy to use in a variety of problem settings and on a variety of hardware platforms. All library subroutines are generic--their implementation does not depend on the problem-setting. To develop a full-scale BCP algorithm, the user has only to specify a few problem-specific methods such as cut generation. The vast majority of the computation takes place within a "black box," of which the user need have no knowledge. Within the black box, SYMPHONY performs all the normal functions of branch and cut--tree management, LP solution, cut pool management, as well as inter-process communication (if parallelism is used). Source code and documentation for SYMPHONY are available at http://branchandcut.org/SYMPHONY.

[1]  Roy E. Marsten,et al.  The Design of the XMP Linear Programming Library , 1981, TOMS.

[2]  Yuji Shinano,et al.  A generalized utility for parallel branch and bound algorithms , 1995, Proceedings.Seventh IEEE Symposium on Parallel and Distributed Processing.

[3]  Ángel Corberán,et al.  Polyhedral results for a vehicle routing problem , 1991 .

[4]  Marshall L. Fisher,et al.  A generalized assignment heuristic for vehicle routing , 1981, Networks.

[5]  Harvey M. Salkin,et al.  A set-partitioning-based exact algorithm for the vehicle routing problem , 1989, Networks.

[6]  Nicos Christofides,et al.  An Algorithm for the Vehicle-dispatching Problem , 1969 .

[7]  Toshihide Ibaraki,et al.  Computing Edge-Connectivity in Multigraphs and Capacitated Graphs , 1992, SIAM J. Discret. Math..

[8]  Stephen P. Boyd,et al.  Branch and Bound Methods , 1987 .

[9]  Laurence A. Wolsey,et al.  bc–opt: a branch-and-cut code for mixed integer programs , 1999, Math. Program..

[10]  J. F. Pierce,et al.  ON THE TRUCK DISPATCHING PROBLEM , 1971 .

[11]  H. D. Ratliff,et al.  Set partitioning based heuristics for interactive routing , 1981, Networks.

[12]  BalasEgon,et al.  Mixed 0-1 Programming by Lift-and-Project in a Branch-and-Cut Framework , 1996 .

[13]  L GustafsonJohn Reevaluating Amdahl's law , 1988 .

[14]  Francisco Barahona,et al.  The volume algorithm: producing primal solutions with a subgradient method , 2000, Math. Program..

[15]  Thomas L. Magnanti,et al.  Capacitated trees, capacitated routing, and associated polyhedra , 1990 .

[16]  Jeff Linderoth,et al.  Topics in parallel integer optimization , 1998 .

[17]  Martin W. P. Savelsbergh,et al.  MINTO, a mixed INTeger optimizer , 1994, Oper. Res. Lett..

[18]  Martin W. P. Savelsbergh,et al.  Branch-and-Price: Column Generation for Solving Huge Integer Programs , 1998, Oper. Res..

[19]  R. Borndörfer,et al.  Aspects of Set Packing, Partitioning, and Covering , 1998 .

[20]  Cynthia A. Phillips,et al.  PICO: An Object-Oriented Framework for Branch and Bound , 2000 .

[21]  George L. Nemhauser,et al.  Experiments with parallel branch-and-bound algorithms for the set covering problem , 1993, Oper. Res. Lett..

[22]  Richard M. Karp,et al.  The Traveling-Salesman Problem and Minimum Spanning Trees , 1970, Oper. Res..

[23]  Michael Jünger,et al.  The ABACUS system for branch‐and‐cut‐and‐price algorithms in integer programming and combinatorial optimization , 2000, Softw. Pract. Exp..

[24]  E. Balas,et al.  Set Partitioning: A survey , 1976 .

[25]  Per S. Laursen Can Parallel Branch and Bound without Communication Be Effective? , 1994, SIAM J. Optim..

[26]  M. Balinski,et al.  On an Integer Program for a Delivery Problem , 1964 .

[27]  Marshall L. Fisher,et al.  Optimal Solution of Vehicle Routing Problems Using Minimum K-Trees , 1994, Oper. Res..

[28]  Yuji Shinano,et al.  Control schemes in a generalized utility for parallel branch-and-bound algorithms , 1997, Proceedings 11th International Parallel Processing Symposium.

[29]  Jonathan Eckstein,et al.  Parallel Branch-and-Bound Algorithms for General Mixed Integer Programming on the CM-5 , 1994, SIAM J. Optim..

[30]  Salah Dowaji,et al.  Concurrent data structures and load balancing strategies for parallel branch-and-bound/A* algorithms , 1994, Parallel Algorithms.

[31]  Ulrich Blasum,et al.  Application of the Branch and Cut Method to the Vehicle Routing Problem , 2000 .

[32]  Alexander Martin Integer Programs with Block Structure , 1999 .

[33]  Teodor Gabriel Crainic,et al.  PARALLEL BRANCH-AND-BOUND ALGORITHMS: SURVEY AND SYNTHESIS , 1993 .

[34]  Qun Chen,et al.  FATCOP: A Fault Tolerant Condor-PVM Mixed Integer Programming Solver , 2000, SIAM J. Optim..

[35]  Giovanni Rinaldi,et al.  Computational results with a branch and cut code for the capacitated vehicle routing problem , 1998 .

[36]  Gerhard Reinelt,et al.  TSPLIB - A Traveling Salesman Problem Library , 1991, INFORMS J. Comput..

[37]  T. K. Ralphsyand,et al.  SYMPHONY: A Parallel Framework for Branch and Cut , 1999 .

[38]  Martin W. P. Savelsbergh,et al.  A Branch-and-Price Algorithm for the Generalized Assignment Problem , 1997, Oper. Res..

[39]  Jack Dongarra,et al.  PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing , 1995 .

[40]  Gene H. Golub,et al.  Matrix computations , 1983 .

[41]  M. Padberg,et al.  Lp-based combinatorial problem solving , 1985 .

[42]  Paolo Toth,et al.  Exact algorithms for the vehicle routing problem, based on spanning tree and shortest path relaxations , 1981, Math. Program..

[43]  M. Padberg,et al.  Solving airline crew scheduling problems by branch-and-cut , 1993 .

[44]  Jeffrey D. Smith,et al.  Design and Analysis of Algorithms , 2009, Lecture Notes in Computer Science.

[45]  Michael Jünger,et al.  Practical problem solving with cutting plane algorithms in combinatorialoptimization , 1993, Combinatorial Optimization.

[46]  Vijay P. Kumar,et al.  Analyzing Scalability of Parallel Algorithms and Architectures , 1994, J. Parallel Distributed Comput..

[47]  Gilbert Laporte,et al.  Optimal Routing under Capacity and Distance Restrictions , 1985, Oper. Res..

[48]  H. Crowder,et al.  Solving Large-Scale Symmetric Travelling Salesman Problems to Optimality , 1980 .

[49]  E. Balas,et al.  Mixed 0-1 Programming by Lift-and-Project in a Branch-and-Cut Framework , 1996 .

[50]  Michael Jünger,et al.  The ABACUS system for branch‐and‐cut‐and‐price algorithms in integer programming and combinatorial optimization , 2000, Softw. Pract. Exp..

[51]  Cynthia A. Phillips,et al.  Pico: An Object-Oriented Framework for Parallel Branch and Bound * , 2001 .

[52]  Michael Jünger,et al.  Introduction to ABACUS - a branch-and-cut system , 1998, Oper. Res. Lett..

[53]  David Applegate,et al.  Finding Cuts in the TSP (A preliminary report) , 1995 .

[54]  Panos M. Pardalos,et al.  SCOOP: Solving Combinatorial Optimization Problems in Parallel , 1996, Solving Combinatorial Optimization Problems in Parallel.

[55]  G. Amdhal,et al.  Validity of the single processor approach to achieving large scale computing capabilities , 1967, AFIPS '67 (Spring).

[56]  B. Gillett,et al.  A parallel integer linear programming algorithm , 1988 .

[57]  Vipin Kumar,et al.  Parallel search algorithms for discrete optimization problems , 1993, System Modelling and Optimization.

[58]  Thomas L. Morin,et al.  A branch-and-cut algorithm for vehicle routing problems , 1994, Ann. Oper. Res..

[59]  Jonathan Eckstein,et al.  How Much Communication Does Parallel Branch and Bound Need? , 1997, INFORMS J. Comput..

[60]  N. Biggs THE TRAVELING SALESMAN PROBLEM A Guided Tour of Combinatorial Optimization , 1986 .

[61]  Gerhard Reinelt,et al.  A Cutting Plane Algorithm for the Linear Ordering Problem , 1984, Oper. Res..

[62]  Gérard Cornuéjols,et al.  Polyhedral study of the capacitated vehicle routing problem , 1993, Math. Program..

[63]  L. Ladányi Parallel branch and cut and its application to the traveling salesman problem , 1996 .

[64]  Bernard Gendron,et al.  Parallel Branch-and-Branch Algorithms: Survey and Synthesis , 1994, Oper. Res..

[65]  Laurence A. Wolsey,et al.  Integer and Combinatorial Optimization , 1988, Wiley interscience series in discrete mathematics and optimization.

[66]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[67]  Giovanni Rinaldi,et al.  A Branch-and-Cut Algorithm for the Resolution of Large-Scale Symmetric Traveling Salesman Problems , 1991, SIAM Rev..

[68]  R. Bixby,et al.  On the Solution of Traveling Salesman Problems , 1998 .

[69]  John L. Gustafson,et al.  Reevaluating Amdahl's law , 1988, CACM.

[70]  G. Nemhauser,et al.  Integer Programming , 2020 .

[71]  Ellis L. Johnson,et al.  Solving Large-Scale Zero-One Linear Programming Problems , 1983, Oper. Res..

[72]  Ángel Corberán,et al.  Separating capacity constraints in the CVRP using tabu search , 1998, Eur. J. Oper. Res..

[73]  Leslie E. Trotter,et al.  Parallel branch-and-cut for set partitioning , 1999 .

[74]  Salah Dowaji,et al.  Building a parallel branch and bound library , 1996, Solving Combinatorial Optimization Problems in Parallel.

[75]  Alexander Schrijver,et al.  Theory of linear and integer programming , 1986, Wiley-Interscience series in discrete mathematics and optimization.

[76]  David M. Ryan,et al.  An Integer Programming Approach to the Vehicle Scheduling Problem , 1976 .

[77]  Ted K. Ralphs,et al.  Parallel branch and cut for vehicle routing , 1995 .