为什么不能在有向图上使用Prim或Kruskal的算法?

Prim算法和Kruskal算法用于查找已连接和无向的图的最小生成树。为什么不能在有向图上使用它们?

回答:

这些算法首先起作用是一个小奇迹-

大多数贪婪的算法只是在某些情况下崩溃并烧毁。假设您要使用它们来查找最小的跨度树状结构(从一个顶点到所有其他顶点的定向路径),那么Kruskal的一个有问题的图形如下所示。

 5

--> a

/ / ^

s 1| |2

\ v /

--> b

3

我们将采用成本1的a-> b弧,然后陷入困境,因为我们确实想要s-> b的成本3和b-> a的成本2。

对于Prim,此图是有问题的。

 5

--> a

/ /

s 1|

\ v

--> b

3

我们将s-> b的成本设为3,但我们确实希望s-> a的成本为5,而a-> b的成本为1。

以上是 为什么不能在有向图上使用Prim或Kruskal的算法? 的全部内容, 来源链接: utcz.com/qa/432479.html

回到顶部