3

一連のフロアプラン(Autocad、svg、または必要な形式で...)を前提として、ポイントAからポイントBへの方向をプログラムで生成したいと思います。基本的には次のように言います。 143号室へ?」(またはトリプルボーナスポイントの場合は、101号室から323号室まで)。誰かがこれについてどうやって行くのか考えがありますか?私はこの時点ではかなり言語に依存していませんが、C(++)、Erlang、PHP、Pythonが最も優れていることを知っています。私はこれが難しい注文であることを理解しています。

ありがとう!

4

3 に答える 3

3

これの一般的な用語はパスファインディングです。この問題は、2D図について広く研究されてきました。問題を次のセクションに分けます。

  1. 床のCADモデルを、部屋、ドア、廊下の単純なモデルに変換します。
  2. 人間の動きを制限して、ソースから宛先までそのフロアでパスファインディングアルゴリズムを実行します。
  3. 結果をテキストの方向に変換します(右に曲がる、まっすぐ進むなど)。ランドマークの追加が役立つ場合があります

複数のフロアの場合、1つのフロアの実装を使用して、(たとえば)104から1階の階段、3階の階段から311に移動できます。CAD図面を意味的に有用な形式に変換することは、私にとって最も難しいステップのようです。 。

于 2010-08-05T16:03:20.793 に答える
1

私はあなたがphpを使いたいと思っていることを知っていますが、私はpythonとnetworkxをお勧めします。建物を(出発地、目的地、コスト)のセットに変換してから、TSP(まだ立っていることで言及されている)またはA*またはDijkstraのいずれかを実行する必要があります

于 2010-08-05T19:26:15.663 に答える
0

巡回セールスマンアルゴリズムについて読むと、ポイントAからポイントBまでのパスが無限にあります。最短のパスを探していますか?あなたの輸送手段は何ですか?あなたは飛ぶことができますか、それともあなたは歩くか運転することを余儀なくされますか?これらは、ソリューションを決定する際の要因です。

于 2010-08-05T16:03:38.353 に答える