Nepedia
Back to Discover
Advanced Reader
🔢

Clique problem

math Maturity 11-13 Next article →

In the study of graph theory, the clique problem is a fundamental computational challenge. A graph is a mathematical structure made of vertices, which are points, and edges, which are the lines connecting them. A clique is a specific type of subset within a graph known as a complete subgraph. In a clique, every single vertex is connected to every other vertex in that subset by an edge. This means that if you pick any two points in a clique, there is always a direct path between them.

6n-graf-clique
6n-graf-clique

Researchers study several different versions of this problem depending on their goals. One common version is the maximum clique problem, which asks for the largest possible clique in a given graph. The number of vertices in this largest clique is called the clique number. Another version is the maximal clique problem. A maximal clique is a group that cannot be made any larger because no other vertex in the graph is connected to every member of the group. While every maximum clique is maximal, the opposite is not always true.

Decision tree for 3-clique no arrowheads
Decision tree for 3-clique no arrowheads

Other formulations include the weighted maximum clique problem. In this version, each vertex or edge has a specific weight assigned to it. The goal is to find the clique that has the highest total weight rather than just the most vertices. There is also the k-clique problem, where the goal is to find if a clique of a specific size, k, exists. Finally, the clique decision problem asks a simple yes or no question. It tests whether a graph contains a clique larger than a specific number.

Brute force Clique algorithm
Brute force Clique algorithm

Finding these groups is often extremely difficult for computers. The clique decision problem is classified as NP-complete, which is one of Karp's 21 NP-complete problems. This means there is no known way to solve it quickly for all graphs. The maximum clique problem is even more difficult. It is considered fixed-parameter intractable and is hard to approximate. In fact, research from the 1990s showed that, assuming P does not equal NP, it is impossible to even approximate the answer accurately and efficiently.

Planted clique 15,32
Planted clique 15,32

The history of the term "clique" is rooted in the social sciences rather than pure mathematics. Early mathematical work involved complete subgraphs, such as in the reformulation of Ramsey theory. However, the word "clique" was adopted from sociology to model groups of people who all know one another. Mathematicians Frank Harary and Carl Ross were the first to use this social science terminology in graph theory. They used graphs to represent social networks where vertices were people and edges were mutual acquaintances.

Permutation graph
Permutation graph

Despite the difficulty, several algorithms exist to help find these structures. A brute-force algorithm can find a k-clique by checking every possible subset of vertices. However, this is too slow for large networks because the time required grows exponentially. For finding maximal cliques, the Bron–Kerbosch algorithm is a well-known method. It can list all maximal cliques in worst-case optimal time. For simpler tasks, a greedy algorithm can find a single maximal clique very quickly by adding vertices one by one.

Cube-face-intersection-graph
Cube-face-intersection-graph

Clique-finding algorithms have vital applications in many scientific fields. In computational chemistry, they help model molecular docking and chemical reaction binding sites. Scientists create graphs where vertices represent matched pairs of atoms from two different molecules. An edge exists if the matches are compatible, such as having similar distances between atoms. In bioinformatics, these algorithms help predict protein structures and find clusters of interacting proteins. They are also used to infer evolutionary trees.

Sat reduced to Clique from Sipser
Sat reduced to Clique from Sipser

Mathematics also uses these tools to solve complex theoretical puzzles. For example, the researcher Marijn Heule used a clique-finding algorithm to disprove Keller's conjecture. This conjecture concerned the face-to-face tiling of hypercubes. Heule worked with a massive Keller graph containing 1,048,576 vertices. By finding a clique of size 1,024 within that graph, he provided a counterexample to the conjecture. This demonstrates how even the most abstract mathematical problems can be solved using graph algorithms.

674 words

Where will your curiosity go next?

Keep exploring at your chosen reading level.

🖼️ Images & Media (8)
File:Brute force Clique algorithm.svg
Brute force Clique algorithm.svg
File:6n-graf-clique.svg
6n-graf-clique.svg
File:Permutation graph.svg
Permutation graph.svg
File:Planted clique 15,32.svg
Planted clique 15,32.svg
File:Sat reduced to Clique from Sipser.svg
Sat reduced to Clique from Sipser.svg
File:Monotone circuit for 3-clique.svg
Monotone circuit for 3-clique.svg
File:Decision tree for 3-clique no arrowheads.svg
Decision tree for 3-clique no arrowheads.svg
File:Cube-face-intersection-graph.svg
Cube-face-intersection-graph.svg
More to explore

What is Nepedia?

A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.