Clique Problem (CLIQUE)
The Clique Problem (CLIQUE) takes an input of:
- an undirected graph
- an integer
It provides an output of if and only if contains a clique of size .
Link to originalClique
A clique is a subset of an undirected graph such that every two distinct vertices in the clique are adjacent.
Link to original
Theorem: The Clique Problem belongs to NP
Input: An undirected graph and integer .
- We can decide whether contains a clique of size by checking every subset of vertices of size . However, there are possible subsets which is not polynomial.
- But, we can use an NDTM to check each subset in parallel, and as each subset requires us to check only edges, this is polynomial!
Theorem: The SAT problem is polynomially reducible to the Clique finding problem, .
Input: Formula in CNF.
- Construct a graph and choose an integer such that: is satisfiable has a clique of size
- Define from some given . For example, given :
- We convert each clause into their distinct vertices.

- Next, we connect all vertices together that are not in the same clause and do not conflict. Edges which conflict are highlighted in below.
Formally .

- Now we choose an appropriate integer , which in this case is . In this example, .
- We can make sastifiable when:
| are true is false | are false | are true is false |
|---|---|---|
![]() | ![]() | ![]() |
- Hence, we have that is satisfiable contains a clique of size . Therefore .
Theorem: CLIQUE is NP-complete
Since SAT is NP-hard, it follows that the Clique Problem must also be NP-hard. This gives us our lower-bound which proves CLIQUE is NP-complete.


