22.01.2014 Views

IEOR 269, Spring 2010 Integer Programming and Combinatorial ...

IEOR 269, Spring 2010 Integer Programming and Combinatorial ...

IEOR 269, Spring 2010 Integer Programming and Combinatorial ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>IEOR</strong><strong>269</strong> notes, Prof. Hochbaum, <strong>2010</strong> 31<br />

such a tour <strong>and</strong> we can verify in polynomial time that 1) it is a valid tour <strong>and</strong> 2) its total distance<br />

is ≤ M. However if the answer to our problem is “no”, then (as far as we know) the only way to<br />

verify this would be to check every possible tour (this is certainly not a poly-time computation).<br />

Lec5<br />

17 Addendum on Branch <strong>and</strong> Bound<br />

In general, the idea of Branch <strong>and</strong> Bound is implicit enumeration. Consequently, this can create<br />

serious problems for general IP.<br />

Example 17.1. Consider the following 0-1 Knapsack problem.<br />

max 2x 1 + 2x 2 + · · · + 2x 100<br />

subject to 2x 1 + 2x 2 + · · · + 2x 100 ≤ 101 (10)<br />

x i ∈ {0, 1} for i = 1, . . . , 100 (11)<br />

One optimal solution to this problem is x 1 = x 2 = · · · = x 50 = 1 <strong>and</strong> x 51 = · · · = x 100 = 0. In fact,<br />

setting any subset of 50 variables to 1 <strong>and</strong> the remaining to 0 yields an optimal solution.<br />

For a 0-1 Knapsack problem of 100 variables, there are 2 100 possible solutions. The naive way to<br />

find the optimal solution would to enumerate all of them, but this would take way too much time.<br />

Although Branch <strong>and</strong> Bound is an enumeration algorithm, the idea is to enumerate the solutions<br />

but discarding most of them before they are even considered.<br />

Let us consider the LP-based Branch <strong>and</strong> Bound algorithm on the problem defined in Example<br />

17.1. At the top node of the Branch <strong>and</strong> Bound tree, we don’t make any assumptions about the<br />

bounds. The LP relaxation of the problem gives an objective value of 101, which is obtained by<br />

setting any subset of 50 variables to 1, another 49 variables to 0, <strong>and</strong> the remaining variable to<br />

1<br />

2<br />

; 101 is now the upper bound on the optimal solution to the original problem. Without loss of<br />

generality, let the solution to the LP relaxation be<br />

⎧<br />

x ⎪⎨ 1 = x 2 = · · · = x 50 = 1<br />

x 51 = 1 ⎪⎩ 2<br />

x 52 = x 53 = · · · = x 100 = 0.<br />

Branching on x 51 (the only fractional variable) gives no change in the objective value for either<br />

branch. In fact, using Branch <strong>and</strong> Bound we would have to fix 50 variables before we found a<br />

feasible integer solution. Thus, in order to find a feasible solution we would need to search 2 51 − 1<br />

nodes in the Branch <strong>and</strong> Bound tree.<br />

Although this is a pathological example where we have to do a lot of work before we get a lower<br />

bound or feasible solution, it illustrates the potential shortfalls of enumeration algorithms. Further,<br />

it is important to note that, in general, the rules for choosing which node to branch on are not well<br />

understood.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!