给定连接图和两个节点s和t,可以有许多不同的简单路径(没有循环)从s到t。是否有一种有效的算法来找到这些路径的平均长度?

有帮助吗?

解决方案

我猜你已经知道,用于计算两个节点之间简单路径数的多项式算法将意味着p= np,这结果是由于valiant(枚举和可靠性问题的复杂性,1979)。

现在想象一下,期待发现一个矛盾,你可以计算多项式时间中的 $ \ text {avg}(g,u,v)$

let $ g + l $ 是添加长度的简单路径 $ l $ 在<跨越类=“math-container”> $ u $ $ v $ 中的 $ g $ 。此新路径由 $ l-1 $ 新节点,它不会干扰来自 $ u $ $ v $ ,提供 $ l \ geq 2 $

然后, $ \ text {avg}(g + 3,u,v) - \ text {avg}(g + 2,u,v)$ = $ 1 /(\#\ text {paths}(g,u,v)+1)$ ,您可以从中获取 $ \#\ text {paths}(g,u,v)$ 在多项式时间中。但我们知道这不能在多项式时间内完成这一矛盾。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top