無向グラフでパスを見つける簡単なアルゴリズムとは何ですか?無向グラフパスを見つけるアルゴリズム
答えて
この質問に対する回答は、グラフの表現に依存します。典型的なアルゴリズムはDijkstraのアルゴリズムです(このアルゴリズムは最短経路を見つけるが、それはうまくいく)。
http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
これは、実装するために、かなり単純なアルゴリズムだし、パスの中でおそらく最も直感的なアルゴリズムを見つけます。
私が書く必要がある関数は、パスがあるかどうかtrueまたはfalseを返すと仮定しています。また、グラフは is_pathと定義されていますか? '(3((1 2)(2 3))1 3)ここで、3は頂点の数であり、((1 2)(2 3))はエッジである。しかし、頂点の数は任意です。私はDijkstraのアルゴリズムを見ましたが、私はまだ完全に失われています。さらなる助けに感謝します。 – IAQ
Dijkstraのアルゴリズムの本質は、それがグラフのエッジ間で一種の推移的閉包を使用することです。たとえば、最初の反復では、a - > bおよびb - > c、a - > cの場合、基本的にグラフの2つのノード間にパスがあることがわかる、または、エッジ間を行き来する可能性のあるさまざまな方法を試して、可能なパスがないことを確認してください。 bruceはこれを行うSchemeの実装に向けてあなたを指摘しました。 –
パスが存在するかどうかを調べる最も簡単な方法は、depth-first searchを実装することです。 Schemeで他の種類の再帰的プログラミングを行ったことがあれば、深さ優先検索はかなり自然になるでしょう。アイデアは、各ノードに対して、それが完了した宛先である場合です。それ以外の場合は、それぞれの子に再帰します。
唯一のキャッチは、同じノードを2回訪れるのを避けるために、トラバーサル中にすでに訪れたノードを追跡する必要があることです。そうでなければグラフA < - > B < - > Cがあり、AがCに接続しているかどうかを確認しているなら、無限にAからBへ、次にBからAへ、AからBへ、そうして永遠に。
- 1. アルゴリズムが無向木のパスを見つける
- 2. ソースとシンクを分離する無向グラフの最小カットを見つけるアルゴリズムはありますか
- 3. Diffアルゴリズム、つまり最短の編集グラフパス
- 4. 重複を見つけるアルゴリズム
- 5. 共起行列を見つけるアルゴリズム
- 6. 有向グラフのすべての弱結合成分を見つけるアルゴリズム
- 7. 有向グラフで島を見つける
- 8. 位置と向きを見つける
- 9. "良い"隣人 - グラフの色付けを見つけるアルゴリズム?
- 10. アルゴリズム:不完全な値を持つモードを見つける
- 11. グラフのノードを訪問する順序を見つけるアルゴリズム
- 12. De-Boorsアルゴリズムを実装してBスプラインの点を見つけるアルゴリズム
- 13. パターンに一致する最短文を見つけるアルゴリズム
- 14. 関連する単語をテキスト内で見つけるアルゴリズム
- 15. 入力ポイントを使って数字を見つけるアルゴリズム
- 16. Dijkstraアルゴリズムを使って最短ルートを見つける
- 17. アルゴリズムのBig O/Timeの複雑さを見つける方法
- 18. アルゴリズムは、行列の行列を見つけるために
- 19. 可能なすべての位置を見つけるアルゴリズム
- 20. 前の日曜日の日付アルゴリズムを見つける
- 21. セットカバー問題の最小サイズセットカバーを見つけるアルゴリズム
- 22. 円周上のピクセル座標を見つけるアルゴリズム
- 23. PHPでアルゴリズムを見つけることができません
- 24. スライディングウィンドウで文字列の一致を見つけるアルゴリズム
- 25. 交差ボックスから実線のポリゴンを見つけるアルゴリズム?
- 26. 次の多項式を見つけるアルゴリズム
- 27. 2-3 BST木のアルゴリズムを見つける
- 28. 配列内の最小要素を見つける再帰アルゴリズム
- 29. Aprioriアルゴリズムの最小サポートを見つける方法
- 30. 近くの点を見つけるアルゴリズムですか?
過去1日か2日にグラフ関連のSchemeに関する質問がスタックオーバーフローになっています。例:http://stackoverflow.com/questions/9426788/depth-first-search-dfs-for-undirected-graphsこれは宿題の質問ですか? – dyoo
はいそれは他のものですが私の投稿ではありません – IAQ
強い推薦:http://www.htdp.org/2003-09-26/Book/curriculum-ZH-35.html#node_chap_28 ://www.htdp.org/2003-09-26/Book/curriculum-ZH-38.html – dyoo