問題タブ [path-finding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
461 参照

c++ - 順番に挿入するのに適したコンテナですか?C ++

こんにちは私は要素を順番に挿入するための最良のコンテナは何だろうと思っていましたか?前面の要素にアクセスし、それをポップしてからさらに要素を挿入するだけなので、マップは不要だと思います(重み付きのパスファインディングアルゴリズム(ダイクストラ)を実装しています)

リストを使って自分で順番に挿入することもできたかもしれませんが、(前または後ろからアクセスし始めたために)二等分できないとパフォーマンスが低下します。

0 投票する
1 に答える
681 参照

c# - オブジェクトをポイント (X, Y) からポイント (X, Y) に移動するための C# パス アルゴリズム

指定された X、Y ポイントで前後左右に移動できるオブジェクトを指定します。最も効率的で人間の自然な方法で、指定された移動メカニズムを使用して、オブジェクトを X、Y ポイントに効率的に向ける方法。

オブジェクトはリアルタイムで移動できます。「startMoving」と「stopMoving」を伝えることができます。追加のひねりと私が問題を抱えている部分として、オブジェクトの向きは決してわからず、現在の位置しかわかっていないため、アルゴリズムは方向を「検出」する必要があります。オブジェクトの場所は、500 ~ 1 秒間隔で別のスレッドで更新されます。アルゴリズム内の場所を更新する「リクエスト」はいつでも作成できますが、すぐには利用できないため、アルゴリズムはそれを考慮に入れる必要があります。requestAndWaitForCoordUpdate() のようなことをすることは完全に受け入れられますが、おそらく必要ではありません。

コード例を次に示します。

0 投票する
1 に答える
1269 参照

c# - オブジェクトをpoint(X、Y)からpoint(X、Y)に移動するためのC#パスアルゴリズム

与えられたX、Yポイントで前後左右に動く可能性のあるオブジェクトが与えられます。最も効率的で人間の自然な方法で、与えられた動きの仕組みを使用して、オブジェクトをX、Yポイントに効率的に向ける方法。

オブジェクトはリアルタイムで移動できます。「startMoving|Direction |()」および「stopMoving | Direction |()」と指示することができます。追加のひねりと私が問題を抱えている部分として、オブジェクトの向きは決して知られていないが、その現在の位置だけがわかっているので、アルゴリズムは方向を「検出」する必要があります。オブジェクトの場所は、500〜1秒間隔で別のスレッドで更新されます。アルゴリズム内の場所を更新するための「リクエスト」はいつでも行われますが、すぐに利用できるわけではなく、アルゴリズムはそれを考慮に入れる必要があります。requestAndWaitForCoordUpdate()のようなことをすることは完全に受け入れられますが、おそらく必要ではありません。

さらに、障害物は表示されません。ほとんど開いた平面上にあり、パス間の直線から遠く離れていると想定でき、障害物に遭遇する可能性があります。ターゲットとソースの間の距離の1/4は、特定の直接パスで幅が利用可能であると想定するのが安全です。

また、このシナリオでA *が適用されるかどうかわからないことにも言及します。適用される場合は、制約を考慮してA*を実装する方法がわかりません。ここでの唯一の実変数は、オブジェクトの向きです。

次にいくつかのサンプルコードを示します。

0 投票する
4 に答える
7187 参照

java - Java アプリケーションへのマップの統合

4 年目のソフトウェア エンジニアリングの学位の一環として、複数のパス検索アルゴリズム (複数のエージェント) を視覚化するプロジェクトを行っています。私のプロジェクトの最初の部分は、サイズ変更可能なグリッド環境を構築し、2 ~ 3 の異なるパス検索アルゴリズムを実装することでした。

2 番目の部分には、地理マップが含まれます。ユーザーに道路地図などの実際の地理的地図を表示し、アルゴリズムに道路データを入力として提供して、アルゴリズムがこのデータで機能するようにしたいと考えています (ベクターマップのレイヤーと呼ばれると思います)。入力としてパスを生成します。最終的には、計算された経路に従ってエージェントの動きを地図上に表示できるようになります。

私たちが実装したアルゴリズムは、使用できる状態とデータが非常に一般的であるため、私の最大の問題は、アプリケーションの一部としてマップ ファイルを表示する方法と、アルゴリズムの入力データをどこから取得するかを理解することです。

最初はGoogleMaps APIのようなものを考えていましたが、Googleマップはウェブ用であり、道路レイヤーへのアクセスを許可するかどうかわからないため、探しているものがわからない.

したがって、私が必要としているのは、Javaアプリケーションに簡単に統合できるある種のオープンソースGISであり、サンプルデータも必要になると思います。これは、背景画像(ラスターマップだと思います)と道路レイヤーです。アルゴリズムの入力として使用されます (たとえば、A*)。

私はこれまでそのようなシステムを使用したことがないので、誰かが私に指示を与えて、プロジェクトで使用できる優れた GIS ライブラリを推奨してくれると本当に助かります (オープン ソースである必要があります)。

0 投票する
2 に答える
14502 参照

java - Javaでスターを実装できません

私は一日中このアルゴリズムを稼働させようとしてきましたが、一生できません。ネット上の多くのチュートリアルと、AS3、javascript、および C++ のソース コードを読みました。しかし、私が見ているものを自分のコードに適応させることはできません。

Node.js という名前のネストされたクラスを持つ AStar クラスを作成しました。マップは、MAP という名前の 2D 配列です。

私が抱えている最大の問題は、pathfind 関数で F 値を取得することです。

私は F = G + H を実装しました。私の問題は実際の AStar アルゴリズムです。誰か助けてください。

これは、パスファインダー機能を使用して取得できる最も遠いものです。

0 投票する
5 に答える
912 参照

c# - A* を使用し、まだ衝突を回避していますか?

私はタワー ディフェンス ゲームを設計しており、そのために A* パスファインディング アルゴリズムを使用して、スポーン エリアから目的地に到達しています。

ここでの問題は、すべてのユニットが積み重なり、見た目がよくないことです。代わりに何らかの方法でそれらをグループ化し、十分なスペースがない場合はさらに広げる方法はありますか?

このアルゴリズムは、すべてのユニットが一度に 1 つのタイルを移動するように機能します。

0 投票する
1 に答える
321 参照

simulator - 座標の自動 IR スキャンと簡単な状態マッピングを備えたシンプルなロボット シミュレータ

私は現在、大学院エージェント論文のプロジェクトを行っています。私のプロジェクトでは、ARA* ADA* や DLite* などのいつでも検索を拡張するアイデアがあります。このアイデアをロボットでシミュレートしてテストしたいと思います。ここ数晩、さまざまなソフトウェアを検討してきましたが、うまくいきませんでした。

最終的には、次の情報をいつでも個別に利用できるロボットを備えたものが必要です。

座標 (x,y,z) 速度

また、ロボットには、x、y 座標を (通行可能/通行不可) でマッピングする IR スキャナーなど、環境から座標を収集する何らかの方法が必要です。

最後に、ゴール座標へのパスでどの状態を通過するかを提案するために、環境情報を使用するアルゴリズムをプログラムできるようにする必要があります。

私の質問は、あまり労力をかけずにこれらすべてを達成できるソフトウェアがあるかどうかです。これをプログラミングするのに 7 泊以上を費やしたくはありません。理想的には、1 泊か 2 泊で目に見える結果を得たいと思っています。

私は自分の学位論文のために多くのヒューリスティック検索アルゴリズムをプログラムしました (つまり、周辺検索、BiMaxf、BS*、A*、私自身の双方向検索アルゴリズム、およびいくつかのフロントツーフロント検索)。これらはすべて 8/ に基づいています。 15 パズルで、Java で数秒以内にかなり難しい問題を解決できます。ADT のハッシュテーブルとプライオリティ キューだけが必要になるため、C 言語またはスクリプト言語を快適に使用できます。

それで、合理的な簡単さで(リアルタイムで)シミュレーションを達成できるオープンソースソフトウェアはありますか。そうでない場合、独自のシミュレーターを作成することは問題外に聞こえますか? 私がそれを行うとしたら、それはおそらく与えられた半径内の周囲を知っている2Dシミュレーターになるでしょう...として)偏った...

0 投票する
1 に答える
1970 参照

git - git で重複ファイル (コンテンツ) をチェックしていますか?

私の「プロジェクト/レポ」には、2 つの MS Visual Studio プロジェクトがあり、1 つはメイン コード用で、もう 1 つはテスト用です。(コピーと貼り付けの意味で) 両方に共通するファイルがいくつかあり、それらがどれであるかを確認/確認したいと思います。

リポジトリ ツリー全体で同じコンテンツ BLOB を 2 回使用したかどうかを確認するための適切な Git コマンド (または GUI メニュー クリック) は何ですか? すべてのチュートリアルを正しく読んだ場合、git は同じファイル コンテンツの 2 つのコピーに対して単一の SHA1 を持ち、それについて既に認識しているはずです。Git に、これらの重複した使用ファイル パスを見つけて表示するコマンドがあることを願っています。

最終的には、共通の祖先ブロブ SHA1 がある場合 (ただし共通の場所ではない場合)、バージョン間の差分を見つけられるようにしたいと考えています。[つまり、テスト中に 1 つのバージョンが他のバージョンより先に更新されます...]

このような重複を行うのがベストプラクティスではないことはわかっていますが、それが作業の最終的な方法です:-(

WindowsにMsysgitとGitExtensionsがあります...

0 投票する
2 に答える
477 参照

path-finding - a* パスファインディング - 後継者のコスト

昔遊んだウォークラフト3のカスタムゲームをリメイクしてiPhoneに入れています。基本的に、一定量のブロックから迷路を構築するのに一定の時間があり、クリープが迷路を実行するのに時間がかかるほど、より多くのポイントを獲得できます。

私はこれをすべて cocos2d を使ってエアプレイで行っており、現在は a* 経路探索アルゴリズムを入れています。私はJustin Heyes-Jones の実装を使用しており、現在ノード クラスに取り組んでいます。

ただし、いくつかのことが私を混乱させています。クラスは次のようになります。

GetCost の意味がわかりません。この例の迷路では、X は壁で、_ は歩行可能なエリアです。(3, 1) から (3, 2) に移動するコストは 0 になりますか? そして、(3, 1) から (4, 1) に移動するコストはいくらになるでしょうか? それは不可能なので?

そして、距離の式を使用して、GoalDistanceEstimate を実装するだけでよいと思いますよね。

0 投票する
2 に答える
1054 参照

java - Java - gov.nasa.jpf.jvm.Verify Pathfinder パッケージが存在しない

Java Pathfinder を使用しようとしていますが、pathfinder が機能しています。

Verify.random 関数を使用する必要があります。誰でもこの問題を解決する方法を教えてもらえますか? 私が想定している URL のインポートがどのように機能するのか、よくわかりません。