Motivation
CLIQUE (GT19) from Garey & Johnson, one of Karp's 21 NP-complete problems (1972). The decision version asks whether a graph contains a clique of size at least k. This is the satisfaction counterpart to MaximumClique (which optimizes clique weight). A dedicated KClique model is needed because several reductions from and to CLIQUE are inherently decision-to-decision mappings that depend on the clique size parameter k — these cannot be expressed as ReduceTo implementations on the optimization MaximumClique.
Blocked rule issues: #229 (3SAT → KClique), #231 (KClique → BalancedCompleteBipartiteSubgraph), #201 (Clique → SubgraphIsomorphism), #206 (Clique → MinimumTardinessSequencing).
Definition
Name: KClique
Reference: Garey & Johnson, Computers and Intractability, A1.2 GT19; Karp (1972)
INSTANCE: Graph G = (V, E), positive integer k ≤ |V|.
QUESTION: Does G contain a clique of size k or more, i.e., a subset V' ⊆ V with |V'| ≥ k such that every two vertices in V' are joined by an edge in E?
Variables
- Count: n = |V| (one variable per vertex)
- Per-variable domain: binary {0, 1} — whether the vertex is in the clique
- Dims:
[2; n] — n binary variables, one per vertex
- Meaning: x_v = 1 if vertex v is selected for the clique. The configuration is satisfying if {v : x_v = 1} is a clique (all pairs adjacent) and |{v : x_v = 1}| ≥ k.
Schema (data type)
Type name: KClique
Variants: graph topology (graph type parameter G)
| Field |
Type |
Description |
graph |
G |
The input graph G = (V, E) |
k |
usize |
Minimum clique size threshold |
Size fields: num_vertices = |V|, num_edges = |E|, k = clique size threshold.
Complexity
- Best known exact algorithm: O*(1.1996^n) — Xiao & Nagamochi (2017), "Exact Algorithms for Maximum Independent Set," Information and Computation 255:126–146. The algorithm solves maximum independent set; clique is equivalent via complement graph.
- Special cases: Polynomial for chordal graphs (Gavril, 1972), comparability graphs, and graphs with bounded degree.
Extra Remark
- Canonical name: Clique (also: k-Clique, Decision Clique)
- NP-complete (Karp, 1972; transformation from 3-SAT via vertex cover).
Reduction Rule Crossref
How to solve
Example Instance
Graph G with 5 vertices {0, 1, 2, 3, 4} and 6 edges:
- Edges: {0,1}, {0,2}, {1,3}, {2,3}, {2,4}, {3,4}
- k = 3
(Same graph as the MaximumClique canonical example.)
Expected Outcome
Satisfying solution: config = [0, 0, 1, 1, 1] — selects vertices {2, 3, 4}.
- Pairwise adjacency: {2,3} ✓, {2,4} ✓, {3,4} ✓ — all edges exist.
- Size: 3 ≥ k = 3 ✓.
- This is the unique satisfying configuration (no other subset of size ≥ 3 forms a clique).
BibTeX
@article{XiaoNagamochi2017,
author = {Mingyu Xiao and Hiroshi Nagamochi},
title = {Exact Algorithms for Maximum Independent Set},
journal = {Information and Computation},
volume = {255},
pages = {126--146},
year = {2017},
doi = {10.1016/j.ic.2017.06.001}
}
@inproceedings{Karp1972,
author = {Richard M. Karp},
title = {Reducibility among Combinatorial Problems},
booktitle = {Complexity of Computer Computations},
pages = {85--103},
year = {1972},
publisher = {Plenum Press},
doi = {10.1007/978-1-4684-2001-2_9}
}
Motivation
CLIQUE (GT19) from Garey & Johnson, one of Karp's 21 NP-complete problems (1972). The decision version asks whether a graph contains a clique of size at least k. This is the satisfaction counterpart to
MaximumClique(which optimizes clique weight). A dedicatedKCliquemodel is needed because several reductions from and to CLIQUE are inherently decision-to-decision mappings that depend on the clique size parameter k — these cannot be expressed asReduceToimplementations on the optimizationMaximumClique.Blocked rule issues: #229 (3SAT → KClique), #231 (KClique → BalancedCompleteBipartiteSubgraph), #201 (Clique → SubgraphIsomorphism), #206 (Clique → MinimumTardinessSequencing).
Definition
Name:
KCliqueReference: Garey & Johnson, Computers and Intractability, A1.2 GT19; Karp (1972)
INSTANCE: Graph G = (V, E), positive integer k ≤ |V|.
QUESTION: Does G contain a clique of size k or more, i.e., a subset V' ⊆ V with |V'| ≥ k such that every two vertices in V' are joined by an edge in E?
Variables
[2; n]— n binary variables, one per vertexSchema (data type)
Type name:
KCliqueVariants: graph topology (graph type parameter G)
graphGkusizeSize fields:
num_vertices= |V|,num_edges= |E|,k= clique size threshold.Complexity
Extra Remark
Reduction Rule Crossref
How to solve
Example Instance
Graph G with 5 vertices {0, 1, 2, 3, 4} and 6 edges:
(Same graph as the
MaximumCliquecanonical example.)Expected Outcome
Satisfying solution: config = [0, 0, 1, 1, 1] — selects vertices {2, 3, 4}.
BibTeX