問題タブ [floyd-warshall]

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 投票する
0 に答える
1187 参照

lua - フロイド - ウォーシャル パスの再構築

Lua で実装した Floyd-Warshall アルゴリズムから 2 つの頂点間の最小コスト パスを再構築しようとしています。

ここに私がこれまでに書いたものがあります:

これらの関数は、グラフ g の頂点の各ペアを分離する長さ (エッジの数) を含むマトリックスを提供します。これは素晴らしいことです。

特定の頂点間の実際のパスを知る必要があります。ウィキペディアは疑似コードを便利に提供していますが、初心者であるため、実装方法について混乱しています。

ウィキペディアの記事 ( https://en.wikipedia.org/wiki/Floyd –Warshall_algorithm#Path_reconstruction )で提供されている疑似コードを次に示します。

この疑似コードを lua で実装する方法を知っている人はいますか? lua コードの短い部分を書き直す必要がありますか、それともこの疑似コードを何らかの方法で私が持っているものにマージできますか?

乾杯!

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

algorithm - すべてのペアの最短経路 - ウォーム リスタート?

APSP 問題のよく知られたアルゴリズム (Dijkstra/Floyd-Warshall など) のいずれかをウォーム スタートして、時間の複雑さを軽減し、場合によっては計算時間を短縮することは可能ですか?

グラフが NxN 行列で表されているとしましょう。私は、1 つまたは複数の行列エントリ (<< N)、つまり、対応する頂点間の距離、アルゴリズム プロシージャへの 2 つの呼び出し間の変更のみを考慮しています。アルゴリズムの 2 回目の呼び出しで計算を高速化するために、最初の呼び出しの解と行列の増分変更のみを使用できますか? 私は主に密行列を見ていますが、疎行列の既知の方法があれば、遠慮なく共有してください。ありがとう。

0 投票する
0 に答える
227 参照

algorithm - パス検索アルゴリズム - 複数のタスク

Floyd Warshall と Dijkstra Algorithms を使用して、2 つのノード間で利用可能な最短ルートを見つける必要がある学校のプロジェクトがあります。しかし、これに加えて、複数のタスクの最適なルートが計算されるように、両方のアルゴリズムに修正を加える必要があります。

このシナリオは、公共交通機関のピックアップ/ドロップオフに基づいています。たとえば、C から B に行きたい人、D から B に行きたい人、C から F に行きたい人がいるとします。

概念は、常にノード A から開始し、すべての要求に対応するための最適なルートを計算することです。

これにアプローチする正しい方向を知っている人はいますか?

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

c++ - フロイドのアルゴリズム (最短パス) の問題 - C++

基本的に、行列の最短経路を見つけるためにフロイドのアルゴリズムを実装することを任されています。値 (私の場合は arg) が取り込まれ、行列はサイズ arg*arg になります。次の値の文字列は、受け取った順序でマトリックスに適用されます。最後に、-1 は無限大を表します。

正直に言うと、どこに問題があるのか​​わかりません。テストを実行すると、最初の 2 つは成功しますが、残りは失敗します。パスと一緒に最初の 2 つの失敗のみを投稿します。関連するコード セグメントのみを掲載します。

そして、ここに私が受け取っている失敗があります。それらの残りの部分はどんどん長くなり、最大 20*20 の行列になるので、それは割愛します。

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

neo4j - neo4j 動的プログラミング クエリ

Floyd や Warshall のような動的プログラミング アルゴリズムを使用して最小パスを計算する方法を誰かが教えてくれたら、本当に感謝しています。アルゴリズムは、相互作用ごとにパスを計算する必要があり、ノードを考慮してどのノードを選択するかを決定する必要があります。すでに通過しました。

少し説明しました: https://drive.google.com/file/d/0B3i9KFQXzB89YXl0VkEzaDZDMHc/edit?usp=sharing

私のグラフはneo4j環境に保存されており、深刻な方法で彼の次元を増やすことができます. 私はeveryman php neo4jライブラリでrestを使用しています。これを行う最善の方法は何ですか?トラバーサル、サイファー、グレミリン、http: //components.neo4j.org/neo4j-graph-algo/1.4/xref/org/neo4j/graphalgo/impl/shortestpath/FloydWarshall.html から始まるカスタム アルゴリズムをコーディングします。

事前にTnx

0 投票する
3 に答える
2310 参照

algorithm - 最大ステップ数を許可する Floyd Warshall アルゴリズム

nノードの有向加重グラフの最短経路問題を解くときに、各最短経路がmステップ以下になるように、Floyd-Warshall アルゴリズムを変更することは可能ですか? より正確には、ノードijの各ペアについて、 m個以下のノードを含むiからjへの最短の有向パスを見つけようとしています。時間計算量はまだO ( n 3 ) のままですか?

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

java - Floyd-Warshall アルゴリズム - 「無限」を表す

2 つの頂点間の最短経路を見つけるために Floyd-Warshall のアルゴリズムを使用して、Java で実装するときに無限をどのように表現すればよいですか? ここで無限を使用して、2 つの頂点間にパスがないことを示しています。

ありがとう