GPSルート探索スクリプト「電猫」――ついに探索成功です!

Alcyone2004-08-29

ソースコードを見てみたら、実は勢いで作っていた前バージョンの制作から一ヶ月経ってたんですね・・・。というか地図DLスクリプトもアップデートしてないし_| ̄|○ そして、うだうだ悩んでいたルート探索スクリプトですが、実は点群道路地図に問題があったわけでは全くなく、ただ単に自分がA*アルゴリズムの実装にバグを混ぜていたというオチでした・・・。


A*アルゴリズムで最も大事なポイントは、目標ノードまで最も近い(コストが低い)とされるノードからの探索を行う事です。つまり、探索するノードの順番をコスト順に並べ替えなければならないのですが、あろう事か並べ替え自体を忘れてました_| ̄|○||||


というわけで、探索ノードのソートを行ってみたら、夢にまで見た最短ルートが表示されました。メーカー製のしっかりしたナビシステムに比べると、本当におもちゃみたいなものなのですが、それでも思わずガッツポーズしてしまいました。難易度はともかく、作ったプログラムがちゃんと動くのは素直に嬉しくなりますね(^^


とはいえ、問題はまだまだ山済みです。点群道路地図の生成に時間が掛かるのはまだいいとして、ルート探索にも思った以上の時間を要します。探索成功の鍵は、ノードの分岐数を適切に設定してあげることなのですが、ノード自体が増えてくると、分岐も星の数ほどに増えていきます。せめて、10キロ前後の道のりを30秒程度で探索完了させられる位に持っていきたい所です。コアとなるプログラムは出来たので、あとはデータの整理と無駄なルートの枝切りによる最適化という感じですね。頑張らないと(^^;;