A*(A Star)

最近、アルゴリズムの勉強がちょっとした趣味になっている。


もちろん、最強最速アルゴリズマー養成講座を購入した。
おもしろい。
アルゴリズム体操はおもしろい!!


で、タイトルになっているA*というのもアルゴリズムの一つで、
"エースター"と読む。
最短経路を求めるアルゴリズムで、
あのダイクストラ法の改良版である。


実際の内容やら、名前の由来なんかは、wikipediaに詳しく載ってます。
ソースは、ソースを表示すれば丸見えです。
(数行下に載せてあるリンクからの方が見やすいかも)


このアルゴリズム、何が素敵かというと、
ゴールノードまでの最小コストの推定値を算出する関数の名前が
ヒューリスティック関数
という。
ヒューリスティック・・。
なんとも中二病な香り・・・。


あまりにかっこいいから、javascript(jQuery)でビジュアライズしてやったぜ。
ヒュー・・リス・・・テッィク。


白いマスが通路、黒いマスが壁。
オレンジがスタートで、緑がゴールです。
移動可能な方向は上下左右(僕はFC版FF3世代です。)

スタートとゴールの位置は、テキストボックスで変更できます。
通路をクリックすると、壁に
壁をクリックすると通路になります。


Searchボタンで探索開始!!


無理やりブログ上で動くようにしてみたけど、
もうちょっと綺麗なVerを公開しておきます。

こちら
http://www9.ocn.ne.jp/~sggksoft/2/