<<

NP- Problems

James Rhodes Introduction

An independent set of a graph is a set of vertices no two of which are adjacent A is a complete subgraph CLIQUE = { (G,k) | G is an undirected graph with a k-clique } (G,k) ∈ CLIQUE implies that (G,k-1) ∈ CLIQUE, for k ≥ 1 A cover is a set of vertices S such that each edge of a graph is incident to at least one vertex in S A set is independent if and only if it is a clique in the graph’s complement, so the two concepts are complementary If u and v are neighbors in G they are not neighbors in the complement of G A set is independent if and only if its complement is a , so the sum of the size of the largest independent set and the size of a minimum vertex cover is equal to the number of vertices in the graph Relationship Relationship Relationship Relationship Applications

The arises in the following real-world setting. Consider a , where the graph's vertices represent people, and the graph's edges represent mutual acquaintance. Then a clique represents a subset of people who all know each other, and for finding cliques can be used to discover these groups of mutual friends. Along with its applications in social networks, the clique problem also has many applications in and Decision Problems

Does a graph G have an independent set >= k Does a graph G have a clique >= k Does a graph G have a vertex cover <= k A set of vertices S of G is maximal if it is not a proper subset of another set of vertices of G that meets the desired requirements A set of vertices S of G is minimal if there does not exist a vertex v such that the set of vertices S \ {v} of G meets the desired requirements Approximation

Most versions of the clique problem are hard. The problem of finding the maximum clique is both fixed-parameter intractable and hard to approximate. And, listing all maximal cliques may require exponential time as there exist graphs with exponentially many maximal cliques. To find a maximum clique, one can systematically inspect all subsets, but this sort of brute-force search is too time-consuming to be practical for networks comprising more than a few dozen vertices. Although no polynomial time algorithm is known for this problem, more efficient algorithms than the brute-force search are known. For instance, the Bron–Kerbosch algorithm can be used to list all maximal cliques in worst-case optimal time, and it is also possible to list them in polynomial time per clique. After many improvements to these results it is now known that, for every real number ε > 0, there can be no polynomial time algorithm that approximates the maximum clique to within a factor better than O(n1−ε), unless P = NP. Feige describes a polynomial time algorithm that finds a clique of size Ω((log n/log log n)2) in any graph that has clique number Ω(n/log k n) for any constant k. By using this algorithm when the clique number of a given input graph is between n/log n and n/log 3 n, switching to a different algorithm of Boppana & Halldórsson for graphs with higher clique numbers, and choosing a two-vertex clique if both algorithms fail to find anything, Feige provides an that finds a clique with a number of vertices within a factor of O(n(log log n) 2 /log 3 n) of the maximum. Although the approximation ratio of this algorithm is weak, it is the best known to date. The results on hardness of approximation suggest that there can be no approximation algorithm with an approximation ratio significantly less than linear. Approximation Algorithm

Algorithm: Independent Set Require: a graph G = (V, E) W ← V S ← ∅ while W <> ∅ do Find a vertex v ∈ W with minimum degree in G[W] W ← W \ NG[v] S ← S ∪ {v} end while return S Approximation Algorithm

Algorithm: Vertex Cover Require: a graph G = (V, E) C←∅ while E <> ∅ pick any {u, v} ∈ E C ← C ∪ {u, v} delete all edges incident to either u or v return C Approximation Algorithm

Algorithm: Vertex Cover Require: a graph G = (V, E) W ← V S ← ∅ while W <> ∅ do Find a vertex v ∈ W with minimum degree in G[W] W ← W \ NG[v] S ← S ∪ {v} end while return V \ S Approximation Algorithm

Algorithm: Clique Require: the complement of a graph G = (V, E) W ← V S ← ∅ while W <> ∅ do Find a vertex v ∈ W with minimum degree in G[W] W ← W \ NG[v] S ← S ∪ {v} end while return S NP-Completeness

Theorem: CLIQUE is NP-Complete (1) CLIQUE ∈ NP – a given solution can be verified in O(n2) time (2) INDEPENDENT SET ≤p CLIQUE – take the complement of the graph G of the independent set instance Note: There is a lot of literature that shows CLIQUE ≤p INDEPENDENT SET. There are instances of CLIQUE ≤p INDEPENDENT, however, not every instance. References

Wikipedia, Wikimedia Foundation, 2018, www.wikipedia.org, accessed 23 Mar 2019. https://en.wikipedia.org/wiki/Clique_problem https://www.di.ens.fr/~mmari/content/papers/rapport.pdf http://theory.stanford.edu/~trevisan/cs154-12/np-reductions.pdf Questions Thank You