このようなものに見える、私は36個の頂点(すなわち、行当たり6つの頂点と列あたり6つの頂点)からなる6×6の正方形を有する想像:Cプログラミング:最短経路を見つけるには?
• • • • • •
• • • • • •
• • • • • •
• • • • • •
• • • • • •
• • • • • •
をすべての頂点のいずれかである1、2、3または4に接続され私たちは基本的に頂点とエッジを持つグラフを取得します。 私の問題は次のとおりです。ある頂点にある特定のオブジェクトが見つかるまで、ロボットがその迷路を通過して欲しいと思います。そのオブジェクトを見つけたらすぐに最も早くという方法で出発点に戻ってください。
これを実現する方法がわからないので、私の質問は次のとおりです。Cの頂点とエッジに関する情報を保存するのに最適な構造は何ですか? (36x36がかなり大きいので、隣接行列は私にとっては非効率的だと思われます)。そして、この情報を使って、どのようにして最初から最も速い方法を見つけることができますか?
「36x36」は*大*ではありません。 –
http://en.wikipedia.org/wiki/A*をご覧ください。リードをたどって検索を完了すると、最終的には数学に遭遇し、多分それにはいくつかのコードが付きます。 – YvesLeBorg
これは一般的にトラベリングセールスマンの問題として知られています。 http://ja.wikipedia.org/wiki/Travelling_salesman_problem –