排列游戏redux


20

这是对先前问题的重述。

考虑以下两个爱丽丝和鲍勃之间公正, 完美的信息游戏。给玩家一个从1到n的整数的排列。在每个回合中,如果当前排列增加,则当前玩家输掉,另一玩家赢。否则,当前玩家删除其中一个号码,然后将游戏传递给另一位玩家。爱丽丝先打。例如:

  • (1,2,3,4)-根据定义,鲍勃立即获胜。

  • (4,3,2,1)-不管别人怎么玩,爱丽丝在三回合后获胜。

  • (2,4,1,3)-鲍勃可以在第一回合获胜,无论爱丽丝如何比赛。

  • (1,3,2,4)-爱丽丝立即通过移除2或3获胜;否则,Bob可以通过删除2或3来赢得第一轮胜利。

  • (1,4,3,2)-爱丽丝在第一回合拿下1 最终胜出;否则,Bob可以在移除1的情况下赢得第一轮胜利。

是否存在多项式时间算法来确定假设完美玩法的情况下哪个玩家从给定的起始排列中赢得这场比赛?更笼统地说,因为这是标准的公正博弈,所以每个排列都有Sprague-Grundy值;例如(1,2,4,3)的值为* 1,而(1,3,2)的值为* 2。计算此值有多难?

尽管可以通过动态编程将其减少为时间,但显而易见的回溯算法以O(n!)时间运行。O(2npoly(n))


4
在我看来,朴素算法在O(2 ^n⋅poly(n))时间内运行。
伊藤刚(Tsuyoshi Ito)

从您的示例中可以明显看出,如果序列递减,那么Alice总是赢,而如果序列递升,则Bob总是赢。这个问题让我想起了分析排序算法的方法,该算法已经被广泛研究,可以让您使用各种各样的工具。
chazisop 2011年

1
@chazisop:“爱丽丝总是在序列降序时获胜”:只有当n为偶数时,情况就是如此。
伊藤刚(Tsuyoshi Ito)

@Jɛff E在第3种情况下,鲍勃如何在第一回合获胜?
Suresh Venkat

2
@Suresh:在(2,4,1,3)的情况下,图形表示形式是4个顶点(2-1-4-3)上的线性图。如果爱丽丝(Alice)移除了一个末端节点,则将线性图留在3个顶点上;鲍勃通过移除中心顶点来获胜(因此3回答1,2回答4)。如果Alice删除了一个内部节点,则将留下两个相连的顶点和一个孤立的节点;鲍勃通过移除两个相连的顶点中的一个来获胜(因此1回答3或4,4回答1或2)。
mjqxxxx

Answers:


7

“排列游戏”与以下游戏同构:

断开。玩家交替从图移除顶点。产生完全断开的图表(即没有边缘的图表)的玩家是赢家。G

该曲线图对应于特定的初始置换π ∈ 小号Ñ只包含那些边缘Ĵ 针对- Ĵπ - π Ĵ 具有相反的符号。也就是说,每对数字错了GππSn(i,j)ijπ(i)π(j)排列中的顺序与边相关。显然,允许的移动与排列博弈中的移动是同构的(删除数字=删除节点),获胜条件也是同构的(按降序排列没有对=没有剩余边)。

互补的视图是通过考虑打“双”游戏图上的补体而获得,其中包含那些边缘Ĵ 针对Ĵ都在正确的排列顺序。断开连接的双重游戏是:Gπc=GR(π)(i,j)ij

重新连接。玩家交替从图移除顶点。产生完整图表的玩家是赢家。G

根据特定的排列,这些游戏之一似乎比其他游戏更易于分析。图形表示的优点在于,很明显,图形的断开连接的组件是单独的游戏,因此人们希望可以降低复杂性。这也使位置的对称性更加明显。不幸的是,获胜条件是非标准的...排列游戏将在所有举动用尽之前总是结束,从而给人一种误解。特别地,不能将nim值计算为断开的组件的nim值的nim-sum(二进制XOR)。


为断开,不难看出,对任意一个图和任意偶数Ñ,游戏ģ ˉ ķ Ñ相当于ģ(其中ˉ ķ Ñ是在无棱角图表Ñ顶点)。为了证明这一点,我们需要证明析取总和g ^ + g ^ ˉ ķ ñ是第二玩家获胜。证明是通过归纳法| G | + n。如果GGnGK¯nGK¯nnG+GK¯n|G|+nG是无边的,那么第一个玩家立即输了(两个游戏都结束了)。否则,第一玩家可以在任一移动,和第二玩家所用的另一种复制他的移动(减少到ģ ' + G ^ '¯ ķ Ñ| g ^ ' | = | G ^ | - 1); 或者,如果Ñ 2时,第一玩家可以在不相连的一块移动,并且第二玩家可以做同样的(降低到G ^ + G ^ ˉ ķ ñ - 2)。GG+GKn¯|G|=|G|1n2G+GK¯n2

由此可见,任何图形相当于ħ ķ p,其中ħ是部分ģ没有断开的顶点,和p = 01奇偶校验在断开顶点的数量的ģ。在等价类所有游戏具有相同的NIM值,此外,等价关系方面的联合操作:如果g ^ ^ h ķ pg ^ '^ h 'ķ p '然后GHKpHGp=01GGHKpGHKp。此外,人们可以看到,在游戏 [ ħ ķ 0 ] [ ħ ķ 1 ]具有不同的NIM-值,除非 ħ是空图表:播放时 ħ + ħ ķ 1,第一玩家可以采取分离顶点,保留 H + H,然后复制第二个玩家的移动。GG(HH)Kpp[HK0][HK1]HH+HK1H+H

我不知道有关“重新连接”的任何相关分解结果。


两种特殊类型的排列对应于特别简单的堆游戏。

  1. 首先是下降上升,例如。当π采取这种形式中,图ģ π是不相交的派系的联合,和断开的游戏降低到堆游戏:玩家交替地从堆移除单个豆,直到所有的堆有尺寸132165487πGπ1
  2. 第二个是下降过程,例如。当π采取这种形式中,图形G ^ C ^ π是不相交的派系的联合,并重新连接的游戏降低到堆游戏:玩家交替地从堆移除单个豆直到只有一个离开堆78456123πGπc

稍加思考,就会发现堆上的这两种不同的游戏(我们可以称其为1-HeapsOne-Heap,但存在混淆的风险)实际上是同构的。两者都可以通过杨格图上的游戏来表示(最初由@domotorp提出),其中玩家轮流删除右下角的正方形,直到只剩下一行。当列对应于堆时,这显然是与1-Heaps相同的游戏,而当行对应于堆时,这与One-Heap是相同的游戏。

该游戏的一个关键元素(扩展到“断开连接”和“重新连接”)是,持续时间以一种简单的方式与最终游戏状态相关。轮到您了,如果游戏中还剩下奇数个动作(包括您将要进行的动作),您将获胜。由于每次移动都会删除一个正方形,因此这意味着您希望游戏结束时剩余的正方形数具有与现在相反的奇偶性。而且,平方数在所有回合中都具有相同的奇偶性;因此,您从一开始就知道您希望最终的计数是多少。我们可以根据最终胜算必须是偶数还是奇数来称呼两个球员夏娃和奥托。夏娃总是在奇偶校验状态下移动,而在偶数校验状态下产生状态,而奥托则相反。

@PeterShor在回答中给出了One-Heap的完整分析。在不重复证明的情况下,结果如下:

  • 奥托喜欢堆和2堆,并且可以容忍一个更大的堆。他赢了,如果他可以让所有的堆大小,除了一个2,至少没有给夏娃形式的直接胜利1 ñ 。奥托的最优策略是总是从第二大堆采取除了当状态为1 1 Ñ > 1 ,当他应该采取从Ñ。如果大堆中的豆太多,奥托就会输掉比赛。122(1,n)(1,1,n>1)n
  • 夏娃不喜欢堆。她赢,如果她可以让所有的堆大小2。Eve的最佳策略是始终取1堆(如果有),而不取2堆。如果太多的1堆开始,夏娃就会输。12121

如上所述,这也为1-Heaps提供了最佳策略,尽管它们在措辞上有些笨拙(而且我很可能在初级到双重“翻译”中犯了一个错误)。在1堆游戏中:

  • 奥托喜欢一个或两个大堆,并且可以容忍任意数量的堆。他赢,如果他能让所有,但两个最大的堆是1个 -heaps,至少没有给夏娃形式的直接胜利1 1 ... 1 2 。Otto的最佳策略是始终从第三大堆中获取,或者在只有两个堆时从较小的堆中获取。11(1,1,,1,2)
  • 夏娃不喜欢最大和第二大堆之间的差距。如果她可以使两个最大的堆相同大小,则她会获胜。Eve的最佳策略是始终从最大的堆中获取(如果它是唯一的),并且永远不取最大大小的两个。

正如@PeterShor所指出的,尚不清楚如何(或是否)将这些分析扩展到更一般的Disconnect and Reconnect游戏。


2
我认为这类游戏统称为“顶点删除游戏”。但是我同意您的看法,即获胜条件是非标准的,因为它指的是图形的全局属性,而不是局部属性,例如一个顶点。
伊藤刚(Tsuyoshi Ito)

4
构造的图在文献中称为置换图(en.wikipedia.org/wiki/Permutation_graph)。一些结构特性可能会有所帮助。
冈本

1
@Yoshio:很好。排列博弈与图博弈同构,但起始图不是任意的。因此,即使一般的图形游戏很难分析,但如果局限于该图形子类,它可能会变得更简单。
mjqxxxx 2011年

2
另一方面,更笼统的表述可能更难以证明。的顶点删除游戏变体被称为是PSPACE硬,例如:emis.ams.org/journals/INTEGERS/papers/a31int2005/a31int2005.pdf
Jeffε

2
我已经在math.SE(math.stackexchange.com/questions/95895/…)上专门针对此类游戏添加了一个问题。顺便提及,由于排列图是圆形图,因此有以下替代表达:玩家轮流从初始组中删除和弦;留下一组不相交的和弦的演奏者为获胜者。
mjqxxxx 2012年

7

在回答中,domotorp建议分析游戏的特殊情况。当排列是一系列递增的序列时,会出现这种特殊情况,每个序列都大于随后的序列,例如(8,9,5,6,7,4,1,2,3)。在此游戏中,您从一堆石头开始,然后玩家交替从一堆中取出一块石头。留下一堆的玩家获胜。我们将说第堆中有h i结石,并假定h i递减顺序给出。例如,对于上述排列,h iihihihi是3,3,2,1。我尝试在评论中给出对这款游戏的分析,以得出domotorp的答案,但是(a)我弄错了,(b)评论中没有足够的空间来提供真实的证据。

为了分析此游戏中,我们需要比较两个量:,含有单结石堆数和= Σ 2 ħ > 2s ; 请注意,我们忽略了总和中最大的堆。这是您必须除去的结石数量,以确保除一堆以外的所有堆都包含不超过两个结石。我们声称亏损头寸如下:t=i2,hi>2hi2

  1. 其中位置包含奇数个结石。ts2

  2. 其中位置含有石头的偶数。ts

很容易表明,从失败位置开始,您必须转到获胜位置,因为每转最多只能变化1次,每步移动的石头数减少1次。ts

为了证明这一点是正确的,我们需要证明,从不在(1)或(2)类别的任何位置开始,第一个玩家可以一步之遥到达(1)或(2)类别的位置,或直接赢。

有两种情况:

  1. ts1s>0tss=0ts

  2. ts1tsts2

我尝试过将这种策略推广到原始游戏,但还没有弄清楚该怎么做。


1
在我的回答中,我指出,对此特殊情况有一个解决方案,也可以通过转置通过扬氏图获得的“对偶”位置来解决一系列不断减少的特殊情况。特别是,夏娃的最佳策略变为“从最大的堆中获取,除非恰好有该大小的两个”,而奥托的最佳策略变为“从最小的堆中获取”。
mjqxxxx 2012年

我相信这种方法将导致完美的解决方案,但是目前仍然存在一个小错误,例如(3,1)不会丢失,而(3,1,1)则会丢失。问题在于2.的定义应该排除这种情况,因为我们可以一步到达一个堆位置。但是我认为这是2.的唯一问题,希望它不难纠正。
domotorp 2012年

1

当然,我最后忘了那部分...然后解决了这个游戏!
domotorp 2012年

1
不是一个完整的答案,但仍然值得悬赏。
杰夫斯(Jeffε)2012年

3

O(2nn)

@Jɛff E碰巧(1,4,3,2)的值为* 1,而不是您建议的* 2。


糟糕,我的错。修复了问题:g(1,3,2)= mex {g(1,3),g(1,2),g(3,2)} = mex {0,0,* 1} = * 2。
杰夫

n10n

@maldini:它希望游戏具有一些不错的属性,这可能使其易于处理。我想知道将游戏推广到图形,或者将游戏推广到完美图形会发生什么。
Peter Shor 2012年

3

1月5日编辑:实际上,以下所述的单堆游戏是该问题的特例,即当数字以特定方式彼此跟随时,使得第一组大于第二组,第二组大于第三组,依此类推。 。并且每组中的数字都在增加。例如8、9、4、5、6、7、2、3、1就是这样的排列。因此,我建议首先解决这种特殊情况。

免责声明:我不再断言以下证明是正确的,请参见例如Tsuyoshi的评论,该评论表明,从排列中删除数字将无法通过从排列图中删除正方形来获得图。我在这里留下了答案,以表明这种方法行不通,而且因为它包含另一个简单的游戏。

多亏了Young Tableaux,该游戏的其他公式非常简单。我相信它可以像其他游戏一样从那里进行分析,并且会产生线性时间算法。

首先在“年轻图”上定义以下游戏:在每个回合中,如果当前图是水平的(一行中的所有正方形),则当前玩家输球,另一玩家获胜;否则,当前玩家将删除右下角的一个方块,然后将游戏传给另一位玩家。

现在,将数字序列排序为Young Tableaux。主要主张是原始游戏的获胜者与以这种形状开始的图表游戏的获胜者相同。要看到这一点,请注意,只要玩家删除数字,就可以通过删除图表的右下角的正方形来获得新序列的图表。而且,任何这样的图都可以通过从相应的右下角正方形中删除数字来实现。这些陈述来自标准Young Tableaux理论。

尽管此图表游戏非常简单,但与下面的游戏似乎相当标准,它大致上等效:

一个堆游戏:给玩家一些堆,每个堆都有一些卵石。在每个回合中,如果他们仅剩一堆,则当前玩家输掉,另一位玩家赢。否则,当前玩家从堆中移走卵石,然后将游戏传递给其他玩家。

如果有一个简单的堆游戏解决方案(我坚信有一个解决方案),我们也将获得原始游戏的解决方案:只需将序列放入Young Tableaux中,然后将其图转换为堆。

不幸的是,我看不到哪个堆位置获胜/如何确定Sprague-Grundy值。我手动检查了一些情况,以下是最多6个卵石的丢失位置:

一堆 (1,1,1); (2,2); (3,1,1); (2,1,1,1); (1,1,1,1,1); (4,2); (3,3); (2,2,2)。

有人可以解决这个游戏吗?

编辑:彼得·索尔可以,看看他的答案!


1
您是否可以举至少一个示例,说明如何将特定排列转换为Young Tableau,以及如何在Tableau上玩相同的游戏(删除数字直到达到升序)?特别是,我不明白删除“右下角正方形之一”的含义。
mjqxxxx 2011年

5
这是一个较弱的主张的反例,该主张认为,从排列中删除数字对应于从相应的Young 图表(而不是Young tableau)中删除右下角的单元格之一。令n = 5,并考虑由置换[4,1,3,5,2]指定的位置(即σ(1)= 4,σ(2)= 1,依此类推),然后删除3从中。移动之前对应的杨氏图是5 = 3 + 1 + 1,但是移动之后对应的杨氏图是4 = 2 + 2,这不是从3 + 1 + 1中删除一个单元格获得的。
伊藤刚(Tsuyoshi Ito)

5
并且排列[5,4,1,2,3]与[4,1,3,5,2]具有相同的杨氏图,但是您无法从中得出杨氏图4 = 2 + 2。因此,游戏不仅取决于Young table的形状。
彼得·索尔

2
祝您建设性的误会!
Jeffε

3
@Jɛff E:是的,这比仅仅存在误解的证明有用。
伊藤刚(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.