順列ゲームの冗長化


20

これは以前の質問の言い換えです。

2人のプレーヤー、アリスとボブの間の次の公平で 完璧な情報ゲームを考えてみましょう。プレーヤーには、整数1〜nの順列が与えられます。各ターンで、現在の順列が増加している場合、現在のプレイヤーが負け、他のプレイヤーが勝ちます。そうでない場合、現在のプレーヤーは数字の1つを削除し、プレイは他のプレーヤーに渡されます。アリスが最初にプレイします。例えば:

  • (1,2,3,4)—定義により、ボブはすぐに勝ちます。

  • (4,3,2,1)—誰がどのようにプレイしても、アリスは3ターン後に勝ちます。

  • (2,4,1,3)—ボブは、アリスのプレイ方法に関係なく、最初のターンで勝つことができます。

  • (1,3,2,4)— 2または3を削除すると、アリスがすぐに勝ちます。それ以外の場合、ボブは最初のターンで2または3を削除して勝つことができます。

  • (1,4,3,2)—アリスは、最初のターンで1を取ると最終的に勝ちます。それ以外の場合、ボブは最初のターンで1を削除しないことで勝つことができます。

完全なプレイを想定して、与えられた開始順列からこのゲームに勝つプレイヤーを決定する多項式時間アルゴリズムはありますか?より一般的には、これは標準的な公平なゲームであるため、すべての順列にはSprague–Grundy値があります。たとえば、(1,2,4,3)の値は* 1で、(1,3,2)の値は* 2です。この値を計算するのはどれくらい難しいですか?

明らかなバックトラッキングアルゴリズムはO(n!)時間で実行されますが、これは動的プログラミングにより時間に短縮できます。O(2npoly(n))


4
ナイーブアルゴリズムはO(2 ^n⋅poly(n))時間で実行されるようです。
伊藤剛

あなたの例から、シーケンスが降順の場合はアリスが常に勝ち、シーケンスが昇順の場合は常にボブが勝つことは明らかです。この問題は、広く研究されてきたソートアルゴリズムの分析を思い出させ、幅広いツールを使用できるようにします。
chazisop

1
@chazisop:「シーケンスが降順の場合、アリスは常に勝ちます」:nが偶数の場合にのみ、そうです。
伊藤剛

@Jɛff Eケース3で、ボブは最初のターンでどのように勝ちますか?
スレシュヴェンカト

2
@Suresh:(2,4,1,3)の場合、グラフ表現は4つの頂点(2-1-4-3)上の線形グラフです。Aliceが終了ノードを削除すると、3つの頂点に線形グラフが残ります。ボブは、中央の頂点を削除することで勝ちます(したがって、3は1で答えられ、2は4で答えられます)。Aliceが内部ノードを削除すると、2つの接続された頂点と孤立したノードが残ります。ボブは、接続された2つの頂点のいずれかを削除することで勝ちます(したがって、1は3または4で答えられ、4は1または2で答えられます)。
mjqxxxx

回答:


7

「順列ゲーム」は、次のゲームと同型です。

切断します。プレイヤーは、グラフから頂点を交互に削除します。完全に切断されたグラフ(つまり、エッジのないグラフ)を生成するプレーヤーが勝者です。G

グラフ特定の初期転置に対応するπ S N含有ちょうどこれらのエッジI J そのためのI - J及びπ I - π J 反対の符号を有します。つまり、数字の各ペアが間違っているGππSn(i,j)ijπ(i)π(j)順列の順序はエッジに関連付けられています。明らかに、許可された動きは順列ゲームの動きと同形であり(数字の削除=ノードの削除)、勝ちの条件も同形です(降順のペアがない=エッジが残っていない)。

相補的なビューは、グラフ補体の「二重の」ゲームをプレイして考慮することによって得られるこれらのエッジ含まれ、I J そのため、I及びJは、であり、正しい順列順序を。切断するデュアルゲームは次のとおりです。Gπc=GR(π)(i,j)ij

再接続します。プレイヤーは、グラフから頂点を交互に削除します。完全なグラフを作成するプレーヤーが勝者です。G

特定の順列に応じて、これらのゲームの1つは他のゲームよりも簡単に分析できる場合があります。グラフ表現の利点は、グラフの接続されていないコンポーネントが別個のゲームであることは明らかであるため、複雑さをある程度軽減できることです。また、位置の対称性をより明確にします。残念ながら、勝利条件は非標準です...順列ゲームは、すべての動きが使い果たされる前に常に終了し、何か不吉なキャラクターを与えます。特に、nim-valueは、切断されたコンポーネントのnim-valueのnim-sum(バイナリXOR)として計算できません。


切断のために、任意のグラフのことを確認することは困難ではないとも任意のN、ゲームG ˉ K nは、と等価であるGˉ K nは上エッジレスグラフであるn個の頂点)。それを証明するために、我々は選言合計ことを示す必要がG + G ˉ K nは第二のプレーヤーの勝利です。証明は| G | + NGの場合GnGK¯nGK¯nnG+GK¯n|G|+nGエッジレスである場合、最初のプレイヤーはすぐに負けます(両方のゲームが終了します)。そうでなければ、最初のプレイヤーのいずれかに移動することができる、及び第2プレイヤは、他のいずれかの彼の動きをコピーすることができ(に還元G ' + G '¯ K N| G ' | = | G | - 1)。又は、場合N 2、(に還元最初のプレーヤーは切断部分に移動することができ、そして第二のプレーヤーは、同じことを行うことができるG + G ˉ K N - 2)。GG+GKn¯|G|=|G|1n2G+GK¯n2

任意のグラフ、この番組と等価であるH KのPHは、の一部であるGない切断頂点を有する、およびP = 0または1であるパリティにおける切断頂点の数のG。等価クラスのすべてのゲームは、同じNIM-値を持ち、かつ、同値関係の点組合操作:もしG H KのPG "H "KのP "その後、GGHKpHGp=01GGHKpGHKp。また、一つはゲームであることがわかります [ H K 0 ]及び [ H K 1 ]ない限り、異なるNIM-値を有する Hが再生時:NULLグラフである H + H K 1、最初のプレーヤーが単離さを取ることができます H + Hのままにして、その後、2番目のプレイヤーの動きをコピーします。GG(HH)Kpp[HK0][HK1]HH+HK1H+H

再接続に関連する分解結果はわかりません。


2つの特別なタイプの順列は、特に単純なヒープゲームに対応しています。

  1. 1つ目は、たとえば32165487のように、下降する昇順。場合πはこの形式を取り、グラフGのπは互いに素クリークの組合であり、切断のゲームは、ヒープ上のゲームに帰着:プレイヤーが交互ヒープから単一のBeanを削除すべてのヒープサイズなるまで132165487πGπ1
  2. 2番目は、78456123のように、上昇の下降。場合πはこの形式を取り、グラフG C πは互いに素クリークの組合であり、再接続のゲームは、ヒープ上のゲームに減少:プレイヤーは交互ヒープから単一のBeanを削除左唯一のヒープがあるまで78456123πGπc

少し考えてみると、これら2つの異なるヒープ上のゲーム(混乱を招く可能性がありますが、これらを1ヒープ1 ヒープと呼ぶことができます)は、実際には同型であることを示しています。どちらもヤングダイアグラム上のゲームで表すことができます(@domotorpが最初に提案したように)。プレイヤーは、右下の四角を1行だけになるまで交互に削除します。これは、列がヒープに対応する場合は1ヒープと同じゲームであり、行がヒープに対応する場合は1ヒープと同じゲームです。

このゲームの重要な要素は、切断と再接続にまで及びますが、期間は簡単な方法で最終的なゲームの状態に関係するということです。あなたの番であるとき、あなたがしようとしているものを含めて、ゲームに残っている奇数の動きがある場合、あなたは勝ちます。移動ごとに1つの正方形が削除されるため、これはゲームの最後に残っている正方形の数を、現在とは逆のパリティにすることを意味します。さらに、正方形の数はすべてのターンで同じパリティを持ちます。したがって、最初から最終的なカウントに必要なパリティを把握できます。最終カウントが勝つために偶数か奇数かによって、イブとオットーの2人のプレーヤーを呼ぶことができます。Eveは常に奇数パリティの状態で移動し、偶数パリティの状態を生成します。Ottoは逆です。

彼の答えで、@ PeterShorはOne-Heapの完全な分析を提供します。証明を繰り返さなければ、結果は次のようになります。

  • Ottoはヒープと2ヒープが好きで、1つの大きなヒープを許容できます。彼は1以外のすべてのヒープサイズを作ることができれば、彼は勝利2イブにフォームの即時の勝利与えることなく、少なくとも、1 N 。オットーのための最適な戦略は、常に状態がある場合を除いて二番目に大きいヒープから取ることである1 1 N > 1 彼がから取るべきとき、N。オットーは、大きなヒープに開始する豆が多すぎると失われます。122(1,n)(1,1,n>1)n
  • Eveはヒープが嫌いです。すべてのヒープサイズを2 以上にすることができれば、彼女は勝ちます。Eveの最適な戦略は、常に1ヒープから取得し、もしあれば2ヒープから取得しないことです。開始する1ヒープが多すぎる場合、Eveは失われます。12121

前述のように、これは1ヒープにも最適な戦略を提供しますが、フレーズはやや厄介ですが(プライマリからデュアルへの "翻訳"でエラーが発生する可能性があります)。1ヒープのゲームでは:

  • Ottoは1つまたは2つの大きなヒープを好み、任意の数のヒープを許容できます。彼はすべてを行うことができますが、2つの最大のヒープが可能ならば、彼は勝利1 -heapsイブに、フォームの即時の勝利与えることなく、少なくとも、1 1 ... 1 2 。Ottoの最適な戦略は、常に3番目に大きいヒープから、またはヒープが2つしかない場合は小さいヒープから取得することです。11(1,1,,1,2)
  • Eveは、最大のヒープと2番目に大きいヒープのギャップを嫌います。最大の2つのヒープを同じサイズにできれば、彼女は勝ちです。Eveの最適な戦略は、一意である場合は常に最大のヒープから取得し、最大サイズのちょうど2つの場合は絶対に取得しないことです。

@PeterShorが指摘しているように、これらの分析を切断および再接続のより一般的なゲームに拡張する方法(または適用するかどうか)は明確ではありません。


2
この種のゲームは、集合的に「頂点削除ゲーム」と呼ばれると思います。しかし、勝利条件は、程度などのローカルプロパティではなく、グラフのグローバルプロパティを参照するという点で非常に非標準であることに同意します頂点。
伊藤剛

4
作成されたグラフは、文献では順列グラフ(en.wikipedia.org/wiki/Permutation_graph)と呼ばれます。いくつかの構造特性が役立つ場合があります。
岡本芳雄

1
@Yoshio:それは良い点です。順列ゲームはグラフゲームと同型ですが、開始グラフはarbitrary意的ではありません。したがって、一般的なグラフゲームを分析するのが難しい場合でも、このサブクラスのグラフに制限すると、より単純になる可能性があります。
mjqxxxx

2
一方、より一般的な定式化は、難しいことを証明するのが簡単かもしれません。頂点削除のゲームは、例えば、PSPACE困難であることが知られているの変異体:emis.ams.org/journals/INTEGERS/papers/a31int2005/a31int2005.pdf
Jeffε

2
この種のゲームについては、特にmath.SE(math.stackexchange.com/questions/95895/…)で質問を追加しました。ちなみに、順列グラフは円グラフであるため、別の定式化は次のようになります。プレーヤーは交互にコードを初期セットから削除します。交差しないコードのセットを残したプレイヤーが勝者です。
mjqxxxx

7

彼の答えでは、domotorpはゲームの特殊なケースを分析することを提案しています。この特殊なケースは、置換が(8,9,5,6,7,4,1,2,3)など、次のシーケンスよりも大きい一連の増加シーケンスである場合に発生します。このゲームでは、石の山のコレクションから始め、プレイヤーは交互に山から1つの石を取り除きます。単一のヒープを残したプレイヤーが勝ちます。番目のヒープにはh iストーンがあると言い、h iは降順で与えられると仮定します。たとえば、上記の順列の場合、h iihihihi3,3,2,1です。domotorpの答えへのコメントでこのゲームの分析を提供しようとしましたが、(a)間違っていました。(b)実際の証拠を提供するためのコメントに十分なスペースがありません。

このゲームを分析するために、我々は2つの量を比較する必要がある:、単一の石を含むヒープの数と、T = Σ I 2 H 、I > 2s ; 合計の最大ヒープを無視することに注意してください。これは、1つを除くすべてのヒープに2つ以下の石が含まれるようにするために削除する必要がある石の数です。負けポジションは以下の通りだと主張します:t=i2,hi>2hi2

  1. 位置石の奇数を含みます。ts2

  2. 体位石の偶数を含みます。ts

は1ターンごとに最大1つしか変化せず、石の数は1動きごとに減少するため、負けたポジションから勝ちのポジションに移動する必要があることを示すのは簡単です。ts

これが正しいことを示すために、カテゴリ(1)または(2)以外の位置から、最初のプレーヤーが1つの動きでカテゴリ(1)または(2)の位置に到達できることを示す必要があります。または直接勝ちます。

次の2つの場合があります。

  1. 位置石の奇数を含みます。ここで、s > 0の場合、単一のストーンでヒープからストーンを削除します。ヒープが1つしか残っていない場合は、勝ちました。そうでなければ、我々は今持っているT 。単一の石でヒープがない場合は、少なくとも3つの石でヒープから石を削除します。(石の数が奇数だったので、これは可能です)。以来、S = 0、我々はT ts1s>0tss=0ts

  2. 体位石の偶数を含みます。ここで、最大のヒープ以外に少なくとも2つのストーンを持つヒープがある場合、それらの1つからストーンを削除します。このヒープに3つ以上の石がある場合、tは1つ減少します。その中にちょうど2つの石がある場合、sは1ずつ増加します。私たちは、今持っているT S - 2。最後のケースは、1つを除くすべてのヒープが単一の石で構成されている場合です。この場合、石の数が偶数の場合、最初のプレーヤーの勝ちを確認するのは簡単です。ts1tsts2

私はこの戦略を元のゲームに一般化しようとしましたが、その方法を理解していませんでした。


1
私の答えでは、この特殊なケースの解決策は、ヤングダイアグラムを転置して得られる「デュアル」位置で再生することにより、増加する一連の減少するランで特殊なケースも解決することに注意しました。特に、Eveの最適戦略は「そのサイズがちょうど2つある場合を除き、最大ヒープから取得」となり、Ottoの最適戦略は「最​​小ヒープから取得」にな​​ります。
mjqxxxx

このアプローチは完璧な解決策につながると確信していますが、現時点ではまだ小さな間違いがあります。たとえば、(3,1)は負けていないし、(3,1,1)は負けています。問題は、2の定義でこのケースを除外する必要があることです。1つのステップで1つのヒープ位置に到達できるからです。しかし、これは2.の唯一の問題だと思います。うまくいけば、修正するのは難しくないでしょう。
-domotorp

1
@domotorp:(3,1)について、T = 0、S = 1、そうT S、及び基準(2)は、負けた位置ではないことを述べています。(3,1,1)のために、T = 0及びS = 2、そうT S - 2、及び基準(1)は、負けた位置であることを述べています。tの定義で、最大のヒープを無視するのを見逃したと思います。
ピーターショー

もちろん、最後にその部分を忘れてしまいました...このゲームは解決しました!
-domotorp

1
完全な答えではありませんが、まだ価値はあります。
ジェフ

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:ゲームにいくつかの素晴らしい特性があるという希望を与えます。グラフに一般化されたゲームや、完全なグラフに一般化されたゲームはどうなるのでしょうか。
ピーター

3

1月5日編集:実際、以下で説明するOne Heap Gameは問題の特別なケースです。つまり、数字が特定の方法で互いに続き、最初のグループが3番目よりも大きい2番目のグループよりも大きい場合などです。 。および各グループの数は増加しています。たとえば、8、9、4、5、6、7、2、3、1はそのような順列です。そこで、まずこの特別なケースを解決することを提案します。

免責事項:以下の証明が正しいと主張しなくなりました。例えば、順列から数字を削除すると、順列の図から正方形を削除しても得られない図になることを示す剛のコメントを参照してください。ここに答えを残して、このアプローチが機能しないことと、別の単純なゲームが含まれていることを示しました。

Young Tableauxのおかげで、このゲームには非常にシンプルな他の定式化があります。そこから他のゲームと同じように分析でき、線形時間アルゴリズムが得られると確信しています。

最初にYoung Diagramsで次のゲームを定義します。各ターンで、現在の図が水平(1行にすべての正方形)である場合、現在のプレイヤーが負け、他のプレイヤーが勝ちます。そうでない場合、現在のプレーヤーは右下の正方形の1つを削除し、プレイは他のプレーヤーに渡されます。

次に、若いタブローに一連の数字を並べます。主な主張は、元のゲームの勝者は、この形状から始まるダイアグラムゲームの勝者と同じであるということです。これを確認するには、プレーヤーが数字を削除するたびに、ダイアグラムの右下の四角形を削除することで新しいシーケンスのダイアグラムを実現できることに注意してください。さらに、そのような図は、右下の正方形から数字を削除することで実現できます。これらのステートメントは、標準のヤングタブロー理論から得られます。

このダイアグラムゲームは非常にシンプルですが、次のゲームとまったく同じです。

1つのヒープゲーム:プレイヤーには、それぞれに小石のあるヒープが与えられます。各ターンで、残りが1ヒープしかない場合、現在のプレイヤーが負け、他のプレイヤーが勝ちます。そうでない場合、現在のプレイヤーはヒープから小石を取り除き、プレイは他のプレイヤーに渡されます。

ヒープゲームに簡単な解決策があれば(そして、それがあると強く信じています)、元のゲームにも解決策があります。シーケンスをYoung Tableauxに入れ、その図をヒープに変換するだけです。

残念ながら、どのヒープ位置が勝っているのか、Sprague–Grundyの値を決定する方法はわかりません。いくつかのケースを手で確認しましたが、以下は最大6個の小石がある負けポジションです。

1つのヒープ。(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
特定の順列がどのように若いTableauに変換され、同じゲーム(昇順に達するまでの番号の削除)がTableauでどのようにプレイされるかを示す例を少なくとも1つ挙げてください。特に、「右下の正方形の1つ」を削除することの意味がわかりません。
mjqxxxx

5
これは、順列から数値を削除することは、(ヤングタブローの代わりに)対応するヤングダイアグラムから右下のセルの1つを削除することに対応するという弱い主張に対する反例です。n = 5とし、順列[4,1,3,5,2]で指定された位置(つまり、σ(1)= 4、σ(2)= 1など)を考慮し、3を削除します。それから。移動前の対応するヤングダイアグラムは5 = 3 + 1 + 1ですが、移動後の対応するヤングダイアグラムは4 = 2 + 2であり、3 + 1 + 1から1つのセルを削除しても得られません。
伊藤剛

5
そして、順列[5,4,1,2,3]には[4,1,3,5,2]と同じヤング図がありますが、そこからヤング図4 = 2 + 2に到達することはできません。したがって、ゲームはヤングタブローの形状以上に依存します。
ピーターショー

2
建設的な誤解に感謝します!
ジェフ

3
@Jɛff E:ええ、これは単なる誤解の存在の証拠よりもはるかに便利です。
伊藤剛
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.