240 likes | 510 Views
ハノイグラフの生成と最短経路の導出. 東京電機大学 理工学部 村田和也 松浦昭洋. 2009/3/3 組合せゲーム・パズル ミニ研究集会(東工大). 目次. ハノイの塔 研究内容 ハノイグラフについて ダイクストラのアルゴリズム 実験結果 まとめと今後の課題. ハノイの塔. 1883 年、 E. Lucas によって考案された組合せゲーム. 柱 3 本、円盤数 n のとき、最小移動回数は 2 n – 1. k=4 のとき、 1907 年の Dudeney 以来考察されている. しかし、 k > 4 のとき、最小解は未だ解明されていない.
E N D
ハノイグラフの生成と最短経路の導出 東京電機大学 理工学部 村田和也 松浦昭洋 2009/3/3 組合せゲーム・パズル ミニ研究集会(東工大)
目次 • ハノイの塔 • 研究内容 • ハノイグラフについて • ダイクストラのアルゴリズム • 実験結果 • まとめと今後の課題
ハノイの塔 • 1883年、E. Lucasによって考案された組合せゲーム • 柱3本、円盤数nのとき、最小移動回数は2n– 1
k=4のとき、1907年のDudeney以来考察されている しかし、k>4のとき、最小解は未だ解明されていない k本ハノイの塔 ・ 最良の上界: [Frame, 1941], [Stewart, 1941] ・ 最良の下界: [Chen, 2004]
研究内容 k本ハノイの塔問題に対してグラフを用いたモデル化を行う グラフを利用してプログラム上で最小移動回数の実験的な導出を行う
状態の符号化 1 (7, 0, 0) 7 2 4 ○ (6, 0, 1) (6, 1, 0) ○ ○ ハノイグラフ 全円盤の配置された状態を頂点とし、 遷移しうる状態間に辺を引いた(無向)グラフ
(Wolfram, MathWorldより) ハノイグラフ(柱3本) • 円盤数 n = 1, 2, 3, 4,・・・のとき、 → チェルピンスキーの三角形に収束
一般のk本ハノイの塔に対して、ハノイグラフの生成法を示す一般のk本ハノイの塔に対して、ハノイグラフの生成法を示す ハノイグラフ(柱4本以上) M.-K. Lee, “The graph for the Tower of Hanoi with four pegs”, Pythagoras, Vol. 57, pp. 27-31, 2003. 課題 ・ 円盤数nに対する一般的な生成法が示されておらず, 柱の数4本以上のハノイグラフの生成法も未知
k=4のときのハノイグラフの生成法 (0,0,0,0) (1,0,0,0) (0,0,0,0) (0,0,0,1) (0,0,0,0) (0,0,0,0) (0,1,0,0) (0,0,0,0) (0,0,1,0)
(1,0,0,0) (3,0,0,0) (2,0,0,1) (0,0,0,1) (1,0,0,0) (1,0,0,2) (0,0,0,1) (0,0,0,3) (2,1,0,0) (0,1,0,0) (0,0,1,0) (2,0,1,0) (0,1,0,0) (0,1,0,2) (0,0,1,2) (0,0,1,0) + (2,0,0,0) + (0,0,0,2) + (0,2,0,0) + (0,0,2,0) (0,0,0,1) (0,0,2,1) (1,0,2,0) (1,0,0,0) (1,2,0,0) (1,0,0,0) (0,2,0,1) (0,0,0,1) (0,1,2,0) (0,1,0,0) (0,0,1,0) (0,0,3,0) (0,1,0,0) (0,3,0,0) (0,0,1,0) (0,2,1,0)
(15,0,0,0) (8,0,0,7) (7,0,0,8) (0,0,0,15) (0,0,1,14) (8,1,0,6) (8,0,1,6) ・・・ ・・・ ・・・ (8,7,0,8) (8,6,1,0) (8,0,7,0) (0,7,0,8) (0,6,1,8) (0,0,7,8) ・・・ ・・・ (7,8,0,0) (0,8,0,7) (7,0,8,0) (0,0,8,7) (0,8,1,6) (0,1,8,6) (0,0,9,6) ・・・ ・・・ ・・・ (0,0,15,0) (0,15,0,0) (0,8,7,0) (0,7,8,0)
(1,0,0,・・・,0) (0,0,・・・,0,1) (0,1,0,・・・,0) (0,0,・・・,1,0) (0,0,1,・・・,0) k本ハノイグラフ (1)円盤数 n=1 H1 = Kk
(3,0,0,・・・,0) (1,0,0,・・・,0) (2) n=2 (2,0,・・・,0,1) (0,0,・・・,0,1) (2,1,0,・・・,0) (0,1,0,・・・,0) (2,0,・・・,1,0) (0,0,・・・,1,0) +(2,0,0,・・・,0) (2,0,1,・・・,0) (0,0,1,・・・,0) (1,0,0,・・・,2) (1,0,0,・・・,0) (0,0,・・・,0,3) (0,0,・・・,0,1) (0,1,0,・・・,2) (0,1,0,・・・,0) (1,2,0,・・・,0) (1,0,0,・・・,0) (0,0,・・・,1,2) (0,0,・・・,1,0) +(0,0,・・・,0,2) (0,3,0,・・・,0) (0,1,0,・・・,0) (0,0,1,・・・,2) (0,0,1,・・・,0) (0,2,・・・,0,1) (0,0,・・・,0,1) (0,2,・・・,1,0) (0,0,・・・,1,0) (0,2,1,・・・,0) (0,0,1,・・・,0) +(0,2,0,・・・,0) (1,0,2,・・・,0) (1,0,0,・・・,0) (0,0,・・・,0,1) (0,0,・・・,0,1) (0,1,2,・・・,0) (0,1,0,・・・,0) (0,0,・・・,1,0) (0,0,・・・,1,0) (0,0,3,・・・,0) (0,0,1,・・・,0) +(0,0,2,・・・,0) H2
(n) n円盤 k本 n-1枚 ・・・ +(2n-1,0,・・・,0,0) +(0,0,・・・,0,2n-1) +(0,2n-1,・・・,0,0) 辺が存在する条件は? +(0,0,2n-1,・・・,0) Hn-1,1 Hn-1,2 Hn-1, i1内の頂点 Hn-1,k ai1,i2,・・・,in a3,1,・・・,in ai1,i2,・・・,in a3,i2,・・・,in aj1,j2,・・・,jn Hn Hn-1,3
(1) i1=j1のとき,それらがHn-1で辺をもつ (2) i1≠j1のとき, i1{ i2, i3, ・・・,in} かつ j1{ j2, j3, ・・・,jn} かつ i2 = j2, ・・・, in = jn ハノイグラフHnに関する定理 定理: 点 ai1,i2,・・・,in と aj1,j2,・・・,jn の間に辺が存在
i1 j1 i1{ i2, i3, ・・・,in} j1{ j2, j3, ・・・,jn} i2 = j2, ・・・, in = jn 定理の略証 i1 j1 ai1,i2,・・・,in aj1,j2,・・・,jn
(7,0,0) (6,0,1) (6,1,0) ・・・ ・・・ (1,0,6) (0,7,0) (0,0,7) (0,1,6) ・・・ ダイクストラのアルゴリズムを適用 ハノイの塔の最小手数=ハノイグラフの最短経路
ダイクストラのアルゴリズム グラフ上の二点間の最短距離を求める アルゴリズム S1 S3 1 基準点 4 (5) 3 6 (9) 3 (4) S2 ( )内の数字 ・・・ 基準点からの距離
4本ハノイグラフにおける最短手数の導出結果4本ハノイグラフにおける最短手数の導出結果 円盤枚数 n 4 5 6 7 8 9 10 移動回数 9 13 17 25 33 41 - 処理時間[s] 0 0.015 0.14 2.6 77 1696 - (CPU:2.01GHz メモリ:1.21GB OS:Microsoft WindowsXP SP3) 実験結果
4本ハノイの処理時間 1696 77 0 0 0 2.6 0 0.14 0 0.015
柱5本の場合 5本ハノイグラフにおける最短手数の導出結果 (CPU:2.01GHz メモリ:1.21GB OS:Microsoft WindowsXP SP3)
5本ハノイの処理時間 100150 3756 0 0 0 0 2.2 0 0.083 143
まとめ ○一般的なk本ハノイについてハノイグラフの生成法を示した ○最短経路導出のプログラムを実装し, 柱4本と5本のハノイの塔について,n < 9 での最短経路を導出した
○ハノイグラフの最短経路を理論的に導 出する ○最短経路導出のアルゴリズムや測定 環境の改善を行い、導出にかかる時間 を短縮する 今後の課題