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 Ax b is valid for P, because x 0 , then Ax 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 eE ( 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 0u 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 1K (if subgraph is complete) uV | C | 1 C (where C is an odd cycle) 2 uC 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) jC 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 jE ( 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.