東京電機大学 理工学部 村田和也  松浦昭洋

Post on 04-Jan-2016

114 views 0 download

description

ハノイグラフの生成と最短経路の導出. 東京電機大学 理工学部 村田和也  松浦昭洋. 2009/3/3 組合せゲーム・パズル ミニ研究集会(東工大). 目次. ハノイの塔 研究内容 ハノイグラフについて ダイクストラのアルゴリズム 実験結果 まとめと今後の課題. ハノイの塔. 1883 年、 E. Lucas によって考案された組合せゲーム. 柱 3 本、円盤数 n のとき、最小移動回数は 2 n – 1. k=4 のとき、 1907 年の Dudeney 以来考察されている. しかし、 k > 4 のとき、最小解は未だ解明されていない. - PowerPoint PPT Presentation

Transcript of 東京電機大学 理工学部 村田和也  松浦昭洋

1

東京電機大学 理工学部 村田和也  松浦昭洋 

2009/3/3 組合せゲーム・パズル ミニ研究集会(東工大)

ハノイグラフの生成と最短経路の導出

2

目次 ハノイの塔 研究内容 ハノイグラフについて ダイクストラのアルゴリズム 実験結果 まとめと今後の課題

3

1883 年、 E. Lucas によって考案された組合せゲーム

柱 3 本、円盤数 n のとき、最小移動回数は 2n – 1

ハノイの塔

4

k 本ハノイの塔

k=4 のとき、 1907 年の Dudeney 以来考察されているしかし、 k > 4 のとき、最小解は未だ解明されて

いない・ 最良の上界: [Frame, 1941], [Stewart, 1941]・ 最良の下界: [Chen, 2004]

5

研究内容

1. k 本ハノイの塔問題に対してグラフを用いたモデル化を行う

2. グラフを利用してプログラム上で最小移動回数の実験的な導出を行う

6

全円盤の配置された状態を頂点とし、遷移しうる状態間に辺を引いた(無向)グラフ

ハノイグラフ

状態の符号化 124

7

(7, 0, 0)

(6, 1, 0) (6, 0, 1)

○ ○

7

ハノイグラフ(柱 3 本)

円盤数 n = 1, 2, 3, 4, ・・・のとき、

→ チェルピンスキーの三角形に収束

(Wolfram, MathWorld より)

8

ハノイグラフ(柱 4 本以上)

M.-K. Lee, “The graph for the Tower of Hanoi with four pegs”, Pythagoras, Vol. 57, pp. 27-31, 2003.

課題・ 円盤数 n に対する一般的な生成法が示されておらず, 柱の数 4 本以上のハノイグラフの生成法も未知

一般の k 本ハノイの塔に対して、ハノイグラフの生成法を示す

9

(0,0,0,0)

(0,0,0,0)

(0,0,0,0)

(0,0,0,0)

(0,0,0,0)

(1,0,0,0)

(0,0,0,1)

(0,1,0,0)

(0,0,1,0)

k=4 のときのハノイグラフの生成法

10

(1,0,0,0) (0,0,0,1)

(0,1,0,0) (0,0,1,0)

(1,0,0,0) (0,0,0,1)

(0,1,0,0) (0,0,1,0)

(1,0,0,0) (0,0,0,1)

(0,1,0,0) (0,0,1,0)

(1,0,0,0) (0,0,2,1)

(0,1,0,0) (0,0,1,0)

(3,0,0,0) (2,0,0,1)

(2,1,0,0) (2,0,1,0)

(1,0,0,2)

(0,1,0,2) (0,0,1,2)

(0,0,0,3)

(1,2,0,0) (0,2,0,1)

(0,3,0,0) (0,2,1,0)

(1,0,2,0) (0,0,0,1)

(0,1,2,0) (0,0,3,0)

+ (2,0,0,0)

+ (0,0,0,2)

+ (0,2,0,0)

+ (0,0,2,0)

11

(15,0,0,0) (0,0,0,15)

(0,15,0,0) (0,0,15,0)

(8,0,0,7) (7,0,0,8)

(0,8,7,0)

(0,8,0,7) (7,8,0,0)

(0,7,8,0)

(7,0,8,0) (0,0,8,7)

(0,7,0,8) (0,0,7,8) (8,7,0,8) (8,0,7,0)

(8,0,1,6)

(8,6,1,0)

(0,8,1,6)

(8,1,0,6)

(0,1,8,6)

(0,6,1,8)・・・

・・・

・・

・・

・・

・・・

・・・

(0,0,9,6)

(0,0,1,14)・

・・

・・

12

k 本ハノイグラフ(1) 円盤数

n=1

(1,0,0, ・・・ ,0)

(0,1,0, ・・・ ,0)

(0,0,1, ・・・ ,0)

(0,0, ・・・ ,0,1)

(0,0, ・・・ ,1,0)

H1 = Kk

13

(2) n=2 (1,0,0, ・・・ ,0)

(0,1,0, ・・・ ,0)

(0,0,1, ・・・ ,0)

(0,0, ・・・ ,0,1) (0,0, ・・・ ,

1,0)

(1,0,0, ・・・ ,0) (0,1,0, ・・

・ ,0) (0,0,1, ・・・ ,0)

(0,0, ・・・ ,0,1) (0,0, ・・・ ,

1,0)

(1,0,0, ・・・ ,0)

(0,1,0, ・・・ ,0)

(0,0,1, ・・・ ,0)

(0,0, ・・・ ,0,1) (0,0, ・・・ ,

1,0)

(1,0,0, ・・・ ,0)

(0,1,0, ・・・ ,0)

(0,0,1, ・・・ ,0)

(0,0, ・・・ ,0,1) (0,0, ・・・ ,

1,0)

H2

+ (2,0,0, ・・・ ,0)

+ (0,2,0, ・・・ ,0)

+ (0,0,2, ・・・ ,0)

+ (0,0, ・・・ ,0,2)

(3,0,0, ・・・ ,0)

(2,1,0, ・・・ ,0)

(2,0,1, ・・・ ,0)

(2,0, ・・・ ,0,1) (2,0, ・・・ ,

1,0)

(1,2,0, ・・・ ,0) (0,3,0, ・・

・ ,0) (0,2,1, ・・・ ,0)

(0,2, ・・・ ,0,1) (0,2, ・・・ ,

1,0)

(1,0,2, ・・・ ,0)

(0,1,2, ・・・ ,0)

(0,0,3, ・・・ ,0)

(0,0, ・・・ ,0,1) (0,0, ・・・ ,

1,0)

(1,0,0, ・・・ ,2)

(0,1,0, ・・・ ,2)

(0,0,1, ・・・ ,2)

(0,0, ・・・ ,0,3) (0,0, ・・・ ,

1,2)

14

(n) n 円盤

Hn-1,1

Hn-1,2

Hn-1,3

Hn-1,k

Hn

+ (0,2n-

1, ・・・ ,0,0)

+ (0,0,2n-1, ・・・ ,0)

+

(0,0, ・・・ ,0,2n-

1)

+ (2n-

1,0, ・・・ ,0,0)

・・・

k本n-1

0,,0,22

0ÅEÅEÅE∑

=

n

i

i

ai1,i2, ・・・ ,in

aj1,j2, ・・・ ,jn

Hn-1, i1 内の頂点 a3,i2, ・・・ ,ina3,1, ・・・ ,inai1,i2, ・・・ ,in

辺が存在する条件は?

15

ハノイグラフ Hn に関する定理

   定理:   点 ai1,i2, ・・・ ,in

と aj1,j2, ・・・ ,jn の間に辺が存

在 

∉∉

   (1) i1=j1 のとき,それらが Hn-1 で辺をもつ  (2) i1≠j1 のとき ,

       i1   { i2, i3, ・・・, in} かつ       j1   { j2, j3, ・・・, jn} かつ       i2 = j2, ・・・ , in = jn

16

定理の略証∉∉

i1

j1

i1

j1

i1   { i2, i3, ・・・, in}j1   { j2, j3, ・・・, jn}i2 = j2, ・・・ , in = jnai1,i2, ・・・ ,

in

aj1,j2, ・・・ ,j

n

17ダイクストラのアルゴリズムを適用

(7,0,0)

(6,1,0) (6,0,1)

(0,0,7)

(1,0,6)

(0,1,6)(0,7,0) ・・・

・・

・・

ハノイの塔の最小手数 = ハノイグラフの最短経路

18

ダイクストラのアルゴリズム  グラフ上の二点間の最短距離を求め

る アルゴリズム

基準点S1

S2

S3

63

3

41 (5)

(4)(9)

( ) 内の数字 ・・・ 基準点からの距離

19

実験結果

0.015

13

5

-

-

10

1696

41

9

772.60.140処理時間 [s]

3325179移動回数8764円盤枚数 n

(CPU:2.01GHz メモリ :1.21GB OS:Microsoft WindowsXP SP3)

4 本ハノイグラフにおける最短手数の導出結果

20

4 本ハノイの処理時間

0

200

400

600

800

1000

1200

1400

1600

1800

0 2 4 6 8 10

â~î’ ñáêî[ñá]

èà óù éû ä‘.[s]

0 0 0 0 0 0.015

0.14

2.6

77

1696

21(CPU:2.01GHz メモリ :1.21GB OS:Microsoft WindowsXP SP3)

5 本ハノイグラフにおける最短手数の導出結果

円盤枚数 n 4 5 6 7 8 9 10

移動回数 7 11 15 19 23 27 -

処理時間 [s]

0 0.083 2.2 143 3756 100150 -

柱 5 本の場合

22

5 本ハノイの処理時間

0

20000

40000

60000

80000

100000

120000

0 2 4 6 8 10

â~î’ ñáêî [ñá]

èàóùéûä‘ [s]

0 0 0 0 0 0.083

2.2 143

3756

100150

23

まとめ

○ 一般的な k 本ハノイについてハノイグラフの生成法を示した

○ 最短経路導出のプログラムを実装し,  柱 4 本と 5 本のハノイの塔について,

n < 9 での最短経路を導出した   

24

今後の課題

  ○ハノイグラフの最短経路を理論的に導   出する  ○最短経路導出のアルゴリズムや測定   環境の改善を行い、導出にかかる時間   を短縮する