グリッドマップがあり、2つのノード間の最短経路を見つける必要がありますが、そのパスにはいくつかのノードが含まれていなければなりません。いくつかのノードを訪問するグリッドマップの最短経路アルゴリズム
すべての並べ替えを試してみましたが、最適なアルゴリズムを使用したいので、マップサイズと必須ノードの数は可変です。
マップはこれに似たものになります。 map
-Dark brown square at Y18 is the start point
-Light brown squares from B20 to S20 are the end point (can make just one end point if needed)
-White squares are walls (you cannot go through them)
-Blue squares means that the point in front of it is a must-pass (for example, the blue square at q5-q6 means must pass zone of p5-p6)
私は、Javaを使用するつもりだ、と私はそれがそれらの間の接続でグラフをマップするようになります(たとえばS10はS9と接続され、 o10およびs11)。
ご質問ありがとうございました。
まずはお返事いただきありがとうございます! ノードのすべてのペアの間にすべての距離を取得する必要がありますか?それは私に(0、a)と(0、b)、(0、a)と(0、c)...(20、y)と(20、z)とそれらの間の距離それらとハミルトニアンパスを使用しますか? –
@AlbertoMendiolagoitia: "S"のすべてのペアの間のすべての距離を取得する必要があります.Sは、2要素セット{starting_nodeと[must-passノードのセット] 、ending_node}。マスト・パス・ノードの数とノードの総数との比較に応じて、_all_ペア間の距離を取得することが最速の方法ではないかもしれませんが、それで、あなたは両方のSでないノード間の距離を捨てることができます。 –