Outline DM87 SCHEDULING, TIMETABLING AND ROUTING 1. An Overview of Software for MIP Lecture 5 Mathematical Programming, Exercises 2. ZIBOpt Marco Chiarandini DM87 – Scheduling, Timetabling and Routing Outline 2 How to solve mathematical programs I Use a mathematical workbench like MATLAB, MATHEMATICA, MAPLE, R. I Use a modeling language to convert the theoretical model to a computer usable representation and employ an out-of-the-box general solver to find solutions. I Use a framework that already has many general algorithms available and only implement problem specific parts, e. g., separators or upper bounding. I Develop everything yourself, maybe making use of libraries that provide high-performance implementations of specific algorithms. 1. An Overview of Software for MIP 2. ZIBOpt Thorsten Koch “Rapid Mathematical Programming” Technische Universität, Berlin, Dissertation, 2004 DM87 – Scheduling, Timetabling and Routing 3 DM87 – Scheduling, Timetabling and Routing 4 How to solve mathematical programs I How to solve mathematical programs I Use a mathematical workbench like MATLAB, MATHEMATICA, MAPLE, R. Advantages: easy if familiar with the workbench Use a modeling language to convert the theoretical model to a computer usable representation and employ an out-of-the-box general solver to find solutions. Advantages: flexible on modeling side, easy to use, immediate results, easy to test different models, possible to switch between different state-of-the-art solvers Disadvantages: restricted, not state-of-the-art Disadvantages: algoritmical restrictions in the solution process, no upper bounding possible DM87 – Scheduling, Timetabling and Routing 5 DM87 – Scheduling, Timetabling and Routing How to solve mathematical programs I How to solve mathematical programs Use a framework that already has many general algorithms available and only implement problem specific parts, e. g., separators or upper bounding. Advantages: allow to implement sophisticated solvers, high performance bricks are available, flexible Disadvantages: view imposed by designers, vendor specific hence no transferability, DM87 – Scheduling, Timetabling and Routing 6 7 I Develop everything yourself, maybe making use of libraries that provide high-performance implementations of specific algorithms. Advantages: specific implementations and max flexibility Disadvantages: for extremely large problems, bounding procedures are more crucial than branching DM87 – Scheduling, Timetabling and Routing 8 Modeling Cycle Modeling Languages Thorsten Koch “Rapid Mathematical Programming” Technische Universität, Berlin, Dissertation, 2004 H. Schichl. “Models and the history of modeling”. In Kallrath, ed., Modeling Languages in Mathematical Optimization, Kluwer, 2004. DM87 – Scheduling, Timetabling and Routing 9 DM87 – Scheduling, Timetabling and Routing LP-Solvers CPLEX XPRESS-MP SOPLEX COIN CLP GLPK LP SOLVE 10 Outline http://www.ilog.com/products/cplex http://www.dashoptimization.com http://www.zib.de/Optimization/Software/Soplex http://www.coin-or.org http://www.gnu.org/software/glpk http://lpsolve.sourceforge.net/ 1. An Overview of Software for MIP 2. ZIBOpt “Software Survey: Linear Programming” by Robert Fourer http://www.lionhrtpub.com/orms/orms-6-05/frsurvey.html DM87 – Scheduling, Timetabling and Routing 11 DM87 – Scheduling, Timetabling and Routing 12 ZIBOpt I I I Some commands Zimpl is a little algebraic Modeling language to translate the mathematical model of a problem into a linear or (mixed-) integer mathematical program expressed in .lp or .mps file format which can be read and (hopefully) solved by a LP or MIP solver. Scip is an IP-Solver. It solves Integer Programs and Constraint Programs: the problem is successively divided into smaller subproblems (branching) that are solved recursively. Integer Programming uses LP relaxations and cutting planes to provide strong dual bounds, while Constraint Programming can handle arbitrary (non-linear) constraints and uses propagation to tighten domains of variables. scip> scip> scip> scip> scip> scip> scip> scip> scip> scip> SoPlex is an LP-Solver. It implements the revised simplex algorithm. It features primal and dual solving routines for linear programs and is implemented as a C++ class library that can be used with other programs (like SCIP). It can solve standalone linear programs given in MPS or LP-Format. DM87 – Scheduling, Timetabling and Routing 13 Callable libraries How to construct a problem instance in SCIP SCIPcreate(), // create a SCIP object SCIPcreateProb() // build the problem SCIPcreateVar() // create variables SCIPaddVar() // add them to the problem // Constraints: For example, if you want to // fill in the rows of a general MIP, you have to call SCIPcreateConsLinear(), SCIPaddConsLinear() SCIPreleaseCons() // after finishing. SCIPsolve() SCIPreleaseVar() releas variable poiinters How to pass to SCIP a know solution. SCIPcreateProb() // build the problem SCIPtransformProb() // transform your problem SCIPcreateSol() // create SCIP primal solution by calling SCIPsetSolVal() // set all nonzero values SCIPtrySol() // add this solution SCIPsolFree() // release it by calling SCIP CALL() // exception handling SCIPsetIntParam(scip, ”display/memused/status”, 0) == set display \ memused status 0 SCIPprintStatistics() == display statistics DM87 – Scheduling, Timetabling and Routing $ zimpl −t lp sudoku.zpl $ scip −f sudoku.lp 15 help read sudoku.lp display display display problem set display width 120 display statistics display parameters set default set load settings/∗/∗.set set load /home/marco/ZIBopt/ziboptsuite−1.00/scip−1.00/settings/emphasis/cpsolver.set DM87 – Scheduling, Timetabling and Routing 14
© Copyright 2025 Paperzz