Branch and Bound

advertisement

Branch-and-Bound Technique for Solving Integer Programs

Author Unknown

Basic Concepts

The basic concept underlying the branch-and-bound technique is to divide and conquer .

Since the original “large” problem is hard to solve directly, it is divided into smaller and smaller subproblems until these subproblems can be conquered .

The dividing (branching) is done by partitioning the entire set of feasible solutions into smaller and smaller subsets.

The conquering (fathoming) is done partially by

(i) giving a bound for the best solution in the subset;

(ii) discarding the subset if the bound indicates that it can’t contain an optimal solution.

These three basic steps

– branching, bounding, and fathoming

– are illustrated on the following example.

1

2

3

6

5

4

Example of Branch-and-Bound x

1

+ x

2

= 6

(2.25, 3.75)

Max Z = 5x

1 x

1

, x

2

+ 8x

2 s.t. x

1

5x

1

+ x

2

6

+ 9x

2

45

≥ 0 integer

Z=41.25

5x

1

+ 9x

2

= 45

Z=20

0

1 2 3 4 5 6

7 8

Utilizing the information about the optimal solution of the LP-relaxation

 Fact : If LP-relaxation has integral optimal solution x*, then x* is optimal for IP too.

 In our case, (x

1

, x

2

) = (2.25, 3.75) is the optimal solution of the

LP-relaxation. But, unfortunately, it is not integral.

• The optimal value is 41.25 .

 Fact : OPT(LP-relaxation) ≥ OPT(IP)

(for maximization problems)

That is, the optimal value of the LP-relaxation is an upper bound for the optimal value of the integer program.

• In our case, 41.25 is an upper bound for OPT(IP).

Branching step

• In an attempt to find out more about the location of the IP’s optimal solution, partition the feasible region of the LPrelaxation.

• Choose a variable that is fractional in the optimal solution to the

LP-relaxation – say, must have either x

2 x

2

. Observe that every feasible IP point

3 or x

2

≥ 4 .

• With this in mind, branch on the variable x

2 following two subproblems: to create the

Subproblem 1 Subproblem 2

Max Z = 5x

1 s.t. x

1

5x x

2

1

+ x

3

2

+ 9x

2

+ 8x

2

6

45 x

1

, x

2

≥ 0

• Solve both subproblems

Max Z = 5x

1 s.t. x x x

1

5x

2

1

1

+ x

+ 9x

2

≥ 4

, x

2

2

≥ 0

+ 8x

2

6

45

(note that the original optimal solution (2.25, 3.75) can’t recur)

Branching step (graphically)

Z=41

5

4

Subproblem 2

(1.8, 4)

Subproblem 1: Opt. solution (3,3) with value 39

Subproblem 2: Opt. solution (1.8,4) with value 41

3

(3, 3)

2

Subproblem 1

1

Z=39

Z=20

0

1 2 3 4 5 6

7 8

Solution tree

For each subproblem, we record

• the restriction that creates the subproblem

• the optimal LP solution

• the LP optimum value

All

(2.25, 3.75)

Z=41.25

S1: x

2

3

(3, 3)

Z=39

S2: x

2

≥ 4

(1.8, 4)

Z=41 int.

The optimal solution for Subproblem 1 is integral: (3, 3) .

 If further branching on a subproblem will yield no useful information, then we can fathom (dismiss) the subproblem.

In our case, we can fathom Subproblem 1 because its solution is integral.

 The best integer solution found so far is stored as incumbent .

The value of the incumbent is denoted by Z* .

In our case, the first incumbent is (3, 3) , and Z*=39 .

 Z* is a lower bound for OPT(IP): OPT(IP) ≥ Z* .

In our case, OPT(IP) ≥ 39. The upper bound is 41: OPT(IP) 

41.

1

Next branching step (graphically)

5

Subpr. 3

4

3

(1, 4.44)

Subpr. 4

-

Fathom Subproblem 1.

-

Branch Subproblem 2 on x

1

:

Subproblem 3: New restriction is x

1

1.

Opt. solution (1, 4.44) with value 40.55

Subproblem 4: New restriction is x

1

≥ 2.

The subproblem is infeasible

Z=40.55

2

Z=20

0

1 2 3 4 5 6

7 8

All

(2.25, 3.75)

Z=41.25

Solution tree (cont.)

S1: x

2

3 int.

(3, 3)

S3: x

1

1

Z=39

(1, 4.44)

Z=40.55

S2: x

2

≥ 4

(1.8, 4)

Z=41

S4: x

1

≥ 2 infeasible

 If a subproblem is infeasible, then it is fathomed.

In our case, Subproblem 4 is infeasible; fathom it.

 The upper bound for OPT(IP) is updated: 39

OPT(IP)

40.55 .

 Next branch Subproblem 3 on x

2

.

(Note that the branching variable might recur).

2

1

Next branching step (graphically)

4

5

(0, 5)

(1, 4)

3

Branch Subproblem 3 on x

2

:

Subproblem 5: New restriction is x

2

4.

Feasible region: the segment joining (0,4) and (1,4)

Opt. solution (1, 4) with value 37

Subproblem 6: New restriction is x

2

5.

Feasible region is just one point: (0, 5)

Opt. solution (0, 5) with value 40

Z=20

0

1 2 3 4 5 6

7 8

All

(2.25, 3.75)

Solution tree (final)

S1: x

2

3 int.

S5: x

2

4

(3, 3) (1, 4)

S3: x

1

1

Z=39 Z=37

(1, 4.44) int.

Z=41.25

S2: x

2

≥ 4 Z=40.55

S6: x

2

5 int.

(1.8, 4) (0, 5)

Z=41

S4: x

1

≥ 2

Z=40 infeasible

 If the optimal value of a subproblem is 

Z* , then it is fathomed.

• In our case, Subproblem 5 is fathomed because 37 

39 = Z*.

 If a subproblem has integral optimal solution x*, and its value > Z*, then x* replaces the current incumbent.

• In our case, Subproblem 5 has integral optimal solution, and its value

40>39=Z*. Thus, (0,5) is the new incumbent, and new Z*=40.

 If there are no unfathomed subproblems left, then the current incumbent is an optimal solution for (IP).

• In our case, (0, 5) is an optimal solution with optimal value 40.

Branch and Bound Example

Solve the following BIP be branch and bound .

Max Z = 8x s.t. 5x

1

1

+ 7x

+ 11x

2

2

14

0

 x

1

, x

2

1 integer

Download