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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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

Lec1<br />

1 Introduction<br />

Consider the general form of a linear program:<br />

max<br />

subject to<br />

∑ n<br />

i=1 c ix i<br />

Ax ≤ b<br />

In an integer programming optimization problem, the additional restriction that the x i must be<br />

integer-valued is also present.<br />

While at first it may seem that the integrality condition limits the number of possible solutions<br />

<strong>and</strong> could thereby make the integer problem easier than the continuous problem, the opposite is<br />

actually true. Linear programming optimization problems have the property that there exists an<br />

optimal solution at a so-called extreme point (a basic solution); the optimal solution in an integer<br />

program, however, is not guaranteed to satisfy any such property <strong>and</strong> the number of possible integer<br />

valued solutions to consider becomes prohibitively large, in general.<br />

While linear programming belongs to the class of problems P for which “good” algorithms exist<br />

(an algorithm is said to be good if its running time is bounded by a polynomial in the size of the<br />

input), integer programming belongs to the class of NP-hard problems for which it is considered<br />

highly unlikely that a “good” algorithm exists. For some integer programming problems, such as<br />

the Assignment Problem (which is described later in this lecture), efficient algorithms do exist.<br />

Unlike linear programming, however, for which effective general purpose solution techniques exist<br />

(ex. simplex method, ellipsoid method, Karmarkar’s algorithm), integer programming problems<br />

tend to be best h<strong>and</strong>led in an ad hoc manner. While there are general techniques for dealing with<br />

integer programs (ex. branch-<strong>and</strong>-bound, simulated annealing, cutting planes), it is usually better<br />

to take advantage of the structure of the specific integer programming problems you are dealing<br />

with <strong>and</strong> to develop special purposes approaches to take advantage of this particular structure.<br />

Thus, it is important to become familiar with a wide variety of different classes of integer<br />

programming problems. Gaining such an underst<strong>and</strong>ing will be useful when you are later confronted<br />

with a new integer programming problem <strong>and</strong> have to determine how best to deal with it. This<br />

will be a main focus of this course.<br />

One natural idea for solving an integer program is to first solve the “LP-relaxation” of the<br />

problem (ignore the integrality constraints), <strong>and</strong> then round the solution. As indicated in the class<br />

h<strong>and</strong>out, there are several fundamental problems to using this as a general approach:<br />

1. The rounded solutions may not be feasible.<br />

2. The rounded solutions, even if some are feasible, may not contain the optimal solution. The<br />

solutions of the ILP in general can be arbitrarily far from the solutions of the LP.<br />

3. Even if one of the rounded solutions is optimal, checking all roundings is computationally<br />

expensive. There are 2 n possible roundings to consider for an n variable problem, which<br />

becomes prohibitive for even moderate sized n.

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

Saved successfully!

Ooh no, something went wrong!