問題タブ [depth-first-search]

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

python - Graphiz / FiniteStateAutomatonにコンパイルするためのある種のXML/Jsonファイルがある。助言がありますか?

既存の写真[いくつかのオートマトン(DFA、NFA、チューリングマシン)を表示]を撮影し、何らかの方法でそれらをフォーマットに変換する必要があるタスクがあります。これにより、データを使用してオートマトンとして表現することができます。それをいくつかのグラフィカル表現にコンパイルします。以前に似たようなことをした人はいますか?いくつかのオートマトンデータをグラフィカルに表示できるPythonライブラリ/フレームワークはありますか?

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

c++ - グラフを使用した迷路解決

ねえ、私は地元のプログラミングコンテストに参加していて、彼らは私にこの質問をしましたが、私にはできませんでした。この質問について私を助けてください。

ファイルから迷路のサイズをロードし、次に迷路自体をロードするプログラムを作成します。迷路をモデル化するために、開始セル「。」を指定する文字「S」を使用します。これは空きセルを指定し、「#」は壁、「F」は最後のセルです。開始セルから最終セルへのパスを見つけるプログラムを作成します。迷路の中にはコマンドに従うロボットがあると考えることができるので、次の迷路では、ロボットは次のコマンドを受け取る必要があります:上、上、右、右、下、下。

迷路1テキストファイル

迷路2テキストファイル

一般的にプログラムを作成します(迷路の最大入力は最大200x200です)。

助けていただければ幸いです。私は新進気鋭の2年生なので、コードを提供していただければ、私はそれを理解でき、彼らは自分でそれをやり直します。

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

algorithm - 幅優先探索と深さ優先探索の入力/出力

私の質問は、どちらの検索タイプのメカニズムについても実際にはありません。それよりもずっと平凡だと思います。どちらの入力と出力もわかりません。より具体的には、CLRSでは、BFSは入力としてグラフとソースノードを取りますが、DFSはグラフのみを取ります。それ以降、DFSはどこを検索してもかまいませんか?

これが入力の混乱です。出力の混乱は、DFSでは、完了すると、各ノードの検出と終了時間を記録するテーブルのような構造になっているということです。そこからソリューション、つまりソースノードから宛先ノードへのパスをどのように抽出しますか?

私は理にかなっていると思います。ありがとう!

編集:これが、DFSがソースノードを取得しないという意味です。これはCLRSからのDFS擬似コードです。私はそれがどこにもソースノードを取っているのを見ません。私が見ているのは、グラフ内のすべてのノードを通過することだけです。

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

python - このPythonコードは、すべてのパスを見つけるために深さ優先探索(DFS)を採用していますか?

このコードは、グラフ理論に関するPythonの公式エッセイに記載されています。コードは次のとおりです。

私はまだPythonを十分に練習して読んでいないので、Pythonに精通していません。これをDFS図の子兄弟の概念に関連付けてコードを説明していただけますか?ありがとう。

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

c++ - C++有向グラフ深さ優先探索

有向グラフのメソッドDFSメソッドを書き込もうとしています。現在、セグメンテーション違反が発生していますが、それがどこにあるのかよくわかりません。有向グラフについて私が理解していることから、私の論理は正しいと信じています...しかし、新鮮な目が非常に役立つでしょう。

これが私の関数です:

クラス定義:

ありがとう!

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

ruby - 再帰的 DFS Ruby メソッド

次のようなドキュメントを含むグループと呼ばれるMongoDBコレクションに取得したいグループのYAMLファイルがあります{"name" => "golf", "parent" => "sports"}スポーツのようなトップレベルのグループには{"name" => "sports"}..parent

ネストされた hash をトラバースしようとしていますが、正しく機能しているかどうかはわかりません。ラムダ プロシージャよりも再帰的な方法を使用したいと思います。機能させるには何を変更する必要がありますか?

ありがとう!

マット

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

java - 結果がBFSでグラフに表示されているが、DFSでは表示されていない場合に、結果が確実に見つかるのはなぜですか。

私はどこかで、BFSが解決策を見つけるために、DFSが保証されていないことを読みました。なぜですか?私はこれがどのように真実であるかを本当に理解していません..誰かがこれを証明する私のためのケースを示すことができますか?

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

algorithm - DFS を使用して有向グラフの最長サイクルを見つける

DFS を使用して有向グラフの最長サイクルを見つける必要があります。

このウィキペディアの記事でこれを行う方法を説明しているのを見たことがありますが、ノードを 3 つの状態のいずれかでマークするような問題にアプローチしたと思います。 .

誰かが私とリンクを共有していただければ幸いです。ちなみに、Tarjan のアルゴリズムではありません。

以下の問題は、知りたい場合に備えて、私が解決しようとしているものです。

最初の行にある 2 桁の数字は N と M で、それぞれノードの数と有向エッジの数を表します。

2 行目からは、A と B の 2 つの数字の M セットが与えられます。これは、ノード A と B が接続されているが、A から B へのノードのみをトラバースできることを意味します。

入力.txt:

この場合の答えは、2>3>4>5>6>7>2 なので 6 です。

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

java - java - 深さ優先検索 - ツリーで DFS を実行する

26 ノードを含む最小スパニング ツリーで DFS を実行しようとしています。ノードには「A」から「Z」までの名前が付けられ、ツリーは無向です。

ここに、記述しようとしている DFS という空の関数があります。これは、ツリー (2D 配列) の startNode (ランダムに選択されたノード 'M') と endNode (ランダムに選択されたノード 'Z') を (推定) 取り込みます。 .

接続されたノードの重みは 2D 配列パラメーターで識別されますが、実際にノードにアクセスするにはどうすればよいですか?

必要なのは、DFS トラバーサルの順序で各 nodeName を出力することだけです。

2d 配列のノードごとに Node_class を作成する必要がありますか??

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

c++ - 特定の頂点から深さ優先アルゴリズムを実行する

ブーストグラフライブラリを使用して、特定の頂点から深さ優先アルゴリズムを実行する方法を見つけようとしています。

Boostライブラリが提供する深さ優先アルゴリズムは、開始頂点から最後の頂点までのグラフを評価します。しかし、グラフを特定の頂点から検索する必要がある場合はどうでしょうか。

助言がありますか?