具有从's'到't'的路径的有向图的多项式时间算法

时间:2015-04-23 15:02:36

标签: algorithm graph computation-theory turing-machines polynomials

我的计算理论教科书有一个解释多项式时间算法的例子:

PATH = {[G,s,t] | G是一个有向图,它有一条从s到t的有向路径。

PATH的多项式时间算法M如下操作。 M =“On input [G,s,t],其中G是具有节点s和t的有向图:

  1. 在节点s上放置标记。
  2. 重复以下操作,直到没有标记其他节点:
  3. 扫描G的所有边缘。如果发现边缘(a,b)从标记的节点a到未标记的节点b,则标记节点b。
  4. 如果标记为t,则接受。否则,拒绝。“
  5. 然后他们继续解释算法如何在多项式时间内运行:

    显然,第1阶段和第4阶段只执行一次。阶段3运行最多m次,因为除了最后一次它标记了G中的附加节点。因此,使用的阶段总数最多为1 + 1 + m,给出大小为G的多项式。

    * m是图中的节点数

    我的问题是,第3阶段不会运行 m-1 次而不是m次,因为第一个节点在第1阶段被标记?

    谢谢!

1 个答案:

答案 0 :(得分:1)

它最多运行m-1次,它标记除s之外的其他节点,然后是1次,它找不到要标记的其他节点。