24
1 東東東東東東 東東東東 東東東東 東東東東 2009/3/3 東東東東東東 東東東 東東東東東東 東東東東 () 東東東東東東東東東東東東東東東東東

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

1

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

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

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

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

2

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

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

3

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

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

ハノイの塔

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

4

k 本ハノイの塔

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

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

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

5

研究内容

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

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

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

6

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

ハノイグラフ

状態の符号化 124

7

(7, 0, 0)

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

○ ○

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

7

ハノイグラフ(柱 3 本)

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

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

(Wolfram, MathWorld より)

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

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 本ハノイの塔に対して、ハノイグラフの生成法を示す

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

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 のときのハノイグラフの生成法

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

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)

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

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)・

・・

・・

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

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

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

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)

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

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

辺が存在する条件は?

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

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

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

16

定理の略証∉∉

i1

j1

i1

j1

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

in

aj1,j2, ・・・ ,j

n

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

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

(7,0,0)

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

(0,0,7)

(1,0,6)

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

・・

・・

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

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

18

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

る アルゴリズム

基準点S1

S2

S3

63

3

41 (5)

(4)(9)

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

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

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 本ハノイグラフにおける最短手数の導出結果

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

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

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

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 本の場合

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

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

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

23

まとめ

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

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

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

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

24

今後の課題

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