
Software Tools for Implementing Branch, Cut, and Price Algorithms L´aszl´oLad´anyi IBM T. J. Watson Research Center Ted Ralphs Lehigh University Matthew Saltzman Clemson University INFORMS Annual Meeting, Wednesday, November 20, 2002 INFORMS BCP Workshop 1 Agenda ² Overview of COIN-OR ² Overview of branch, cut, and price ² Overview of COIN-OR branch, cut, and price toolbox – BCP – OSI – CGL – CLP – VOL ² Using the toolbox – Getting started – Developing an application ² Examples Overview of COIN-OR 2 Agenda ² ) Overview of COIN-OR ( ² Overview of branch, cut, and price ² Overview of COIN-OR branch, cut, and price toolbox – BCP – OSI – CGL – CLP – VOL ² Using the toolbox – Getting started – Developing an application ² Examples Overview of COIN-OR 3 What is COIN-OR? ² The COIN-OR Project – A consortium of researchers in both industry and academia dedicated to improving the state of computational research in OR. – An initiative promoting the development and use of interoperable, open-source software for operations research. ² The COIN-OR Repository – A library of interoperable software tools for building optimization codes, as well as a few stand alone packages. – A venue for peer review of OR software tools. – A development platform for open source projects, including a CVS repository. Overview of COIN-OR 4 Our Agenda ² Accelerate the pace of research in computational OR. – Reuse instead of reinvent. – Reduce development time and increase robustness. – Increase interoperability (standards and interfaces). ² Provide for software what the open literature provides for theory. – Peer review of software. – Free distribution of ideas. – Adherence to the principles of good scientific research. ² Define standards and interfaces that allow software components to interoperate. ² Increase synergy between various development projects. ² Provide robust, open-source tools for practitioners. Overview of COIN-OR 5 Open Source Development ² Open source development is a coding paradigm in which development is done in a cooperative and distributed fashion. ² Strictly speaking, an open source license must satisfy the requirements of the Open Source Definition. ² A license cannot call itself “open source” until it is approved by the Open Source Initiative. ² Basic properties of an open source license – Access to source code. – The right to redistribute. – The right to modify. ² The license may require that modifications also be kept open. Overview of COIN-OR 6 Components of the COIN-OR Library COIN OSI CGL BCP VOL CLP IPOPT DFO OTS ² Branch, cut, price toolbox – OSI: Open Solver Interface – CGL: Cut Generator Library – BCP: Branch, Cut, and Price Library – VOL: Volume Algorithm – CLP: COIN-OR LP Solver ² Stand-alone components – IPOPT: Interior Point Optimization (Nonlinear) – DFO: Derivative Free Optimization – OTS: Open Tabu Search Overview of BCP 7 Agenda ² Overview of COIN-OR ² ) Overview of branch, cut, and price ( ² Overview of COIN-OR branch, cut, and price toolbox – BCP – OSI – CGL – CLP – VOL ² Using the toolbox – Getting started – Developing an application ² Examples Overview of BCP 8 Introduction to Branch, Cut, and Price ² Consider problem P : min cT x s.t. Ax · b xi 2 Z 8 i 2 I where A 2 Rm£n, b 2 Rm, c 2 Rn. n ² Let P = convfx 2 R : Ax · b; xi 2 Z 8 i 2 Ig. ² Basic Algorithmic Approach – Use LP relaxations to produce lower bounds. – Branch using hyperplanes. Overview of BCP 9 Branch, Cut, and Price ² Weyl-Minkowski – 9A¯ 2 Rm¯ £n; ¯b 2 Rm¯ s.t. P = fx 2 Rn : Ax¯ · ¯bg – We want the solution to minfcT x : Ax¯ · ¯bg. – Solving this LP isn’t practical (or necessary). ² BCP Approach – Form LP relaxations using submatrices of A¯. – The submatrices are defined by sets V ⊆ f1; : : : ; ng and C ⊆ f1;:::; m¯ g. – Forming/managing these relaxations efficiently is one of the primary challenges of BCP. Overview of BCP 10 The Challenge of BCP ² The efficiency of BCP depends heavily on the size (number of rows and columns) and tightness of the LP relaxations. ² Tradeoff – Small LP relaxations ) faster LP solution. – Big LP relaxations ) better bounds. ² The goal is to keep relaxations small while not sacrificing bound quality. ² We must be able to easily move constraints and variables in and out of the active set. ² This means dynamic generation and deletion. Overview of BCP 11 An Object-oriented Approach ² The rows/columns of a static LP are called constraints and variables. ² What do these terms mean in a dynamic context? ² Conceptual Definitions – Constraint: A mapping that generates coefficients for the realization of an inequality for the current set of active variables. – Variable: A mapping that generates coefficients corresponding to a variable for the current set of active constraints. – Subproblem: Defined by a subset of the global set of variables and constraints. ² To construct a subproblem, an initial core relaxation is needed. ² From the core, we can build up other relaxations using the mappings. Overview of BCP 12 Generating the Objects ² We will generically call the constraints and variables objects. ² We need to define methods for generating these objects. ² For constraints, such a method is a mapping gc(x): Rn ! 2f1;:::;m¯ g where x is a primal solution vector. ² For variables, we have gv(y): Rm ! 2f1;:::;ng where y is a dual solution vector. Overview of BCP 13 Object Representation ² In practice, we may not know the cardinality of the object set. ² We may not easily be able to assign indices to the objects. ² Instead, we must define abstract representations of these objects. ² Example: Subtour elimination constraints. Overview of BCP 14 Example: Traveling Salesman Problem Feasible solutions are those incidence vectors satisfying: P n x = 2 8i 2 V Pj=1 ij i2S xij ¸ 2 8S ½ V; jSj > 1: j62S ² The variables correspond to the edges of a graph (easy to index). ² The number of facets (constraints) is astronomical. ² The core – The k shortest edges adjacent to each node. – The degree constraints. ² Generate subtour elimination constraints and other variables dynamically. Overview of BCP 15 Frameworks for BCP ² Concept: Provide a framework in which the user has only to define constraints, variables, and a core. – Branch and bound ) core only – Branch and cut ) core plus constraints – Branch and price ) core plus variables – Branch, cut, and price ) the whole caboodle ² Existing BCP frameworks – SYMPHONY (parallel, C) – COIN/BCP (parallel, C++) – ABACUS (sequential, C++) ² Tools Needed – Framework – LP Solver – Cut Generator Overview of the COIN/BCP Toolbox 16 Agenda ² Overview of COIN-OR ² Overview of branch, cut, and price ² ) Overview of COIN-OR branch, cut, and price toolbox ( – BCP – OSI – CGL – CLP – VOL ² Using the toolbox – Getting started – Developing an application ² Examples Overview of the COIN/BCP Toolbox 17 The COIN-OR Branch, Cut, and Price Toolbox Branch, cut, price toolbox ² BCP: Tool for implementing BCP algorithms ² OSI: Tool for interfacing to third-party solvers (particularly LP solvers) ² CGL: Tool for generating valid inequalities (within BCP) ² VOL: Fast approximate LP solver (with OSI interface) ² CLP: COIN-OR LP Solver (with OSI interface) Overview of the COIN/BCP Toolbox 18 COIN/BCP Overview ² The COIN/BCP library is divided into modules, of which there are four basic types: Master Maintains problem instance data, spawns other processes, performs I/O, fault tolerance. Tree Manager Controls overall execution by tracking growth of the tree and dispatching subproblems to the LP solvers. Node Processor Perform processing and branching operations. Object Generator Generate objects. ² The division into separate modules makes the code highly configurable and parallelizable. Overview of the COIN/BCP Toolbox 19 COIN/BCP Overview: Node Processor Handling of Constraints ² Cuts are generated by the cut generators and/or by the node processor itself. ² Violated cuts are received and processed by the LP modules. ² Each LP module maintains a small local cut pool. ² A limited number of cuts are added to the LP relaxations each iteration to prevent “saturation.” ² Ineffective (non-core) cuts are aggressively removed. Overview of the COIN/BCP Toolbox 20 COIN/BCP Overview: Node Processor Handling of Variables ² Reduced cost/logical fixing are used to remove (non-core) variables. ² Variable generation may be needed for very large problems. ² Exact generation must take place before fathoming! ² Two-phase algorithm – BCP is run to completion on the core variables before generating new ones. – Using the upper bound and cuts from the first phase, all variables are priced out in the root node and are then propagated down into the leaves as required. – The tree is trimmed by aggregating children back into their parent. – Afterwards, each leaf is processed again. Overview of the COIN/BCP Toolbox 21 COIN/BCP Overview: Node Processor Main Loop Solve current LP relaxation New variables generated Test for fathoming Fathom Generate variables Test for feasibility Restore feasibility Send solution to cut generator Fathom Fix variables Remove ineffective cuts Branch Receive cuts from generator Compare branching candidates Add cuts from local pool to LP Select branching candidates Make branching decision Branch Overview of the COIN/BCP Toolbox 22 OSI Overview Uniform interface to LP solvers, including: ² CLP (COIN-OR LP Solver) ² CPLEX (ILOG) ² DyLP (BonsaiG LP Solver) ² GLPK (GNU LP Kit) ² OSL (IBM) ² SoPlex (Konrad-Zuse-Zentrum f¨urInformationstechnik Berlin) ² Volume (COIN-OR) ² XPRESS (Dash Optimization) Overview of the COIN/BCP Toolbox 23 CLP Overview ² Open source
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages42 Page
-
File Size-