Post on 22-Feb-2018
7/24/2019 OD Integer Programming LARGE 2010
1/67
INTEGERPROGRAMMING
7/24/2019 OD Integer Programming LARGE 2010
2/67
Integer Programming
In many problems the decision variables must have
integer values. Example: assign people, machines, and vehicles to
activities in integer quantities.
If this is the only deviation from linear programming,
it is called an integer programming (IP) problem.
If only somevariables are required to integer, the
model is called a mixed integer programming (MIP)
San Francisco Police Dep. problem is an IP problem. Wyndor Glass Co. problem could be an IP problem;
how?
264
7/24/2019 OD Integer Programming LARGE 2010
3/67
Integer Programming
In integer programming, divisibility assumption must
be dropped. Another area of application is in problem involving
yes-or-no decisions, which have binary variables.
These IP problems are called binary integer
programming (BIP) problems.
A very small example of a typical BIP problem is given
in the following.
265
7/24/2019 OD Integer Programming LARGE 2010
4/67
Prototype example
California Manufacturing Company is considering expansion
building a factory in Los Angeles, San Francisco or in both cities. One new warehouse can also be considered in a city where a
new factory is being built. Maximum $10 million to invest.
Objective: find feasible combination of alternatives that
maximizes the total net present value.
266
Decision
number
Yes or no question Decision
variable
Net present
value
Capital
required
1 Build factory in Los Angeles? x1 $9 million $6 million
2 Build factory in San Francisco? x
2 $5 million $3 million3 Build warehouse in Los Angeles? x3 $6 million $5 million
4 Build warehouse in San Francisco? x4 $4 million $2 million
7/24/2019 OD Integer Programming LARGE 2010
5/67
Contingent decisions
Mutually exclusive alternatives
BIP model
All decisions variables have the binary form:
Z= total net present value of these decisions.
Maximize Z= 9x1 + 5x2 + 6x3 + 4x4.
Constraints:
6x1 + 3x2 + 5x3 + 2x4 10
x3 +x4 1
x3 x1 and x4 x2xj is binary, forj = 1,2,3,4.
267
1 if decision is yes,1,2,3,4
0 if decision is no,j
jx j
j
7/24/2019 OD Integer Programming LARGE 2010
6/67
BIP models
Groups of yes-or-no decision often constitute groups
ofmutually exclusive alternatives: only onedecisionin the group can be yes.
Occasionally, decisions of the yes-or-no type are
contingent decisions: decision that depend upon
previous ones.
Software options for solving BIP, IP or MIP models:
Excel
LINGO/LINDO MPL/CPLEX
268
7/24/2019 OD Integer Programming LARGE 2010
7/67
BIP applications
Investment analysis, such as the California Man. Co.
Site select ion, of factories, warehouses, etc.
Designing a product ion and dist ribut ion network, or
more generally the entire global supply-chain.
Dispatching shipments, scheduling routes, vehiclesand time period for departure and arrivals.
Airline applicat ions, as e.g. fleet assignment and crew
scheduling.
Scheduling interrelated act ivit ies, asset divestures,etc.
269
7/24/2019 OD Integer Programming LARGE 2010
8/67
Formulation examples
Example 1: making choices when decision variables
are continuous. R&D Division ofGood Products Co. hasdeveloped three possible new products.
Requirement 1: from the three, at mosttwo can be
chosen to be produced.
Each product can be produced in either of two plants.However, management has imposed a restriction:
Requirement 2:just one of the two plants can be
chosen as the producer of the new products.
270
7/24/2019 OD Integer Programming LARGE 2010
9/67
Example 1
Objectives: choose the products, the plant and the
production rates of the chosen products to maximizetotal profit.
271
Production time used for each unit
produced
Production time
available per
week
Product 1 Product 2 Product 3
Plant 1 3 hours 4 hours 2 hours 30 hours
Plant 2 4 hours 6 hours 2 hours 40 hours
Unit profit 5 7 3 (103 euros)
Sale potential 7 5 9 (units per week)
7/24/2019 OD Integer Programming LARGE 2010
10/67
Formulation of the problem
Similar to a standard product mix problem, such as the Wyndor
Glass Co. It is such a problem, if we drop the two restrictions and by
requiring that a product uses production hours in both plants.
Letx1,x2,x3 be the production rates of the respective products:
272
1 2 3Maximize 5 7 3Z x x x
1 2 3
1 2 3
1
2
3 1 2 3
3 4 2 30
4 6 2 40
75
9, , , 0
x x x
x x x
xx
x x x x
subject to
7/24/2019 OD Integer Programming LARGE 2010
11/67
Formulation of the problem
For the real problem, Requirement 1 add the
constraint:Number of strictly positive variables (x1,x2,x3) must be 2
This must be converted to an IP problem. It needs the
introduction of auxiliary binary variables.
Requirement 2 requires replacing the first twoconstraints to:
must hold. This again requires an auxiliary binary
variable.
273
1 2 3
1 2 3
Either 3 4 2 30
or 4 6 2 40
x x x
x x x
7/24/2019 OD Integer Programming LARGE 2010
12/67
Auxiliary binary variables
For Requirement 1, three auxiliary binary variables (y1,
y2,y3) are introduced:
This is introduced in the model with the help of anextremely large positive numberM, adding the
constraints:
274
1 if 0 can hold (can produce product )
0 if 0 must hold (cannot produce product )
j
j
j
x jy
x j
1 1
2 2
3 3
1 2 3 2
is binary, for 1, 2,3.j
x My
x My
x My
y y y
y j
7/24/2019 OD Integer Programming LARGE 2010
13/67
Auxiliary binary variables
For Requirement 2, another auxiliary binary variabley4
is introduced:
This add the constraints:
275
1 2 3
4
1 2 3
1 if 4 6 2 40 must hold (choose Plant 1)
0 if 3 4 2 30 must hold (choose Plant 2)
x x xy
x x x
1 2 3 4
1 2 3 4
4
3 4 2 30
4 6 2 40 (1 )
is binary
x x x My
x x x M y
y
7/24/2019 OD Integer Programming LARGE 2010
14/67
Complete model (MIP)
276
1 2 3
1
2
3
1 1
2 2
3 3
1 2 3
1 2 3 4
1 2 3 4
Maximize 5 7 3
subject to 75
9
0
00
2
3 4 2 30
4 6 2 40
and 0, for 1, 2,3
is binary, for 1,2,3, 4
i
j
Z x x x
xx
x
x My
x My
x My
y y y
x x x My
x x x My M
x i
y j
7/24/2019 OD Integer Programming LARGE 2010
15/67
Solution
MIP problem with 3 continuous and 4 binary variables.
Optimal solution:y1 = 1,y2 = 0,y3 = 1,y4 = 1,x1 = 5.5,x2 = 0,x3 = 9.
That is, choose products 1 and 3 to produce, choose
Plant 2 for production, choose production rates of 5.5
units per week for product 1 and 9 units per week for
product 2.
Resulting profit is 54500 per week.
277
7/24/2019 OD Integer Programming LARGE 2010
16/67
Example 2
See Hilliers book (page 496). Profit from additional sales
violates proportionality:
278
7/24/2019 OD Integer Programming LARGE 2010
17/67
Example: Southwestern Airways
Southwestern Airways needs to assign three crews to
cover all the upcoming flights. Table shows the flights in the first column.
Other 12 columns show the 12 feasible sequences of flights
for a crew.
Numbers in each column indicate the order of the flights.
Exactly three sequences must be chosen (one for each crew).
More than one crew can be assigned to a flight, but it must
be paid as if it was working.
Last column show the cost of assigning a crew to a sequenceof flights.
279
7/24/2019 OD Integer Programming LARGE 2010
18/67
Data for Southwestern Airways
280
Feasible sequence of flights
Flight 1 2 3 4 5 6 7 8 9 10 11 12
1. San Francisco to Los Angeles 1 1 1 1
2. San Francisco to Denver 1 1 1 1
3. San Francisco to Seattle 1 1 1 1
4. Los Angeles to Chicago 2 2 3 2 3
5. Los Angeles to San Francisco 2 3 5 5
6. Chicago to Denver 3 3 4
7. Chicago to Seattle 3 3 3 3 4
8. Denver to San Francisco 2 4 4 5
9. Denver to Chicago 2 2 2
10. Seattle to San Francisco 2 4 4 5
11. Seattle to Los Angeles 2 2 4 4 2
Cost (1000) 2 3 4 6 7 5 7 8 9 9 8 9
7/24/2019 OD Integer Programming LARGE 2010
19/67
Formulation of the problem
Objective: minimize the total cost for the three crews.
12 feasible sequence of flights: 12 yes-or-no decisions:
Should sequencejbe assigned to a crew?
The 12 binary variables to represent the decisions are:
281
1 if sequence is assigned to a crew
0 otherwisej
jx
7/24/2019 OD Integer Programming LARGE 2010
20/67
1 2 3 4 5 6 7 8 9
10 11 12
Minimize 2 3 4 6 7 5 7 8 9
9 8 9
Z x x x x x x x x x
x x x
and is binary, for 1,2, ,12jx j
subject to1 4 7 10
2 5 8 11
3 6 9 12
4 7 9 10 12
1 6 10 11
4 5 9
7 8 10 11 12
2 4 5 9
5 8 11
3 7 8 12
6 9 10 11 1212
1
1 (SF to LA)
1
1
1
11
1
1
1
1
1
3 (assign three crewsjj
x x x x
x x x x
x x x x
x x x x x
x x x xx x x
x x x x x
x x x x
x x x
x x x x
x x x x x
x
)
Formulation of the problem
282
7/24/2019 OD Integer Programming LARGE 2010
21/67
Solution
One optimal solution is:
x3 = 1 (assign sequence 3 to a crew)
x4 = 1 (assign sequence 4 to a crew)
x11 = 1 (assign sequence 11 to a crew)
And all otherxj
= 0.
Total cost is 18000.
Another optimal solution is: x1 =x5 =x12 = 1.
283
7/24/2019 OD Integer Programming LARGE 2010
22/67
Discussion
This example belongs to a class called set covering
problems, with a number of potential activities(e.g.flight sequences) and characteristics(e.g. flights).
Si is the set of all activities that possess characteristici.
A constraint is included for each characteristici:
In set partitioning problems the constraint is
284
1j
j
j Sx
1i
j
j S
x
l bl
7/24/2019 OD Integer Programming LARGE 2010
23/67
Solving IP problems
Integer problems are easy to solve?
Difference to LP is that IP have far fewer solutions.
IP problems have a finitenumber of feasible solutions.
However:
Finite numbers can be astronomically large! With n
variables a BIP problem has 2n solutions, having
exponential growth.
LP assuresthat a CFP solution can be optimal,
guaranteeing the remarkable efficiency of the simplex
method. LP problems are much easier t o solve than IP
problems.
285
l i bl
7/24/2019 OD Integer Programming LARGE 2010
24/67
Solving IP problems
Consequently, most IP algorithms incorporate the
simplex method. This is called the LP relaxation. Sometimes, the solution of the LP problem isthe
solution of the IP problem, such as:
Minimum cost flow problem, including transportation
problem, assignment problem, shortest -path problem
and maximum f low problem.
Special structures (see examples 2 and 3): mutually
exclusive alternat ives, cont ingent decisionsor set-
covering const raintscan also simplify the problem.
286
S l i I bl
7/24/2019 OD Integer Programming LARGE 2010
25/67
Solving IP problems
Primary determinants of computational complexity:
1. number of integer variables,2. these variables are binaryor generalinteger variables,
3. any special structure in the problem.
This is in contrast to LP, where number of constraints
is much more important than the number of
variables.
As IP problems are much more difficult than LP, we
could apply LP and roundthe obtained solution...Yes??
287
E l 1
7/24/2019 OD Integer Programming LARGE 2010
26/67
Example 1
288
2Minimize Z x
1 2
1 2
1 2
subject to 0.5
3.5,
and , 0, integers.
x x
x x
x x
E l 2
7/24/2019 OD Integer Programming LARGE 2010
27/67
Example 2
289
1 2Minimize 5Z x x
1 2
1
1 2
subject to 10 20
2
and , 0, integers.
x x
x
x x
S l i IP bl
7/24/2019 OD Integer Programming LARGE 2010
28/67
Solving IP problems
Thus, a better approach to deal with IP problems that
are too large to be solved exactly are heuristicalgorithms.
Heuristics and metaheuristics are extremely efficient
for very large problems, but do not guaranteeto find
an optimal solution. These algorithms will be discussed further later.
Most popular traditional method for solving IP
problems is the branch-and-bound technique.
290
B h d b d li d t BIP
7/24/2019 OD Integer Programming LARGE 2010
29/67
Branch-and-bound applied to BIP
Pure IP problems can consider some type of
enumerat ion procedure. This should be done in a clever way such that only a
tiny fraction of the feasible solutions is examined.
Branch-and-bound with a divide to conquertechnique
can be used.
dividing (branching) the problem into smaller and
smaller subproblems until it can be conquered
conquering (fathoming) by boundinghow good the
best solution can be. If no optimal solution in subset:
discard it.
291
E l C lif i M f C
7/24/2019 OD Integer Programming LARGE 2010
30/67
Example: California Manuf, Co.
Recall prototype example:
Maximize Z= 9x1 + 5x2 + 6x3 + 4x4
subject to
(1) 6x1 + 3x2 + 5x3 + 2x4 10
(2) x3 + x4 1(3) x1 + x3 0
(4) x2 + x4 0
and
(5) xj is binary, forj = 1, 2, 3, 4.
292
B hi
7/24/2019 OD Integer Programming LARGE 2010
31/67
Branching
Most straightforward way to divide the problem: fix
the value of a variable at one set. e.g.x1 = 0 for one subset andx1 = 1 for another subset.
Subproblem 1(fixx1 = 0):
Maximize Z= 5x2 + 6x3 + 4x4
subject to(1) 3x2 + 5x3 + 2x4 10
(2) x3 + x4 1
(3) x3 0
(4) x2 + x4 0(5) xj is binary, forj = 2, 3, 4.
293
B hi
7/24/2019 OD Integer Programming LARGE 2010
32/67
Branching
Subproblem 2(fixx1 = 1):
Maximize Z= 9 + 5x2 + 6x3 + 4x4
subject to
(1) 3x2 + 5x3 + 2x4 4
(2) x3
+ x4
1
(3) x3 1
(4) x2 + x4 0
(5) xj is binary, forj = 2, 3, 4.
294
B hi
7/24/2019 OD Integer Programming LARGE 2010
33/67
Branching
Dividing (branching) into suproblems creates a tree
with branches(arcs) for theAllnode. This is the solution tree or enumeration tree.
Branching variable is the one used for branching.
The branching continues or not after evaluating the
subproblem.
Other IP problems usually creates as many branches as
needed.
295
B di
7/24/2019 OD Integer Programming LARGE 2010
34/67
Bounding
A boundis needed for the best feasible solution of the
subproblem. Standard way is to perform a relaxation of the
problem, e.g. by deletingone set of constraints that
makes the problem difficult.
Most common is to require integer variables, so LP
relaxationis the most widely used.
296
Bounding in example
7/24/2019 OD Integer Programming LARGE 2010
35/67
Bounding in example
Example: for the whole problem, (5) is
replaced byxj 1 andxj 0 forj=1, 2, 3, 4.Using simplex:
(x1,x2,x3,x4) = (5/6, 1, 0, 1), with Z = 16.5
Thus, Z 16.5 for all feasible solutions for BIPproblem. Can be rounded toZ 16 (why?)
LP relaxation for subproblem 1:
(x1,x2,x3,x4) = (0, 1, 0, 1), with Z = 9
LP relaxation for subproblem 2:
(x1,x2,x3,x4) = (1, 4/5, 0, 4/5), with Z = 16.5
297
Fathoming
7/24/2019 OD Integer Programming LARGE 2010
36/67
Fathoming
A subproblem can be conquered (fathomed, i.e.
search tree is pruned) in three ways:1. When the optimal solution for the LP relaxation of a
subproblem is integer, it must be optimal.
Example: forx1=0, (x1,x2,x3,x4) = (0, 1, 0, 1), is integer.
It must be stored as first incumbent (best feasible solutionfound so far) for the whole problem, along with value ofZ:
Z* = value ofZ for first incumbent
In the exampleZ* = 9.
Subproblem 1 is solved, so it is fathomed (dismissed).
298
Fathoming
7/24/2019 OD Integer Programming LARGE 2010
37/67
Fathoming
2. AsZ* = 9, we should not consider subproblems with
bound 9. Thus, a problem is fathomed whenboundZ*
In Subproblem 2 that does not occur, the bound of16 is
larger than 9. However, it can occur for descendants.
As new incumbents with larger values ofZ* are found, itbecomes easier to fathom in this way.
3. If the simplex method finds that a subproblems LP
relaxation has no feasible solut ion, the subproblem
has nofeasible solution and can dismissed.
299
Summary of fathoming tests
7/24/2019 OD Integer Programming LARGE 2010
38/67
Summary of fathoming tests
A subproblem is fathomed (dismissed) if
Test 1: ItsboundZ*
or
Test 2: Its LP relaxation has no feasible solutions
or Test 3: Optimal solution for its LP relaxation is
integer.
If better, this solution becomes new incumbent, and
Test 1 is reapplied for all unfathomed subproblems.
300
Fathoming in example
7/24/2019 OD Integer Programming LARGE 2010
39/67
Fathoming in example
Result of applying the three tests is in figure below.
Subproblem 1 is fathomed by test 3.
301
BIP branch and bound algorithm
7/24/2019 OD Integer Programming LARGE 2010
40/67
BIP branch-and-bound algorithm
Initialization:SetZ* = . Apply bounding, fathoming
and optimization steps described below to the wholeproblem. If not fathomed, perform iteration.
Steps for each it erat ion:
1. Branching: Among the remaining subproblems, select
the one created most recently. Branch from this nodeby fixing the next variable as either 0 or 1.
2. Bounding: For each new subproblem, obtain its
boundby applying its LP relaxation.
Round downZfor resulting optimal solution.
302
BIP branch and bound algorithm
7/24/2019 OD Integer Programming LARGE 2010
41/67
BIP branch-and-bound algorithm
3. Fathoming: For each new subproblem, apply the
three fathoming tests, and discard subproblems thatare fathomed by the tests.
Optimalit y test :Stop when there are no remaining
subproblems. The current incumbent is optimal.
Otherwise, perform another iteration.
303
Completing example
7/24/2019 OD Integer Programming LARGE 2010
42/67
Completing example
Iteration 2. Remaining subproblems are forx1 = 1.
Subproblem 3(fixx1 = 1,x2 = 0):Maximize Z= 9 + 6x3 + 4x4
subject to
(1) 5x3 + 2x4 4(2) x3 + x4 1
(3) x3 1
(4) x4 0
(5) xj is binary, forj = 3, 4.
304
Example
7/24/2019 OD Integer Programming LARGE 2010
43/67
Example
Subproblem 4(fixx1 = 1,x2 = 1):
Maximize Z= 14 + 6x3 + 4x4
subject to
(1) 5x3 + 2x4 1
(2) x3 + x4 1(3) x3 1
(4) x4 1
(5) xj is binary, forj = 3, 4.
305
Example
7/24/2019 OD Integer Programming LARGE 2010
44/67
Example
LP relaxation is obtained by replacing (5) by 0xj 1 j
= 3, 4. Optimal solutions are: LP relaxation for Subproblem 3:
(x1,x2,x3,x4) = (1, 1, 0.8, 0), withZ= 13.8
LP relaxation for Subproblem 4:
(x1,x2,x3,x4) = (1, 1, 0, 0.5), withZ = 16
Resulting bounds:
Bound for subproblem 3: Z 13
Bound for subproblem 4: Z 16
306
Example
7/24/2019 OD Integer Programming LARGE 2010
45/67
Example
All three fathoming tests fail, so both are unfathomed.
307
Iteration 3
7/24/2019 OD Integer Programming LARGE 2010
46/67
Iteration 3
Subproblem 4 has the larger bound, so next branching
is done from (x1,x2) = (1, 1). Subproblem 5(fixx1 = 1,x2 = 1,x3 = 0):
Maximize Z= 14 + 4x4
subject to
(1) 5x3 + 2x4 1
(2), (4) x4 1
(5) x4 is binary
308
Iteration 3 (cont )
7/24/2019 OD Integer Programming LARGE 2010
47/67
Iteration 3 (cont.)
Subproblem 6(fixx1 = 1,x2 = 1,x3 = 1):
Maximize Z= 20 + 4x4
subject to
(1) 2x44
(2) x4 0
(4) x4 1(5) x4 is binary
LP relaxation: replace (5) by 0 x4 1. Optimal solutions are:
LP relaxation for subproblem 5: (x1,x2,x3,x4) = (1, 1, 0, 0.5),Z= 16
LP relaxation for subproblem 6: No feasible solutions.
Bound for subproblem 5: Z 16
309
Iteration 3 (concl )
7/24/2019 OD Integer Programming LARGE 2010
48/67
Iteration 3 (concl.)
Subproblem 6 is fathomed by test 2, but not
Subproblem 5.
310
Iteration 4
7/24/2019 OD Integer Programming LARGE 2010
49/67
Iteration 4
Node created most recently is selected for branching:
x4 = 0: (x1,x2,x3,x4) = (1,1,0,0) is feasible, withZ= 14
x4 = 1: (x1,x2,x3,x4) = (1,1,0,1) is infeasible.
First solution passes test 3 and second passes test 2
for fathoming.
First solution is better than incumbent, so it becomes
new incumbent, withZ* = 14
Reapplying fathoming test 1 to remaining branch to
remaining Subproblem 3, it is fathomed: Bound = 13 Z* = 14.
311
Solution tree after Iteration 4
7/24/2019 OD Integer Programming LARGE 2010
50/67
Solution tree after Iteration 4
312
Other options in B&B
7/24/2019 OD Integer Programming LARGE 2010
51/67
Other options in B&B
Branching can be done e.g. from the best boundrather
than from the most recent ly createdsubproblem. Bounding is done by solving a relaxation. Another
possible one is e.g. the Lagrangian relaxation.
Fathoming criteria can be generally stated as:
Criterion 1: feasible solutions of subproblem must have
Z Z*
Criterion 2: the subproblem has no feasible solutions, or
Criterion 3: an optimal solution of subproblem has been
found.
Branch-and-bound can find a nearly opt imal solut ion.
313
Branch-and-bound for MIP
7/24/2019 OD Integer Programming LARGE 2010
52/67
Branch and bound for MIP
General form of the problem:
314
1
1
Maximize
subject to , for 1,2, , ,
0, for 1,2, ,and
is integer, for 1, 2, , ; .
n
j j
j
n
ij j ij
j
j
Z c x
a x b i m
x j n
x j I I n
Branch-and-bound for MIP
7/24/2019 OD Integer Programming LARGE 2010
53/67
Branch and bound for MIP
Similar to BIP algorithm. Solving LP relaxations are
the basis for boundingand fathoming.
Four changes are needed:
1. Choice ofbranching variable. Only integer variables
that have a noninteger valuein the optimal solution
for the LP relaxation can be chosen.
315
Branch-and-bound for MIP
7/24/2019 OD Integer Programming LARGE 2010
54/67
Branch and bound for MIP
2. As integer variables can have a large number of
possible values, create just twonew subproblems: xj
*: noninteger value of optimal solution for LP
relaxation.
[xj*] = greatest integer xj
*.
Range of variables for two new subproblems:
xj* [xj
*] and xj* [xj
*] + 1.
Each inequality becomes an addit ional constraint.
Example:xj
* = 3.5, then:xj
* 3 and xj
* 4.
When changes 1. and 2. are combined, a recurring
branching variablecan occur, see figure.
316
Recurring branching variable
7/24/2019 OD Integer Programming LARGE 2010
55/67
Recurring branching variable
317
Branch-and-bound for MIP
7/24/2019 OD Integer Programming LARGE 2010
56/67
Branch and bound for MIP
Changes needed:
3. Bounding step: value ofZwas rounded down in BIPalgorithm. Now some variables are not integer-
restricted so bound is value ofZwithoutrounding.
4. Fathoming test 3: optimal solution for the
subproblems LP relaxation must only be integerforinteger-restrictedvariables.
318
MIP branch-and-bound algorithm
7/24/2019 OD Integer Programming LARGE 2010
57/67
MIP branch and bound algorithm
Initialization:SetZ* =. Apply bounding, fathoming
and optimization steps described below to the wholeproblem. If not fathomed, perform iteration.
Steps for each it erat ion:
1. Branching: Among the remaining subproblems, select
the one created most recently.
From integer variablesthat have a noninteger value
in the optimal solution for the LP relaxation chose the
first one. Letxj be this variable andxj* its value.
Branch from this creating two subproblems by adding
the respective constraints:xj* [xj
*] andxj* [xj
*] + 1.
319
MIP branch-and-bound algorithm
7/24/2019 OD Integer Programming LARGE 2010
58/67
MIP branch and bound algorithm
2. Bounding: For each new subproblem, obtain its
boundby applying its LP relaxation. UseZwithoutrounding for resulting optimal solution.
3. Fathoming: For each new subproblem, apply the
three fathoming tests, and discard subproblems that
are fathomed by the tests.Test 1: Itsbound Z*, whereZ* is value ofZfor current
incumbent.
Test 2: Its LP relaxation has no feasible solutions.
320
MIP branch-and-bound algorithm
7/24/2019 OD Integer Programming LARGE 2010
59/67
MIP branch and bound algorithm
3. Fathoming (cont.):
Test 3: Optimal solution for its LP relaxation is integerforinteger-restrictedvariables. (if this solution is better it
becomes new incumbent, and test 1 is reapplied for all
unfathomed subproblems).
Optimality test: Stop when there are no remainingsubproblems. The current incumbent is optimal.
Otherwise, perform another iteration.
See MIP example in PL#7 and in page 518 of Hilliersbook.
321
Branch-and-cut approach to BIP
7/24/2019 OD Integer Programming LARGE 2010
60/67
Branch and cut approach to BIP
Branch-and-bound was develop and refined in the
1960s and early 1970s. Can solve problems up to 100 variables.
Branch-and-cut approach was introduced in the mid
1980s, which can solve problems with thousands
variables. Only solve large problems if they are sparse (less than 5
or even 1% ofnonzerovalues in the functional
constraints).
Uses a combination of: automatic problem processing,generation of cutting planes and B&B techniques.
322
Automat ic problem processing for BIP
7/24/2019 OD Integer Programming LARGE 2010
61/67
Automat ic problem processingfor BIP
Computer inspection of IP formulation to spot
reformulationsthat make the problem quicker tosolve:
Fixing variables: identify variables that can be fixed at 0
or 1, because other value cannot be optimal.
Eliminating redundant constraints: identify andeliminate constraints that are automatically satisfied by
solutions that satisfy all other constraints.
Tightening constraints: tighten constraints in a way that
reduces feasible region of LP relaxation.
323
Tightening constraints
7/24/2019 OD Integer Programming LARGE 2010
62/67
Tightening constraints
324
LP relaxation including
feasible region.
LP relaxation after tightening
constraint.
Generating cutting planes for BIP
7/24/2019 OD Integer Programming LARGE 2010
63/67
g g p
Cutting plane (or cut) is a new functional constraint
that reduced feasible region for LP relaxation.Procedure for generating cutting planes:
1. Consider functional constraint in form.
2. Find a group ofNvariables such that
a) Constraint is violated if every variable in group = 1 and
all other variables = 0.
b) It is satisfied if value ofanyvariables changes from 1
to 0.
3. Resulting cutting plane:
sum of variables in group N 1.
325
Constraint Programming
7/24/2019 OD Integer Programming LARGE 2010
64/67
g g
Combination of artificial intelligence with computer
programming languages in the mid-1980s. Flexibilityin stating (nonlinear) constraints:
1. Mathematical constraints, e.g.,x +y
7/24/2019 OD Integer Programming LARGE 2010
65/67
g
4. Explicit constraints, e.g.,x andy have same domain
{1,2,3,4,5}, but (x,y) must be (1, 1), (2, 3) or (4, 5).5. Unary constraints, e.g.z is integer between 5 and 10.
6. Logical constraints, e.g., ifx = 5,y {6, 7, 8}.
Standard logical functions such as IF, AND, OR, NOT
can be used.
Constraint programming applies domain reduct ion
and constraint propagat ion.
The process creates a t ree search.
327
Example
7/24/2019 OD Integer Programming LARGE 2010
66/67
p
Consider:
x1{1,2},x2{1,2},x3{1,2,3},x4{1,2,3,4,5} Constraints:
1. Allvariables must have different values;
2. x1 +x3 = 4.
Apply domain reduction and constraint propagation
to obtain feasible solutions:
x1{1}, x2{2}, x3{3}, x4{4,5}.
328
Constraint Programming
7/24/2019 OD Integer Programming LARGE 2010
67/67
g g
Steps in Constraint Programming:
1. Formulate a compact model of the problem by usinga variety of constraint types (most not of IP type).
2. Efficiently find feasible solutions that satisfy all these
constraints.
3. Search among feasible solutions for an optimal one.
Strength of constraint programming is in first two
steps, whereas the main strength of IP is in step 3.
Current research: integrate CP and IP!