Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Branch and Bound Algorithm Implications and Adv Pb

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Solving Integer Programming (IP) Problems

Max 3x1 + 4x2


s.t.
5x1 + 3x2  15
3x1 + 5x2  15
x1, x2 Integers
X2

5 Max 3X1 + 4X2

s.t.
4
5 X1 + 3 X2 <= 15

3 X1, X2 >=0
I
2

X1
1 2 3 4 5
X2

5 Max 3X1 + 4X2

s.t.
4
5 X1+ 3X2 <= 15
3X1 + 5X2 <= 15
3 X1, X2 >=0
I
2

X1
1 2 3 4 5
X2

5 5 X1+ 3X2 <= 15


3X1 + 5X2 <= 15
X1, X2 >=0
4
X1, X2 Integers

3
I
2

X1
1 2 3 4 5
X2

5 5 X1+ 3X2 <= 15


3X1 + 5X2 <= 15
X1, X2 >=0
4
X1, X2 Integers

3
I
2

X1
1 2 3 4 5
X2

5 5 X1+ 3X2 <= 15


3X1 + 5X2 <= 15
X1, X2 >=0
4
X1, X2 Integers

3
I
2

X1
1 2 3 4 5
X2

5 5 X1+ 3X2 <= 15


3X1 + 5X2 <= 15
X1, X2 >=0
4
X1, X2 Integers

3
I
2

X1
1 2 3 4 5
X2

5 LP1:
5 X1+ 3X2 <= 15
3X1 + 5X2 <= 15
4
X1 <= 1

3 LP2:
I
5 X1+ 3X2 <= 15
2 3X1 + 5X2 <= 15
X1 >= 2
1

X1
1 2 3 4 5
Branch-and Bound Algorithm
Ex: Max problem with general integer variables
1. Solve the LP-Relaxation (LP0)
- LP0 Optimal OF value is an upper bound (UB) for the
Optimal IP OF value.
- Current lower bound (LB) = -infinity/0

2. If all variables are integer valued, STOP


Optimal Solution found ☺

3. Else branch on one of the non-integer variables

4. Obtain LP solutions at new nodes generated


Branch-and-Bound Algorithm Contd.

5. If no feasible solution found at a Node, Fathom the Node


6. If integer solution found at a Node, Fathom the Node
- If OF value > current lower bound (LB), update the lower
bound and update the candidate for optimality (Incumbent)
- Fathom all pending nodes with OF Value <= current LB

6. Else branch on one of the non-integer variables and go to


Step 4

7. Continue till all nodes fathomed


- Optimal Solution: Current Incumbent
- Optimal OF Value: Current LB
Criteria for Fathoming a Node

1. If integer solution found at a Node

2. If any pending Node has OF value <= current lower bound

3. If any Node is infeasible

➢ STOP when all Nodes are fathomed


B-a-B Algorithm Considerations

➢ Breadth first vs. Depth first

➢ Which variable to branch on?

➢ Which Node to solve first?

➢ Ordering of variables can affect the tree


B-a-B Algorithm In Practice

➢ Stop early. Pick a Tolerance value. If (ub-lb)/ub < Tol, STOP


➢ Stop once k solutions found
➢ Stop once specified time has elapsed
➢ Specify a lower bound if a feasible solution is available
➢ Note: Tight formulations are desirable
- Choose constraints that will result in a smaller (tighter)
feasible region
- Add relevant constraints from observation/experience
Branch-and Bound Algorithm – Minimization Problem

What if the problem is a Minimization one? Modifications:


➢ Solution to LP-Relaxation (Node 0) is a lower bound
➢ Integer solution found at any Node is an upper bound
➢ If OF value < current upper bound(UB), update the candidate
for optimality (incumbent) and update the current UB
➢ If any pending node has OF value >= upper bound, Fathom
Formulating Integer Programming Problems
1. Add constraints that reduce feasible options

Example: Advertisement Problem

Min 200C1 + 180C2 + 230C3 + 15000M1 + 20000M2 + 25000M3


s.t.
300C2 +250C2 + 500C3 >= 25000 (Min Reach)
C1 <= 30*M1 (Max Length)
C2 <= 30*M2 (Max Length)
C3 <= 30*M3 (Max Length)
C1, C2, C3 >= 0 and M1, M2, M3 binary
Formulating Integer Programming Problems

2. Add ‘tight’ constraints that result in a smaller feasible region for


the LP Relaxation of the IP

Example: Can take Project 1 only if both Projects 3 and 4 are taken
Solving Integer Programming Problems - Preprocessing
- Very useful to identify variables whose values can be fixed (at
one of their possible values).
- Such variables can then be eliminated, reducing the complexity
of the problem to be solved.
- Which variable(s) value can be fixed and eliminated in the
formulation below?

Example: Consider the following binary integer programming


(BIP) problem:

Max 5x1 + 3x2 + 4x3 + 2x4


s.t. 4x1 + x2 + x3 + 2x4 <= 3 (1)
x1 + 3x2 + x3 + 3x4 <= 5 (2)
2x1 + x2 - 2x3 + 4x4 >= 4 (3)
x1, x2, x3, x4 binary
Solving Integer Programming (Mixed BIP) Problems -
Advertisement Decisions

Min 200C1 + 180C2 + 230C3 + 15000M1 + 20000M2 + 25000M3


s.t.
300C2 +250C2 + 500C3 >= 25000 (Min Reach)
C1 <= 30*M1 (Max Length)
C2 <= 30*M2 (Max Length)
C3 <= 30*M3 (Max Length)
C1, C2, C3 >= 0 and M1, M2, M3 binary
Solving Integer Programming (Mixed BIP)
Problems (Advertisement Decisions)
43566.67
LP (0.556, 0 , 1)
0 (16.667, 0 , 30)

M1 = 0 M1 = 1

48833.33 LP 44393.33
LP
(0, 0.667, 1) 1 2 (1, 0, 0.733)
(1, 20, 30) (30, 0, 22)
M2 = 0 M2 = 1
M3 = M3 = 1
*Node 6 Fathomed: 0
OF value > OF value of incumbent
(integer Soln) at Node 4
50233.33
LP 51983.3 LP LP LP (1,0,1)
5 (0,1,0.833) 6 3 4 (16.67,0,30)
(0,30,25)
Infeasible- Fatho Infeasible-
fathom m* fathom Integer Soln-
Fathom

You might also like