クリーク(clique)とは、グラフの頂点の集合で、どの 2 頂点も辺で結ばれているもののことであり、頂点の個数の最大値をクリーク数 $\omega(G)$ という。クリークは補グラフの独立集合にあたり、彩色数の下界 $\omega(G)\le\chi(G)$ を与え、辺の多いグラフほど大きなクリークをもつ。これ以上頂点を加えられない極大クリークは最大とは限らないが、$n$ 頂点のグラフの極大クリークは $3^{n/3}$ 個以下で(Moon–Moser の上界)、Bron–Kerbosch の手続きで漏れも重複もなく列挙できる。最大クリークを求める問題は NP 困難である。
グラフの頂点を人、辺を「知り合いである」とみると、どの 2 人も互いに知り合いであるような人の集まりが クリーク である。クリークは 完全グラフ をグラフの中から頂点の集合として切り出したものであり、互いに隣接しない頂点の集まり(独立集合)と、補グラフをとることで入れ替わる。
クリークには「これ以上頂点を加えられない」という意味の 極大 と、「頂点の個数が最大」という意味の 最大 の 2 つの大きさの言い方があり、両者は一致しない。最大クリークの大きさ(クリーク数)を求める問題は計算が難しいことで知られる一方、極大クリークについては、その個数が $n$ 頂点のグラフで $3^{n/3}$ 以下であること(thm-clq-moon-moser)と、すべての極大クリークをちょうど 1 回ずつ書き出す簡明な手順があること(thm-clq-bron-kerbosch)が示せる。
この記事のグラフは、頂点が有限個の単純グラフ(ループと多重辺のない無向グラフ)$G=(V,E)$ とし、$n:=\lvert V\rvert$ と書く。頂点 $v$ に隣接する頂点全体を $N(v)$ と書き、$v$ の 近傍 という($v\notin N(v)$ である)。$d(v):=\lvert N(v)\rvert$ は $v$ の次数である。$W\subset V$ に対し、$G[W]$ は $W$ の 誘導部分グラフ を表す。
グラフ $G=(V,E)$ の頂点の集合 $K\subset V$ が、相異なる任意の 2 頂点 $u,v\in K$ について $uv\in E$ を満たすとき、$K$ を $G$ の クリーク(clique)という。
空集合と 1 頂点の集合はつねにクリークであり、辺 $uv$ の両端 $\{u,v\}$ もクリークである。$K$ がクリークであることは、$G[K]$ が完全グラフであることと同じである。頂点が $k$ 個のクリークを $k$-クリーク ともいう。クリーク数と独立数の定義は 彩色数 の記事の定義「クリーク数と独立数」と同じである。文献によっては、頂点の集合ではなく完全な部分グラフ $G[K]$ そのものをクリークと呼ぶ(KT17 §5.4.2、p. 84 は両方の言い方を並べている)。
最大クリークは極大クリークであるが、逆は成り立たない(ex-clq-maximal-not-maximum)。頂点が有限個なので、どのクリークも、頂点を 1 個ずつ加えていけば、いずれ極大クリークに含まれる。
クリークは「密な部分」の最も極端な形である。辺を多くもつグラフはどこかに大きなクリークをもたざるを得ない(cor-clq-degree-bound、Turánの定理)。一方で、クリークは局所的な条件なので、グラフの全体を見ないと最大のものは分からない。極大クリークは、手当たり次第に頂点を加えていけば見つかるが、そうして見つかったものが最大とは限らない。ここに「極大」と「最大」の差があり、最大クリークを求める難しさの源がある。
頂点 $1,2,3,4$ と辺 $12,13,23,34$ のグラフ(三角形に辺を 1 本付けたもの)を考える。$\{3,4\}$ はクリークで、$1$ も $2$ も $4$ に隣接しないので、これ以上頂点を加えられない。よって $\{3,4\}$ は極大クリークであるが、$\{1,2,3\}$ が 3 頂点のクリークなので最大ではない。$\omega=3$ である。頂点 $4$ から始めて隣接する頂点を順に加えると $\{4,3\}$ で止まり、最大クリークにたどり着かない。
区間を頂点とし、交わる 2 区間を辺で結んだグラフを 区間グラフ という。区間グラフでは、クリークは「全部の区間が共有する点」で捉えられる。
有限集合 $V$ の各元 $v$ に実数直線の有界閉区間 $I_v=[a_v,b_v]$ を対応させ、相異なる $u,v$ を $I_u\cap I_v\ne\emptyset$ のときに辺で結んだグラフを $G$ とする。このとき、空でない $K\subset V$ がクリークであることと、$\bigcap_{v\in K}I_v\ne\emptyset$ であることは同値である。とくに
$$
\omega(G)=\max_{x\in\mathbb{R}}\ \lvert\{v\in V\mid x\in I_v\}\rvert
$$
である($V\ne\emptyset$ のとき)。
共通の点 $x$ があれば、$K$ のどの 2 区間も $x$ を含むので交わり、$K$ はクリークである。逆に $K$ をクリークとする。$u,v\in K$ について $a_u\le b_v$ である。$u=v$ なら区間の定義から、$u\ne v$ なら共通の点 $y$ について $a_u\le y\le b_v$ だからである。$a:=\max_{u\in K}a_u$ とおくと、各 $v\in K$ について $a_v\le a\le b_v$ なので $a\in I_v$ であり、$a$ は $K$ のすべての区間の共通の点である。
後半:各 $x$ について $\{v\mid x\in I_v\}$ は共通の点 $x$ をもつのでクリーク(空集合でもクリーク)であり、その頂点の個数は $\omega(G)$ 以下である。逆に最大クリーク $K$($V\ne\emptyset$ なので空でない)には共通の点 $x$ があり、$\omega(G)=\lvert K\rvert\le\lvert\{v\mid x\in I_v\}\rvert$ である。右辺の値は有限個しかないので最大値がある。$\square$
この性質は 1 次元に特有である。円周上の弧では、どの 2 つも交わるのに 3 つに共通の点がないことがあり(rem-clq-counterexamples)、上の式は成り立たない。区間グラフでは彩色数がクリーク数に等しいことも知られている(KT17 Theorem 5.28、p. 87。この記事では証明しない)。
グラフ $G=(V,E)$ について次が成り立つ。
1:クリークの条件は「含まれる相異なる 2 頂点がつねに隣接する」なので、部分集合でも成り立つ。$G[W]$ で 2 頂点が隣接することは $G$ で隣接することと同じなので、後半も成り立つ。
2:$K$ に属さない $w$ が $K$ のすべての頂点と隣接すれば $K\cup\{w\}$ はクリークで、$K$ は極大でない。逆に $K\subsetneq K'$ となるクリーク $K'$ があれば、$w\in K'\setminus K$ は $K$ のすべての頂点と隣接する。
3:$\overline G$ では相異なる 2 頂点が隣接することと $G$ で隣接しないことが同じなので、定義から従う。
4:$\omega(G)\ge1$ である。最大クリーク $K$ の頂点 $v$ は $K$ のほかの $\omega(G)-1$ 個の頂点と隣接するので、$\omega(G)-1\le d(v)\le\Delta(G)$ である。$\square$
3 は 彩色数 の記事の定義「クリーク数と独立数」の後の段落と同じ内容である。クリークの頂点はどの頂点彩色でも相異なる色をもつので、$\omega(G)\le\chi(G)$ である(同記事の命題「彩色数の基本評価」)。等号は一般には成り立たず、三角形を含まない($\omega=2$)のに彩色数がいくらでも大きいグラフがある(KT17 Proposition 5.25、p. 85)。
辺の多いグラフは大きなクリークをもつ。Turánの定理 の記事の命題「次数による独立集合の下界」を補グラフに当てはめると、次の下界が得られる。
$n\ge1$ 頂点、$m$ 本の辺のグラフ $G$ について
$$
\omega(G)\ \ge\ \sum_{v\in V}\frac1{n-d(v)}\ \ge\ \frac{n^2}{n^2-2m}
$$
である。とくに正の整数 $r$ について $m>\bigl(1-\frac1r\bigr)\frac{n^2}2$ なら、$G$ は $(r+1)$-クリークをもつ。
補グラフ $\overline G$ の次数は $d_{\overline G}(v)=n-1-d(v)$、辺の本数は $\overline m:=\binom n2-m$ である(補グラフ の記事の命題「補グラフの基本性質」の 2)。Turánの定理 の記事の命題「次数による独立集合の下界」を $\overline G$ に当てはめ、prop-clq-basic の 3 を使うと
$$
\omega(G)=\alpha(\overline G)\ge\sum_{v\in V}\frac1{d_{\overline G}(v)+1}=\sum_{v\in V}\frac1{n-d(v)}\ge\frac{n^2}{2\overline m+n}=\frac{n^2}{n^2-2m}
$$
である。$m>(1-\frac1r)\frac{n^2}2$ なら $n^2-2m<\frac{n^2}r$ なので右辺は $r$ より大きく、$\omega(G)$ は整数だから $\omega(G)\ge r+1$ である。$\square$
最後の主張は、$(r+1)$-クリークをもたないグラフの辺の本数についての Turánの定理 の弱い形である。Turán の定理は、辺の本数の正確な最大値と、それを与えるグラフ(部分の大きさがそろった完全 $r$ 部グラフ)を決める。どの頂点数でもクリークか独立集合のどちらかが大きくなることは Ramseyの定理 が述べる。
極大クリークは手当たり次第に見つかるが、全部でいくつあるかは別の問題である。$n$ 頂点のグラフの極大クリークの個数は $3^{n/3}$ を超えない(thm-clq-moon-moser)。この上界は Moon–Moser の上界 と呼ばれる(ELS10 §4、p. 8 で、同論文の文献表の [42] として引かれている)。以下、$G$ の極大クリークの個数を $M(G)$ と書く。頂点のないグラフでは、空集合がただ 1 つの極大クリークなので $M=1$ である。
グラフ $G=(V,E)$ と頂点 $v$ について次が成り立つ。
1:極大クリーク $K$ が $S_v$ と交わらなければ $K\subset N(v)$ で、$v\in S_v$ なので $v\notin K$ である。$K$ のすべての頂点が $v$ と隣接するので $K\cup\{v\}$ はクリークになり、$K$ の極大性に反する。
2:$K\setminus\{u\}$ の頂点は $u$ と隣接するので $N(u)$ に含まれ、$G[N(u)]$ のクリークである。極大であることを示す。$K\setminus\{u\}\subsetneq K'$ となる $G[N(u)]$ のクリーク $K'$ があれば、$K'$ の頂点はすべて $u$ と隣接するので $K'\cup\{u\}$ は $G$ のクリークで、$K$ を真に含む。これは $K$ の極大性に反する。$K=(K\setminus\{u\})\cup\{u\}$ なので、この写像は単射である。$\square$
thm-clq-moon-moser の証明には、次の初等的な不等式を使う。
正の整数 $s$ について $s\cdot3^{-s/3}\le1$ であり、等号は $s=3$ のときに限る。
$s=1$ のとき $3^{-1/3}<1$。$s=2$ のとき、$2^3=8<9=3^2$ より $2<3^{2/3}$。$s=3$ のとき値は $1$ である。$s\ge3$ なら $\frac{s+1}s\le\frac43$ で、$\bigl(\frac43\bigr)^3=\frac{64}{27}<3$ より $\frac{s+1}s<3^{1/3}$ なので、$(s+1)3^{-(s+1)/3}< s\cdot3^{-s/3}$ である。よって $s\ge4$ で値は $1$ より小さい。$\square$
$n$ 頂点のグラフ $G$ について $M(G)\le3^{n/3}$ である。$n$ が $3$ の倍数のとき、各部分が $3$ 頂点の完全多部グラフ $K_{3,3,\dots,3}$ は $M=3^{n/3}$ を満たし、この上界は最良である。
$n$ についての帰納法で示す。$n=0$ なら $M(G)=1=3^0$ である。$n\ge1$ とし、$n$ 未満の頂点数のグラフでは成り立つとする。次数が最大の頂点 $v$ をとり、$\Delta:=d(v)$、$S_v:=V\setminus N(v)$ とおく。$\lvert S_v\rvert=n-\Delta\ge1$ である。
lem-clq-counting の 1 により、どの極大クリークも $S_v$ のある頂点 $u$ を含む。$u$ を含む極大クリークの個数は、同じ補題の 2 により $M(G[N(u)])$ 以下である。$G[N(u)]$ の頂点は $d(u)\le\Delta\le n-1$ 個なので、帰納法の仮定と、$3^{x/3}$ が $x$ について増加することから $M(G[N(u)])\le3^{d(u)/3}\le3^{\Delta/3}$ である。$S_v$ の頂点について足し合わせると、$s:=n-\Delta$ として
$$
M(G)\ \le\ \sum_{u\in S_v}M(G[N(u)])\ \le\ s\cdot3^{(n-s)/3}\ =\ 3^{n/3}\cdot s\cdot3^{-s/3}\ \le\ 3^{n/3}
$$
である。最後の不等号は lem-clq-elementary による。
$n=3k$ のとき、$K_{3,\dots,3}$($k$ 個の部分)の極大クリークは各部分から 1 頂点ずつ選んだ集合なので(ex-clq-basic の 3)、$M=3^k=3^{n/3}$ である。$\square$
$n$ が $3$ の倍数でないとき、$3^{n/3}$ は整数でない(整数 $N$ で $N^3=3^n$ なら、両辺の素因数 $3$ の個数を比べて $n$ は $3$ の倍数)。よって $M(G)<3^{n/3}$ である。一方、$n\equiv1\pmod 3$($n\ge4$)なら $K_{3,\dots,3,4}$ が $4\cdot3^{(n-4)/3}$ 個、$n\equiv2\pmod3$ なら $K_{3,\dots,3,2}$ が $2\cdot3^{(n-2)/3}$ 個の極大クリークをもつ(ex-clq-basic の 3)。これらは $3^{n/3}$ のそれぞれ約 $0.92$ 倍、約 $0.96$ 倍である。
極大でないクリークまで数えると、個数は $K_n$ で $2^n$ になる(ex-clq-basic の 1)。極大クリークに限ると、$K_n$ では 1 個しかなく、どのグラフでも $3^{n/3}\approx1.442^n$ 個以下に収まる。
すべての極大クリークを書き出す手順として、Bron と Kerbosch による次の手続きがよく使われる(ELS10 §2.2 と Fig. 2、pp. 4–5。同論文の文献表 [7] が原論文)。手続きは 3 つの頂点の集合 $R,P,X$ を受け取る。$R$ は作りかけのクリーク、$P$ は $R$ にこれから加えてよい頂点、$X$ は $R$ に加えられるがすでに調べ終えた頂点である。
グラフ $G=(V,E)$ の頂点の集合 $R,P,X$ に対する手続き $\mathrm{BK}(R,P,X)$ を次で定める。
$R$ に属さず $R$ のすべての頂点と隣接する頂点の全体を $C(R)$ と書く($C(\emptyset)=V$)。$R$ がクリークなら、$R\cup\{w\}$ がクリークになる頂点 $w\notin R$ は $C(R)$ の頂点ちょうどである。
$R$ がクリークで、$R,P,X$ が互いに交わらず $P\cup X=C(R)$ であるとする。このとき $\mathrm{BK}(R,P,X)$ は有限回の手順で終わり、$R\subset K\subset R\cup P$ を満たす $G$ の極大クリーク $K$ をすべて、それぞれちょうど 1 回ずつ出力し、それ以外は出力しない。とくに $\mathrm{BK}(\emptyset,V,\emptyset)$ は $G$ の極大クリークをちょうど 1 回ずつ出力する。
$\lvert P\rvert$ についての帰納法で示す。$R\subset K\subset R\cup P$ を満たす極大クリーク $K$ の全体を $\mathcal F(R,P)$ と書く。
$P=\emptyset$ の場合。手順 2 では何も行わない。$X=\emptyset$ なら $C(R)=\emptyset$ なので $R$ に加えられる頂点はなく、$R$ は極大クリークで、$\mathcal F(R,\emptyset)=\{R\}$ である。手順 1 は $R$ を 1 回出力する。$X\ne\emptyset$ なら $X$ の頂点を $R$ に加えられるので $R$ は極大でなく、$\mathcal F(R,\emptyset)=\emptyset$ である。手順 1 は何も出力しない。
$P\ne\emptyset$ の場合。手順 1 は何も出力せず、$P$ の頂点は $C(R)$ に属するので $R$ は極大でない。手順 2 で取り出す順に $P=\{v_1,\dots,v_k\}$ とし、$P_i:=P\setminus\{v_1,\dots,v_{i-1}\}$、$X_i:=X\cup\{v_1,\dots,v_{i-1}\}$ とおく。$i$ 番目に行う手続きは $\mathrm{BK}(R_i,P_i',X_i')$、ただし $R_i:=R\cup\{v_i\}$、$P_i':=P_i\cap N(v_i)$、$X_i':=X_i\cap N(v_i)$ である。
まず、この呼び出しが定理の仮定を満たすことを確かめる。$v_i\in C(R)$ なので $R_i$ はクリークである。$w\notin R_i$ が $R_i$ のすべての頂点と隣接することは、$w\in C(R)$ かつ $w\in N(v_i)$ であることと同じである($v_i\notin N(v_i)$ なので $w\ne v_i$ は自動的に成り立つ)。$P_i\cup X_i=P\cup X=C(R)$ なので $C(R_i)=(P_i\cup X_i)\cap N(v_i)=P_i'\cup X_i'$ であり、$P_i'$ と $X_i'$ は交わらず、どちらも $R_i$ と交わらない。$v_i\notin P_i'$ なので $\lvert P_i'\rvert<\lvert P\rvert$ であり、帰納法の仮定により、$i$ 番目の呼び出しは有限回で終わり、$\mathcal F(R_i,P_i')$ の元をちょうど 1 回ずつ出力し、それ以外は出力しない。
あとは、$\mathcal F(R,P)$ が $\mathcal F(R_1,P_1'),\dots,\mathcal F(R_k,P_k')$ の互いに交わらない和であることを示せばよい。$K\in\mathcal F(R,P)$ とする。$R$ は極大でないので $K\ne R$ であり、$K\setminus R$ は $P$ の空でない部分集合である。$v_i\in K$ となる最小の $i$ をとる。$K\setminus R$ の $v_i$ 以外の頂点は、$P$ に属し、$i$ の最小性から $v_1,\dots,v_{i-1}$ のどれでもないので $P_i$ に属し、$K$ がクリークなので $v_i$ と隣接する。よって $R_i\subset K\subset R_i\cup P_i'$、すなわち $K\in\mathcal F(R_i,P_i')$ である。逆に $K\in\mathcal F(R_i,P_i')$ なら $R\subset K\subset R\cup P$ で $K\in\mathcal F(R,P)$ であり、$K\cap\{v_1,\dots,v_k\}$ の最小の添字は $i$ である($K\setminus R$ の頂点は $v_i$ か $P_i$ の頂点で、$P_i$ は $v_1,\dots,v_{i-1}$ を含まない)。したがって $K$ を含む $\mathcal F(R_i,P_i')$ はただ 1 つで、$K$ はちょうど 1 回出力される。
最後の主張:$R=X=\emptyset$、$P=V$ は仮定を満たし($C(\emptyset)=V$)、$\mathcal F(\emptyset,V)$ は $G$ の極大クリーク全体である。$\square$
$X$ の役割は、すでに書き出した極大クリークに含まれる非極大なクリークを出力しないことである。$P$ から除いた頂点を $X$ に移さずに捨てると非極大なクリークが出力され、$P$ から除かずにおくと同じ極大クリークが何度も出力される(rem-clq-counterexamples)。
手順 2 で $P$ のすべての頂点を試す代わりに、$P\cup X$ の頂点 $u$(ピボット)を 1 つ選び、$u$ に隣接しない $P$ の頂点だけを試しても、出力は変わらない。$R\subset K\subset R\cup P$ を満たす極大クリーク $K$ は、$u$ 自身か $u$ に隣接しない頂点を $K\setminus R$ に含むからである($K\setminus R\subset N(u)$ なら $K\cup\{u\}$ がクリークになる。lem-clq-counting の 1 と同じ理由)。ピボットを $\lvert P\cap N(u)\rvert$ が最大になるように選ぶと、出力の時間を除いた手間が $3^{n/3}$ の定数倍で押さえられることが知られている(ELS10 §2.2、p. 4 で、同論文の文献表 [47] の結果として引かれている。この記事では証明しない)。thm-clq-moon-moser により出力そのものが $3^{n/3}$ 個になりうるので、指数関数的な手間は避けられない。
一方、最大クリークの大きさ $\omega(G)$ を求める問題は NP 困難である。独立集合の最大の大きさを求める問題が NP 困難であることから、補グラフをとる言い換え(prop-clq-basic の 3)によって従う(Eri19 §12.9、p. 394。この記事では証明しない)。
| 外す条件 | 反例 | 成り立たなくなること |
|---|---|---|
| 最大であること(極大だけにする) | ex-clq-maximal-not-maximum の $\{3,4\}$ | 極大クリークの大きさは $\omega(G)$ |
| 区間グラフであること | $C_5$ | $\chi(G)=\omega(G)$ |
| 実数直線上の区間であること(円周上の弧にする) | 中心角 $200^\circ$ の弧 3 つ | クリークに共通の点がある |
| 極大であること(クリーク全体を数える) | $K_n$($n\ge1$) | 個数は $3^{n/3}$ 以下 |
| 手続きで $P$ から除いた頂点を $X$ に加える | 辺 1 本のグラフ | 非極大なクリークを出力しない |
| 手続きで取り出した頂点を $P$ から除く | 辺 1 本のグラフ | 各極大クリークを 1 回だけ出力する |
2 行目:$C_5$ は三角形を含まないので $\omega=2$ であり、奇数長の閉路は 2 色では塗れないので $\chi=3$ である(彩色数 の記事の命題「2 色で彩色できるグラフ」)。$C_5$ は区間グラフではない。
3 行目:円周上の点を角度で表し、弧 $A=[0^\circ,200^\circ]$、$B=[120^\circ,320^\circ]$、$C=[240^\circ,440^\circ]$($360^\circ$ を超えた角度は $360^\circ$ を引いた点を表す)をとる。$A\cap B=[120^\circ,200^\circ]$、$B\cap C=[240^\circ,320^\circ]$、$C\cap A=[0^\circ,80^\circ]$ はどれも空でないので、交わる弧を結んだグラフは三角形で $\omega=3$ である。しかし $A\cap B$ は $C$ と交わらず、3 つに共通の点はない。どの点も高々 2 つの弧にしか含まれない。
4 行目:$K_n$ のクリークは $2^n$ 個あり、$2>3^{1/3}$($2^3=8>3$)なので $n\ge1$ で $2^n>3^{n/3}$ である。
5・6 行目:頂点 $a,b$ と辺 $ab$ のグラフで、$a,b$ の順に試す。正しい手続きでは、$v=a$ の呼び出し $\mathrm{BK}(\{a\},\{b\},\emptyset)$ の中の $\mathrm{BK}(\{a,b\},\emptyset,\emptyset)$ が $\{a,b\}$ を出力する。次に $P=\{b\}$、$X=\{a\}$ となり、$v=b$ の呼び出しは $\mathrm{BK}(\{b\},\emptyset,\{a\})$ で、$X\ne\emptyset$ なので何も出力しない。$a$ を $X$ に加えずに捨てると、この呼び出しは $\mathrm{BK}(\{b\},\emptyset,\emptyset)$ となって極大でない $\{b\}$ を出力する。$a$ を $P$ から除かないと、$v=b$ の呼び出しは $\mathrm{BK}(\{b\},\{a\},\emptyset)$ となり、$\{a,b\}$ がもう一度出力される。
Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する