Basic Polyhedral theory

advertisement
Basic Polyhedral theory
The set P  {x | Ax  b} is called a polyhedron.
Lemma 1. Either the system Ax  b, b  0, x  0 has a solution or there is a vector  such
that A  0, b  0
Three cases, if solution in top row does not exist then there exists a  such that the
bottom is true. (in each column, x continuous).
Ax  b
Ax  b
Ax  b
A  0, b  0
A  0, b  0
A  0, b  0
If {x | Ax  b, x integer } = {x | Cx  d , x integer} and
{x | Ax  b }  {x | Cx  d }, we say that the first formulation is Tighter (& better).
However we’re interested in integer solutions.
Integral polyhedra
Given a polyhedron P, its integer hull PI is the convex hull of all integral vectors in P.
For any rational polyhedron P, the PI is also a polyhedron.
The following method generates valid inequalities for PI (Chvatal’s theorem)
Let P= {x | Ax  b, x  0} , where A and b integral, then
Ax  b is valid for P, for any   0 , and Ax  b is valid for P, because x  0 ,
then
Ax  b (1) is valid for PI because x is integral.
Let us call S1 the set of inequalities using (1), and set St+1 the set obtained by applying
this operation to St. These sets generate a sequence P  P 0  P1  ...PI
Example:
X(e1)+x(e4) +x(e6) =1
X(e1)+x(e5)+x(e7) =1
X(e3)+x(e4)+x(e8) =1
X(e3)+x(e5)+x(e9) =1
X(e2)+x(e7)+x(e9) =1
X(e2)+x(e6)+x(e8) =1
Consider taking ½*(first four inequalities) to get
(1/2+1/2)X(e1)+ (1/2+1/2)x(e3)+ (1/2+1/2)x(e4)+ (1/2+1/2)x(e5) + 1/2
(x(e6)+x(e7)+x(e8)+x(e9))=2
1
1 X(e1)+ 1 x(e3)+ 1 x(e4)+ 1 x(e5) +  2  (x(e6)+x(e7)+x(e8)+x(e9))= 2 ,
 
1
1
Where   =0 so   (x(e6)+x(e7)+x(e8)+x(e9))=0
2
2
X(e1)+x(e3)+x(e4)+x(e5)=2
Consider taking last three inequalities and first one with multiplier of ½
X(e2)+x(e6)+x(e9)=2
Total unimodularity:
If A is totally unimodular (TU) then
P(b)= {x  R n  | Ax  b} is integral b  Z m for which it is not empty
Example:
A matrix with (0,-1,1) elements, where no more than 2 non-zero elements in each column
and  ai , j  0 if column j contains two non-zero elements, then A is TU.
i
Example:
A is TU if determinant of each submatrix of A is (0, -1 ,1), and A is (0,1,-1) matrix.
Duality
Primal problem:
zLP  max{ cx | Ax  b, x  R n  }
Dual problem:
wLP  min{ ub | uA  c, u  R m  }
Weak duality
x* is primal feasible , u* is dual feasible , then
c x*  zLP  wLP  u*b
Strong Duality
If zLP or wLP is finite then both P and D have finite optimal value zLP = wLP
Weak dual of IP is any minimization problem
zD  min{ zD (u) :| u  SD} that satisfies
zD (u)  cx, x  S , u  S D , whereS  {x  Z n , Ax  b} and SD is dual integer problem.
If Dual problem is feasible then zIP  zD .
Strong dual of IP is a weak dual that also satisfies if S  0, zIP bounded from above,
u 0  S D , x0  S , zD (u 0 )  cx0
Duality gap: for weak duals of IP , the separation between primal and dual objective
values.
Weak duality
Primal solution
Primal solution
Dual solution
Strong Duality
Totally Dual Integrality
Given A and b with integral entries, we want to study cases when the LP
Max cx
Ax <= b
Has integer optimum primal and integer optimum dual solutions.
Examples:
a) network flow
max cx
Ax =b
x>=0
where each column of A has two non-zero entries. One with value 1 and other with
value -1. network flow matrix
b) network flows with upper bounds 0<=x<=u
c) flow problems in cross-free families [Nemhauser & Wolsely textbook]
d) submodular flows ie. Directed cut covers, matroids
Perfect Matching problem:
 xe  1, u
e ( u )
x
e ( S )
e
 1,  | S | odd
The 2nd inequality is necessary in order to obtain integral solutions.
Without this inequality, fractional solutions are possible.
Consider the graph :
With only 1st constraint you’ll get a possible fractional solution which looks like:
6
1
4
7
8
2
5
9
3
Edges shown have 0.5 values in solution.
Dashed arrows are the edges which must be
used in inequality (2) to cut off this
fractional solution.
0.5 on each edge
But how do we automatically determine the form of inequality (2) to cut off the current
fractional solution?
This is called the “Separation Problem”. For some problems like matching, we know how
to solve this problem using Branch and cut. For other problems, we still do not know how
to solve it, although some heuristics exist – but they are not guaranteed to obtain a cut.
For matching problem, we’re given a fractional vector x , we want one set S such that
 xe  1 , for |S| odd.
e ( S )
So for a set S, we can use the min cut problem:
Given a graph G=(V,E) and edge weights, we  0 , we know how to solve the minimum
cut problem: Min s
w
e ( S )
e
This can be solved by network flow techniques.
If |S| is not odd, what do we do?
Supose we solve a minimum cut problem with weights we  xe . Let S be a solution. If |S|
is odd, we are done.
If |S| is even we have to prove that there is an odd set in S , included in S or in V\S that
solves our problem. Using this property, we can decompose the problem.
Proof:
We know that the following is true.
S
T
w( S  T )  w( S  T )  w( S )  w(T )
T
e
e
o
long edge counts only in the right hand side of the inequality.
Suppose that S (|S| is even) gives a minimum cut and T gives a minimum cut with |T|
odd.
Now w( S  T )  w( S  T )  w( S )  w(T ) is o+e<=e+o
If we have that w( S )  w( S  T ), w(T )  w( S  T ) , because |T| and | S  T | are odd.
This set of inequalities imply
w( S  T )  w( S  T )  w( S )  w(T ) and w( S )  w( S  T ), w(T )  w( S  T )
Proof. Therefore S T is also a solution for the minimum odd cut problem.
So take union S T or take complement of union V\ S T (that is included in V\S).
Other possibility: w( S  T )  w( S  T )  w( S )  w(T ) is e  o  e  o .
T
o
o
e
Then w( S  T )  w( S  T )  w( S )  w(T ) ,because we
have w( S )  w( S  T ), w(T )  w( S  T ) so therefore w(T )  w( S  T )
Proof. In this case S T is also a solution to the minimum odd cut problem.
=
if S defines a minimum cut & |S| even, then solution exists in S or in V\S.
We decompose problem into two problems in the
graphs
S
V\S
We generate a nested set of problems, that has at most 2n-1 elements. So in worst case
we have to solve 2n-1 min cut problems.
Finding one minimum cut takes O(n^3), so this is an O(n^4) algorithm.
Non-Perfect Matching problem:
 xe  1, u
e ( u )
| S | 1
,  | S | odd
2
eE ( S )
where E(S) are the edges with both ends in S.
This can also be solved similar to the perfect matching problem, using mincut algorithm.
x
e

Other problems, we know what some of the (facets) inequalities look like, but we can’t
solve the separation problem:
Node or Vertex Packing Problems:
Given a graph G=(V,E) consider
xu  xv  1(u, v)  E
xu  0u  V
for definition of the problem. However for obtaining integral solutions we need to add
more inequalities (specifically facets, which intersect integer vertices of search space).
 xu  1K (if subgraph is complete)
uV
| C | 1
C (where C is an odd cycle)
2
uC
However there are more facets which are difficult to obtain and for which we don’t know
all of them.
There are lifting lemmas one can use to obtain more facets of this problem.
x
u

Knapsack problem:
P  {x |  a j x j  b,0  x j  1},0  a j  b, j  N
j N
we need facets of PI
x j  0 , x j  1 j  N define facets
Let x be an integer vector in P, we say that set S  { j | x j  1} is independent.
Let C be a minimal dependent set
C\{i} is independent i  C
The inequality  x j | C | 1
(1)
jC
is valid for PI
Assume that a1  a2  ...  an are given. A minimal dependent set C, define
E(C) = C  {k : ak  a j , j  C}
The inequality
x
jE ( C )
j
| C | 1
(2)
is also valid for PI and stronger than (1).
The inequality (2) defines a facet of PI under any of the following conditions:
a) C=N
b) E(C)=N & (i) C\{j1,j2}  {1} is independent
c) C=E(C) and (ii) C\{j1}  {p} is independent, p  min{ j | j  N \ E (C )}
d) C  E (C )  N & (i) & (ii)
Where C={ j1,j2, … , jk}
EXAMPLE:
P  {x | 79 x1  53x2  53x3  45 x4  45 x5  178,0  x j  1}
C1={1,2,3}
C2={1,2,4,5}
C3={1,3,4,5}
C4={2,3,4,5} are minimal dependent sets
Now,
E( C1)= C1
E( C2)= C2
E( C3)= C3
E( C4)= C4  {1}
Lets see if any of the new inequalities of the form (2) are facets:
E( C1):
(1) x1  x2  x3  2 is a facet if
(ii) C\{j1}  {p} = {2,3,4} is independent, p  min{ j | j  N \ E (C )}
Therefore it’s a facet *.
E(C2):
(2) x1  x2  x4  x5  3 is a facet if
(ii) C\{j1}  {p} = {2,4,5,3} is independent. It is not independent, therefore we do
not know whether it is a facet or not.
E(C3):
(3) x1  x3  x4  x5  3 is a facet if
(ii) C\{j1}  {p} = {3,4,5,2} is independent. It is not independent, therefore we do
not know whether it is a facet or not.
E(C4):
(4) x1  x2  x3  x4  x5  3 is a facet if (case b))
(i)
C\{j1,j2}  {1} = C\{2,3}  {1} = {4,5,1} is independent. Is is independent,
therefore it is a facet *.
NOTE: any inequality which is a linear combination of facets, cannot be a facet.
(3) = (4) + (  x2  0 ) , therefore (3) is not a facet. (because it’s a +ve combination of 2
facets).
(2) = (4) + (  x3  0 ) , therefore (2) does not define a facet.
Download