二学期 知識情報工学実験 (分子情報工学コース)


解説

P1課題:部分グラフ抽出

具体例を用いて説明する。 いま、図1に示すグラフGが与えられたとする。
Sample Graph    A(G)
図1 グラフGとその隣接行列

ノード1に注目すると、これに隣接する(=パスの長さ1で 到達できる)ノード集合は{2, 6, 7}である。 これに対応する部分グラフは次のようになる。
Sample Graph    A(G)

(S(1, 1))={1, 2, 6, 7}, (S(1, 1))={(1,2), (1,6), (1,7)}
図2 ノード1を中心としたサイズ1の部分グラフ

ここで、S(, )は、 ノードを中心(出発ノード)とした、 サイズ(パスの長さ) の部分グラフを表わすものとする。
中心をノード1, 2, ..., 10としたときの、 サイズ1の部分グラフを図3(上段)に示す。
同様に、サイズ2のときの部分グラフの例を2段目に示す。
さらに続けていくと、例えば、S(1, 5)は「G」そのものとなる。 (ノード1を中心としたとき、これ以上のサイズの部分グラフは存在しない)
S(1, 1) = Sample Graph    S(2, 1) = Sample Graph    ・・・    S(10, 1) = Sample Graph

S(1, 2) = Sample Graph    S(2, 2) = Sample Graph    ・・・    S(10, 2) = Sample Graph

・・・   

S(1, 5) = Sample Graph    S(2, 4) = Sample Graph    ・・・    S(10, 6) = Sample Graph

図3 抽出される部分グラフの例

Sample Graph
図4 ノード1を中心とした場合の部分グラフの抽出イメージ

補足説明

本課題の部分グラフ抽出では、 ある注目するノード(出発ノード)から、 指定されたサイズ(パスの長さ) 内に含まれるノードを探索し、 エッジについては、元のグラフ中でこれらのノード集合が持っている 隣接関係をそのまま抽出すれば良い。

例えば、図5の場合、ノード2を中心として、サイズ2で到達 できるノード集合は{1, 2, .., 6}の全てであり、結果として 得られる部分グラフは、元のグラフそのものとする。
ノード4と6との間のエッジは、ノード2を出発点とする 長さ2のパスには含まれないが(図5の左)、 これをわざわざ除外する必要はない。
Sample Graph    ─×→    Sample Graph
図5 ノード2を中心としたサイズ2の部分グラフ
(ここで想定しているのは、右の元のグラフそのもの)

※ このように、一口に「部分グラフ」と言っても、その定義は 複数考えられる。 (例えば、ノード1のみ(エッジを含まない)ものも部分グラフの一つで あるし、また非連結グラフ(分離グラフ)となるようなものも考慮すると その組み合わせは爆発的に増える)
余力があれば、このような部分グラフの特徴と、その抽出アルゴリズムに ついても考えてみると良い。

知 識情報工学実験(分子情報工学コース)のページに戻る