2016-09-28 4 views
0

2点AとBがあります。AからBまでの最短経路を探したいが、N(最大200)の矩形があり、それらの矩形。パスと長方形は、矩形の頂点と矩形の辺でのみ交差することができます。最短経路の長さはどのくらいですか?四角形は交差できません。彼らはポイントまたは側を共有することができます。だから二人が二人であれば、それらの間を渡すことができます。座標系の2点間の最短経路

+2

問題をグラフ問題として表現し、Dijsktraのアルゴリズムを使用すると考えてください。 –

+0

パスに四角形がない場合、パスが対角になることはありますか?長方形のサイズは? fixeまたはvariable?アルゴリズムを得るためには、初期データのフォーマットを提供する方がよいでしょう。 –

+0

クロス掲示:http://math.stackexchange.com/q/1944808/14578、http://stackoverflow.com/q/39744007/781723。複数のサイトに同じ質問を投稿しないでください(http://meta.stackexchange.com/q/64068)。誰も時間を無駄にすることなく、それぞれのコミュニティは答えに正直な打撃を与えるべきです。 P.S.あなたはこれに遭遇した状況は何ですか?これはプログラミングコンテストの質問ですか? –

答えて

2

通常、この種の問題の最良のアルゴリズムは、Manhattan Distanceのような単純なヒューリスティックを使用してA*です。しかしまず、あなたは違法な点を見つけなければなりません。違法な点は、この問題では入力できない点です。矩形内にある点は違法です(矩形の辺にある点は、通過できるので合法です)。これらの点を見つけたら、A *アルゴリズムを実装して、ABの間の最短経路を見つけてください。

この問題ではエッジ重みがないため、BFSを実行して最短パスを見つけることはできますが、A *ほど速くはないことに注意してください。

検索スペースが非常に大きく、A *を使用してメモリが不足している場合は、メモリを消費する代わりにノードを複数回探索するIDA*の使用を検討する必要があります。

関連する問題