“蛇”重新配置问题


13

在写一篇关于电子游戏的复杂性的小文章时,NibblerSnake ; 我发现它们都可以建模为平面图上的重新配置问题。并且似乎不太可能在运动计划领域中没有很好地研究此类问题(例如,想象中的是一连串的滑架或机器人)。游戏是众所周知的,但这是相关重新配置模型的简短描述:

蛇问题

输入:给定一个平面图形,卵石被放置在节点形成一个简单的路径。小卵石代表,第一个是他的头。头部可以从其当前位置移动到相邻的自由节点,然后身体跟随它。有些节点标有点;当头部到达带有点的节点时,在头部的以下移动中,身体将增加卵石。遍历蛇后,将删除节点上的点。p 1p ü 1ü p 1 Ë ËG=(V,E)lp1,...,plu1,...,ulp1ee

问题:我们问蛇是否可以沿着图形移动并到达目标配置 ,其中目标配置是蛇位置(即小卵石的位置)的完整描述。T

很容易证明,即使不使用任何点,在最大度数为3的平面图上,SNAKE问题也是NP-hard问题;如果可以使用任意数量的点,则在SOLID网格图上也很容易证明。在没有点的实体网格图上,事情变得很复杂(这与另一个开放问题有关)。

我想知道是否已经用另一个名字研究了这个问题。
尤其是如果有证据证明它在NP中...

编辑:即使在平面图上,该问题也证明是PSPACE完全的,并且结果似乎非常有趣,因此仍有待确定这是否是一个新问题以及是否有已知结果。

在此处输入图片说明
一个简单的例子(鹅卵石显示为绿色,蛇的头是P1)。


1
问题是否出在上与是否允许使用卵石没有关系:如果没有无卵石的Snake问题位于,那么卵石的Snake问题也是如此,因为作为证书,我们可以按什么顺序指定点被拾取,蛇到达点之前的状态,以及在点被拾取后的状态。假设没有卵石的Snake问题,则存在一个证书,该证书告诉我们如何在“之间”进行移动。N P e N PNPNPeNP
Tom van der Zanden 2014年

您能否为目标配置提供更好,更清晰的定义?例如,完整描述蛇的位置是什么意思?
2014年

@Saeed:目标配置仅仅是卵石(即蛇)的最终位置。我将添加一个数字来澄清问题。
Marzio De Biasi 2014年

您的问题很明确,但是我在评论中混淆了术语。它应该到处都显示“圆点”,而不是“卵石”。
Tom van der Zanden 2014年

@TomvanderZanden:好的,谢谢你,我也同意(另见我对Zimmux的回答的评论)。我写了“……有无点……”,说它们是无关紧要的。但是还不够清楚;所以我编辑了问题,使其更加明确。
Marzio De Biasi 2014年

Answers:


8

将蛇从一个位置移动到另一个位置已完成PSPACE。Snake在PSPACE中微不足道。我们根据Hearn的不确定性约束逻辑给出了PSPACE硬度降低的信息。

非确定性约束逻辑

约束图为具有权重和边的有向图,以使每个顶点都具有传入权重。给定两个约束图,PSPACE很难通过一次反转一个边,同时保持每个顶点的输入权重来将一个转换为另一个。如果图形是平面的并且每个顶点的阶数为,并且其边缘的或全部的权重为,则仍然保持这种状态。前一种顶点称为“ And”,后一种顶点称为“ Or”(见图)。 2 2 2 3 1 3 212223132NCL小工具

在我们的构造中,蛇的头部将在较小的距离处追逐其尾巴,并且将被迫重复进行相同的循环,但要进行细微的修改。如图所示,我们嵌入了约束图的每个边缘(边缘显示为红色),其中我们用粗线表示了蛇的位置。一条边具有两个边(顶点),并且蛇在该边指向的顶点处采用中心路线。 倒转边缘

为了反转边缘,蛇首先清除中心路线,然后在其头部到达相反顶点后采取中心路线。

我们嵌入了约束图的顶点,如下所示,其中三个彩色部分中的每一个都是上面所示的边缘小工具的一半。边缘接触的点通过强制蛇走一些边缘小工具的中心路线,确保每个顶点的传入权重至少为。2

蛇和 蛇或

最后,所有边缘小配件的黑线都连接在一起形成一个循环,因此蛇的头部追逐其尾巴。如果在两个边缘小工具之间,我们使黑色路径足够长,则蛇必须始终以相同的循环顺序遍历黑色路径。

为了显示黑色路径始终可以以平面方式构建,请考虑约束图的生成子树(下图中的粗边)。然后,我们可以使黑色边缘遵循此树,如下所示,从而生成平面图。

生成子树 平面周期

蛇的目标位置可以通过相同的变换得出。因此,即使在平面图上,重新配置蛇也已完成PSPACE。


大!:-) :-) :-)
Marzio De Biasi 2015年
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.