【发布时间】:2008-12-09 21:41:17
【问题描述】:
我担心这可能会解决 NP 完全问题。我希望有人可以给我一个关于它是否存在的答案。我正在寻找更多的答案,而不仅仅是是或否。我想知道为什么。如果你可以说,“这基本上就是这个问题'x',它是/不是NP-Complete。(维基百科链接)”
(不,这不是家庭作业)
有没有办法确定任意无向图上的两个点是否连接。例如,以下
Well
|
|
A
|
+--B--+--C--+--D--+
| | | |
| | | |
E F G H
| | | |
| | | |
+--J--+--K--+--L--+
|
|
M
|
|
House
点 A 到 M(没有“I”)是可以打开或关闭的控制点(如天然气管道中的阀门)。 '+' 是节点(如管道 T),我猜 Well 和 House 也是节点。
我想知道我是否关闭了任意控制点(例如 C),井和房子是否仍然连接(其他控制点也可能关闭)。例如,如果 B、K 和 D 关闭,我们仍然有一条通过 A-E-J-F-C-G-L-M 的路径,关闭 C 将断开 Well 和 House。当然;如果只关闭 D,则仅关闭 C 不会断开 House。
换个说法,C 是桥/切边/地峡吗?
我可以将每个控制点视为图表上的权重(0 表示打开或 1 表示关闭);然后找到 Well 和 House 之间的最短路径(结果 >= 1 表示它们已断开连接。我也可以通过多种方法短路算法以找到最短路径(例如,一旦路径达到 1,就丢弃它,停止搜索一旦我们有任何连接井和房子的路径等)。当然,我也可以人为地限制在放弃之前要检查多少跳。
以前一定有人分类过这种问题,我只是漏掉了名字。
【问题讨论】:
-
您确定要寻找最短路径吗?看起来您只想检查连接性。连通性比最短路径更容易。
-
请查找带有示例和解释的代码示例here。
标签: graph-theory