1
15-853
Page1
15-853:Algorithms in the Real World
Linear and Integer Programming III
– Integer Programming
• Applications
• Algorithms
15-853
Page2
Integer (linear) Programming
Related Problems
–
Mixed Integer Programming (MIP)
–
Zero-one programming
–
Integer quadratic programming
–
Integer nonlinear programming
x
∈
Z
n
x
≥
0
Ax
≤
b
subject to:
c
T
x
minimize:
15-853
Page3
History
•
Introduced in 1951 (Dantzig)
•
TSP as special case in 1954 (Dantzig)
•
First convergent algorithm in 1958 (Gomory)
•
General branch-and-bound technique 1960
(Land and Doig)
•
Frequently used to prove bounds on approximation
algorithms (late 90s)
15-853
Page4
Current Status
•
Has become “dominant” over linear programming in
past decade
•
Saves industry Billions of Dollars/year
•
Can solve 10,000+ city TSP problems
•
1 million variable LP approximations
•
Branch-and-bound, Cutting Plane, and Separation
all used in practice
•
General purpose packages do not tend to work as
well as with linear programming --- knowledge of
the domain is critical.

This
** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
2
15-853
Page5
Subproblems/Applications
•
Facility location
Locating warehouses or franchises (e.g. a Burger King)
•
Set covering and partitioning
Scheduling airline crews
•
Multicomodity distribution
Distributing auto parts
•
Traveling salesman and extensions
Routing deliveries
•
Capital budgeting
•
Other Applications
VLSI layout, clustering
15-853
Page6
Knapsack Problem
where:
b = maximum weight
c
i
= utility of item i
a
i
= weight of item i
x
i
= 1 if item i is selected, or 0 otherwise
The problem is NP-hard.
Integer (zero-one) Program:
x
binary
ax
≤
b
subject to:
c
T
x
maximize
15-853
Page7
Traveling Salesman Problem
Find shortest tours that visit all of n cities.
courtesy:
Applegate
,
Bixby
,
Chvátal
, and
Cook
15-853
Page8
Traveling Salesman Problem
c
ij
= c
ji
= distance from city i to city j
(assuming
symmetric version
)
x
ij
if tour goes from i to j or j to i, and 0 otherwise
Anything missing?
∑∑
=
=
n
i
n
j
ij
ij
x
c
1
1
n
i
x
n
j
ij
≤
≤
=
∑
=
1
2
0
(path enters and leaves)
minimize:
subject to:
binary
,
ij
ji
x
x
=