【发布时间】:2017-09-22 13:00:32
【问题描述】:
求图形直径的算法如下:
- 在任意任意顶点上运行 BFS 并记住最后访问的节点(比如 t)
- 从 t 运行 BFS 并记住最后访问的节点(比如 t')
- t 和 t' 之间的最短距离将是图形的直径。
这是我学到的,在我找到下图之前效果很好:
A------G-----C------D
|
E------F------B
如果我从 A 运行 BFS,我会得到 AGECF"DB"...,而从 B 运行的 BFS 会得到 BFCEDGA....,so d(B,A)=3 应该是直径。
但是如果我从 A 运行 BFS 为 AGECF"BD" 而不是从 D 运行 BFS 得到 DCBGFAE,d(D,E) = 4 应该是直径
出了什么问题?这个算法不是一直有效吗?
【问题讨论】:
标签: graph-theory breadth-first-search