有向グラフの2つのノード間にパスがあるかどうかを判断するための簡単な多項式アルゴリズムがあります(たとえば、深さ優先探索でルーチングラフトラバーサルを実行します)。
しかし、驚くべきことに、存在をテストする代わりにパスの数をカウントしたい場合、問題はさらに難しくなるようです。
パスが頂点を再利用できるようにする場合、sからtまでのパスの数をn個のエッジで見つける動的プログラミングソリューションがあります。ただし、頂点を再利用しない単純なパスのみを許可する場合、考えられる唯一の解決策は、パスのブルートフォース列挙です。これは、指数関数的な時間の複雑さを伴います。
お願いします
- 2つの頂点間の単純なパスの数を数えるのは難しいですか?
- もしそうなら、それは一種のNP完全ですか?(私はそれが技術的に意思決定の問題ではないという理由で言っています...)
- そのようなハードカウントバージョンを持っているPの他の問題はありますか?**
ところで、私は実際にこの質問への答えを今知っていますが、最初に思いついたときにそれを尋ねた場合、どのような答えが得られるのか興味があります。
—
hugomg