FICO Xpress Optimizer Python Interface Reference Manual

Total Page:16

File Type:pdf, Size:1020Kb

FICO Xpress Optimizer Python Interface Reference Manual R FICO Xpress Optimization Xpress Optimizer Python interface User’s manual Last update 3 June 2017 www.fico.com Make every decision countTM This material is the confidential, proprietary, and unpublished property of Fair Isaac Corporation. Receipt or possession of this material does not convey rights to divulge, reproduce, use, or allow others to use it without the specific written authorization of Fair Isaac Corporation and use must conform strictly to the license agreement. The information in this document is subject to change without notice. If you find any problems in this documentation, please report them to us in writing. Neither Fair Isaac Corporation nor its affiliates warrant that this documentation is error-free, nor are there any other warranties with respect to the documentation except as may be provided in the license agreement. ©1983–2017 Fair Isaac Corporation. All rights reserved. Permission to use this software and its documentation is governed by the software license agreement between the licensee and Fair Isaac Corporation (or its affiliate). Portions of the program may contain copyright of various authors and may be licensed under certain third-party licenses identified in the software, documentation, or both. In no event shall Fair Isaac Corporation or its affiliates be liable to any person for direct, indirect, special, incidental, or consequential damages, including lost profits, arising out of the use of this software and its documentation, even if Fair Isaac Corporation or its affiliates have been advised of the possibility of such damage. The rights and allocation of risk between the licensee and Fair Isaac Corporation (or its affiliates) are governed by the respective identified licenses in the software, documentation, or both. Fair Isaac Corporation and its affiliates specifically disclaim any warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. The software and accompanying documentation, if any, provided hereunder is provided solely to users licensed under the Fair Isaac Software License Agreement. Fair Isaac Corporation and its affiliates have no obligation to provide maintenance, support, updates, enhancements, or modifications except as required to licensed users under the Fair Isaac Software License Agreement. FICO and Fair Isaac are trademarks or registered trademarks of Fair Isaac Corporation in the United States and may be trademarks or registered trademarks of Fair Isaac Corporation in other countries. Other product and company names herein may be trademarks of their respective owners. Xpress Optimizer Deliverable Version: A Last Revised: 3 June 2017 Contents 1 Introduction 1 1.1 Outline..............................................1 1.2 Installing the Python Xpress module.............................1 1.2.1 Installation from the Xpress Optimizer distribution................1 1.2.2 Installation from Conda................................2 2 Modeling an optimization problem3 2.1 Getting started.........................................3 2.2 Creating a problem.......................................3 2.3 Variables.............................................3 2.4 Constraints............................................4 2.5 Objective function........................................5 2.6 Special Ordered Sets (SOSs)..................................6 2.7 Indicator constraints......................................6 2.8 Modeling and solving nonlinear problems..........................6 2.9 Solving a problem........................................8 2.10 Querying a problem.......................................8 2.11 Reading and writing a problem................................ 10 2.12 Hints for building models efficiently............................. 10 3 Using Python numerical libraries 12 3.1 Using NumPy in the Xpress Python interface......................... 12 3.2 Products of NumPy arrays.................................... 13 4 Controls and Attributes 14 4.1 Controls.............................................. 14 4.2 Examples............................................. 15 4.3 Attributes............................................. 15 4.4 Examples............................................. 16 4.5 Accessing controls and attributes as object members................... 16 5 Using Callbacks 19 5.1 Introduction........................................... 19 6 Examples of use 21 6.1 Creating simple problems................................... 21 6.1.1 Generating a small Linear Programming problem................. 21 6.1.2 A Mixed Integer Linear Programming problem................... 22 6.2 Modeling examples....................................... 23 6.2.1 A simple model..................................... 23 6.2.2 Using IIS to investigate an infeasible problem................... 23 6.2.3 Modeling a problem using Python lists and vectors................ 24 6.2.4 A knapsack problem.................................. 24 6.2.5 A Min-cost-flow problem using NumPy....................... 25 6.2.6 A nonlinear model................................... 26 6.2.7 Finding the maximum-area n-gon.......................... 26 Fair Isaac Corporation Confidential and Proprietary Informationi Contents 6.2.8 Solving the n-queens problem............................. 27 6.2.9 Solving Sudoku problems............................... 27 6.3 Examples using NumPy..................................... 28 6.3.1 Using NumPy multidimensional arrays to create variables............. 28 6.3.2 Using the dot product to create arrays of expressions............... 29 6.3.3 Using the Dot product to create constraints and quadratic functions...... 29 6.3.4 Using NumPy to create quadratic optimization problems............. 30 6.4 Advanced examples: callbacks and problem querying/modifying............ 30 6.4.1 Visualize the branch-and-bound tree of a problem................ 30 6.4.2 Query and modify a simple problem......................... 32 6.4.3 Change a problem after solution........................... 32 6.4.4 Combining modeling and API functions....................... 34 6.4.5 A simple Traveling Salesman Problem (TSP) solver................. 34 7 Reference Manual 38 7.1 Using this chapter........................................ 38 Format of the reference.................................... 39 7.2 Global methods of the Xpress module............................ 39 7.3 Methods of the problem class................................. 40 7.4 Methods for branching objects................................ 42 7.5 Methods for adding/removing callbacks of a problem object............... 42 7.6 Methods to be used within a callback of a problem object................ 42 xpress.free............................................... 44 xpress.getbanner........................................... 45 xpress.getcheckedmode....................................... 46 xpress.getdaysleft........................................... 47 xpress.getlasterror.......................................... 48 xpress.getlicerrmsg.......................................... 49 xpress.getversion........................................... 50 xpress.init................................................ 51 xpress.setcheckedmode........................................ 52 xpress.setdefaults........................................... 53 xpress.setdefaultcontrol....................................... 54 xpress.Sum............................................... 55 xpress.Dot............................................... 56 xpress.Prod............................................... 58 xpress.exp............................................... 59 xpress.log................................................ 60 xpress.log10.............................................. 61 xpress.sin................................................ 62 xpress.cos................................................ 63 xpress.tan................................................ 64 xpress.asin............................................... 65 xpress.acos............................................... 66 xpress.atan............................................... 67 xpress.max............................................... 68 xpress.min............................................... 69 xpress.abs................................................ 70 xpress.sign............................................... 71 xpress.erf................................................ 72 xpress.erfc............................................... 73 xpress.sqrt............................................... 74 xpress.user............................................... 75 xpress.addcbmsghandler....................................... 76 xpress.removecbmsghandler..................................... 77 Fair Isaac Corporation Confidential and Proprietary Information ii Contents problem.addcbbariteration..................................... 78 problem.addcbbarlog......................................... 80 problem.addcbchgbranchobject................................... 81 problem.addcbcutlog......................................... 82 problem.addcbdestroymt...................................... 83 problem.addcbgapnotify....................................... 84 problem.addcbgloballog....................................... 86 problem.addcbinfnode........................................ 87 problem.addcbintsol......................................... 88 problem.addcblplog......................................... 89 problem.addcbmessage....................................... 90 problem.addcbmipthread.....................................
Recommended publications
  • A Call-By-Need Lambda Calculus
    A CallByNeed Lamb da Calculus Zena M Ariola Matthias Fel leisen Computer Information Science Department Department of Computer Science University of Oregon Rice University Eugene Oregon Houston Texas John Maraist and Martin Odersky Philip Wad ler Institut fur Programmstrukturen Department of Computing Science Universitat Karlsruhe UniversityofGlasgow Karlsruhe Germany Glasgow Scotland Abstract arguments value when it is rst evaluated More pre cisely lazy languages only reduce an argument if the The mismatchbetween the op erational semantics of the value of the corresp onding formal parameter is needed lamb da calculus and the actual b ehavior of implemen for the evaluation of the pro cedure b o dy Moreover af tations is a ma jor obstacle for compiler writers They ter reducing the argument the evaluator will remember cannot explain the b ehavior of their evaluator in terms the resulting value for future references to that formal of source level syntax and they cannot easily com parameter This technique of evaluating pro cedure pa pare distinct implementations of dierent lazy strate rameters is called cal lbyneed or lazy evaluation gies In this pap er we derive an equational characteri A simple observation justies callbyneed the re zation of callbyneed and prove it correct with resp ect sult of reducing an expression if any is indistinguish to the original lamb da calculus The theory is a strictly able from the expression itself in all p ossible contexts smaller theory than the lamb da calculus Immediate Some implementations attempt
    [Show full text]
  • IBM Research Report Branch and Bound, Integer and Non-Integer
    RC22890 (W0309-010) September 3, 2003 Mathematics IBM Research Report Branch and Bound, Integer and Non-Integer Programming J. J. H. Forrest IBM Research Division Thomas J. Watson Research Center P.O. Box 218 Yorktown Heights, NY 10598 J. A. Tomlin IBM Research Division Almaden Research Center 650 Harry Road San Jose, CA 95120-6099 Research Division Almaden - Austin - Beijing - Delhi - Haifa - India - T. J. Watson - Tokyo - Zurich LIMITED DISTRIBUTION NOTICE: This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g. , payment of royalties). Copies may be requested from IBM T. J. Watson Research Center , P. O. Box 218, Yorktown Heights, NY 10598 USA (email: [email protected]). Some reports are available on the internet at http://domino.watson.ibm.com/library/CyberDig.nsf/home . Branch and Bound, Integer, and Non-Integer Programming J.J.H. Forrest IBM Watson Research Center, Yorktown Heights, NY 10598 J. A. Tomlin IBM Almaden Research Center, San Jose, CA 95120 {[email protected],[email protected]} Abstract In this note we review the development of the first commercial branch and bound codes at CEIR/Scicon, with particular emphasis on those features not commonly emphasized today—that is the use of branch and bound to handle discrete constructs, which, while often formally representable in terms of zero-one integer variables, can be handled more elegantly and effectively by applying branch and bound to the actual dichotomies in the model.
    [Show full text]
  • NU-Prolog Reference Manual
    NU-Prolog Reference Manual Version 1.5.24 edited by James A. Thom & Justin Zobel Technical Report 86/10 Machine Intelligence Project Department of Computer Science University of Melbourne (Revised November 1990) Copyright 1986, 1987, 1988, Machine Intelligence Project, The University of Melbourne. All rights reserved. The Technical Report edition of this publication is given away free subject to the condition that it shall not, by the way of trade or otherwise, be lent, resold, hired out, or otherwise circulated, without the prior consent of the Machine Intelligence Project at the University of Melbourne, in any form or cover other than that in which it is published and without a similar condition including this condition being imposed on the subsequent user. The Machine Intelligence Project makes no representations or warranties with respect to the contents of this document and specifically disclaims any implied warranties of merchantability or fitness for any particular purpose. Furthermore, the Machine Intelligence Project reserves the right to revise this document and to make changes from time to time in its content without being obligated to notify any person or body of such revisions or changes. The usual codicil that no part of this publication may be reproduced, stored in a retrieval system, used for wrapping fish, or transmitted, in any form or by any means, electronic, mechanical, photocopying, paper dart, recording, or otherwise, without someone's express permission, is not imposed. Enquiries relating to the acquisition of NU-Prolog should be made to NU-Prolog Distribution Manager Machine Intelligence Project Department of Computer Science The University of Melbourne Parkville, Victoria 3052 Australia Telephone: (03) 344 5229.
    [Show full text]
  • Variable-Arity Generic Interfaces
    Variable-Arity Generic Interfaces T. Stephen Strickland, Richard Cobbe, and Matthias Felleisen College of Computer and Information Science Northeastern University Boston, MA 02115 [email protected] Abstract. Many programming languages provide variable-arity func- tions. Such functions consume a fixed number of required arguments plus an unspecified number of \rest arguments." The C++ standardiza- tion committee has recently lifted this flexibility from terms to types with the adoption of a proposal for variable-arity templates. In this paper we propose an extension of Java with variable-arity interfaces. We present some programming examples that can benefit from variable-arity generic interfaces in Java; a type-safe model of such a language; and a reduction to the core language. 1 Introduction In April of 2007 the C++ standardization committee adopted Gregor and J¨arvi's proposal [1] for variable-length type arguments in class templates, which pre- sented the idea and its implementation but did not include a formal model or soundness proof. As a result, the relevant constructs will appear in the upcom- ing C++09 draft. Demand for this feature is not limited to C++, however. David Hall submitted a request for variable-arity type parameters for classes to Sun in 2005 [2]. For an illustration of the idea, consider the remarks on first-class functions in Scala [3] from the language's homepage. There it says that \every function is a value. Scala provides a lightweight syntax for defining anonymous functions, it supports higher-order functions, it allows functions to be nested, and supports currying." To achieve this integration of objects and closures, Scala's standard library pre-defines ten interfaces (traits) for function types, which we show here in Java-like syntax: interface Function0<Result> { Result apply(); } interface Function1<Arg1,Result> { Result apply(Arg1 a1); } interface Function2<Arg1,Arg2,Result> { Result apply(Arg1 a1, Arg2 a2); } ..
    [Show full text]
  • Small Hitting-Sets for Tiny Arithmetic Circuits Or: How to Turn Bad Designs Into Good
    Electronic Colloquium on Computational Complexity, Report No. 35 (2017) Small hitting-sets for tiny arithmetic circuits or: How to turn bad designs into good Manindra Agrawal ∗ Michael Forbes† Sumanta Ghosh ‡ Nitin Saxena § Abstract Research in the last decade has shown that to prove lower bounds or to derandomize polynomial identity testing (PIT) for general arithmetic circuits it suffices to solve these questions for restricted circuits. In this work, we study the smallest possibly restricted class of circuits, in particular depth-4 circuits, which would yield such results for general circuits (that is, the complexity class VP). We show that if we can design poly(s)-time hitting-sets for Σ ∧a ΣΠO(log s) circuits of size s, where a = ω(1) is arbitrarily small and the number of variables, or arity n, is O(log s), then we can derandomize blackbox PIT for general circuits in quasipolynomial time. Further, this establishes that either E6⊆#P/poly or that VP6=VNP. We call the former model tiny diagonal depth-4. Note that these are merely polynomials with arity O(log s) and degree ω(log s). In fact, we show that one only needs a poly(s)-time hitting-set against individual-degree a′ = ω(1) polynomials that are computable by a size-s arity-(log s) ΣΠΣ circuit (note: Π fanin may be s). Alternatively, we claim that, to understand VP one only needs to find hitting-sets, for depth-3, that have a small parameterized complexity. Another tiny family of interest is when we restrict the arity n = ω(1) to be arbitrarily small.
    [Show full text]
  • ILOG AMPL CPLEX System Version 9.0 User's Guide
    ILOG AMPL CPLEX System Version 9.0 User’s Guide Standard (Command-line) Version Including CPLEX Directives September 2003 Copyright © 1987-2003, by ILOG S.A. All rights reserved. ILOG, the ILOG design, CPLEX, and all other logos and product and service names of ILOG are registered trademarks or trademarks of ILOG in France, the U.S. and/or other countries. JavaTM and all Java-based marks are either trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. Microsoft, Windows, and Windows NT are either trademarks or registered trademarks of Microsoft Corporation in the U.S. and other countries. All other brand, product and company names are trademarks or registered trademarks of their respective holders. AMPL is a registered trademark of AMPL Optimization LLC and is distributed under license by ILOG.. CPLEX is a registered trademark of ILOG.. Printed in France. CO N T E N T S Table of Contents Chapter 1 Introduction . 1 Welcome to AMPL . .1 Using this Guide. .1 Installing AMPL . .2 Requirements. .2 Unix Installation . .3 Windows Installation . .3 AMPL and Parallel CPLEX. 4 Licensing . .4 Usage Notes . .4 Installed Files . .5 Chapter 2 Using AMPL. 7 Running AMPL . .7 Using a Text Editor . .7 Running AMPL in Batch Mode . .8 Chapter 3 AMPL-Solver Interaction . 11 Choosing a Solver . .11 Specifying Solver Options . .12 Initial Variable Values and Solvers. .13 ILOG AMPL CPLEX SYSTEM 9.0 — USER’ S GUIDE v Problem and Solution Files. .13 Saving temporary files . .14 Creating Auxiliary Files . .15 Running Solvers Outside AMPL. .16 Using MPS File Format .
    [Show full text]
  • Making a Faster Curry with Extensional Types
    Making a Faster Curry with Extensional Types Paul Downen Simon Peyton Jones Zachary Sullivan Microsoft Research Zena M. Ariola Cambridge, UK University of Oregon [email protected] Eugene, Oregon, USA [email protected] [email protected] [email protected] Abstract 1 Introduction Curried functions apparently take one argument at a time, Consider these two function definitions: which is slow. So optimizing compilers for higher-order lan- guages invariably have some mechanism for working around f1 = λx: let z = h x x in λy:e y z currying by passing several arguments at once, as many as f = λx:λy: let z = h x x in e y z the function can handle, which is known as its arity. But 2 such mechanisms are often ad-hoc, and do not work at all in higher-order functions. We show how extensional, call- It is highly desirable for an optimizing compiler to η ex- by-name functions have the correct behavior for directly pand f1 into f2. The function f1 takes only a single argu- expressing the arity of curried functions. And these exten- ment before returning a heap-allocated function closure; sional functions can stand side-by-side with functions native then that closure must subsequently be called by passing the to practical programming languages, which do not use call- second argument. In contrast, f2 can take both arguments by-name evaluation. Integrating call-by-name with other at once, without constructing an intermediate closure, and evaluation strategies in the same intermediate language ex- this can make a huge difference to run-time performance in presses the arity of a function in its type and gives a princi- practice [Marlow and Peyton Jones 2004].
    [Show full text]
  • Applying Piecewise Linear Characteristic Curves in District Energy Optimisation Bryn Pickeringa#, Ruchi Choudharya^
    PROCEEDINGS OF ECOS 2017 - THE 30TH INTERNATIONAL CONFERENCE ON EFFICIENCY, COST, OPTIMIZATION, SIMULATION AND ENVIRONMENTAL IMPACT OF ENERGY SYSTEMS JULY 2-JULY 6, 2017, SAN DIEGO, CALIFORNIA, USA Applying Piecewise Linear Characteristic Curves in District Energy Optimisation Bryn Pickeringa#, Ruchi Choudharya^ a Department of Engineering, University of Cambridge Trumpington Street, Cambridge, CB2 1PZ, United Kingdom, # [email protected], ^ [email protected] Abstract: Representing nonlinear curves as piecewise elements allows complex systems to be optimised by linear programs. Piecewise linearisation has been recently introduced in the context of distributed energy system optimisation. It is an efficient technique for representing non-linear technology behaviours in linear optimisation models, which are favourable in district energy optimisation models, owing to their speed and ability to handle large numbers of design variables. This paper describes a method of automating the creation of piecewise elements of technology performance curves for minimum fit error. The results show an objective function value improvement at a relatively large penalty in solution time: from 1.6 times to 58 times longer than describing technologies as having a single value for efficiency (SVE). We show that within the context of common technology performance curves, three breakpoints yield sufficiently accurate results and any returns are diminishing beyond that. Even at three breakpoints, it is evident that the placement of breakpoints along a curve significantly influences solution time, in a way for which it is not possible to account in automation. But, large savings can be made by automation by including a constraint to ensure piecewise curves have a strictly increasing/decreasing gradient.
    [Show full text]
  • Lambda-Calculus Types and Models
    Jean-Louis Krivine LAMBDA-CALCULUS TYPES AND MODELS Translated from french by René Cori To my daughter Contents Introduction5 1 Substitution and beta-conversion7 Simple substitution ..............................8 Alpha-equivalence and substitution ..................... 12 Beta-conversion ................................ 18 Eta-conversion ................................. 24 2 Representation of recursive functions 29 Head normal forms .............................. 29 Representable functions ............................ 31 Fixed point combinators ........................... 34 The second fixed point theorem ....................... 37 3 Intersection type systems 41 System D­ ................................... 41 System D .................................... 50 Typings for normal terms ........................... 54 4 Normalization and standardization 61 Typings for normalizable terms ........................ 61 Strong normalization ............................. 68 ¯I-reduction ................................. 70 The ¸I-calculus ................................ 72 ¯´-reduction ................................. 74 The finite developments theorem ....................... 77 The standardization theorem ......................... 81 5 The Böhm theorem 87 3 4 CONTENTS 6 Combinatory logic 95 Combinatory algebras ............................. 95 Extensionality axioms ............................. 98 Curry’s equations ............................... 101 Translation of ¸-calculus ........................... 105 7 Models of lambda-calculus 111 Functional
    [Show full text]
  • Piecewise-Linear Approximation for Feature Subset Selection in A
    PIECEWISE-LINEAR APPROXIMATION FOR FEATURE SUBSET SELECTION IN A SEQUENTIAL LOGIT MODEL Toshiki Sato Yuichi Takano Ryuhei Miyashiro University of Tsukuba Senshu University Tokyo University of Agriculture and Technology (October 7, 2015) Abstract This paper concerns a method of selecting a subset of features for a sequential logit model. Tanaka and Nakagawa (2014) proposed a mixed integer quadratic optimization formulation for solving the problem based on a quadratic approximation of the logistic loss function. However, since there is a significant gap between the logistic loss function and its quadratic approximation, their formulation may fail to find a good subset of features. To overcome this drawback, we apply a piecewise-linear approximation to the logistic loss function. Accordingly, we frame the feature subset selection problem of minimizing an information criterion as a mixed integer linear optimization problem. The computational results demonstrate that our piecewise-linear approximation approach found a better subset of features than the quadratic approximation approach. Keywords: Optimization, statistics, feature subset selection, sequential logit model, piecewise- linear approximation, information criterion 1. Introduction The analysis of ordinal categorical data [3, 23] is required in various areas including finance, econometrics, and bioinformatics. For instance, credit ratings of financial instruments are typical ordinal categorical data, and thus, many previous studies have analyzed such data by means of ordinal classification models (see, e.g., [1, 12, 28]). A sequential logit model [5, 17, 33], also known as the continuation ratio model [2, 14], is a commonly used ordinal classification model. It predicts an ordinal class label for each sample by successively applying separate logistic regression models.
    [Show full text]
  • Integer Optimization Methods for Machine Learning by Allison an Chang Sc.B
    Integer Optimization Methods for Machine Learning by Allison An Chang Sc.B. Applied Mathematics, Brown University (2007) Submitted to the Sloan School of Management in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Operations Research at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY June 2012 c Massachusetts Institute of Technology 2012. All rights reserved. Author............................................. ................. Sloan School of Management May 18, 2012 Certified by......................................... ................. Dimitris Bertsimas Boeing Leaders for Global Operations Professor Co-Director, Operations Research Center Thesis Supervisor Certified by......................................... ................. Cynthia Rudin Assistant Professor of Statistics Thesis Supervisor Accepted by......................................... ................ Patrick Jaillet Dugald C. Jackson Professor Department of Electrical Engineering and Computer Science Co-Director, Operations Research Center 2 Integer Optimization Methods for Machine Learning by Allison An Chang Submitted to the Sloan School of Management on May 18, 2012, in partial fulfillment of the requirements for the degree of Doctor of Philosophy in Operations Research Abstract In this thesis, we propose new mixed integer optimization (MIO) methods to ad- dress problems in machine learning. The first part develops methods for supervised bipartite ranking, which arises in prioritization tasks in diverse domains such as infor- mation retrieval, recommender systems, natural language processing, bioinformatics, and preventative maintenance. The primary advantage of using MIO for ranking is that it allows for direct optimization of ranking quality measures, as opposed to current state-of-the-art algorithms that use heuristic loss functions. We demonstrate using a number of datasets that our approach can outperform other ranking methods. The second part of the thesis focuses on reverse-engineering ranking models.
    [Show full text]
  • Polylithic Modeling and Solution Approaches Using Algebraic Modeling Systems
    Polylithic Modeling and Solution Approaches Using Algebraic Modeling Systems Josef Kallrath Department of Astronomy University of Florida Gainesville, FL 32611, USA [email protected] Abstract. Based on the Greek term monolithos (stone consisting of one single block) Kallrath (2009) introduced the term polylithic for modeling and solution approaches in which mixed integer or non-convex nonlinear optimization problems are solved by tailor-made methods involving sev- eral models and/or algorithmic components, in which the solution of one model is input to another one. This can be exploited to initialize certain variables, or to provide bounds on them (problem-specific preprocess- ing). Mathematical examples of polylithic approaches are decomposition techniques, or hybrid methods in which constructive heuristics and local search improvement methods are coupled with exact MIP algorithms Tailor-made polylithic solution approaches with thousands or mil- lions of solve statements are challenges on algebraic modeling languages. Local objects and procedural structures are almost necessary. Warm- start and hot-start techniques can be essential. The effort of developing complex tailor-made polylithic solutions is awarded by enabling us to solve real-world problems far beyond the limits of monolithic approaches and general purpose solvers. Keywords: algebraic modeling languages, branch&price, column gen- eration, decomposition, hybrid methods, monolithic, primal methods, polylithic, problem-specific preprocessing 1 Introduction Instead of solving
    [Show full text]