2016-05-26 6 views
-1

Dijkstraおよび/またはDFSに関する質問があります。 いくつかのノードとエッジを持つグラフがあるとしましょう。今度は、ノードAからノードBへのパスを見つけたいと思います。このようにして、エッジ(C、D)などの特定のエッジを取る必要があります。Dijkstra(またはDFS)の特定のエッジを取る

編集:

申し訳ありませんが、それは少し不明であった場合。私の質問は次のとおりです:AからBへのパスが必要です。すべてのエッジ{a、b}、{b、c} ...などが取られるパスがありますか?それがdfsで可能なら、私は興味があります。そして、Dijkstraで同じ制約の下で可能な場合、AからBへの最短経路を必要とし、グラフ内のいくつかのエッジ{a、b}、{b、c}を取る必要がある。また、グラフが向けられています。

ヘルプは本当に感謝しています!

+0

正確に何が問題になりますか? –

+0

私が理解しておいては、 's 'から' t'までの最短経路でエッジ '{a、b}'が必要な場合、解法は 's'から' a'までの最短経路を見つけ出し、パスを 'b'から' t'に変更し、そのパスを中間の '{a、b}'と組み合わせます。 – Codor

+0

「初めは体重がない」というのはどういうことですか?この場合、最短経路とは何ですか? 1つはエッジの最小限のnumnberと?そうであれば、エッジ重みは暗黙的に「1」になります。 – Codor

答えて

0
  1. 必ずナビゲートする必要があるすべてのエッジのリストを作成します。

  2. ソースから開始してDFSを実行します。

  3. リストにあるエッジを通過するたびに、マークは「横断」されます。

  4. 宛先に到達したら、リスト内のすべてのエッジが横断しているとマークされているかどうかを確認します。
    )そうである場合、目標状態に達しました。
    b)それ以外の場合は、リスト内の各エッジをバックトラックしてマークを解除します。

関連する問題