# Clique (graph theory)

In the mathematical area of graph theory, a **clique** (Template:IPAc-en or Template:IPAc-en) in an undirected graph is a subset of its vertices such that every two vertices in the subset are connected by an edge. Cliques are one of the basic concepts of graph theory and are used in many other mathematical problems and constructions on graphs. Cliques have also been studied in computer science: the task of finding whether there is a clique of a given size in a graph (the clique problem) is NP-complete, but despite this hardness result, many algorithms for finding cliques have been studied.

Although the study of complete subgraphs goes back at least to the graph-theoretic reformulation of Ramsey theory by Template:Harvtxt,^{[1]} the term "clique" comes from Template:Harvtxt, who used complete subgraphs in social networks to model cliques of people; that is, groups of people all of whom know each other. Cliques have many other applications in the sciences and particularly in bioinformatics.

## Definitions

A **clique** in an undirected graph *G* = (*V*, *E*) is a subset of the vertex set *C* ⊆ *V*, such that for every two vertices in *C*, there exists an edge connecting the two. This is equivalent to saying that the subgraph induced by *C* is complete (in some cases, the term clique may also refer to the subgraph).

A **maximal clique** is a clique that cannot be extended by including one more adjacent vertex, that is, a clique which does not exist exclusively within the vertex set of a larger clique.

A **maximum clique** is a clique of the largest possible size in a given graph. The **clique number** ω(*G*) of a graph *G* is the number of vertices in a maximum clique in *G*. The intersection number of *G* is the smallest number of cliques that together cover all edges of *G*.

The opposite of a clique is an independent set, in the sense that every clique corresponds to an independent set in the complement graph. The clique cover problem concerns finding as few cliques as possible that include every vertex in the graph. A related concept is a biclique, a complete bipartite subgraph. The bipartite dimension of a graph is the minimum number of bicliques needed to cover all the edges of the graph.

## Mathematics

Mathematical results concerning cliques include the following.

- Turán's theorem Template:Harv gives a lower bound on the size of a clique in dense graphs. If a graph has sufficiently many edges, it must contain a large clique. For instance, every graph with vertices and more than edges must contain a three-vertex clique.
- Ramsey's theorem Template:Harv states that every graph or its complement graph contains a clique with at least a logarithmic number of vertices.
- According to a result of Template:Harvtxt, a graph with 3
*n*vertices can have at most 3^{n}maximal cliques. The graphs meeting this bound are the Moon–Moser graphs*K*_{3,3,...}, a special case of the Turán graphs arising as the extremal cases in Turán's theorem. - Hadwiger's conjecture, still unproven, relates the size of the largest clique minor in a graph (its Hadwiger number) to its chromatic number.
- The Erdős–Faber–Lovász conjecture is another unproven statement relating graph coloring to cliques.

Several important classes of graphs may be defined by their cliques:

- A chordal graph is a graph whose vertices can be ordered into a perfect elimination ordering, an ordering such that the neighbors of each vertex
*v*that come later than*v*in the ordering form a clique. - A cograph is a graph all of whose induced subgraphs have the property that any maximal clique intersects any maximal independent set in a single vertex.
- An interval graph is a graph whose maximal cliques can be ordered in such a way that, for each vertex
*v*, the cliques containing*v*are consecutive in the ordering. - A line graph is a graph whose edges can be covered by edge-disjoint cliques in such a way that each vertex belongs to exactly two of the cliques in the cover.
- A perfect graph is a graph in which the clique number equals the chromatic number in every induced subgraph.
- A split graph is a graph in which some clique contains at least one endpoint of every edge.
- A triangle-free graph is a graph that has no cliques other than its vertices and edges.

Additionally, many other mathematical constructions involve cliques in graphs. Among them,

- The clique complex of a graph
*G*is an abstract simplicial complex*X*(*G*) with a simplex for every clique in*G* - A simplex graph is an undirected graph κ(
*G*) with a vertex for every clique in a graph*G*and an edge connecting two cliques that differ by a single vertex. It is an example of median graph, and is associated with a median algebra on the cliques of a graph: the median*m*(*A*,*B*,*C*) of three cliques*A*,*B*, and*C*is the clique whose vertices belong to at least two of the cliques*A*,*B*, and*C*.^{[2]} - The clique-sum is a method for combining two graphs by merging them along a shared clique.
- Clique-width is a notion of the complexity of a graph in terms of the minimum number of distinct vertex labels needed to build up the graph from disjoint unions, relabeling operations, and operations that connect all pairs of vertices with given labels. The graphs with clique-width one are exactly the disjoint unions of cliques.
- The intersection number of a graph is the minimum number of cliques needed to cover all the graph's edges.
- The clique graph of a graph is the intersection graph of its maximal cliques.

Closely related concepts to complete subgraphs are subdivisions of complete graphs and complete graph minors. In particular, Kuratowski's theorem and Wagner's theorem characterize planar graphs by forbidden complete and complete bipartite subdivisions and minors, respectively.

## Computer science

{{#invoke:main|main}} In computer science, the clique problem is the computational problem of finding a maximum clique, or all cliques, in a given graph. It is NP-complete, one of Karp's 21 NP-complete problems Template:Harv. It is also fixed-parameter intractable, and hard to approximate. Nevertheless, many algorithms for computing cliques have been developed, either running in exponential time (such as the Bron–Kerbosch algorithm) or specialized to graph families such as planar graphs or perfect graphs for which the problem can be solved in polynomial time.

Template:Free software for searching maximum clique

## Applications

The word "clique", in its graph-theoretic usage, arose from the work of Template:Harvtxt, who used complete subgraphs to model cliques (groups of people who all know each other) in social networks. For continued efforts to model social cliques graph-theoretically, see e.g. Template:Harvtxt, Template:Harvtxt, and Template:Harvtxt.

Many different problems from bioinformatics have been modeled using cliques. For instance, Template:Harvtxt model the problem of clustering gene expression data as one of finding the minimum number of changes needed to transform a graph describing the data into a graph formed as the disjoint union of cliques; Template:Harvtxt discuss a similar biclustering problem for expression data in which the clusters are required to be cliques. Template:Harvtxt uses cliques to model ecological niches in food webs. Template:Harvtxt describe the problem of inferring evolutionary trees as one of finding maximum cliques in a graph that has as its vertices characteristics of the species, where two vertices share an edge if there exists a perfect phylogeny combining those two characters. Template:Harvtxt model protein structure prediction as a problem of finding cliques in a graph whose vertices represent positions of subunits of the protein. And by searching for cliques in a protein-protein interaction network, Template:Harvtxt found clusters of proteins that interact closely with each other and have few interactions with proteins outside the cluster. Power graph analysis is a method for simplifying complex biological networks by finding cliques and related structures in these networks.

In electrical engineering, Template:Harvtxt uses cliques to analyze communications networks, and Template:Harvtxt use them to design efficient circuits for computing partially specified Boolean functions. Cliques have also been used in automatic test pattern generation: a large clique in an incompatibility graph of possible faults provides a lower bound on the size of a test set.^{[3]} Template:Harvtxt describe an application of cliques in finding a hierarchical partition of an electronic circuit into smaller subunits.

In chemistry, Template:Harvtxt use cliques to describe chemicals in a chemical database that have a high degree of similarity with a target structure. Template:Harvtxt use cliques to model the positions in which two chemicals will bind to each other.

## Notes

- ↑ The earlier work by Template:Harvtxt characterizing planar graphs by forbidden complete and complete bipartite subgraphs was originally phrased in topological rather than graph-theoretic terms.
- ↑ Template:Harvtxt, page 200.
- ↑ Template:Harvtxt.

## References

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }}.

- {{#invoke:citation/CS1|citation

|CitationClass=citation }} Template:Refend