Transcript ITindex(+)

適応的温度調節機能を持つ
並列シミュレーテッドアニーリング
- Parallel SA with an Adaptive Temperature –
同志社大学工学部 三木 光範
同志社大学工学部 廣安 知之
○同志社大学大学院 輪湖 純也
最適化とは
• 与えられた条件の下で、
対象とする問題の中から最も良いものを探すこと
最適化問題
■ 組合せ最適化問題
・スケジューリング問題
■ 連続最適化問題
・タンパク質の立体構造予測
ヒューリスティック探索
• 遺伝的アルゴリズム(GA)
• シミュレーテッドアニーリング(SA)
Simulated Annealing(SA)
高温
• SAのアルゴリズム
1.解の生成
2.エネルギーと温度から受理判定
ΔE ≦ 0
1
受理確率:P = exp
- ΔE
温度
(
)
ΔE=Enext - Ecurrent
ΔE > 0
低温
3.推移
4.温度パラメータを減少(クーリング)
特徴
温度パラメータと,解の動きが密接に関係
温度パラメータ
・組合せ最適化問題にSAを適用した時の問題点
(1)計算コストが高い
(2)温度スケジュールの設定が困難
・組合せ最適化問題(TSP)にSAを適用した時,
特定の温度のみの解探索で良好な解を得ることができる
[Connolly ‘90,Mark ‘00]
重要温度領域
実験
対象問題をJSPとして
一定温度SAで
得られる解精度を比較
ジョブショップスケジューリング問題(JSP)
• n個の仕事(Job)をm台の機械(Machine)で処理
• 制約条件
:各仕事を処理する機械の順序(技術的順序)
• すべての仕事を完成させるまでの時間(Makespan)
を最小にするスケジュールを求める
ジョブショップスケジューリング問題(JSP)
• n個の仕事(Job)をm台の機械(Machine)で処理
• 制約条件
:各仕事を処理する機械の順序(技術的順序)
• すべての仕事を完成させるまでの時間(Makespan)
を最小にするスケジュールを求める
JSPにおける重要温度領域
FT10
ABZ9
JSPにも重要温度領域が存在することを確認
•重要温度領域は,問題によって値,範囲が異なる
•重要温度領域を特定するには多くの予備実験が必要
研究目的
■最適な温度スケジュール
温度スケジュールの設定を自動化
重要温度領域を集中的に探索することで性能向上
重要温度領域を自律的に探索するメカニズムを考案
■SAの並列化
計算コストの削減を図る
適応的温度調節機能を持つ並列SA
Parallel SA with an Adaptive Temperature (PSA/AT)
PSA/ATの概要
高
温
度
低
・各プロセスで一定温度SAを実行
・重要温度指数を計算
PSA/ATの概要
高
温
度
低
・適応的温度調節メカニズム
温度が適切 → 温度を維持
温度が高い → 温度を下げる
温度が低い → 温度を上げる
PSA/ATの概要
高
温
度
低
・適応的温度調節メカニズム
温度が適切 → 温度を維持
温度が高い → 温度を下げる
温度が低い → 温度を上げる
PSA/ATの概要
高
温
度
低
重要温度領域に探索温度範囲を集中
重要温度領域の特徴
• 高温度,重要温度,低温度の一定温度SAの解の動きを比較
2
( ×10 )
重要温度領域の特徴
(1) 解品質が良好な領域に存在 (2) 良く解の遷移を受理
重要温度指数(Important Temperature Index)
• 解の動きを評価する値
• ITindex(+),ITindex(-)の2つからなる
• 計算方法:受理時に計算
IF Average – Energy > 0
ITindex(+)を1加算
ELSE
ITindex(ー)を1加算
受理率:
p = (ITindex(+) + ITindex(ー))/ N
N : 同期周期
• 基準値は,全プロセスの解平均
重要温度指数
• 解の動きを評価する値
• ITindex(+),ITindex(-)の2つからなる
• 計算方法:受理時に計算
IF Average – Energy > 0
ITindex(+)を1加算
ELSE
ITindex(ー)を1加算
受理率:
p = (ITindex(+) + ITindex(ー))/ N
N : 同期周期
• 基準値は,全プロセスの解平均
重要温度指数
• 解の動きを評価する値
• ITindex(+),ITindex(-)の2つからなる
• 計算方法:受理時に計算
IF Average – Energy > 0
ITindex(+)を1加算
ELSE
ITindex(ー)を1加算
受理率:
p = (ITindex(+) + ITindex(ー))/ N
N : 同期周期
• 基準値は,全プロセスの解平均
重要温度指数
• 解の動きを評価する値
• ITindex(+),ITindex(-)の2つからなる
• 計算方法:受理時に計算
IF Average – Energy > 0
ITindex(+)を1加算
ELSE
ITindex(ー)を1加算
受理率:
p = (ITindex(+) + ITindex(ー))/ N
N : 同期周期
• 基準値は,全プロセスの解平均
次周期の温度割り当て
• 温度と解の推移は密接に関係
• 重要温度領域での探索は,解品質が良好な領域でよく動く
次周期の温度割り当て
• 温度によって,重要温度指数の符号が異なる
• 重要温度での探索では,ITindex(+)>ITindex(-)になる
次周期の温度割り当て
• 最高温度,最低温度のプロセスが持つ
重要温度指数と受理率によって次周期の温度範囲を設定
• 最高温度と最低温度の間は等比的に割り当て
解交換モデル
• Shuffle model
– ランダムに2つのプロセスを選択し,解交換
高
温
度
低
解交換モデル
• Shuffle model
– ランダムに2つのプロセスを選択し,解交換
高
温
度
低
解交換モデル
• Shuffle model
– ランダムに2つのプロセスを選択し,解交換
高
温
度
低
PSA/ATの概要
高
温
度
低
重要温度領域に探索温度範囲を集中
数値実験
• 解探索能力の比較
• 対象問題:JSP (FT10,ORB1,LA21,LA40,ABZ9)
比較手法
- PSA/AT(提案手法)
- 逐次SA(Sequential SA:SSA)
高温から低温へクーリングを行う
- PSA(Parallel SA)
複数のプロセスが独立に逐次SAを実行
- TPSA
代表的な並列SAモデル
Temperature Parallel SA (TPSA)
高
温
度
低
1
P=
•並列処理との高い親和性
exp( - ΔT・ΔE
T・T’
ΔT・ΔE<0
) otherwise
パラメータ
PSA/AT
TPSA
PSA
生成処理(近傍構造)
クリティカルブロック近傍 [ 山田 '94 ]
解の修正
GT法 [ Giffler and Tompson '60 ]
SSA
総探索数
1024000
プロセス数
温度変化周期
200
32
1
1000
32000
最高温度
改悪方向への遷移で増加するエネルギーの
最大値を50%の確率で受理する温度
最低温度
クーリング周期で最低1回は
改悪方向への遷移を受理する温度
解探索能力の比較
誤差率(%)
4.0
3.0
SSA
PSA
TPSA
PSA/AT
2.0
1.0
0.0
ft10
orb01
la21
対象問題
la40
abz9
提案手法であるPSA/ATは,
ほぼ全ての問題に対して他の手法より良好な性能を得る
温度スケジュール(ft10)
PSA/AT
TPSA
PSA/AT
:温度が特定範囲に収束
TPSA
:解によって,推移する温度が異なる
PSA,SSA :高温から低温まで一定割合で減少
PSA
温度スケジュール(ft10)
PSA/AT
TPSA
PSA/AT
:温度が特定範囲に収束
TPSA
:解によって,推移する温度が異なる
PSA,SSA :高温から低温まで一定割合で減少
PSA
温度スケジュール(ft10)
PSA/AT
TPSA
PSA
PSA/ATは重要温度領域に探索温度範囲が集中
巡回セールスマン問題(TSP)への適用
対象問題:
TSPs (eil101,kroA200,lin318,pr439,d657)
PSA/AT,TPSA
生成処理(近傍構造)
2ー change 近傍(小西,97)
プロセス数
32
温度変化周期
1プロセスの探索数
都市数×20
同期周期×160
最高温度
改悪方向への遷移で増加するエネルギーの
最大値を50%の確率で受理する温度
最低温度
クーリング周期で最低1回は
改悪方向への遷移を受理する温度
解探索能力の比較(TSPs)
3.0
誤差率(%)
TPSA
PSA/AT
2.0
1.0
0.0
eil101
kroA200
lin318
対象問題
pr439
d657
提案手法であるPSA/ATは,
ほぼ全ての問題に対してTPSAより良好な性能を得る
まとめ
提案手法:
適応的温度調節機能を持つ並列SA(PSA/AT)
提案手法の特徴
•並列処理に適した並列SAモデル
•重要温度指数に基づく温度範囲設定
•探索温度範囲が重要温度領域に集中
数値実験結果
•JSP,TSPを対象問題として解探索能力を比較
•PSA/ATは他の手法よりも良好な性能を示す
:提案手法の設定する
温度スケジュールは他の手法より優れている
次周期の温度割り当て
• 最高温度の決定
IF ITindex(+)_max > ITindex(-)_max
最高温度を維持する
ELSE
最高温度を下げる
IF p_max < 0.05
最高温度を上げる
• 最低温度の決定
IF ITindex(+)_min > ITindex(-)_min
最低温度を維持する
ELSE
最低温度を上げる
IF p_min < 0.05
最低温度を下げる
温度の上下幅
initLogMAX T  log
initLogMIN T  log
10
10
( initMAXT )
( initMINT )
LogRange
 ( initLogMAX T  initLogMIN T ) /( Temperatur eSteps  1)
LogMAXT
 log
LogMAXT
  LogRange
MAXT  10
LogMAXT
10
( MAXT )
LogMINT
 log
LogMINT
  LogRange
MINT  10
LogMINT
10
( MINT )
PSA/ATのパラメータ(温度交換周期)
Error ratio (%)
1
ft10
0.8
0.6
0.4
0.2
0
0
50
100
150
Num. of temperature exchange
• 温度交換周期は,
解精度にさほど影響を与えない
200
PSA/ATのパラメータ(温度交換周期)
Error ratio (%)
1
kroA200
0.8
0.6
0.4
0.2
0
0
50
100
150
200
Num. of temperature exchange
• 温度交換周期は,短めにとるのが良い
受理率の推移(ft10)
• 受理率0.05を実現する温度は,
重要温度領域よりも低い
受理率の推移(eil101)
• 受理率0.05を実現する温度は,
重要温度領域よりも低い
重要温度指数の特徴
• 探索序盤の重要温度指数
ITindex(+)
ITindex
150
ITindex(-)
ITindex(+) - ITindex(-)
100
50
0
0.1
1
10
Temperature
100
1000
重要温度指数の特徴
• 探索中盤の重要温度指数
100
ITindex(+)
ITindex
ITindex(-)
ITindex(+) - ITindex(-)
50
0
0.1
1
10
Temperature
100
1000
重要温度指数の特徴
• 探索終盤の重要温度指数
100
ITindex(+)
ITindex
ITindex(-)
ITindex(+) - ITindex(-)
50
0
0.1
1
10
Temperature
100
1000
重要温度領域を複数持つ問題
eil51を対象とし,スケールを拡大した組合せにより
疎密な構成となる問題を作成
eil51を4つ隣接
254都市問題
eil51を800倍に拡大
問題名:eil51*4-800
重要温度領域を複数持つ問題
eil51を対象とし,スケールを拡大した組合せにより
疎密な構成となる問題を作成
eil51を4つ隣接
254都市問題
eil51を800倍に拡大
問題名:eil51*4-800
複数の重要温度領域を確認
• 疎密な構成の都市配置を持つ問題(eil51*4-800)
Distance
(×105)
Temperature
Temperature
• 重要温度領域が2つ存在することを確認
解探索能力の比較(eil51*4-800)
10回試行の平均値
345000
344800
TPSA
PSA/AT
344600
344400
344200
344000
eil51*4-800
対象問題
重要温度領域を複数持つ問題に対しては,
TPSAの方が,PSA/ATよりも解探索能力が高い
PSA/ATの温度スケジュール(eil51*4-800)
• 影響の強い方の重要温度領域に収束してしまう
逐次SAと単一温度SAの比較
• 重要温度のみの単一温度SAとSAを比較
8%
温度1.5
近似解との誤差
7%
逐次SA
一定温度SA
温度1200
7%
7%
7%
7%
6%
6%
6%
6%
6%
eil51*4-800
単一温度SAで良好な解が得られない
都市配置が疎密な構成である問題は
単一温度で良好な解が得られない
問題名
JSPに重要温度領域は2つあるか
•
重要温度のみの単一温度SAとSAを比較
逐次SA
単一温度SA
最適解からの誤差
25
20
15
10
5
0
FT10
ORB1
ABZ9
問題名
• 全ての問題に対して,
重要温度のみの単一温度SAはSAよりも良好な性能
• JSPにおいて重要温度領域を
複数持つような例は確認されていない
解の表現方法
・各機械における仕事の投入順序だけをもたせる
・CB近傍による遷移では,
実行不可能なスケジュールが生じる可能性がある
→ GT法により解を修正
実行不可能なスケジュールの例
・実行不可能スケジュール
・GT法による修正
クリティカルブロック近傍
・クリティカルパス
:スケジュールを完了するために
遅らせることのできない作業列
・クリティカルブロック
:クリティカルパス上にある同一機械上の作業列
クリティカルブロック近傍
■クリティカルブロック内で定義
・AS近傍:連続する2つの作業の順序を反転
・CB近傍:任意の作業を,ブロックの一番先頭もしくは
一番最後に移動
■その他
・ランダム近傍:ある機械上の任意の2つの作業を反転
クリティカルブロック近傍の解探索能力
・20回試行の平均
■FT20
1020
M a k e s p a n (2 0 tr ia l,a ve r a g e )
M a k e s p a n (2 0 tr ia l,a ve r a g e )
■FT10
990
960
930
900
C BS A
ASSA
M e th o d s
RNSA
1280
1250
1220
1190
1160
1130
1100
C BS A
ASSA
M e th o d s
・クリティカルブロックに注目した近傍は精度がよい
・CBSAが最も優れた性能を示す
RNSA
重要温度領域の解探索能力
• 重要温度のみの一定温度SA(SA/OFT)とSAを比較
• 重要温度領域のみの探索で十分な解探索能力を持つ
PSA/ATの収束温度が重要温度領域よりやや下になる理由
• 温度スケジュールから
高温プロセスは,削られる傾向にある.
それを,受理率によって再度加熱している.
つまり,Itindex(+) > Itindex(-)にはなりにくい.
• 低温プロセスは,受理率によって支えられている.