注意して、エネルギーの定数項は無視できることを考えると、と表せる。samplingに用いる平均場エネルギーはとなっている。シミュレーティッド・アニーリング今回は計算論的焼きなまし法とも言われる方法を用いて、最適解を確率的に計算する。焼きなまし法(アニーリング)は物性分野(半導体物性とか)でも使われる言葉で、高温で焼いた金属や半導体などをゆっくりと冷やしていくことできれいな結晶を得ると言うものだ*2。シミュレーティッド・アニーリングには温度と言う要素が必要不可欠になる。導入して、ギブスサンプリング的なことを行うのがシミュレーティッド・アニーリングになる。下げながら*3ユニットを更新していき、最終的な値を得ると言う方法だ。計算してみる今回もIdeoneに登場してもらって計算してみようと思う。ideone.com今回は都市数が少ないので事前に答えを求めておくことができる。579kmが最短だと言うのが分かる。次のコードで挑戦してみるが、いまいち駄目。ミニマムに落ちるようにロールバックするという対策もあるけど、どうなんだろう。0;}1時間トライしても駄目。現時点での戒めもかねて公開。*1:実際は出発点と到着点が逆転すると使用する道が異なって距離が変わるのだけれど、簡単のため対称にしてある。*2:真空分野でも使われるけど、また違った意味、水を飛ばして真空度を上げるときに使われる。*3:実用上はこの温度の下げ方がかなり重要な要素となる。急に冷えすぎると局所最適解から出られなくなり、冷やし方が遅すぎると計算が終わらない。(2)はてなブログをはじめよう!bottikさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。