2人游戏是多项式空间完成

时间:2012-03-10 04:08:49

标签: computer-science complexity-theory computation-theory space-complexity

所以有一个n x n游戏板,棋盘上的每个位置都有一个整数。玩家1从第1行中选择一个数字,玩家2从第2行中选择一个数字,然后它们交替,直到没有更多的行。然后他们将所有数字相加,如果总和等于预定总和S,则玩家1获胜,否则玩家2获胜。对于特定棋盘和总和(B,S)的玩家1的获胜策略是,无论玩家2做什么,玩家1都可以获胜。 我想证明这个问题是PSpace-complete

所以首先我必须证明它在PSpace中,我认为这很容易,因为移动的总数受到电路板尺寸的限制,即n ^ 2。

我仍然坚持表示它是PSpace-hard,但我知道我必须从QSAT减少,但我无法弄清楚如何。有人可以帮忙吗?

编辑:其实我不知道我必须从QSAT减少,但在搜索之后,似乎QSAT是最有可能的候选人。许多其他双人游戏,地理是最突出的例子,从QSAT减少,所以我认为这也必须。但是,如果我错了,请随时纠正我。

1 个答案:

答案 0 :(得分:0)

如果您从QSAT中选择减少,则您的任务将从公式开始。

你需要构建一个游戏实例,这样如果玩家1有获胜策略,那么这个公式的否定就是一个重言式。玩家2的角色主要是修正普遍量化的布尔变量的估值;播放器1在存在量化的布尔变量方面具有类似的作用。

你需要在填充表格时表现出一些聪明才智,这样玩家1只能在重言式的情况下强制零和。还要确保您需要的表行数仅与公式中的量词出现次数成线性关系。

[SPOILER 1开始] 记得我们在家庭作业模式中讨论。我现在将几乎所有细节添加到提示中,但隐藏了解决方案中的三个技术缺陷,我希望您在理解细节后找到它们。请尝试尽可能多地找到并尽可能多地在评论中提出您自己的修复程序。

首先从博弈论的角度来看QSAT。在不失一般性的情况下,假设一个量化的布尔句子(没有自由变量的公式)用前面的所有量词写出来;首先是几个存在量化的变量,然后是几个普遍的,然后是另一个存在的块等等。第一个玩家通过将特定布尔值分配(替换)到前几个存在量化变量(到整个第一个块,仅在替换后的公式从最左边的通用量词开始时停止)开始播放。然后玩家2处理第一个通用块同样量化;然后玩家1继续进行最初存在量化的第二块等等。如果公式在指定了所有变量后评估为“真”,则玩家1获胜;否则玩家2获胜。

如果你假设一些公式编码,这个QSAT游戏也可以用数字方式进行播放,这样每个公式都有基于语法的唯一编号(这样一个人可以有效地从公式中确定数字,也可以从数字中确定公式) 。玩家不会交换公式,而是交换数字(公式代码)。

现在想象一下,我们希望将这款类似QSAT的游戏转换为您的棋盘游戏。每一行代表一个玩家的移动(对于同一类型的一个量词块)。该行上的每个位置都代表该玩家可能从前一行的任何位置移动;更具体地说,移动产生的数字差异:移动后的公式代码减去移动前的公式代码。这样,在游戏的给定阶段,跑步总数总是等于公式。

作为特殊例外,通过进一步减去公式true的代码来修改最后一行的所有位置。这样,如果玩家1获胜,则完成的棋盘游戏的总和将为0,否则为非零。这是您的棋盘游戏中量化公式同义性的理想减少。 [SPOILER 1结束]