A MINTO short course

Martin WPSavelsb ergh

George L Nemhauser

Georgia Institute of Technology

School of Industrial and Systems Engineering

Atlanta GA

February

Intro duction

MINTO is a software system that solves mixedinteger linear programs by a branchand

b ound algorithm with relaxations It also provides automatic con

straint classication prepro cessing primal heuristics and constraint generation More

over the user can enrich the basic algorithm by providing a variety of sp ecialized appli

cation routines that can customize MINTO to achievemaximum eciency for a problem

class An overview of MINTO discussing the design philosophy and general features

can b e found in Nemhauser Savelsb ergh and Sigismondi a detailed description

of the customization options can b e found in Savelsb ergh and Nemhauser and

an indepth presentation of some of the system functions of MINTO can b e found in

Savelsb ergh and Gu Nemhauser and Savelsb ergh a b a b

c General references on mixedinteger linear programming are Schrijver and

Nemhauser and Wolsey

This short course illustrates many of MINTOs capabilities and teaches the basic

MINTO customization pro cess through a set of exercises Most exercises require the

development of one or more application functions in order to customize MINTO so as

to b e more eective on a class of problems The exercises are presented in order of

increasing diculty This short course can b e used to complement a standard course on

Because MINTO always works with a maximization problem MINTO will auto

matically convert a minimization problem to a maximization problem lower b ounds

corresp ond to feasible solutions and upp er b ounds corresp onds to LP relaxations

At the end of each exercise we list the relevant application functions



This researchwas supp orted by NSF Grant No DMI

Exercise MINTOs command line options

The runtime b ehavior of MINTO dep ends on the command line options The command

line options allow the user to selectively activate or deactivate one or more system func

tions Fine tune MINTO ie determine which system functions should b e activated and

which system functions should b e deactivated in order to achieve the b est p erformance

in terms of elapsed cpu time for each of the problems in MINTOs test set Compare

the results with the results if MINTO is run with its default settings

Exercise Truncate tree search

A simple way to turn an optimization algorithm based on branchandb ound into an

approximation algorithm is to truncate the search tree This is usually done by the use

of an optimality tolerance Instead of fathoming a no de if the upp er b ound is smaller

than or equal to the lower b ound a no de is fathomed if the upp er b ound is smaller than

or equal to the lower b ound plus some tolerance Implement a truncated tree search

algorithm with an optimality tolerance of p ercentandevaluate its p erformance on the

set of default problems provided with the distribution of MINTO Investigate how these

results are aected by deactivating MINTOs primal heuristic

fathom appl

Exercise Generalized upp er b ound constraints

Manyinteger programs with binary variables have generalized upper bound constraints

of the form

X

x for i p

j

j Q

i

where the Q s are disjoint subsets Here we explore a branching scheme that has proved

i

to b e a very eectiveway of handling these constraints and is widely used in mathematical

programming systems it is also part of MINTOs enhanced branching scheme

Supp ose in an LP relaxation wehavex for some k Q Conventional

k i

P

branching on x is equivalenttox and x since the latter equalityis

k k j

j Q nfk g

i

implied by x Now unless there is a go o d reason for singling out x as the variable

k k

that is likely to b e equal to the x branch will probably contain relatively few

k

solutions as compared to the x branch If this is the case almost no progress will

k

have b een made since the no de with x corresp onds to nearly the same feasible

k

region as that of its father

It app ears more desirable to try and divide the feasible region of the father more

evenly over the sons To accomplish this we consider the branching rule

X X

x or x

j j

 

j Q j Q nQ

i

i i

P



We can use this branching rule for any Q Q such that  x

i j

i j Q

i

Implement the ab ove discussed branching rule and evaluate its p erformance on the

Pproblems in MINTOs test set Since MINTOs enhanced branching incorp orates

GUB branching it is necessary to deactivate enhanced branching when evaluating your

implementation of GUB branching

divide appl

Exercise Knapsackcover inequalities

Consider the set P of feasible solutions to a knapsack problem ie

X

n

P fx B a x bg

j j

j N

where without loss of generalitywe assume that a forj N since variables

j

can b e complemented and a b since a b implies x

j j j

P

AsetC N is called a cover if a b The cover is minimal if C is minimal

j

j C

with resp ect to this prop ertyFor anycover C the inequality

X

x jC j

j

j C

is called a cover inequality and is valid for P

Given a fractional p oint the problem of nding an inequality that is violated by this

pointorshowing that no such inequality exists is called the separation problem

n n

For cover inequalities we are given a p oint x R n B and wewant to nd a C



P P

n

assuming that one exists with a b and x jC j Intro duce z B

j

j C j C j

to represent the characteristic vector of the cover C that is yet to b e determined It

P P P

has to satisfy a z band x z z The second inequalityis

j j j j

j N j N j j N

P

equivalentto x z Thus the separation problem is

j

j N

j

X X

n

minf x z a z bz B g

j j j

j

j N j N

P

If then the inequality jC j cuts o x and we call C a violated cover

j C

If then no violated cover exists

Since every row in the constraint matrix of a integer program denes a

knapsack problem knapsackcovers can b e used in a branchandcut algorithm for the

solution of integer programs

Implement a branchandcut algorithm based on knapsackcovers and evaluate its

p erformance on the Pproblems p pmps and pmps Compare the

p erformance of the following three algorithms a plain LPbased branchandb ound al

gorithm MINTO with its default settings and your branchandcut algorithm

appl constraints

Exercise Economic lot sizing problem

The economic lot sizing problem considers pro duction planning over a horizon of T pe

rio ds In p erio d t t T there is a given demand d that must b e satised by

t

pro duction in p erio d t and byinventory carried over from previous p erio ds There is a

setup up cost f asso ciated with pro duction in p erio d tFurthermore the unit pro duc

t

tion cost in p erio d t is equal to c Let the pro duction in p erio d t b e denoted by y IIR

t t

and let x f g indicates whether the plant op erates during p erio d t The economic

t

lot sizing problem is formulated as follows

X

min f x c y

t t t t

tT

X

y d x t T

t k t

k T

X X

d t T y

k k

k t k t

x f g y IIR

t t

An example of an instance of the economic lot sizing problem and an optimal solution

P

to this instance is given in Table Let d d A class of facet inducing

pq k

pk q

inequalities for the economic lot sizing problem known as the l S inequalities is given

by

X X

y d x d l S f l g

t tl t l

tS

tflgnS

Observe the following

X X X

y d x min fy d x g d

t tl t t tl t l

tS

tl

tflgnS

Table Instance and optimal solution of the economic lot sizing problem

f

t

c

t

d

t

x

t

y

t

Design a separation algorithm based on the ab ove observation and develop a branchand

cut algorithm based on this class of facet inducing inequalities Evaluate the p erformance

of the branchandcut algorithm on some randomly generated instances of the economic

lot sizing problem

appl constraints appl mps

Exercise Primal heuristics for no de packing

A node packing in a graph G V E is a subset V V such that for all u v V

the edge fu v g is not in E Thenode packing problem asks for the identication of the

maximum cardinality no de packing The no de packing problem can b e formulated as

follows

X

max x

v

v V

x x fu v g E

u v

x f g v V

i

where x is a binary variable indicating whether no de v is in the no de packing x

v v

or not x

v

Develop a random graph generator that generates graphs with dierent densities

the density of a graph is dened as the ratio of the numb er of edges in the graph

and the numb er of p ossible edges in the graph and evaluate MINTOs p erformance on

some randomly generated graphs of dierent densities Develop a primal heuristic that

converts an LP solution into a feasible no de packing and compare its p erformance with

MINTOs general purp ose primal heuristic

appl mps appl primal

Exercise Linear ordering problem

The linear ordering problem is an NPhard combinatorial optimization problem with

a large numb er of applications including triangulation of the inputoutput matrices

archaeological seriation minimizing total weighted completion time in singlemachine

scheduling and aggregation of individual preferences

The linear ordering problem can b e stated as a graph theoretic problem as follows

A tournament is a digraph such that for every twonodes u and v the arc set contains

exactly one arc with endno des u and v ie a tournamenton n no des is an orientation

of K the complete graph on n no des Given a complete digraph D V A on n

n n n

no des and arc weights c for all arcs ij A the linear ordering problem is to nd a

ij n

maximum weight acyclic tournamentV T in D This leads to the following integer

n

programming formulation

X

c max

ij ij

ij A

i j

ij ji

i j k

ij jk ki

f g ij A

ij

One of the complications when solving this problem is the large numb er of cycle in



equalities O n Therefore in practice these inequalities are usually

ij jk ki

enforced implicitly and only added when needed

Develop and implement a branchandcut algorithm based on cycle inequalities and

compare its p erformance on some randomly generated instances with a plain LPbased

branchandb ound algorithm that explicitly uses the cycle inequalities

An imp ortant element ofabranchandcut algorithm is the cut generation scheme

employed A cut generation scheme sp ecies among other things which and how many

violated cuts are added in a single iteration Investigate the impact of some simple cut

generation schemes on the p erformance of the develop ed branchandcut algorithm

Develop and implement a primal heuristic based on sorting that takes the current

LP solution and converts it into a linear ordering Add this primal heuristic to your

branchandcut algorithm and evaluate its p erformance

constraints appl feas appl mps appl primal appl

Exercise Cutting sto ck problem

Materials such as pap er textiles and metallic foil are manufactured in rolls of large

width These rolls referred to as raws are later cut into rolls of small widths called

nalsAmanufacturer pro duces raws of one standard width The widths of the nals

are sp ecied by dierent customers and mayvary widely When a complicated set of

orders has to b e lled the most economical way of cutting the existing raws into desired

nals ie the way that uses a minimum number of raws is rarely obvious The problem

of nding suchawayisknown as the cutting stock problemWe consider the sp ecial case

known as the binary cutting stock problem where the demand for each nal is exactly

one

The binary cutting sto ck problem can b e thought of as instances of set partitioning

In general we are given a ground set of items which are the nals widths in the binary

cutting sto ck problem and we wish to nd the minimum cost partitioning of this ground

set by feasible subsets feasible cutting patterns of the raws in the binary cutting sto ck

problem Let W b e the width of a raw and let w b e the width of nal i for i I

i

then a feasible cutting pattern corresp onds to a subset S I of widths that satises

P

w W

i

iS

One wayofformulating this problem is to enumerate all feasible subsets We represent

each subset byavector x where x if item i is in feasible subset k and x

k ik ik

otherwise We express the problem as follows

X

min y

k

k

X

x y i

ik k

k

y f g

k

where variable y if feasible subset k is used in the partition and y otherwise

k k

Observe that this problem has an exp onential number of variables Therefore a column

generation approach is necessary to solve the LP relaxation of this mo del

One can solve the ab ove formulation over a subset of its columns We refer to such

a formulation as a restricted master problem Additional columns can b e generated as

needed for the restricted master problem by solving a pricing problem In this case the

pricing problem is a knapsack problem

X

max x

i i

in

X

w x W

i i

in

x f g

i

where the s are the optimal dual prices from the solution of the restricted master prob

lem and variable x ifitem i is present in the new feasible pattern ie new column

i

and otherwise A column prices out favorably to enter the basis if its reduced cost

x is negative This is equivalent to obtaining an ob jective function value greater

than or equal to in the pricing problem When the optimal solution to the pricing

problem has ob jectivevalue less than one the current solution to the LP relaxation of

the restricted master problem is optimal for the unrestricted master problem

Develop a column generation algorithm for the solution of the LP relaxation of the

binary cutting sto ck problem Keep in mind that the LP solver uses the simplex metho d

with b ounded variables when it solves a linear program Verify its correctness on some

small randomly generated instances

variables appl

Exercise Cut management and forced branching

Cut management is an imp ortant asp ect of the successful application of branchandcut

algorithms In branchandcut algorithms the size of the activeformulation grows due to

the generation of violated cuts Cut generation results in b etter b ounds and therefore

usually in smaller search trees However if the size of the active formulations grows to o

much any decrease in overall solution time due to a smaller search tree may b e oset

byaneven larger increase in overall solution times due to longer LP solution times

Consequently it is imp ortant to manage cuts carefully

Tocontrol the size of the activeformulation MINTO monitors the dual variables

asso ciated with all the global constraints that have b een generated during the solu

tion pro cess either by MINTO or by an application note that MINTO only generates

global constraints and if the value of a dual variable has b een equal to zero imply

ing the constraint is inactive for ten consecutive iterations MINTO will deactivate the

corresp onding constraint Deactivating a constraint means deleting it from the active

formulation and storing it in the cut poolEvery time the activeformulation is solved

and a new linear programming solution exists the constraints in the cut p o ol will b e in

sp ected to see if any of them are violated by the current solution If so these constraints

will b e reactivated Reactivating a constraint means adding it to the activeformulation

and deleting it from the cut p o ol The cut p o ol has a xed size and is maintained on

a rstinrstout basis ie if the p o ol overows the constraints that have b een put in

the p o ol the earliest will b e deleted As so on as a cut is deleted from the cut p o ol it can

never b e reactivated again it mayhowever b e regenerated The parameter MIOCUT

DELBND sets the the deactivation threshold default threshold is The parameter

MIOCUTPOOLSZ sets the size of the p o ol default size is

Another issue related to cut generation is the frequency with which an attempt is

made to generate cuts Obviously cut generation takes time and it may b e b enecial

not to p erform cut generation at every no de of the search tree The parameter MIO

CUTFREQ sets the frequency with which an attempt is made to generate cuts default

frequency is ie cut generation at every no de

MINTO monitors the dierence in ob jective function value from iteration to iteration

If the total change in the ob jective function value over the last three iterations is less

than p ercent then MINTO forces branching This feature is incorp orated in MINTO

to handle the tailingo exhibited bymany branchandcut algorithms

Evaluate the eect forced branching and of the parameters dening the cut generation

scheme on the p erformance of MINTO on its standard test set

terminatenode appl

Exercise Gomory cuts

Consider the integer program

min cx

sub ject to

Ax b

x

x integer

and a fractional solution x to its linear relaxation Consider a row r from the optimal

simplex tableau

X

x y x b

r rj j r

j N

where N is the set of nonbasic variables and in which b is fractional A simple valid

r

inequality that cuts of the fractional solution is given by

X

F F x

r rj j

j N

where F is the fractional part of y and F is the fractional part of b This valid

rj rj r r

inequalityisknown as a Gomorycut Implement a cutting plane algorithm based on

Gomorycuts Make sure that MINTOs forced branching is deactivated

Twowarnings are in order First the set of nonbasic variables maycontain slack

variables that havebeenintro duced to bring the linear program into equality form

Second the LP solver uses the simplex metho d with b ounded variables to solve linear

programs

To get information on the optimal simplex tableau and the asso ciated basis inverse

use MINTOs p ointer to the active linear program and the following undo cumented

CPLEX functions

int binvarow struct cpxlp lp int i double z



which computes the ith rowofB A that is the ith row of the tableau

int binvrow struct cpxlp lp int i double y

which computes the ith row of the basis inverse

int getbhead struct cpxlp lp int head double x

which returns the basis header giving the negative of all row indices of slacks with

subtracted

constraints appl terminatenode appl

References

Z Gu GL Nemhauser and MWP Savelsbergh Cover Inequalities for

Integer Programs I Computation Rep ort COC Georgia Institute of Technology

Z Gu GL Nemhauser and MWP Savelsbergh Cover Inequalities for

Integer Programs II Complexity Rep ort COC Georgia Institute of Technology

Z Gu GL Nemhauser and MWP Savelsbergh Cover Inequalities for

Integer Programs III Algorithms Rep ort COCxx Georgia Institute of Technology

Z Gu GL Nemhauser and MWP Savelsbergh Sequence Independent Lifting

Rep ort COCxx Georgia Institute of Technology

Z Gu GL Nemhauser and MWP Savelsbergh Lifted Flow Cover Inequalities

for Mixed Integer Programs Rep ort COCxx Georgia Institute of Technology

GL Nemhauser MWP Savelsbergh GS Sigismondi MINTO a Mixed

INTeger Optimizer Oper Res Letters

GL Nemhauser and LA Wolsey Integer and Combinatorial Optimization

WileyNewYork

MWP Savelsbergh Prepro cessing and Probing for Mixed Integer Program

ming Problems ORSA J on Computing

MWP Savelsbergh GL Nemhauser Functional description of MINTO

a Mixed INTeger Optimizer Rep ort COCC Georgia Institute of Technology

A Schrijver Theory of linear and integer programming WileyNewYork