用浮桥NP-连接岛屿是否完整?


10

我脑子里有一个问题,我认为这是一个NPC问题,但我不知道如何证明。

这是问题所在:

在一个非常大的湖泊中有k个岛,并且有n 个扇形浮桥。这些浮桥大小相同,但初始方向不同,在湖中的原始位置也不同。浮桥可以绕其质心自由旋转,并且没有旋转的成本。

现在我们需要移动那些浮桥,以便可以连接湖中的所有岛屿。我们可以保证浮桥的数量足以连接所有岛屿。

[注意]:我们不能重复使用浮筒!!

任务是找到具有最小移动浮桥总距离的解决方案,以使所有孤岛相连。移动一个浮桥的距离可以计算为质心的原始位置与其展开位置之间的距离。

为了清楚起见,我画了一个这样的数字。假设我们有3个岛A,B和C。它们位于湖中某处。我有几个扇形的卡通漫画。现在的解决方案是找到连接图A,B和C的最小移动距离总和,如图底部所示。希望它有助于理解问题。:)

在此处输入图片说明

看来问题出在NPC上,但我不知道要证明这一点。谁可以帮我这个事?


@vsaxena不,我认为最终的解决方案不是直线,有时如果已经形成拱形,则我们不需要移动其中的任何一条。在大多数情况下,直线会很好,但是随着浮桥变得越来越密,解决方案可能不是直线。该图仅是示例。:)

1
似乎非常接近Steiner树。在度量空间中,有很多技术可以解决这两个问题。en.wikipedia.org/wiki/...
尼古拉斯·曼库索

@NicholasMancuso桥是节点到节点的桥梁,因此它不是经典的Steiner树,桥连接了多个节点。VLSI布局中存在许多具有相似特征的问题。
VSOverFlow 2012年

1
@vsaxena:问题未明确说明。假设我有一个等边三角形的三个岛A,B,C,并且浮筒最初形成连接的Y形,岛的末端。什么都不做是有效的解决方案,还是必须将浮筒进一步移动?如果此解决方案是无效的,那么什么精确构成的浮桥的有效配置?
JeffE 2012年

1
@vsaxena:在我们讨论时,这些岛是点,圆还是输入中指定的更复杂的形状?浮桥线段,椭圆形或其他形状吗?所有岛屿的大小和形状都一样吗?所有浮船的大小和形状都一样吗?
JeffE 2012年

Answers:


1

第一:这不是旅行商问题。TSP要求确定最小权重的哈密顿循环。这个周期不需要一个周期,甚至根本不需要最小的重量路径。它要求以最小的成本来构造一组连接的边缘,其中,建造成本是基于将浮桥四处移动。

第二:这不是最小重量生成树问题。参见上文-我们要求的是成本最低的结构,而不是最小的重量标识。

第三:构建的路径似乎将是一棵生成树,但不一定是最小的权重树。另一种选择是,它将是一棵生成树加上一些额外的边,从而形成一个循环。但是,如果我们从没有边缘的配置开始,那么每个边缘都会有一些正成本,并且我们总是可以通过不构造额外的边缘来找到权重较低的生成树。

第四:您说浮船可以自由旋转;我认为这意味着旋转浮桥没有成本。但是,您没有指定浮桥旋转的方向:它们的点?他们的重心?有什么内部观点吗?(如果有任何外部点,那么我们将具有零权重构造,是吗?)

这有点微妙,因为如果我们围绕一个内部点(例如质心)旋转90度,那么成本是多少?没什么,因为轮换吗?因为点移动了一些有限的量?现在我们还需要知道浮桥的大小。

第五:人们假设浮桥和岛屿都嵌入在欧几里得平面中?


感谢您的回答。旋转围绕质心,没有旋转相关的成本,仅运动涉及成本。是的,浮桥和岛屿都嵌入在欧几里得平面中。我将修改帖子以使其清楚。

我不同意这实质上不是TSP。整个柱子用术语包裹在车轴上,但事实是,如果在每个浮桥与每个潜在的末端浮桥位置之间划了一条线,并计算出每条线的距离即为其重量,则例外在终点回到起点的过程中,形成的图形看上去几乎与TSP相似(对T恤而言)。浮桥或终点位置是图中的一个节点,权重由距离组成。哈密​​顿循环仅表示它在开始的地方结束。

2
这不是答案,而是一系列评论。
拉斐尔

1

查看新图后,我发现您可能需要多个浮桥才能在各个岛之间穿越。鉴于此,您可以通过将节点变成孤岛并创建足够多的带有小弧形的浮桥来接近Steiner Tree问题的解决方案。维基百科说,事实上,斯坦纳树问题有一个PTAS,所以我不能立即说这使它成为NP完全的。但是,查看Steiner树的详细信息可能会为您提供一个很好的近似解决方案,或者表明问题是NP-Complete。


您所描述的是一种近似算法,可以得出接近最佳的解决方案。但是,您如何验证解决方案是最佳的呢?

我认为真正的问题是,您需要多个浮桥才能在各个岛之间穿越,这使它看起来很像斯坦纳树。看一下Branch and Bound,了解如何从下限(例如,通过忽略约束生成)转到已知的最佳解决方案。
mcdowella 2012年

2
@mcdowella这不是Steiner树,因为每个浮桥只能出现在一个桥中。这是一个点对点的系统。此外,由于成本函数是浮筒的运动,可以有其中在宽的圆弧形成的桥的情况下仍具有比直线溶液更低的成本..
VSOverFlow

从另一个角度看,这可能不是一个骗子。我们不能仅添加点数以满足我们的需求。
trumpetlicks 2012年

1
如果允许Y结,那么这至少和Steiner树问题一样困难,因为任何Steiner树问题都可以变成其中之一-只需制造很多浮桥并将它们放置在离岛如此之远的地方,这样就不会在哪里使用哪个浮筒真的很重要。然后,如果可以解决此问题,则可以解决Steiner树问题:对于此参数,没有浮桥的某些配置不会导致Steiner树问题的问题。如果不允许Y交界,我们需要确切地知道规则是什么。路径在交叉点交叉吗?
mcdowella 2012年

0

绘制后,这仍然是NPC问题。即使我们将问题分解到每个浮桥,也可以假设n个位置中的1个(即已知的连接线。要获得最佳答案),我们将不得不在每个位置尝试每个浮桥,并增加它们的距离才能到达每个对折位置时间,并与其他所有时间进行比较,如果每个浮桥必须在每个位置进行测试,则需要测试n!个组合。

我选择编辑原始海报的图像,并添加一些其他内容以显示此问题背后的图形思想。

下图显示了所有(不同的负号2,以便简化)不同颜色的浮筒,所有潜在的浮筒末端位置均为红色。我仅画出了3个浮桥和所有末端位置之间的界线,但人们可以看到这有多疯狂。

假设仅仅是为了解决问题,我们首先选择将绿松石浮桥放置在离它最近的末端位置(尽管从TSP中我们知道最终可能不是最佳选择)。

在下面我们可以确切地看到浮桥及其将要行驶的距离(又称加权行驶距离)。

在此处输入图片说明

从这里可以创建一个虚拟节点,其两个末端位置紧邻刚放置的位置。距设置节点的距离以及虚拟节点内的两个相邻节点的虚拟行进距离为0。

在下面,我们看到虚拟节点具有所有可以放置在此处的潜在行进距离权重。

在此处输入图片说明

看到这种情况如何持续下去,以及如何通过选择每个选择的最短距离来获得最佳解决方案(如在TSP中多次看到),我们将不得不测试所有节点/虚拟节点的所有路径。

最后,(TSP)问题的第一个节点可能是任何一个潜在的浮桥点,从中得出的线是从该端点到所有其他浮桥的距离。之后,所有其他节点都变成了虚拟节点,正如我所描绘的那样,它们的线条随着到所有剩余浮桥的距离/权重的变化而消失,依此类推。没有哈密尔顿循环的LAST JUMP要求,这个图问题怎么不完全是旅行商问题。为了获得准确的答案,必须测试通过图形的所有路径。


1
抛开这是否是上述问题的合理模型还是什至实际上不是TSP模型,这都不是NP减少的工作原理。您没有证明您的目标问题可以被视为NPC问题的实例。您需要证明可以将NPC问题的一个实例作为目标问题。

3
似乎您对复杂性的理解存在严重缺陷。的搜索空间的大小是一样的计算复杂度。有很多问题可以解决,而无需强行解决问题,即无需检查解决方案空间的每个元素。排序就是一个例子。或采用另一个NP完全问题Vertex Cover:它可以在最坏情况下的时间O(1.3n),因此无需检查节点的每个子集即可清楚地解决。
拉斐尔

2
噢亲爱的。如果您不愿意阅读我的评论和我提供的链接,则了解到所引用的算法是准确的(它们证明了这一点),因此与您的理解相矛盾。请注意,您的意见表明P!= NP-这仍然是一个悬而未决的问题。所以,对不起,您还不了解这一点。(即使确实可以完全解决NP问题也不比天真地解决,您使用的推理也将是错误的。)
拉斐尔

2
@trumpetlicks:没有矛盾。拉斐尔(Raphael)所指的算法是在时间内精确求解NP硬顶点覆盖,该时间在呈指数级,但不是通过蛮力枚举。不过,更重要的是,“ NP完全”并不意味着“我看不到如何在不到指数的时间内解决它”。nO(1.3n)n
JeffE 2012年

3
@JeffE:换句话说,此答案仅证明该问题可能在理论上 NP完全的。
伊藤刚(Tsuyoshi Ito)2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.