FICO Xpress-Optimizer Reference Manual
Total Page:16
File Type:pdf, Size:1020Kb
Reference manual R FICO Xpress Optimization Xpress-Optimizer Reference manual Release 32.01 Last update 23 October 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: 23 October 2017 Version 32.01 Contents 1 Introduction 1 1.1 The FICO Xpress-Optimizer...................................1 1.2 Starting the First Time.....................................2 1.2.1 Licensing.........................................2 1.2.2 Starting Console Optimizer..............................2 1.2.3 Scripting Console Optimizer..............................3 1.2.4 Interrupting Console Optimizer............................5 1.3 Manual Layout..........................................5 2 Basic Usage 6 2.1 Initialization...........................................6 2.2 The Problem Pointer......................................7 2.3 Logging..............................................7 2.4 Problem Loading........................................8 2.5 Problem Solving.........................................9 2.6 Interrupting the Solve.....................................9 2.7 Results Processing........................................ 10 2.8 Function Quick Reference................................... 11 2.8.1 Administration...................................... 11 2.8.2 Problem Loading.................................... 11 2.8.3 Problem Solving..................................... 12 2.8.4 Results Processing.................................... 12 2.9 Summary............................................. 12 3 Problem Types 13 3.1 Linear Programs (LPs)...................................... 13 3.2 Mixed Integer Programs (MIPs)................................ 13 3.3 Quadratic Programs (QPs)................................... 14 3.4 Quadratically Constrained Quadratic Programs (QCQPs).................. 14 3.4.1 Algebraic and matrix form............................... 15 3.4.2 Convexity......................................... 15 3.4.3 Characterizing Convexity in Quadratic Constraints................. 15 3.5 Second Order Cone problems (SOCPs)............................ 16 4 Solution Methods 18 4.1 Simplex Method......................................... 18 4.1.1 Output.......................................... 19 4.2 Newton Barrier Method.................................... 19 4.2.1 Crossover......................................... 19 4.2.2 Output.......................................... 20 4.3 Branch and Bound........................................ 20 4.3.1 Theory.......................................... 20 4.3.2 Variable Selection and Cutting............................ 22 4.3.3 Variable Selection for Branching........................... 22 4.3.4 Cutting Planes...................................... 23 4.3.5 Node Selection...................................... 24 Fair Isaac Corporation Confidential and Proprietary Informationi Contents 4.3.6 Adjusting the Cutoff Value.............................. 24 4.3.7 Stopping Criteria.................................... 24 4.3.8 Integer Preprocessing.................................. 25 4.4 QCQP and SOCP Methods................................... 25 4.4.1 Convexity Checking................................... 25 4.4.2 Quadratically Constrained and Second Order Cone Problems........... 26 5 Advanced Usage 27 5.1 Problem Names......................................... 27 5.2 Manipulating the Matrix.................................... 27 5.2.1 Reading the Matrix................................... 28 5.2.2 Modifying the Matrix.................................. 28 5.3 Working with Presolve..................................... 29 5.3.1 (Mixed) Integer Programming Problems....................... 29 5.4 Working with LP Folding.................................... 30 5.5 Working with Heuristics.................................... 30 5.6 Common Causes of Confusion................................. 31 5.7 Using the Callbacks....................................... 32 5.7.1 Output Callbacks.................................... 32 5.7.2 LP Callbacks....................................... 32 5.7.3 Global Search Callbacks................................ 32 5.8 Working with the Cut Manager................................ 33 5.8.1 Cuts and the Cut Pool.................................. 33 5.8.2 Cut Management Routines.............................. 34 5.8.3 User Cut Manager Routines.............................. 34 5.9 Solving Problems Using Multiple Threads.......................... 35 5.9.1 The concurrent solver.................................. 36 5.10 Solving Large Models (the 64 bit Functions)......................... 36 5.11 Using the Tuner......................................... 37 5.11.1 Basic Usage........................................ 37 5.11.2 The Tuner Method................................... 37 5.11.3 The Tuner Output.................................... 38 5.11.4 The Tuner Target.................................... 38 5.11.5 Restarting the Tuner.................................. 38 5.11.6 Tuner with Multiple Threads.............................. 39 5.11.7 Tuner with Problem Permutations.......................... 39 5.11.8 Tuning a Set of Problems................................ 39 5.11.9 Advanced Topics..................................... 40 6 Infeasibility, Unboundedness and Instability 41 6.1 Infeasibility............................................ 41 6.1.1 Diagnosis in Presolve.................................. 42 6.1.2 Diagnosis using Primal Simplex............................ 42 6.1.3 Irreducible Infeasible Sets............................... 42 6.1.4 The Infeasibility Repair Utility............................. 43 6.1.5 Integer Infeasibility................................... 44 6.2 Unboundedness......................................... 45 6.3 Instability............................................. 45 6.3.1 Scaling.......................................... 45 6.3.2 Accuracy......................................... 46 7 Goal Programming 48 7.1 Overview............................................. 48 7.2 Pre-emptive Goal Programming Using Constraints..................... 48 7.3 Archimedean Goal Programming Using Constraints.................... 49 Fair Isaac Corporation Confidential and Proprietary Information ii Contents 7.4 Pre-emptive Goal Programming Using Objective Functions................ 49 7.5 Archimedean Goal Programming Using Objective Functions............... 50 8 Console and Library Functions 52 8.1 Console Mode Functions.................................... 52 8.2 Layout for Function Descriptions............................... 54 Function Name.......................................... 54 Purpose.............................................. 54 Synopsis.............................................. 54 Arguments............................................ 54 Error Values........................................... 54 Associated Controls....................................... 54 Examples............................................. 54 Further Information....................................... 54 Related Topics.........................................