忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

探検隊を送って山登りする方向を決める

たくさんのデータの中からより点数の高いデータを見つけるアルゴリズム、擬似焼きなまし法をおもいきり単純化して目で見てわかりやすい形にしました。


擬似焼きなまし法(単純化バージョン)

操作方法

マウスでキャンバスをドラッグ、スクロール:地形を回転、拡大縮小する。

[リセット]ボタン:水玉をランダムな位置に配置する。

解説

これは、山登りアルゴリズム「擬似焼きなまし法」を単純化したデモンストレーションです。はじめランダムな位置にある水玉を山の頂上まで登らせるのが目的です。それなら単に山の頂上まで水玉を移動すればいいのではないかと思われるでしょうが、設定上、水玉には自分のいる場所(と、紫玉の場所)の高さしかわからないことになっています。周囲が濃い霧に覆われているようなものです。そこで、紫玉を近くに探検隊として派遣して、今の場所より良さそうなら自分も移動します。これを繰り返せば、最終的には山の頂上まで登れます!

ただし、注意してほしいのはこれはかなり単純化されたバージョンの擬似焼きなまし法だという点です。たとえば、本物の擬似焼きなまし法は、ときどき山を下ります。それは次のような事態を避けるためです:

とはいえ、ときどき山を降りていたら山登り方法の本質を見過ごしやすくなってしまうでしょう。ガリレオが空気抵抗を無視したように、ここでも例外的現象を無視することにします。コンセプトのデモンストレーションとしては、たぶん単純化したこっちのほうがわかりやすいでしょう。

拍手[0回]

PR