Slide 28
Slide 28 text
Fixstars Group www.fixstars.com
Copyright © Fixstars Group
並列化
28
• 並列焼きなまし法を使用
• 悪い方向への更新確率をスレッド毎に設定して並列に計算、ときどきスレッド間の盤面の比較と交換を行う
• 逐次アルゴリズムに比べて盤面あたりの近傍探索回数は減るが、探索できる盤面は増える
• 実行時間によって変化するパラメータがないので途中から再開することが可能
• 今回はN=32を利用し、温度パラメータの極値を(逐次)焼きなまし法と揃えて実験した
x1
, ..., xN
= 初期状態
t1
, ..., tN
= 温度パラメータ(降順に設定する)
loop:
parallel for i in range(N):
xi
= SimulatedAnnealing(xi
, ti
)
for i in range(0 または 1, N, 2):
if E(xi
) > E(xi+1
) or p(E(xi
), E(xi+1
), ti
, ti+1
):
xi
, xi+1
= xi+1
, xi