Integer programming
Branch & bound
algorithm
( B&B )
In the name of god
Arsalan
Motamedi
Integer programming problems
All integer programming problems
Mixed integer programming problems
Step
1:
rela
xatio
nRelax the integer
restriction ( try to solve it as a linear programming)
Max Z = 5x1 + 4x2
s.t. x1 + x2 5
10x1 + 6x2 45
x1 , x2 ≥ 0 integer
Max Z = 5x1 + 4x2
s.t. x1 + x2 5
10x1 + 6x2 45
x1 , x2 ≥ 0 integer
x1
x2
1
1 2
2
3
3
4
4
5
5
6
6
7
7
8
8
x1 =3.75 x2 = 1.25
z = 23.75
Which none of them is integer !
Step
2:
Bran
chin
gDividing the problem in every node into 2
subproblems to district the feasible region for getting to the optimal solution
which is integer.
x1
x2
1
1 2
2
3
3
4
4
5
5
6
6
7
7
8
8
x1 ≥ 4x1 3
Step
2:
Bran
chin
g
x1 =3.75 x2 = 1.25
z = 23.75
x1 3 x1 ≥ 4
x1 =3 x2 = 2
z = 23
Satisfies the integer requirements for x1
Fathomed: dont need to be investigated any further
LOWER BOUND
x1 =3.75 x2 = 1.25
z = 23.75
x1 3 x1 ≥ 4
x1 =3 x2 = 2
z = 23
Fathomed
x1 =4 x2 = 0.83
z = 23.33
x2 0 x2 ≥ 1
x1 =4.5 x2 = 0
z = 22.5
No solution
Fathomed
x1 =4 x2 = 0
z = 20
No solution
x1 4 x1 ≥ 5
LOWER BOUND
LOWER BOUND
Optimal solution
1) fathoming (bounding)
Summary of B&B STEP BY STEP
Z cannot yield a better objective value than the lower bound
Z yields a better objective value than the lower bound
Subproblem has no feasible solution
Update the lower bound
2)Branching
Fractional part[x] < x < [x] +1
[x] ≤ x x ≤ [x] +1
Explanation , witch said in last slides , was for maximization problems…
How about minimization problems?!
In Minimization problems , we just replace lower bound with upper bound