Solving subgraph isomorphism problem by graph spectrum

Ab55f7551d7e4e4b2ea07e60dec4279e?s=47 ohto
October 27, 2017

Solving subgraph isomorphism problem by graph spectrum

We prove that the NP-complete subgraph isomorphism problem can be solved in polynomial time by using the eigenvalues and eigenvectors of the adjacency matrices of the input graphs.

Ab55f7551d7e4e4b2ea07e60dec4279e?s=128

ohto

October 27, 2017
Tweet

Transcript

  1. 線形代数による サブグラフ同型問題の解法 2017/10/27 大戸康紀

  2. 自己紹介 • 名前: 大戸康紀 • 所属: なし – 趣味で数学しています 2

    / 37
  3. 未解決問題は ロマンだよね

  4. Millennium Problems • Yang-Mills and Mass Gap • Riemann Hypothesis

    • P vs NP Problem • Navier-Stokes Equation • Hodge Conjecture • Poincaré Conjecture ('03 solved) • Birch and Swinnerton-Dyer Conjecture http://www.claymath.org/millennium-problems 4 / 37 ゴール
  5. 概要 目的 サブグラフ同型問題を多項式時間で 解くことができることを示す 方法 – 誘導サブグラフ問題へ変換する – 接続行列の固有値、固有ベクトルを比較する –

    置換行列の有無を確認する 結果 – サブグラフ同型問題は NP完全問題 – P = NP 5 / 37
  6. P vs NP 問題 計算量クラスの関係を問う問題 – クラスP 多項式時間で解が求まる問題 – クラスNP

    解候補を多項式時間で検証できる問題 P⊂NP だけど、P=NP or Not? 6 / 37 計算量とは、 入力サイズに対する計算時間の増加量
  7. NP完全問題 NP問題の中で最も計算量が大きい – 他のNP問題へ変換する 多項式時間アルゴリズムがある 多項式時間で解けるNP完全問題が存在 7 / 37 する

    しない ⇒ NP = P ⇒ NP ≠ P 目標
  8. サブグラフ同型問題 • NP完全問題 • グラフG a がグラフG b に埋め込み可能? •

    頂点間に対応関係があればサブグラフ? 8 / 37 G a G b 1⇔1 2⇔2 3⇔3 4⇔4 1 2 3 4 1 2 3 4
  9. サブグラフ同型問題 • NP完全問題 • グラフG a がグラフG b に埋め込み可能? •

    頂点間に対応関係があればサブグラフ? 9 / 37 G a G b 1⇔1 2⇔2 3⇔3 4⇔4 1 2 3 4 1 2 3 4 邪魔!
  10. ライングラフを使う ライングラフは 稜線を頂点、 稜線の接続関係を稜線とするグラフ . K 3 と K 1,3

    を除くグラフG について、 同型なグラフは同型なライングラフ L(G) になる Whitney, H. (1932) 10 / 37
  11. ライングラフを使う • グラフG a がグラフG b に埋め込み可能? • 稜線間に対応関係があれば 誘導サブグラフ

    11 / 37 G a G b a⇔a b⇔b c⇔c d⇔d a b c d a b c d e 邪魔者を消す
  12. ライングラフを使う • グラフG a がグラフG b に埋め込み可能? • 頂点間に対応関係があれば 誘導サブグラフ

    12 / 37 G c ⇐L(G a ) G d ⇐L(G b ) a⇔a b⇔b c⇔c d⇔d a b c d a b c d e
  13. ライングラフを使う ライングラフは 稜線を頂点、 稜線の接続関係を稜線とするグラフ . K 3 と K 1,3

    を除くグラフG について、 同型なグラフは同型なライングラフ L(G) になる Whitney, H. (1932) よって、 頂点数 4以上のグラフにおいて、 G a が G b のサブグラフのとき、 L(G a ) は L(G b ) の誘導サブグラフとなる(逆も成立) 13 / 37
  14. 接続行列 接続行列は 頂点と稜線の関係を行列で表現したもの 14 / 37 0 1 0 1

    1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 A d A c G d ⇐L(G b ) G c ⇐L(G a ) a b c d a b c d e ライングラフ化 ライングラフ化
  15. 接続行列 A d に交換行列 R を作用させる 部分行列が A c と同じであれば、

    G c は G d の誘導サブグラフと同型 15 / 37 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 A c A d 0 1 0 1 1 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 tR R 部分行列
  16. 固有値分解 • 固有値と固有ベクトルで対角化 • 実対称行列は全て対角化可能 • 接続行列は実対称行列 16 / 37

    A ⇒ Q D tQ D: 対角行列/固有値 Q: 交代行列/固有ベクトル
  17. 固有値分解と置換行列 • 対角行列 D: 大きさ変えるだけ • 交代行列 Q: 回転/反転するだけ •

    置換行列 R: 固有ベクトル要素の       位置の置換だけ 17 / 37 R (Q d D d tQ d ) tR D c A c = (R Q d ) D d t(R Q d ) R A d tR = = Q c tQ c 対応 対応
  18. 固有値を揃えることで、固有ベクトルが 置換行列 R によって対応することがわかる 18 / 37 固有値分解と置換行列 v d1

    v dm λ c1 λ cm 0 0 tv d1 tv dm R tR v c1 v cm λ c1 λ cm 0 0 tv c1 tv cm 同じ 対応 Q d Q c tQ d tQ c D d D c
  19. 誘導サブグラフとなる条件 以下が成立するとき – A c の固有値 λ c が全て単解 –

    λ c が全て単解としてA d の固有値に含まれる – 固有ベクトル間に置換行列がある R Q d = Q c G c が G d の誘導サブグラフとなる 19 / 37
  20. G c ⇐L(G a ), G d ⇐L(G b )

    の接続行列 A c , A d において、 A c の固有値 λ c,i が 単根で構成され、 A d の固有値が λ c,i を持たないとする G d を実ベクトル u で拡大したグラフを G' d として、 A' d が A c の固有値 λ c,i を持ち、各々の固有ベクトルv c , v' d の 要素位置間に置換行列が存在するような u が存在するとき、G c は G d の誘導サブグラフとなる 20 / 37 A d u tu 0 A' d ⇐ G d に一つの頂点と全ての頂点に対する ベクトルuで表した重み付き稜線を加える この条件を人為的に作る! グラフ G d の拡大
  21. 置換行列の有無を判別 1.一組の固有ベクトル要素間の 対応関係を想定 2.実ベクトルuを求める 3.置換行列が存在するかを判別する 置換行列が存在すればサブグラフ同型 21 / 37

  22. 条件 ベクトル u を求める条件 – 固有値に関する関係 – 固有ベクトル要素間の置換関係 – 未知数の数

    – 置換行列の存在確認 22 / 37
  23. 条件 -固有値に関する条件 G d に頂点と重み付き稜線を追加 ⇒ G' d G c

    が G d の誘導サブグラフであり、 A c の固有値 λ c,i が単根で構成され、 A d の固有値が λ c,i を持たないとき、 A d が A c の固有値 λ c,i を持つベクトル u が存在し、 tu(A d – λ c,i I)-1u + λ c,i = 0 (0<i≦m) を満たす 23 / 37 A d u tu 0 A' d = m個の 二次形式方程式
  24. 条件 -固有ベクトル要素間の置換関係 A c , A d の固有ベクトル v ci

    , v di の 要素位置 p1, p2とq1, q2 において、 v ci, p1 x v di, q2 = v ci, q1 x v ci, p2 (0<i≦m) を満たす u および、p1, p2, q1, q2 があり、 u について、v c の全ての要素位置に対して v c の要素位置が対応するとき、 G c は G d の誘導サブグラフとなる 24 / 37 m個の 線形方程式 v cm,1 v cm,2 v cm,3 V cm,- V cm,m v dm,1 v dm,2 v dm,3 V dm,- V dm,n v c1,1 v c1,2 v c1,3 V c1,- V c1,m v d1,1 v d1,2 v d1,3 V d1,- V d1,n p1 p2 q1 q2 比を取ることで 長さを揃える
  25. 条件 -未知数の数 u を決めるための方程式の数 – u には n個の未知数がある – 頂点の対応関係

    ⇒ m本の線形方程式: 未知数は n–m 個 – A c の固有値を含む ⇒ m本の二次形式方程式係数を比較 よって、行列の大きさ m, n は (n-m)2 ≦ m を満たすこと 25 / 37
  26. 条件 -置換行列の存在確認 1.以下の条件からu を求める – 固有値条件 – 固有ベクトル要素間の一組の関係 – 未知数の数

    2.固有ベクトル要素間の関係 R が決まる 3.R が置換行列かを確認する . 置換行列であれば、 G c は G d の誘導サブグラフ 26 / 37
  27. 準備 期待する接続行列の条件を 満たすように、グラフを拡大する – A c の固有値 λ c,i が単根

    – A d の固有値が λ d,i を持たない – (n-m)2 ≦ m 27 / 37
  28. 準備 接続行列の条件を満たすステップ – 重解となる固有値の除去 – 方程式を増やす – 固有値をずらす 28 /

    37
  29. 準備 -グラフの拡大方法 接続行列の条件を満たすために – グラフに頂点 1つ追加する – 加えた頂点とグラフの各頂点間に 適当な重みを与えた稜線を追加する –

    拡大した接続行列は実対称行列 ⇒固有値は全て実数 加える稜線の重みを u で表すと、 拡大したグラフの接続行列 A' は以下になる 29 / 37 A u tu 0 A' ⇐
  30. 準備 -重解となる固有値の除去 1つの要素のみが w ≠ 0 となる u で G

    c を拡大 – A c の固有値の重解の数が 1以上減少する – 重解が無くなるまで繰り返す – m(m+1) 回の試行で重み w が見つかる 30 / 37
  31. A c u tu 0 A c ⇐ w 0

    - 0 0 w - 0 0 0 - 0 0 0 - w w 0 - 0 0 0 - 0 0 w - 0 0 0 - 0 - - - - - - - - 0 0 - w 0 0 - 0 A d A d ⇐ 準備 -重解となる固有値の除去 重みが w となる n本の稜線で G d を拡大 ⇒サブグラフ関係は保存(後述) 31 / 37 G c G d v d4 v d1 v d3 v d2 v c1 v d5 w w
  32. 準備 -方程式を増やす 全ての要素が w≠0 となる u c で G c

    を拡大 – 固有値に重解が入らないようにする – m(m+1) 回の試行で重み w が見つかる – (n-m)2 ≦ m まで繰り返す 32 / 37
  33. 準備 -方程式を増やす 全ての要素が w となる u d で G d

    を拡大 ⇒サブグラフ関係は保存(後述) 33 / 37 A c u c tu c 0 A c ⇐ A d u d tu d 0 A d ⇐ v c1 v d1 G c G d w w
  34. 準備 -固有値をずらす 下記を満たす u d を用いて G d を拡大 –

    A d の固有値に A c の固有値を 含まないようにする – m x n 回の試行で u d が見つかる ⇒サブグラフ関係は保存(後述) 34 / 37 A d u d tu d 0 A' d ⇐
  35. 注意 -固有ベクトル要素間の置換対応 元となるグラフに属する 頂点間で対応をとる 後の固有ベクトル要素間の対応関係は u を求めることで決まる 35 / 37

    元となるグラフに属する頂点 重解となる固有値の除去で追加した頂点 方程式を増やす段階で追加した頂点 固有値をずらす段階で追加した頂点 A c A d
  36. よって サブグラフ同型問題が多項式時間で 解けることが示せた – ある条件下で、グラフに対応する 接続行列の固有値と固有ベクトルを 比較可能な状態にすることで、 交換行列の有無を調べる – 交換行列の有無でサブグラフ同型かを

    判別できる – サブグラフ関係を維持しながら、 対応するグラフを拡大することで、 求める条件を作ることができる – それぞれのステップは多項式時間 36 / 37
  37. 結果 計算量クラス NP は P と同じとなる – NP完全問題が多項式時間で解ける – サブグラフ同型問題は

    NP完全問題 – NP完全問題が多項式時間で解ける 37 / 37