
Functional description of MINTO aMixed INTeger Optimizer Version Martin WPSavelsb ergh George L Nemhauser Georgia Institute of Technology School of Industrial and Systems Engineering Atlanta GA USA martinsavelsb erghisyegatechedu georgenemhauserisyegatechedu March Contents Functional description of MINTO a Mixed INTeger Optimizer Version Martin WPSavelsb ergh George L Nemhauser Georgia Institute of Technology School of Industrial and Systems Engineering Atlanta GA USA Abstract MINTO is a software system that solves mixedinteger linear programs by a branchand b ound algorithm with linear programming relaxations It also provides automatic constraint classication prepro cessing primal heuristics and constraint generation Moreover the user can enrich the basic algorithm by providing a variety of sp ecialized application routines that can customize MINTO to achieve maximum eciency for a problem class This pap er do cuments MINTO by sp ecifying what it is capable of doing and how to use it Intro duction MINTO Mixed INTeger Optimizer is a to ol for solving mixed integer linear programming MIP problems of the form X X X max c x c x c x j j j j j j j B j I j C X X X a x a x a x b i m ij j ij j ij j i j B j I j C x j B j l x u j I C xj j xj x IIZ j B I j x IR j C j where B is the set of binary variables I is the set of integer variables C is the set of continuous variables the sense of a constraintcanbe orandthelower and upp er b ounds maybe negative or p ositive innityorany rational numb er A great variety of problems of resource allo cation lo cation distribution pro duction scheduling reliability and design can b e represented by MIP mo dels One reason for this rich mo deling capability is that various nonlinear and nonconvex optimization problems can b e p osed as MIP problems Unfortunately this robust mo deling capability is not supp orted by a comparable algorithmic capability Existing branchandb ound co des for solving MIP problems are far to o limited in the size of problems that can b e solved reliably relative to the size of problems that need to b e solved esp ecially with resp ect to the number of integer variables and they p erform to o slowly for many realtime applications To remedy this situation sp ecial purp ose co des havebeendevelop ed for particular applications and in some cases exp erts have b een able to stretch the capabilities of the general co des with ad ho c approaches But neither of these remedies is satisfactory The rst is very exp ensive and timeconsuming and the second should b e necessary only for a very limited number of instances Our idea of what is needed to solve large mixedinteger programs eciently without having to develop a fullblown sp ecial purp ose co de in each case is an eective general purp ose mixed integer optimizer that can b e customized through the incorp oration of application functions MINTO is such a system Its strength is that it allows users to concentrate on problem sp ecic asp ects rather than data structures and implementation details such as linear programming and branchandb ound The heart of MINTO is a linear programming based branchandb ound algorithm It can b e implemented on top of any LPsolver that provides capabilities to solve and mo dify linear programs and interpret their solutions The currentversion can either b e built on top of the CPLEX callable libraryversion and up on top of Optimization Subroutine Library OSL version and up or on top of XPRESSMP Optimisation Subroutine Library XOSL version and up To b e as eective and ecient as p ossible when used as a general purp ose mixedinteger optimizer MINTO attempts to improve the formulation by prepro cessing and probing construct feasible solutions generate strong valid inequalities perform variable xing based on reduced prices control the size of the linear programs by managing active constraints To b e as exible and p owerful as p ossible when used to build a sp ecial purp ose mixedinteger opti mizer MINTO provides various mechanisms for incorp orating problem sp ecic knowledge Finally to make future algorithmic developments easy to incorp orate MINTOs design is highly mo dular This do cument fo cuses on the mechanisms for incorp orating problem structure and only contains a minimal description of the general purp ose techniques mentioned ab ove The mechanisms for incorp orating problem structure and customizing MINTO are discussed in Sections and under information application control bypassand miscellaneous functions Section explains how to run MINTO and Sections and presenttheoverall system design and a brief description of the system functions Section discusses the developmentof applications that call MINTO recursively Sections and discuss environmentvariables direct access to the linear program programming considerations and computational results Finally Section contains some remarks on availability and future releases Release of MINTO was prompted by the addition of XPRESSMP as an alternativeLP solver a complete rewrite of the prepro cessor the addition of improved and more exible branching schemes and the p ort to Windows NT Running MINTO The following command should b e used to invoke MINTO minto xomtbeE phcik g f r RB sn a name As a default MINTO assumes that the mixed integer program that has to b e solved is sp ecied in MPSformat in a le name mps in the currentworking directory It is also p ossible to generate the mixed integer program directly within MINTO using the application function appl mps see Section However even in that case MINTO requires a name to b e sp ecied on the command line MINTO always op ens a le name l og to write out information that may b e useful to determine the cause of a premature exit in case this o ccurs Furthermore this name will b e used as the problem name whichwould otherwise have b een sp ecied in the MPSle The runtime b ehavior of MINTO dep ends on the command line options The meanings of the various command line options are given in Table The command line options allow the user to deactivate selectively one or more system functions and to sp ecify the amount of output desired option eect x assume maximization problem o level of output m maximum numberofnodestobeevaluated t maximum cpu time in seconds b deactivate b ound improvement e typ e of branching E typ e of no de selection p level of prepro cessing and probing h deactivate primal heuristic c deactivate clique generation i deactivate implication generation k deactivate knapsackcover generation g deactivate GUB cover generation f deactivate owcover generation r deactivate row management R deactivate restarts B typ e of forced branching s deactivate all system functions n activate a names mo de a activate use of advance basis Table Command line options MINTO assumes that the mixed integer program that has to b e solved represents a minimization problem unless the x command line option is sp ecied in which case MINTO assumes it represents a maximization problem Regardless of whether MINTO has found an optimal solution or not it will ab ort after evaluating no des The m command line option can b e used to change the maximum number of no des to b e evaluated Regardless of whether MINTO has found an optimal solution or not it will ab ort after cpu seconds The t command line option can b e used to change the maximum cpu time In default mo de MINTO pro duces very little output The o command line option can b e used to change the amount of output generated by MINTO There are four output levels no very little normal and extensive In default mo de MINTO p erforms prepro cessing and limited probing if the numb er of binary variables is not to o large For a description of prepro cessing and probing and all other system functions see Section The p command line option can b e used to change the amount of prepro cessing and probing done by MINTO There are four levels no prepro cessing and no probing prepro cessing but no probing prepro cessing and limited probing and prepro cessing and extensive probing Probing although p otentially very eective can b e time very consuming esp ecially for problems with many binary variables A branching scheme is sp ecied bytwo rules a branching variable selection rule and a no de selection rule In default mo de MINTO uses its own adapativevariable selection and no de selection rules The e command line option can b e used to sp ecify a branching variable selection rule There are six variable branching selection rules maximum infeasibility p enalty based strong branching pseudo cost based adaptive and SOS branching The E command line option can b e used to sp ecify a no de selection rule There are ve no de selection rules b est b ound depth rst b est pro jection b est estimate and adaptive MINTO attempts to generates cuts to improvetheformulation during the evaluation of a no de As a consequence there is a risk of tailingo Therefore MINTO monitors the progress resulting form cut generation If the amount of progress do es not warrant cut generation anymore MINTO forces branching The B command line option can b e used to sp ecify a forcing strategy There are three strategies no forcing at all no forcing at the ro ot but forcing at the other no des and forcing at all no des In default mo de MINTO do es not asso ciate names with variables and constraints The n command line option can b e used to indicate that an application do es want
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages77 Page
-
File Size-