Optimization (168) [4ex]Lectures on Integer Programming

Optimization (168)
Lectures on Integer Programming
Jesús De Loera
UC Davis, Mathematics
Wednesday, April 2, 2012
1
MAX FLOWS/ MIN CUTS
2
This problem is a network problem with CAPACITIES ON ARCS!!
3
4
5
6
7
8
9
INTEGER PROGRAMMING
10
LAST EPISODE...
We saw that NETWORK FLOW PROBLEMS are special linear programs with
INTEGER OPTIMAL SOLUTIONS!!!
These are examples of easy integer programs.
Unfortunately not all linear programs have these property: For example Stable set
problem or Independent set problem: In an independent set, no two vertices
are adjacent!
These has a formulation with a variable xi for each node
max
∑ xi
i
xi + xj ≤ 1
for each arc (i,j)
xi ≥ 0
xi ≤ 1
11
LAST EPISODE...
We saw that NETWORK FLOW PROBLEMS are special linear programs with
INTEGER OPTIMAL SOLUTIONS!!!
These are examples of easy integer programs.
Unfortunately not all linear programs have these property: For example Stable set
problem or Independent set problem: In an independent set, no two vertices
are adjacent!
These has a formulation with a variable xi for each node
max
∑ xi
i
xi + xj ≤ 1
for each arc (i,j)
xi ≥ 0
xi ≤ 1
11
If we solve LP without integer constraints and get integer valued result, the result
is the correct ine. In this case we say that LP is tight, or LP is integral. Rarely the
case!!! Look at this sample
KEY IDEA NUMBER 1 Why not add some new linear inequalities and inequalities
that get rid of the bad fractional solutions??
EXAMPLE: For the nodes that belong to an odd cycle C
∑ xi ≤
i ∈C
|C | − 1
2
12
KNAPSACK PROBLEMS
We have n computer files. File i has wi bytes and it takes ci minutes to recompute
it!
You only have K available bytes of memory storage.
We want to store the most files possible so that we save the most minutes of
recomputation!
We cannot store parts of a file. It is all or nothing of it.
We can formulate this as an integer linear program with binary decision
variables:
Suppose xi is a variable that equals 1 or 0 depending on whether we take file i or
not.
max
∑ ci xi
max
i
n
∑ wi xi ≤ K
∑ ci xi
i
n
∑ wi xi ≤ K
i =1
i =1
xi ∈ {0, 1}
0 ≤ xi ≤ 1
13
KNAPSACK PROBLEMS
We have n computer files. File i has wi bytes and it takes ci minutes to recompute
it!
You only have K available bytes of memory storage.
We want to store the most files possible so that we save the most minutes of
recomputation!
We cannot store parts of a file. It is all or nothing of it.
We can formulate this as an integer linear program with binary decision
variables:
Suppose xi is a variable that equals 1 or 0 depending on whether we take file i or
not.
max
∑ ci xi
max
i
n
∑ wi xi ≤ K
∑ ci xi
i
n
∑ wi xi ≤ K
i =1
i =1
xi ∈ {0, 1}
0 ≤ xi ≤ 1
13
Facility Location Problem
We have n potential locations for facilities (e.g., cell phone towers antenna, police
stations) and m costumers need to be serviced from those locations.
There is a cost of cj for opening facility j.
There is a cost dij associated with serving costumer i from facility j.
Again we use binary decision variables yj and xij where
yj is 1 if facility j is open, 0 otherwise.
xij is 1 if customer i is served by facility j, 0 otherwise.
This model can be relaxed to a LINEAR program. We again fractional solutions!!
14
Traveling Salesman?
15
HOW TO SOLVE AN
INTEGER PROGRAM??
16
When we have an ILP we normally just solve the LP and hope for the best!!! But often
17
this is just a fractional solution!!! We are trying to trim out the FAT!!!
BRANCH AND BOUND TECHNIQUE
18
19
The key idea is that we can generate subproblems that give more and more
information from their LP solutions we get better and better bounds.
At each node we can separate into the possible roundings of a fractional variable
into two nodes.
We start generating a branching tree, which is a binary tree (two children per
node).
If we find an integer solution the search ends we have found an upper bound to
the optimum.
As we proceed each LP node provides lower bounds for the subtree below it.
20