1

シミュレートされたアニーリングを紹介されたばかりで、これまでのリソースからコードを読んでもよくわからないので、コードをもう一度掘り下げる前に、それをよりよく理解したいと思います。したがって、アルゴリズムに関する私の現在の理解を自由に修正してください。

シミュレーテッド アニーリング アルゴリズムには、あらかじめ定義された計算方法 (TSP での移動距離やバイオインフォマティクスでのコドン ペア分布など) に基づいて、最小 (または最大) スコアを達成するという全体的な目標があります。ただし、局所的な最適解にとらわれるのを避けるために、一時的に低い (または高い) スコアが受け入れられ、より優れた全体的な解が得られます。

追加の質問: ローカル オプティマはどのように克服されますか? ある確率に基づいてより高いスコアを受け入れることによってですか?(ここからかなりぼんやり)

これを調べてくれてありがとう..

4

1 に答える 1

3

あなたの説明は正しいですが、誤解を招く可能性があります。なぜなら、「より良いグローバルソリューションを達成するために」は、一時的な悪いスコアが役立つことをアルゴリズムが何らかの形で知っていることを示唆しているためです。そうではありません (できませんでした!)、実際、ほとんどの場合、一時的な悪いスコアは単なる一時的な悪いスコアです。

これがアイデアです。あなたは深い穴を探して暗闇の中でつまずきます。下り坂をそのまま進むと、スタート地点に最も近いホールにたどり着きますが、そのホールはそれほど深くない可能性があります。そのため、意図的にランダムに移動し、浅い穴に入るとそこから抜け出すことができます。そのため、浅い穴はほとんど見えません。しかし、非常に深い穴に落ちた場合は、その中に留まる可能性があります。

もちろん、最終的には、自分が入っている穴の底を見つけたいと思うでしょう。そのため、最初はランダム性が高い状態から始めて、徐々にそれを減らします。最初は、ほぼ完全にランダムにさまよいます (幸運にも非常に深い穴に落ちることができます) が、後で — できる限り深い穴を見つけたと思ったら — その底をより正確に見つけることができます。

物理的なアナロジーは、液体が冷える際の結晶形成のプロセスです。ゆっくりと冷却することで、より大きな (全体的なエネルギーが低くなり、全体的な最適値に近づく) 結晶が得られます。温度 = ランダム性であり、基本的なプロセスはシミュレーテッド アニーリングのプロセスにかなり似ています。むしろ、シミュレートされたアニーリングは、遅い結晶成長のプロセスにかなり似ています。

メカニズムに関する限り、通常のセットアップでは、ステップをランダムに試し、改善する場合は常に受け入れ、悪い場合は exp(-d/T) のような確率で受け入れます。ここで、d はどのようにステップは事態をさらに悪化させ、「温度」であるTは、ソリューション空間をさらに探索するために、現時点でどれだけランダムなナンセンスに耐える準備ができているかの尺度です. 徐々に T を減らします。T->0 の場合、事態を悪化させるステップを受け入れる確率はゼロになります。

ランダムなステップを生成する方法と「温度」を下げる方法の詳細は、実際の作業のほとんどが行われる場所です:-)。

于 2011-03-24T00:11:23.093 に答える