Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
おねえさん問題の乱択近似
柴田友樹1, 山内由紀子2, 来嶋秀治2, 山下雅史2
九州大学 工学部電気情報工学科 (1:研究当時)
大学院システム情報科学研究院 (2)
初夏のワークショップ June 15, 2016
[参照]
柴田友樹,山内由紀子, 来嶋秀治, 山下雅史, 格子上の経路数え上げの乱択近似--24時間で解くおねえさん問題, 2015年度 冬のLAシンポジウム, 京都大学数理解析研究所, 2016年1月28日.
柴田 友樹, 格子上の経路数え上げの乱択近似, 九州大学工学部電気情報工学科卒業論文, 2016年3月.
おねえさん問題 2
画像引用 : 日本科学未来館, 『フカシギの数え方』 おねえさんといっしょ! みんなで数えてみよう!, YouTube, 2012/9/10公開, https://www.youtube.com/watch?v=Q4gTV4r0zRs
格子グラフ上で左上(𝑠𝑠)から右下(𝑡𝑡)を結ぶ,
𝑠𝑠-𝑡𝑡単純経路の総数を求めよ.
*H. Iwashita, Y. Nakazawa, J. Kuwahara, T. Uno, S. Minato, Efficient computation of the number of paths in a grid graph with minimal perfect hash functions, Hokkaido University TCS Technical Report, TCS-TR-A-13-64, 2013.
おねえさん問題の答え(𝑛𝑛 = 1~26) 3
0 1
1 2
2 12
3 18
4
4 85
12
5 12
6281
6
6 57
5780
564
7 78
9360
0532
52
8 32
6659
8486
9816
42
9 41
0442
0870
2632
4968
04
10 1
5687
5803
0464
7500
1321
4100
11 1
8241
3291
5142
4804
9241
4708
8523
6
12 6
4528
0393
4327
0018
9633
5718
5158
4821
18
13 6
9450
6647
6152
1361
6642
7470
1548
9073
5899
6488
14 2
2744
9714
6768
1273
9631
8264
5932
7989
8633
8761
3323
440
15 2
2667
4556
8862
6727
4637
4567
3967
1309
8934
8663
2488
5408
3190
28
16 6
8745
4456
0914
9931
5876
3156
3132
4892
3282
4587
9459
6809
9457
2854
1930
6
17 6
3448
1461
1237
9639
7131
0297
5407
9552
4400
4494
4398
6866
4806
9364
6369
3878
5533
6
18 1
7821
1284
0842
0651
2989
3384
9466
5232
5275
1678
3806
5704
7676
5593
1452
4746
0582
6692
7825
32
19 1
5233
4497
1704
8799
9308
0742
8103
1922
9690
8994
5425
5323
2945
5577
6029
8667
3735
5060
5928
7756
9255
844
20 3
9628
9219
9823
0375
6020
7299
5171
3336
2502
1063
3970
5739
4637
7151
5237
1133
7701
0682
3640
3570
6704
4720
6494
0398
21 3
1374
7510
5013
7102
7204
2053
8137
3822
1451
3103
3121
9369
8723
6530
6135
1991
3464
3337
9389
3857
9396
5576
9922
4602
1316
4638
68
22 7
5597
0286
6673
4533
9661
5191
2331
5222
6193
5310
3732
0724
0948
1167
3914
1047
9517
9257
9274
3631
2349
8703
8883
3176
3498
7271
1714
0443
9792
23 5
5435
4293
5523
7477
0099
1431
8489
0614
3793
0690
3799
7096
4331
3325
5695
8646
4840
0840
7334
8855
4456
6386
9240
2087
5711
2420
6008
5408
5134
8293
3945
720
24 1
2371
7122
3120
7064
7583
3874
4862
6735
7083
2373
0419
8901
2943
5396
7872
7080
4849
5169
5515
9304
8564
1394
5507
9215
3037
1918
5802
8212
5122
8092
6600
3045
8138
6791
094
25 8
4029
7485
7881
1334
7100
7083
7454
3680
9127
2960
5429
3775
3835
4982
4742
6239
3702
8497
8982
1525
6929
1785
7708
3970
9601
2162
5602
5060
2731
6549
7184
0210
6494
0499
7837
5604
2474
08
26 1
7369
9315
8627
9272
9311
7544
0421
2364
9890
0372
2295
8828
8140
6046
6370
3720
9103
4241
3276
1347
6278
9218
1934
9800
6107
0822
9622
3143
3804
9134
8290
0267
2193
1129
6277
0873
8890
8539
0810
8906
396
http://oeis.org/A007764/b007764.txt
余白 4
乱択近似のアイデア
記法の準備 Ω = {𝑠𝑠𝑡𝑡 単純経路} Ξ𝑘𝑘 = 長さ𝑘𝑘以下の𝑠𝑠𝑡𝑡 単純経路
𝑘𝑘 = 2𝑛𝑛,2𝑛𝑛 + 2,2𝑛𝑛 + 4, … , 𝐿𝐿∗ ただし,𝐿𝐿∗は最長路の長さ:
𝐿𝐿∗ = � 𝑛𝑛 + 1 2 − 1 (𝑛𝑛が奇数)𝑛𝑛 + 1 2 − 2 (𝑛𝑛が偶数)
自己帰着(self-reducibility)
Ξ𝐿𝐿∗ =Ξ𝐿𝐿∗Ξ𝐿𝐿∗−2
⋅Ξ𝐿𝐿∗−2Ξ𝐿𝐿∗−4
⋯Ξ2𝑛𝑛+4Ξ2𝑛𝑛+2
⋅Ξ2𝑛𝑛+2Ξ2𝑛𝑛
⋅ Ξ2𝑛𝑛
アイデア 2. Ξ𝑘𝑘Ξ𝑘𝑘+2
= [Ξ𝑘𝑘+2の中で長さ𝑘𝑘以下の𝑠𝑠-𝑡𝑡単純経路の割合]
本研究: マルコフ連鎖モンテカルロ(MCMC)法を用いた 乱択近似数え上げアルゴリズムの提案.
5
つまり,求めたいものは Ω (= |Ξ𝐿𝐿∗|).
アイデア 1. Ξ2𝑛𝑛 = 最短経路の個数
= 2𝑛𝑛𝑛𝑛
逆数を考えると...
乱択近似アルゴリズム 6
パラメータ: 𝜏𝜏 (マルコフ連鎖の遷移回数), 𝑀𝑀 (モンテカルロ法のサンプル).
入力:𝑛𝑛 (格子のサイズ). 出力:𝑍𝑍 (経路総数の近似値). Set 𝑍𝑍 ≔ 1; For (𝑘𝑘 = 2𝑛𝑛 + 2; 𝑘𝑘 < 𝐿𝐿∗; 𝑘𝑘 ≔ 𝑘𝑘 + 2){
Set 𝑋𝑋 ∈ Ξ𝑘𝑘; (𝑋𝑋はマルコフ連鎖MCの初期状態) Set 𝑆𝑆 ≔ 0; (Sはカウンター) for(i=0; i<M; i++){
for(j=0; j<𝜏𝜏; j++){ 𝑋𝑋を更新(マルコフ連鎖の1回遷移)
} if(𝑋𝑋 ∈ Ξ𝑘𝑘−2) S++;
}
Set 𝑍𝑍 ≔ 𝑍𝑍 ∗ 𝑀𝑀𝑆𝑆
;
} Output 𝑍𝑍;
Ξ𝑘𝑘からの一様サンプリング
をしている
近似精度保証 7
定理 任意の 𝜖𝜖 (0 < 𝜖𝜖 < 1)と任意の𝛿𝛿 (0 < 𝛿𝛿 < 1)に対して, Ξ𝑘𝑘 (𝑘𝑘 = 2𝑛𝑛,2𝑛𝑛 + 2, … , 𝐿𝐿∗)からの一様標本の数を 𝑀𝑀 = 12𝑛𝑛3 2𝑛𝑛2𝜖𝜖−1 2 ln 𝑛𝑛2𝛿𝛿−1 とすると,近似解𝑍𝑍は
Pr 1 − 𝜖𝜖 |Ω| ≤ 𝑍𝑍 ≤ 1 + 𝜖𝜖 |Ω| ≥ 1 − 𝛿𝛿 を満たす.
余白 8
マルコフ連鎖モンテカルロ法 9
目標
Ξ𝑘𝑘からの一様サンプリング
x
x
x
x
x
・・・
漸近的に定常分布
マルコフ連鎖モンテカルロ法のアイデア 1. 目的の分布を定常分布にもつマルコフ連鎖を設計. 2. 十分な回数推移させ、極限分布からサンプリング.
状態空間
準備: s-t単純経路の表現 10
s
t
s
t
𝑠𝑠-𝑡𝑡単純経路
単連結な色塗り
マルコフ連鎖の状態遷移 11
c
s
t
c
s
t
マルコフ連鎖𝑀𝑀𝑀𝑀
状態空間: Ξ𝑘𝑘,
状態遷移: 𝑋𝑋 → 𝑋𝑋𝑋は以下のように定められる;
1. セルcを一様ランダムに選ぶ.
2. 状態𝑌𝑌を𝑋𝑋のセルcを反転したものとする.
3. 𝑌𝑌 ∈ Ξ𝑘𝑘なら𝑋𝑋′ = 𝑌𝑌,そうでなければ𝑋𝑋′ = 𝑋𝑋とする.
Check! • 𝑌𝑌(の境界線)は𝑠𝑠-𝑡𝑡経路 • 長さ𝑘𝑘以下
実装上は高速化のため, もう少しべたに場合分けする.
極限分布 12
定理
マルコフ連鎖MCの極限分布はΞ𝑘𝑘上の一様分布
証明の概略
• マルコフ連鎖MCは既約 (Ξ𝑘𝑘上で(強)連結)
• マルコフ連鎖MCは非周期的
• マルコフ連鎖MCは詳細釣合の式 ∀𝑋𝑋,𝑌𝑌 ∈ Ξ𝑘𝑘 , Pr 𝑋𝑋 → 𝑌𝑌 = Pr(𝑌𝑌 → 𝑋𝑋)
を満たす.
MCMC法設計の常套手段
• 既約で非周期的な有限状態マルコフ連鎖は一意の極限分布をもつ.
• 詳細釣合の式 ∀𝑋𝑋,𝑌𝑌 ∈ 𝑆𝑆, Pr 𝑋𝑋 → 𝑌𝑌 = Pr 𝑌𝑌 → 𝑋𝑋
を満たせば,定常分布は𝑆𝑆上の一様分布
マルコフ連鎖MCのmixing time(𝜏𝜏)は未解決
計算機実験 13
𝒏𝒏 真の解* 近似解 実行時間
25 8.40 * 10150 8.55 * 10150 1h 27m
26 1.74 * 10163 1.78 * 10163 1h 33m
30 unknown 2.09 * 𝟏𝟏𝟏𝟏𝟐𝟐𝟏𝟏𝟕𝟕 2h 4m
50 unknown 6.35 * 𝟏𝟏𝟏𝟏𝟔𝟔𝟏𝟏𝟔𝟔 5h 44m
100 unknown 6.07 * 𝟏𝟏𝟏𝟏𝟐𝟐𝟐𝟐𝟏𝟏𝟐𝟐 23h 20m
200 unknown 1.196 * 𝟏𝟏𝟏𝟏9667 96h
実行時間(理論値)は O 𝑀𝑀𝜏𝜏𝑛𝑛2
マルコフ連鎖の遷移回数 𝜏𝜏 = 30
サンプリング回数 𝑀𝑀 = 107
(近似解は5回の平均)
おねえさんに教えてあげたい... 14
n と log10 𝑍𝑍の関係
格子数 n×n における経路数 𝑍𝑍 :n = 1~26 の正しい経路数 :n = 1~200の近似値
:放物線 𝑦𝑦 = 0.2415𝑥𝑥2
経路の総数はおよそ100.2415𝑛𝑛2 ≃ 1.744𝑛𝑛2個 (予想)
3予想 Ω ≥ 3𝑛𝑛2
15
Ω log10 Ω log10 Ω𝑛𝑛2
1 2 0.301030 0.301030 2 12 1.079181 0.269795 3 184 2.264818 0.251646 4 8512 3.930032 0.245627 5 1262816 6.101340 0.244054 6 575780564 8.760257 0.243340 7 7.8936E+11 11.897275 0.242802 8 3.2666E+15 15.514096 0.242408 9 4.10442E+19 19.613252 0.242139
10 1.56876E+24 24.195556 0.241956 11 1.82413E+29 29.261056 0.241827 12 6.4528E+34 34.809748 0.241734 13 6.94507E+40 40.841676 0.241667 14 2.2745E+47 47.356885 0.241617 15 2.26675E+54 54.355403 0.241580 16 6.87454E+61 61.837244 0.241552 17 6.34481E+69 69.802419 0.241531 18 1.78211E+78 78.250935 0.241515 19 1.52334E+87 87.182798 0.241504 20 3.96289E+96 96.598012 0.241495 21 3.1375E+106 106.496580 0.241489 22 7.5597E+116 116.878505 0.241485 23 5.5435E+127 127.743787 0.241482 24 1.2372E+139 139.092430 0.241480 25 8.403E+150 150.924433 0.241479
3予想 Ω ≥ 3𝑛𝑛2
16
0.000000
20.000000
40.000000
60.000000
80.000000
100.000000
120.000000
140.000000
160.000000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
log_10
log_10
log10 Ω のプロット
0.000000
0.050000
0.100000
0.150000
0.200000
0.250000
0.300000
0.350000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
log_10/n^2
log_10/n^2
log10 Ω𝑛𝑛2
のプロット