Document

温度並列シミュレーテッドアニーリング
における重要温度
三木 光範 (同志社大学)
廣安 知之 (同志社大学)
○ 窪田 耕明 (同志社大学大学院)
吉田 武史 (同志社大学)
研究背景
最適化問題
ヒューリスティック探索手法
シミュレーテッドアニーリング(SA) ,GA,etc.
高い計算負荷で並列化は必須
並列アルゴリズム
並列SA ,分散GA,etc.
温度並列SA(TPSA)
SAの基本アルゴリズム
SA:焼きなましのアナロジーを模倣
・生成処理
・受理判定
減少
エネルギーが
・温度のクーリング
小
の確率で受理
SAの欠点
大
Energy
増加
必ず受理
-(Enext-Ecurrent)
exp
Temperature
・計算時間がかかる
・温度設定が困難
局所解
最適解
温度並列SA(TPSA)
T1
Temparature
TPSA
SA
・生成処理
・受理判定
・解交換
T2
T3
T4
T5
T6
Time
各プロセスに温度を割り当てる
TPSAの利点
・並列処理との親和性が高い
・温度スケジュールの自動化
温度パラメータの設定が重要
Temparature
TPSA
T1
T2
T3
T4
T5
T6
Time
重要温度
Temparature
一定温度でのアニーリングが有効
T1
T2
T3
T4
T5
T6
研究目的
無駄な探索
効率の良い探索
(重要温度)
局所解に収束
Time
・巡回セールスマン問題において重要温度の存在を確認する.
・重要温度の規則性を検証する.
TPSAの適切な温度パラメータ設定が可能!
巡回セールスマン問題(TSP)
eil51(51都市,最適解:426)
初期解
最適解
80
80
70
70
60
60
50
50
40
40
30
30
20
20
10
10
0
0
0
10
20
30
40
50
60
70
80
0
10
20
30
40
50
60
70
80
重要温度を確認する実験
解交換を行なわないTPSA
使用するパラメータ
Temparature
T1
T2
最高温度:1.0E+6
T3
最低温度:1.0E-2
T4
温度数:32
T5
T6
計算回数:160000回
Time
実験結果
経路長
eil51 (TSPLIB)
750
700
650
600
550
500
450
400
1.0E-02 1.0E-01 1.0E+00 1.0E+01 1.0E+02 1.0E+03 1.0E+04 1.0E+05 1.0E+06
温度
重要温度を確認できた
各問題での重要温度
問題
都市数
eil51
最適解
重要温度
426
2
kroA100
100
21282
50
pr152
152
73682
130
bier127
127
118282
180
76
108159
300
pr76
1.最適解に比例?
2.都市数に反比例?
最適解/都市数
=
51
重要温度は
平均経路長
重要温度は平均経路長と関係がある?
問題
eil51
平均経路長と重要温度
都市数
最適解
重要温度
51
426
2
kroA100
100
21282
50
pr152
152
73682
130
bier127
127
118282
180
76
108159
300
pr76
(pr76)
(bier127)
(pr152)
(kroA100)
(eil51)
1
傾き 4 の直線
平均経路長と重要温度
・一般的なTSPでは
最適解と都市数(平均経路長)から
重要温度を導くことができる
1
重要温度 = ×(最適解/都市数)
4
特殊な問題ではどうか?
テスト問題による検証
eil51を使用してテスト問題を作成
都市数を2倍にしたeil51
・各都市に近接して都市を付加 (eil51-A)
・各都市の中間点に都市を付加 (eil51-B)
解交換を行なわないTPSAを適用
eil51-A
各都市に近接して都市を付加(102都市)
eil51-B 最適解:426
80
70
60
50
40
30
20
10
0
0
10
20
30
40
50
60
70
80
eil51-B
各都市の中間点に都市を付加(102都市)
eil51 最適解:426
80
80
70
70
60
60
50
50
40
40
30
30
20
20
10
10
0
0
0
10
20
30
40
50
60
70
eil51-C 最適解:426
80
0
10
20
30
40
50
60
70
80
実験結果
実験結果
・eil51-A → 重要温度は変化しない.
重要温度は都市数に反比例していない?
・eil51-B → 重要温度の幅が広くなる.
重要温度は高くてもいい?
考察
1
1
最適解:8
都市数:8
平均経路長 = 1
実際の各経路長
=
最適解:8
都市数:8
平均経路長 = 1
実際の各経路長
≠
1
1
2.1
1.8
0.2
計算で求めた
平均経路長
計算で求めた
平均経路長
eil51の経路長分布
10
平均経路長=426÷51=8.4
頻度 (回 )
8
6
4
2
0
0.1
2.1
4.1
6.1
8.1
10.1
12.1
各経路長
14.1
16.1
18.1
eil51-A(近接)の経路長分布
35
平均経路長=426÷102=4.2
30
頻度 (回 )
25
20
15
10
5
0
0.1
2.1
4.1
6.1
8.1
10.1 12.1 14.1 16.1 18.1
各経路長
考察(eil51-A)
35
平均経路長=426÷102=4.2
30
頻度 (回 )
25
20
温度に関係なく結ばれる経路長
15
10
5
0
0.1
2.1
4.1
6.1
8.1
10.1
12.1
14.1
16.1
18.1
各経路長
経路長にばらつきがあり
平均経路長と異なる
平均経路長から重要温度は
計算できない!
eil51-B(中間点)の経路長分布
10
平均経路長=426÷102=4.2
頻度(回)
8
6
経路長にばらつきがなく
平均経路長と等しい
4
2
0
0.1
2.1
4.1
6.1
8.1
10.1
12.1
各経路長
14.1
16.1
18.1
考察(eil51-B)
各都市の中間点に都市を付加
80
70
60
50
問題が簡単になった
(迷うような経路がない)
40
30
20
10
多少の温度差に影響を受けない
0
0
10
20
30
40
50
60
問題が簡単になる
70
80
局所探索で解が求まる
(重要温度はなくなる)
考察
eil51-A 小さい経路長は考慮されない
特殊な問題
重要温度が変わらない
eil51-B 問題が簡単になる
重要温度の幅が広くなる
平均経路長(最適解/都市数)が使えない
実際にどのような大きさの組み換えがあるのか?
経路長の組み換えによって生じる
エネルギー(ΔE)が重要
結論
・TSPにおいて重要温度がある
・特殊なTSPに関しては,組み換えで生じる
エネルギー(ΔE)が重要
・一般的なTSPにおいて,重要温度は
平均経路長(最適解/都市数)に依存している
1
重要温度 = ×(最適解/都市数)
4
TPSAの適切な温度パラメータを決める指針を示した.
補足資料
ばらつきによる重要温度の違い
問題が未知の場合は?
問題が未知の場合は?
・「局所解 ≒ 最適解」とする
局所解を用いることによる誤差で
重要温度は高温側にずれる
最高温度
重要温度は複数ある
1
1
生成されるΔEはほぼ同じ大きさ
1
1
2.1
生成されるΔEはばらばら
(大きいΔEと小さいΔE)
1.8
複数の重要温度
0.2
シミュレーテッドアニーリング(SA)
• 物理現象のモデル化
– 金属の焼きなまし(アニーリング)を計算機上で
シミュレート
温度 高
温度 低
ゆっくり冷やす
エネルギー 大
エネルギー 小
最適化に利用
kroA100
TSPLIB:
http://www.informatik.uni-heidelberg.de/groups/comopt/software/TSPLIB95/index.html
最適解:21282 重要温度:50
2500
60000
2000
50000
経路長
1500
1000
30000
500
0
20000
1.0E-02
-500
-500
40000
500
1500
2500
3500
4500
1.0E+00
1.0E+02 1.0E+04 1.0E+06
温度
pr152
TSPLIB:
http://www.informatik.uni-heidelberg.de/groups/comopt/software/TSPLIB95/index.html
最適解:73682 重要温度:130
12000
260000
10000
210000
経路長
8000
6000
160000
110000
4000
60000
2000
1.0E-02
1.0E+00
1.0E+02
温度
0
0
5000
10000
15000
20000
1.0E+04
1.0E+06
bier127
TSPLIB:
http://www.informatik.uni-heidelberg.de/groups/comopt/software/TSPLIB95/index.html
最適解:118282 重要温度:180
25000
300000
20000
経路長
250000
15000
10000
200000
150000
5000
100000
1.0E-02
0
1.0E+00
1.0E+02
温度
0
5000
10000
15000
20000
1.0E+04
1.0E+06
pr76
TSPLIB:
http://www.informatik.uni-heidelberg.de/groups/comopt/software/TSPLIB95/index.html
最適解:108159 重要温度:300
14000
250000
12000
経路長
10000
8000
6000
200000
150000
4000
100000
1.0E-02
2000
1.0E+00
1.0E+02
温度
0
0
5000
10000
15000
20000
1.0E+04
1.0E+06
eil51-A
最適解だけを変化
スケールを10000倍にしたeil51(51都市)
eil51 最適解:426
80
8000
70
7000
60
6000
50
5000
40
4000
30
3000
20
2000
10
1000
0
0
0
10
20
30
40
50
60
70
80
eil51-A 最適解:4260000
0
1000 2000 3000 4000 5000 6000 7000 8000
近傍
80
0.1
60
14
40
12
20
10
8
0
0
6
20
40
60
4
2
0
0.1
1.5
2.8
4.2
5.5
6.9
8.3
9.6
11.0
12.4
13.7
15.1
16.5
17.8
19.2
80
80
0.2
60
14
40
12
20
10
8
0
0
6
20
40
60
4
2
0
0.1
1.5
2.8
4.2
5.5
6.9
8.3
9.6
11.0
12.4
13.7
15.1
16.5
17.8
19.2
80
80
0.3
60
14
40
12
20
10
8
0
6
0
20
40
60
4
2
0
0.1
1.5
2.8
4.2
5.5
6.9
8.3
9.6
11.0
12.4
13.7
15.1
16.5
17.8
19.2
80
80
0.4
60
14
40
12
20
10
8
0
0
6
20
40
60
4
2
0
0.1
1.5
2.8
4.2
5.5
6.9
8.3
9.6
11.0
12.4
13.7
15.1
16.5
17.8
19.2
80
QAP
実験結果
実験結果
・eil51-A → 重要温度は10000倍になる.
重要温度は最適解に比例している.
・eil51-B → 重要温度は変化しない.
重要温度は都市数に反比例していない?
テスト問題による検証
1.スケールだけを10000倍にしたeil51 (eil51-A)
重要温度が最適解に比例しているか検証
2.都市数だけを2倍にしたeil51 (eil51-B)
重要温度が都市数に反比例しているか検証
解交換を行なわないTPSAを適用
テスト問題による検証
1.重要温度が最適解に比例しているか検証
スケールだけを10000倍にしたeil51 (eil51-A)
2.重要温度が都市数に反比例しているか検証
都市数だけを2倍にしたeil51
・各都市に近接して都市を付加 (eil51-B)
・各都市の中間点に都市を付加 (eil51-C)
解交換を行なわないTPSAを適用
実験結果
考察
経路長のばらつきが大きく,平均経路長と
経路長分布が大きく異なる問題(eil51-B)
計算で求めた平均経路長は使用できない
・経路長のばらつきが比較的小さい場合
最適解と都市数から
重要温度を導くことができる
1
重要温度 = ×(最適解/都市数)
4