クリーク

同義語:cliqueクリーク(グラフ理論)クリーク数clique number極大クリーク最大クリークBron–Kerboschの算法

概要

クリーク(clique)とは、グラフの頂点の集合で、どの 2 頂点も辺で結ばれているもののことであり、頂点の個数の最大値をクリーク数 $\omega(G)$ という。クリークは補グラフの独立集合にあたり、彩色数の下界 $\omega(G)\le\chi(G)$ を与え、辺の多いグラフほど大きなクリークをもつ。これ以上頂点を加えられない極大クリークは最大とは限らないが、$n$ 頂点のグラフの極大クリークは $3^{n/3}$ 個以下で(Moon–Moser の上界)、Bron–Kerbosch の手続きで漏れも重複もなく列挙できる。最大クリークを求める問題は NP 困難である。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: グラフ, 完全グラフ, 誘導部分グラフ, 補グラフ

グラフの頂点を人、辺を「知り合いである」とみると、どの 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. クリーク $K$ が、$K$ を真に含むどのクリークにも含まれないとき、$K$ を 極大クリーク(maximal clique)という。
  2. クリークの頂点の個数の最大値を $G$ の クリーク数(clique number)といい、$\omega(G)$ と書く。頂点の個数が $\omega(G)$ のクリークを 最大クリーク(maximum clique)という。
  3. 相異なる任意の 2 頂点が隣接しない頂点の集合を 独立集合 といい、その頂点の個数の最大値を 独立数 $\alpha(G)$ という。

空集合と 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. 完全グラフ $K_n$ では、すべての頂点の集合がクリークで、極大クリークは $V$ ただ 1 つ、$\omega(K_n)=n$ である。クリークは $V$ のすべての部分集合なので、$2^n$ 個ある。
  2. $n\ge4$ の閉路 $C_n$ では、隣り合わない 2 頂点は隣接しないので、2 頂点を超えるクリークはない。極大クリークは $n$ 本の辺の両端で、$\omega(C_n)=2$ である。$C_3$ は $K_3$ である。
  3. 頂点の集合を空でない部分 $V_1,\dots,V_k$ に分け、異なる部分の 2 頂点をすべて結び、同じ部分の 2 頂点は結ばないグラフを 完全多部グラフ $K_{a_1,\dots,a_k}$($a_i:=\lvert V_i\rvert$)という。そのクリークは、各部分から高々 1 頂点を選んだ集合である。極大クリークは各部分からちょうど 1 頂点を選んだ集合で(どこかの部分から選んでいなければ、その部分の頂点を加えられる)、その個数は $a_1a_2\cdots a_k$、$\omega=k$ である。
極大だが最大でないクリーク

頂点 $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. クリークの部分集合はクリークである。$W\subset V$ について、$G[W]$ のクリークは $W$ に含まれる $G$ のクリークにほかならず、$\omega(G[W])\le\omega(G)$ である。
  2. クリーク $K$ が極大であることと、$K$ に属さないどの頂点 $w$ にも、$w$ と隣接しない $K$ の頂点があることは同値である。
  3. $K$ が $G$ のクリークであることと、$K$ が補グラフ $\overline G$ の独立集合であることは同値であり、$\omega(G)=\alpha(\overline G)$ である。
  4. $V\ne\emptyset$ なら、最大次数を $\Delta(G)$ として $\omega(G)\le\Delta(G)+1$ である。

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$ である。

極大クリークの数え上げの 2 つの事実

グラフ $G=(V,E)$ と頂点 $v$ について次が成り立つ。

  1. $S_v:=V\setminus N(v)$($v$ と、$v$ に隣接しない頂点の全体)とすると、どの極大クリークも $S_v$ の頂点を含む。
  2. 頂点 $u$ を含む極大クリーク $K$ に $K\setminus\{u\}$ を対応させる写像は、$u$ を含む $G$ の極大クリーク全体から $G[N(u)]$ の極大クリーク全体への単射である。とくに、$u$ を含む極大クリークは $M(G[N(u)])$ 個以下である。

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$ に加えられるがすでに調べ終えた頂点である。

Bron–Kerbosch の手続き

グラフ $G=(V,E)$ の頂点の集合 $R,P,X$ に対する手続き $\mathrm{BK}(R,P,X)$ を次で定める。

  1. $P$ と $X$ がともに空なら、$R$ を出力して終える。
  2. $P$ の頂点を、あらかじめ決めた順に 1 つずつ取り出す。取り出した $v$ について $\mathrm{BK}(R\cup\{v\},\ P\cap N(v),\ X\cap N(v))$ を行い、それが終わったら $v$ を $P$ から除いて $X$ に加える。$P$ が空になったら終える。
    $G$ のすべての極大クリークを求めるには、$\mathrm{BK}(\emptyset,V,\emptyset)$ を行う。

$R$ に属さず $R$ のすべての頂点と隣接する頂点の全体を $C(R)$ と書く($C(\emptyset)=V$)。$R$ がクリークなら、$R\cup\{w\}$ がクリークになる頂点 $w\notin R$ は $C(R)$ の頂点ちょうどである。

Bron–Kerbosch の手続きの正しさ

$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\}$ がもう一度出力される。

補足

クリークと関連する概念

すべての誘導部分グラフ $H$ で $\chi(H)=\omega(H)$ となるグラフをパーフェクトグラフという(誘導部分グラフ の記事の節「彩色数とクリーク数」)。区間グラフの誘導部分グラフは区間グラフなので、区間グラフはパーフェクトグラフである(KT17 §5.4.3、pp. 87–88)。完全グラフの辺を 2 色に塗ったときの同色のクリークの大きさは Ramseyの定理 が扱い、与えられた頂点数で $(r+1)$-クリークをもたないグラフの辺の最大本数は Turánの定理 が決める。

関連項目

参考文献

[2]
David Eppstein, Maarten Löffler and Darren Strash, Listing All Maximal Cliques in Sparse Graphs in Near-optimal Time, arXiv:1006.5440v1, 2010, §2.2 と Fig. 2 (pp. 4–5、Bron–Kerbosch の手続きとピボット)、§4 Theorem 3 の証明 (p. 8、Moon–Moser の上界)

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する