私はこの問題をMathOverflowで質問しましたが、満足のいく答えはありませんでした。
Winnerと呼ばれるカードゲームを簡略化した次の2人用ゲームを考えてみましょう。(次の定式化は、MathOverflowに関するGuillaume Brunerieのコメントから引用されました。)
AとBの2人のプレーヤーがいます。各プレーヤーにはカードのセット(サブセット)があり、両方のプレーヤーから見ることができます。ゲームの目的は、自分のカードを取り除くことです。最初のプレイヤーはテーブル上のカードをプレイし、次に他のプレイヤーは(厳密に)より大きなカードをプレイする必要があります。その後、テーブル上のカードは捨てられ、他のプレイヤーは再び任意のカードをプレイすることから始めます(その後に大きなカードが続きます)。そして、2人のプレイヤーのうちの1人がカードを使い果たしてゲームに勝つまで続きます。
プレイヤーにとって最高の戦略を知りたい(彼が勝てる場合)。
正式な定義
示す最初のプレーヤのカードのセットがあるゲームの構成、第二のプレーヤーのカードのセットである、及びテーブル上の最大のカードである、テーブルにカードがないことを意味します。最初のプレーヤーが構成勝利戦略を持っているかどうかを指定して、アルゴリズムに指定して計算したいと思います。
正式には、次のように定義された関数を計算するアルゴリズムが必要です。
ましょう、。
関数
where
間違った戦略
ここにいくつかの間違った戦略があります:
- 常に最小のカードをプレイします。ましょう、構成におけるプレイヤAの勝利戦略カードプレイする。プレーヤーAがカード1をプレイすると、負けます。
- 他のプレイヤーが1枚のカードを持っていない限り、最小のカードをプレイします。これは戦略1よりも強力な戦略ですが、それも間違っています。構成についてのみ考えてください。プレーヤーAが戦略2を使用する場合、彼は負けます:、つまりプレーヤーAは負けます。