09.2 integer programming.pdf
TRANSCRIPT
-
8/10/2019 09.2 Integer Programming.pdf
1/20
-
8/10/2019 09.2 Integer Programming.pdf
2/20
Solving Combinatorial Optimization Problems: exact
techniques
Relaxation If we do not consider one or more constraints of the originalproblem P O, we can transform the problem in another problem that can be
simpler to solve P R. Considering that the problem is a minimization
problem, the optimal values of the objective function are related in the
following way:
f?PR f?
PO
(with less constraints the solution can only improve or stay the same).
Linear relaxation transform an integer problem in a problem with
continuous variables by dropping the constraint that the variables must beinteger (or Binary). This allows us to use the Simplex Algorithm instead of
the more complex, and far more time consuming, tree search.
-
8/10/2019 09.2 Integer Programming.pdf
3/20
-
8/10/2019 09.2 Integer Programming.pdf
4/20
-
8/10/2019 09.2 Integer Programming.pdf
5/20
Solving the linear relaxation
Problem PL0:
max F = 3x+ 7y
subject to:
x 3.55x 4y 10
4
7x + 2y 9
x , y 0Optimal, non integer, solution:
x= 3.5 and y= 3.5; F = 35
-
8/10/2019 09.2 Integer Programming.pdf
6/20
Branching in x: x 3
max F = 3x+ 7y
subject to:
x 3.5
5x 4y 10
4
7x + 2y 9
x , y 0
x 3
Solution (non integer):x= 3 and y= 3.6; F = 34.5
-
8/10/2019 09.2 Integer Programming.pdf
7/20
Branching in x: x 4
max F = 3x+ 7y
subject to:
x 3.5
5x 4y 10
4
7x + 2y 9
x , y 0
x 4Without admissible solutions.
-
8/10/2019 09.2 Integer Programming.pdf
8/20
-
8/10/2019 09.2 Integer Programming.pdf
9/20
Branching in y: y 4
max F = 3x+ 7y
subject to:
x 3.5
5x 4y 104
7x + 2y 9
x , y 0
x 3
y 4 Solution (non-integer):
x= 1.7 and y= 4; F = 33.2
-
8/10/2019 09.2 Integer Programming.pdf
10/20
Branching in x: x 1
max F = 3x+ 7y
subject to:
x 3.5
5x 4y 10
47x + 2y 9
x , y 0
x 3
y 4
x 1
Solution (non-integer):
x= 1 and y= 4.2; F = 32.5
-
8/10/2019 09.2 Integer Programming.pdf
11/20
Branching in x: x 2
max F = 3x+ 7y
subject to:
x 3.5
5x 4y 10
47x + 2y 9
x , y 0
x 3
y 4
x 2 Without feasible solutions.
-
8/10/2019 09.2 Integer Programming.pdf
12/20
Branching in y: y 4
max F = 3x+ 7y
subject to:
x 3.5
5x 4y 10
47x + 2y 9
x , y 0
x 3
y 4
x 1y 4
Solution (integer):
x= 1 and y= 4; F = 31Best integer solution obtained so far!
-
8/10/2019 09.2 Integer Programming.pdf
13/20
Branching in y: y 5
max F = 3x+ 7y
subject to:
x 3.5
5x 4y 10
47x + 2y 9
x , y 0
x 3
y 4
x 1y 5
,
,
-
I
h ; 4y I O
,
-,
/
/
-
,
/
-
- ;
4I
h y
9
,
/
/
,
,
, , ,
,
,
Without admissible solutions.
-
8/10/2019 09.2 Integer Programming.pdf
14/20
Branch-and-Bound tree
!"#$
&'(' )'*+,+-.
/ 0 123
4 0 123 ! # $%
!"#$5
&'(' )'*+,+-.
/ 0 1
4 0 126 7 0 1823
!"#$9
&'( :(;
-
8/10/2019 09.2 Integer Programming.pdf
15/20
Upper and lower Bounds
the branch & bound is more efficient because it is possible to cut
nodes of the search tree without exploring them, because we are surenot to obtain better solutions than the ones we already have;
allow us to measure the distance, (considering the value of the
objective function) to the optimal solution.
-
8/10/2019 09.2 Integer Programming.pdf
16/20
Bounds in a maximization problem:
alowerlimitLIis given by an
integer solution that has beenpreviously obtained the opti-
mal solution F? can never be
worse (lower) than the integer
solution that we already have;
an upperlimit LSis given bythe highest value of the objec-
tive function within all the no-
des that are not yet completely
explored (we hope to find there
an integer solution that is bet-ter than the one we got).
Maximization Problem
F*- LB UB - LB
F
Upper Bound UB
Value of the objective function for themost promising unexplored node
Optimal integer solution F*(unknown)
Lower bound LB
Best integer solution found(highest value of the objective
function)
-
8/10/2019 09.2 Integer Programming.pdf
17/20
Bounds example
Consider a maximization problem where all the variables are integer. The
tree in figure1is obtained along the resolution process.
!"#$
&'(')*'+,-,. /(012('3
! # $%%
!"#4
&'(')*'+,-,. /(012('3! # &'
!"#5
&*'+,-,. /(012('3
6# (%
!"#7
&'(')*'+,-,. /(012('3
! # ()
!"#8
&'( /(012('3
!"#9
&'(')*'+,-,. /(012('3! # )$
!"#:
&'(')*'+,-,. /(012('3
! # *'
!"#;
&*'+,-,. /(012('3
6# *%
!"#