假设我有一个大的任意连接顶点图,如下所示。假设这些是网络连接。一些连接(用红色着色)比其他连接更容易损坏。如果两个红色连接失败,则许多点与剩余岛屿的成员之间没有更多连接。
如何找到这些神经连接?
是否有现有算法?
答案 0 :(得分:1)
您想知道Edge Connectivity。在你的情况下,你似乎只关心图形是2边连接,这种情况可能有特定的算法,但我不确定。这是一个我认为应该有效的简单算法:
For all edges, E, in your graph, G:
Remove E from G.
Find any path, P, from src(E) to dst(E).
Remove all edges in P from G.
Find a path from src(E) to dst(E),
if none exists then E is one of your important edges.
这不是很快,但需要O(E *(E + V)),如果你的图是平面的,那么这不是太糟糕,因为O(E)== O(V),因此需要时间O(V ^ 2)。如果您的图表连接得更多,那么这可能与O(V ^ 4)一样糟糕,这可能是令人望而却步的。
答案 1 :(得分:0)
我想说你需要关注流量网络:http://en.wikipedia.org/wiki/Flow_network。