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(-)にはなりにくい. • 低温プロセスは,受理率によって支えられている.