110 likes | 214 Views
A New Algorithm for Optimal 2-Constraint Satisfaction and Its Implications. Ryan Williams Computer Science Department, Carnegie Mellon University Presented by Mu-Fen Hsieh. MAX-CUT.
E N D
A New Algorithm for Optimal 2-Constraint Satisfaction and Its Implications Ryan Williams Computer Science Department, Carnegie Mellon University Presented by Mu-Fen Hsieh
MAX-CUT • Given a graph G = (V,E), positive integer N, is there a partition of V into disjoint sets S and T=V-S such that the number of the edges from E that have one endpoint in S and one endpoint in T is at least N? • Proved to be NP-hard by reducing from MAX-2-SAT [Karp, 1972] • Can be solved in polynomial time if G is planar [Hadlock, 1975], [Orlova et al., 1972] • Can be transformed to an instance of MAX-2-SAT in polynomial time
MAX 2-Satisfiability • Given a set U of n variables, a collection C of m clauses over U such that each clause has |c| = 2, positive integer N≤ |C|, is there a truth assignment for U that simultaneously satisfies at least N of the clauses in C? [Garey et al., 1976] • Solvable in polynomial time if N = |C| [Even et al., 1976] • Approximated in O((2-ε)n), O((2-ε)m) [Dantsin et al.,2001] • Previous best worst-case bound: O*(2m/5) [Hirsch et al., 2003] • This paper counts number of truth assignments that simultaneously satisfies exactly N of the clauses in C in O(m32ωn/3) time
Encode Max-Cut as Max-2-SAT T T T • The size of the cut associated to the assignment = |E| - number of violated clauses F F F
Split and list: split the set of n variables into k partitions of equal size, and list 2n/kvariable assignments for each partition. • Set k=3, we get O(m32ωn/3) MAX-CUT Polynomial-timetransformation MAX-2-SAT Split and list k-CLIQUE Matrix Multiplication
Fast k-Clique Detecting and Counting • Locate 3-clique: given G = (V,E) with n = |V|, let A(G) be its adjacency matrix. tr(A(G)3) = 6 * (number of triangles in G) 2 3 3 3 2 3 3 3 2 0 1 1 1 0 1 1 1 0 2 1 1 1 2 1 1 1 2 A(G)3= A(G)= A(G)2=
Fast k-Clique Detecting and Counting • Locate k-clique: build a graph Gk/3 = (Vk/3,Ek/3) whereVk/3 = {(k/3)-cliques in G} and Ek/3 ={{c1,c2}:c1,c2 Vk/3,c1c2 is a (2k/3)-clique in G} • Each triangle in Gk/3 corresponds to a unique k-clique in G? • Time complexity: • For example, to locate 6-clique:
Split and List • Step 1: Delegating responsibility Define responsibility map r: C→(|k| ) x5x6 0 00 11 01 1 x1x2 0 00 11 01 1 x3x4 0 00 11 01 1
Split and List (Cont.) • Step 2: Weighting accordingly Consider the partitions as a weighted k-partite complete graph. Assign weights to both vertices and edges. x5x6 0 00 11 01 1 # of vertices = k2k x1x2 0 00 11 01 1 x3x4 0 00 11 01 1 # of cliques = 2n
Split and List (Cont.) • Step 3: Enumerate unweighted graphs reducing from the weighted graph in step 2. Each unweighted graph, constructed in amortized time O(1), consists of cliques of weight N. • Decompose N into different combinations of weights ( nonnegative integers) Consider variables y1,2, y1,3,…,yk-1,k where y1,2 {0,1,2,…,N}. Solve the following equation:y1,2+y1,3+…+y1,k + y2,1 …+yk-1,k = N vi:some node in partition iw(•): weight of some node or some edge w(vj) + w({vi,vj}) w({vi,vj}) w(v1) + w(v2) + w({v1,v2})
Time Complexity • Set k=3, we get O(m32ωn/3)