最大クリーク問題

最大クリーク問題
無向グラフが与えられたとき、最大位数の完
全部分グラフを求める問題
最大クリーク問題とは?

無向グラフG=(V,E)が与えられたとき、ノー
ド(点)の部分集合C(⊆V)は、Cによって導
かれた部分グラフが完全なときクリークと呼
ばれる(完全グラフとは、すべてのノードの
間にアークがあるグラフである)。クリークに
含まれるノードの数|C|が最大になるク
リークを求めよ。
アルゴリズム
評価値(S)=Sに含まれるアークの数
1)適当なノードの部分集合Sからはじめる。
2)以下の操作を時間が尽きるまで繰り返す。
a)Sによって導かれたグラフが完全ならば、
Sに含まれないノードiで評価値(S∪{i})が
最大のものをSに加える。このとき、追加し
たノードはしばらく削除しないように設定する。
b)Sによって導かれたグラフが完全でないな
らば、Sに含まれるノードiで評価値(S-{i})
が最大のものをSから除く。このとき、削除し
たノードはしばらく追加しないように設定する。
0
2
2
2
0
2
2
1
3
3
4
1
3
3
しばらく削除しない
1
2
1
2
1
2
1
3
4
1
2
3
4
1
3
3
2
2
3
3
2