極大クリーク全列挙アルゴリズムの実験的比較評価
4
0
0
全文
(2) なる G = (V, E) を G の補グラフと言う. [2] 節点 v ∈ V について,Γ (v) を G = (V, E) 中 で v に隣接している全ての節点の集合とする.即ち Γ (v) = {w ∈ V | (v, w) ∈ E} ( v ). [3] 部分節点集合 W ⊆ V について,E(W ) = {(v, w) ∈ W × W | (v, w) ∈ E} よりなる G(W ) = (W, E(W )) を W によって誘導される G = (V, E) の 部分グラフと呼ぶ.節点集合 W について,| W | は W の要素数を表す. [4] 部分節点集合 Q ⊆ V が与えられた時,全ての v = w である v, w ∈ Q について (v, w) ∈ E であれば G(Q) は完全であると言う.この場合,単に Q は完全 部分グラフであるとも言う.完全部分グラフはクリー クとも呼ぶ.あるクリークが他のクリークの真部分グ ラフでないならばそれを極大クリークと呼ぶ.もし 全ての v, w ∈ W について (v, w) ∈ E であるならば 部分節点集合 W ⊆ V は独立であると言う.ここで, Q ⊆ V が補グラフ G の極大独立節点集合である時, かつその時に限り Q は G の極大クリークである.. 言語で実働化し,同一の環境で計算機実験を行い性能 を比較した.使用した計算機は Pemtium4 2.20GHz の CPU と 2GB の主メモリ及び Linux OS を搭載し たものである.使用コンパイラ及びフラグは gcc -O2 である.本実験において,全ての極大クリークを実際 に列挙する負荷を取り除くために,CLIQUES 以外の アルゴリズムにおいては極大クリークの個数の値のみ を出力するように変更した.文献 [7] の AMC*は入力 されたグラフ G の全節点を次数が ∆∗ 以下の節点と ∆∗ より大きい節点とに分けて処理を行うアルゴリズ ムである.本実験では ∆∗ = n/100 とした [8].これ は一般に未知のグラフに対し最適な ∆∗ の値を選ぶこ とは難しく,また,色々∆∗ の値を変えて実験を行っ た結果,∆∗ = n/100 とした時が最も多くの種類のグ ラフで高速となったからである.また,∆∗ = n/100 とした場合の AMC*は,その基本としている EMC よりも一般に非常に高速となることを確認している.. 表 1 に節点数 n と枝の存在確率 p の組み合わせで 作成したランダムグラフに対する実行時間を示す (太 字は最速箇所).ここにおけるグラフは n 個の節点に 3 CLIQUES[9],[10] CLIQUES は Bron と Kerbosch [4] のアルゴリズ 対して各節点の間に確率 p で枝を張ったものである. ムにおける枝刈り法を援用したアルゴリズムであ 表中において cliques とはグラフ中の極大クリーク り,深さ優先探索によって与えられたグラフ G = の個数を表す.また,/cliques は CLIQUES による極 (V, E) 中の全ての極大クリークを抽出し,木の形で 大クリーク 106 個当たりの抽出時間を表す.表 2 に 出力する.まず,全節点集合 V を節点集合 SU BG は Moon and Moser グラフ [12] と DIMACS のベン 及 び 節 点 集 合 CAN D の 初 期 値 と し て 与 え ,再 チマークグラフ [13] に対する実験結果を示す.表中 帰的処理 EXPAND(SU BG, CAN D) を実行する. において,M-M-n とは節点数 n の Moon and Moser EXPAND(SU BG, CAN D) は以下のようにして極 グラフを表し,dens. はグラフの節点数 n に対し (グ 大クリークを抽出する.もし SU BG = ∅ ならば ラフ中の枝の数)/{n(n − 1)/2} として求めた枝密度 “clique,” と出力する.そうでないならば以下のよう を表す.また,[7] の実験結果と比較するために,[7] な操作を行う.まず u ∈ SU BG で,|CAN D ∩ Γ (u)| で提唱された疎で局所的にランダムなグラフに対して を最大にする節点 u を選ぶ.次に CAN D − Γ (u) 中 も実験を行った.これは節点数 n とパラメータ r に対 の節点 q について,“q ,” と出力した後に,節点集合 し,グラフ中の節点 vi と vj が i + n − j(mod n) ≤ r SU BGq := SU BG ∩ Γ (q) ,CAN Dq := CAN D ∩ または j + n − i(mod n) ≤ r を満たしている場合にの Γ (q) を求め,EXPAND(SU BGq , CAN Dq ) を実行し みこれら 2 節点間に確率 1/2 で枝を張るという方法で た後,CAN D := CAN D − {q} としてから “back,” 作成されたグラフである.表 3 には,r = 10,r = 30 と出力する.これらの操作を CAN D − Γ (u) = ∅ と とした場合の実行時間を示し,表 4 にはグラフの節 なるまで繰り返す.以上の手続きにより CLIQUES は 点数を 10,000 に固定し,r の値を様々に変えた場合 グラフ G 中の全極大クリークを,O(3n/3 ) の最大計 の実行時間を示す. 算時間で列挙する.なお、節点数 n のグラフ中には最 実験結果より,CLIQUES は CLIQUE よりも大幅 大で 3n/3 個の極大クリークが存在するので [12],こ に高速である.また,文献 [7] の 8 章の計算機実験 れは n の関数としては最適なものとなる.ここで,出 結果より,CLIQUES は Tsukiyama らのアルゴリズ 力される全極大クリークは木の形で表される. ムに対しても大幅に高速であると認められる.更に, 4 計算機実験 CLIQUES は AMC 及び AMC*に対してほとんどの アルゴリズム CLIQUES と,その比較対象として グラフで高速であったが,c-fat200-5 ,c-fat500-10 な CLIQUE [6],ALLMAXCLIQUES (以下 AMC と略記) どのような極大クリークの個数が非常に少ないグラフ 及び ALLMAXCLIQUES* (以下 AMC*と略記) [7] を C では AMC,AMC*の方が高速になり得る.さらに,. −42− 2.
(3) n. p. 300 300 300 300 300 700 700 700 700 700 1,000 1,000 1,000 2,000 3,000 3,000 3,000 3,000 3,000 4,000 5,000 5,000 5,000 5,000 5,000 10,000 10,000 10,000 10,000 10,000 10,000 10,000. 0.3 0.4 0.5 0.6 0.7 0.1 0.2 0.3 0.4 0.5 0.1 0.2 0.3 0.1 0.001 0.003 0.005 0.01 0.1 0.1 0.001 0.003 0.005 0.01 0.1 0.0007 0.001 0.005 0.01 0.03 0.05 0.1. グラフ名. 表 1: ランダムグラフに対する実行時間 [sec] cliques CLIQUE AMC AMC*. 96,298 559,838 4,874,385 132,240,024 3,356,452,714 37,563 325,479 3,094,828 40,591,244 917,376,496 99,062 1,183,584 15,362,096 747,300 4,610 13,319 21,287 37.862 2,945,211 8,215,969 12,527 36,538 57,501 96,312 18,483,855 34,877 49,738 215,129 348,552 3,738,814 12,139,182 229,786,397. 41.28 364.89 5,645.05 > 24hrs > 24hrs 29.91 485.38 9,197.77 > 24hrs > 24hrs 179.80 3,750.59 > 24hrs 6,384.56. 26.77 197.20 1,759.61 24,104.49 > 24hrs 21.86 367.96 5,201.25 > 24hrs > 24hrs 143.03 4,486.30 > 24hrs 10,149.20 1.86 12.89 33.65 114.47 > 24hrs > 24hrs 16.81 132.98 350.48 1,258.21 > 24hrs 144.06 282.40 6,138.69 22,426.93 > 24hrs > 24hrs > 24hrs. 9.55 78.26 789.23 12,937.56 > 24hrs 3.15 98.64 1,806.24 34,873.65 > 24hrs 19.39 829.52 20,615.89 665.59 0.15 1.03 2.87 5.62 5,905.18 29,228.07 0.77 7.50 21.18 43.08 > 24hrs 6.37 13.30 364.29 645.75 11,315.03 > 24hrs > 24hrs. CLIQUES. /cliques. 0.14 0.88 8.54 140.75 6,279.51 0.051 0.51 5.42 84.05 2,144.31 0.21 2.25 33.18 2.32 0.32 0.33 0.33 0.36 10.85 34.41 2.02 2.05 2.19 2.49 86.60 10.77 10.82 11.74 14.78 41.29 109.78 1,825.45. 1.45 1.57 1.75 1.06 1.87 1.36 1.57 1.75 2.07 2.34 2.12 1.90 2.16 3.10 69.41 24.78 15.50 9.51 3.68 4.19 161.25 56.11 38.09 25.85 4.67 308.80 217.54 54.57 42.40 11.04 9.04 7.94. 表 2: Moon and Moser グラフ及び DIMACS のベンチマークグラフに対する実行時間 [sec] n dens. cliques CLIQUE AMC AMC* CLIQUES. M-M-48 M-M-51 M-M-60 M-M-63 MANN a9 brock200 2 brock200 3 c-fat200-1 c-fat200-5 c-fat500-1 c-fat500-10 hamming6-2 hamming6-4 johnson8-2-4 johnson8-4-4 johnson16-2-4 keller4 p hat300-1 p hat300-2. 48 51 60 63 45 200 200 200 200 500 500 64 64 28 70 120 171 300 300. 0.957 0.960 0.966 0.968 0.927 0.496 0.605 0.077 0.426 0.036 0.374 0.905 0.349 0.556 0.768 0.765 0.649 0.244 0.489. 43,046,721 129,140,163 3,486,784,401 10,460,353,203 590,887 431,586 4,595,644 37 7 80 8 1,281,402 464 105 114,690 2,027,025 10,284,321 58,176 79,917,408. 5,057.65 16,532.50 > 24hrs > 24hrs 52.64 181.42 3,689.62 0.025 0.30 0.20 6.62 301.00 0.018 0.0019 13.85 907.51 3,446.61 19.23 > 24hrs. −43− 3. 153.21 496.76 16,585.75 47,817.37 2.24 75.16 684.23 0.0011 0.0029 0.0062 0.025 11.97 0.0086 0.00062 1.82 150.68 1,145.66 13.52 16,035.71. 224.41 740.57 26,152.31 > 24hrs 2.93 35.91 437.22 0.00065 0.0031 0.0029 0.028 16.98 0.0056 0.00052 1.95 153.42 490.76 3.52 4,130.20. 12.41 32.95 894.90 2,666.90 0.23 0.65 7.71 0.0010 0.0054 0.0054 0.058 1.21 0.00043 0.00012 0.11 4.38 4.98 0.070 99.72. /cliques 0.29 0.26 0.26 0.25 0.39 1.51 1.68 27.03 771.43 67.50 7,250.00 0.94 0.93 1.14 0.96 2.16 0.49 1.20 1.25.
(4) n 1,000 2,000 4,000 6,000 8,000 10,000. 表 3: 局所的ランダムグラフに対する実行時間 [sec] (a) r = 10 dens. cliques CLIQUE AMC AMC* CLIQUES. /cliques. 0.04 0.38 1.55 3.56 6.25 9.51. 0.016 0.075 0.86 3.30 6.25 10.47. 3.57 8.01 44.87 113.04 159.52 213.78. AMC*. CLIQUES. /cliques. 0.38 1.49 9.31 73.55. 0.025 0.10 0.89 10.03. 1.92 3.88 16.77 72.00. 0.010 0.0051 0.0025 0.0017 0.0013 0.0010. 4,487 9,369 19,166 29,192 39,179 48,975. n. dens.. cliques. 1,000 2,000 4,000 10,000. 0.030 0.016 0.0075 0.0030. 13,043 25,803 53,059 139,304. r 10 20 80 160 320. 2.38 18.76. 0.45 4.70 31.48 88.91 160.16 261.27 (b) r = 30 CLIQUE AMC 8.93 57.13. 3.38 44.79 243.66 2,075.70. 表 4: 節点数 10,000 の局所的ランダムグラフに対する実行時間 [sec] dens. cliques AMC AMC* CLIQUES /cliques. 0.0010 0.0020 0.0080 0.016 0.032. 48,975 95,120 386,360 1,408,360 11,488,405. 9.51 49.45 431.20 1,066.62 15,655.05. 261.27 952.25 14,448.21 > 24hrs > 24hrs. 10.47 10.19 10.87 16.85 65.06. 213.78 107.13 28.13 11.96 5.66. of plant proteins,” Nucleic Acids Res. 32, pp.D351AMC*は与えられたグラフが非常に疎である時に,特 D353 (2004). に ∆∗ を個々のグラフに対し最適なものとなるように [4] C. Bron and J. Kerbosch, “Algorithm 457, Finding 選べば CLIQUES よりも高速になり得る.また,文 all cliques of an undirected graph,” Comm. ACM 16, 献 [7],[8] には,変形アルゴリズムによる大規模な現 pp.575-577 (1973). 実問題への良好な適用結果も報告されている.なお, [5] S. Tsukiyama, M. ide, H. Ariyoshi, and I. Shirakawa, 表中の/cliques の値より,CLIQUES はグラフの枝密 “A new algorithm for generating all the maximal 度が大きくなっても極大クリーク当たりの計算時間 independent sets,” SIAM J. Comput 6, pp.505-517 (1977). が爆発的には増加しないことが確認できた.. 5. まとめ. 筆者らが既に提唱している極大クリーク全列挙ア ルゴリズム CLIQUES に対して計算機実験による評 価を行い,その結果,当アルゴリズムは対象グラフが 非常に疎であるかあるいは極大クリーク数が非常に 少ない場合を除いた多くのグラフに対して高速であ ることを確認した. 謝辞. 本研究に先んじて CLIQUE と CLIQUES との 実験的評価を行っていただいた元卒研生の木鉛登之 氏,及び貴重なご意見をいただいた京大バイオイン フォマティクスセンター阿久津達也教授に感謝しま す.なお,本研究は科学研究費補助金基盤研究(B) の支援を受けている.. 参考文献 [1] 宇野毅明, “効率的な列挙アルゴリズムの構築と利用 (3),” 人工知能学会誌, 18 巻 5 号, pp.586-591 (2003). [2] M. Hattori, Y. Okuno, S. Goto, and M. Kanehisa, “Development of a chemical structure comparison method for integrated analysis of chemical and genomic information in the metabolic pathways,” J. Am. Chem. Soc. 125, pp.11853-11865 (2003). [3] S. Mohseni-Zadeh, A. Louis, P. Br´ezellec, and J.L. Risler, “PHYTOPROT: a database of clusters. [6] N. Chiba and T. Nishizeki, “Arboricity and subgraph listing algorithms,” SIAM J. Comput. 14, pp.210-223 (1985). [7] K. Makino and T. Uno, “New algorithms for enumerating all maximal cliques,” SWAT 2004, LNCS 3111, pp.260-272 (2004). [8] 宇野毅明, “大規模グラフに対する高速クリーク列挙アル ゴリズム,” 信学技報, COMP2003-8, pp.55-62 (2003). [9] E. Tomita, A. Tanaka, and H. Takahashi, “An optimal algorithm for finding all the cliques,” IPSJ SIG Technical Report, 1989-AL-12, pp.91-98 (1989). [10] E. Tomita, A. Tanaka, and H. Takahashi, “The worst-case time complexity for generating all maximal cliques,” COCOON 2004, LNCS 3106, pp.161170 (2004). [11] I. M. Bomze, M. Budinich, P. M. Pardalos, and M. Pelillo, “ The maximum clique problem, ” In: D.-Z. Du and P. M. Pardalos (eds.), Handbook of Combinatorial Optimization, Supplement vol. A, Kluwer Academic Publishers, pp.1–74 (1999). [12] J. W. Moon and L. Moser, “On cliques in graphs,” Israel J. Math. 3, pp.23-28 (1965). [13] D. S. Johnson and M. A. Trick(Eds), “Cliques, Coloring, and Satisfiability,” DIMACS Series in Descrete Mathematics and Theoretical Computer Science, vol. 26, American Mathematical Society (1996).. −44− 4.
(5)
図
関連したドキュメント
最急降下法は単純なアルゴリズムでしたが、いろいろと面白かったです。NN
生した(クリップゲージで確認) 。剥離発生前までの挙動は,損傷 による差異が確認されず,両供試体ともに,荷重で比較して,補強
友人同士による会話での CN と JP との「ダロウ」の使用状況を比較した結果、20 名の JP 全員が全部で 202 例の「ダロウ」文を使用しており、20 名の CN
計算で求めた理論値と比較検討した。その結果をFig・3‑12に示す。図中の実線は
実験は,試料金属として融点の比較的低い亜鉛金属(99.99%)を,また不活性ガ
2 つ目の研究目的は、 SGRB の残光のスペクトル解析によってガス – ダスト比を調査し、 LGRB や典型 的な環境との比較検証を行うことで、
図2に実験装置の概略を,表1に主な実験条件を示す.実
本節では本研究で実際にスレッドのトレースを行うた めに用いた Linux ftrace 及び ftrace を利用する Android Systrace について説明する.. 2.1