カードゲームUNOの計算複雑性に ついて 西関研究室 8662 塩谷健仁 1 研究背景 ・組合せ的ゲーム マインスイーパ、オセロ、チェス、テトリス ・研究対象:UNOの計算複雑性 2 UNOとは? 3 カードの種類 ・数字カード 色{1,…,c}と数字{1,…,b}1つずつの組み合わ せを持つ。 ・アクションカード ‘Skip’, ‘Reverse’, ‘Draw 2’, ‘Wild’, ‘Wild Draw 4’ が存在する。 簡単化のためアクションカードは、ないものと して考える。 4 UNOのルール ・プレイヤーは1人以上とする。 ・プレイヤーがカードを出す順番は決められて おり、一番最初の人は最初にどんな手札でも 1枚捨てることができる。 ・次の人からは直前に場に出されたカードと色 または数字が同じである手札を1枚捨てるこ とができる。 ・最初の人が手札を全て捨てるか、途中で誰か が出せなくなるまでゲームは続く。 5 例 START 6 UNO問題 ・1人UNO問題 入力:プレイヤー1人に配ったn枚のカード 質問:ルールに則って、そのプレイヤーが全てのカードを捨て る為の出し方があるか ・k人UNO問題 入力:プレイヤーk人にそれぞれにn枚配った合計kn枚の カード 質問:ルールに則って、最初のプレイヤーが持つ全てのカー ドを捨てる為のk人のプレイヤー全員での出し方があ るか 7 既存研究 1人UNO問題、2人UNO問題はNP完全 故に1人UNO問題、2人UNO問題を解くこ とは現実的な時間では難しいと思われる 参考文献 E. D. Demaine, M. L. Demaine, R. Uehara, T. Uno, and Y. Uno,’’UNO Is Hard, Even for a Single Player’’, Lecture Notes in Computer Science, Vol. 6099, pp.133-144, Springer(2010). 8 既存研究 色の個数cが定数である1人UNO問題は 2 c O(n )時間で解ける。 参考文献 E. D. Demaine, M. L. Demaine, R. Uehara, T. Uno, and Y. Uno,’’UNO Is Hard, Even for a Single Player’’, Lecture Notes in Computer Science, Vol. 6099, pp.133-144, Springer(2010). 9 研究結果 色の個数が2あるいは3の1人UNO問題 は線形時間で解けることを示した。 2色 O(n4) O(n) 3色 O(n9) O(n) 10 ・ 2色UNO問題 (1, ),…,|(2, ),…, ・3色UNO問題 出し方を3通りに集約 (1、 ),…,|(2、 ),…, |(3、 ),…, 11 まとめ 1人UNO問題で色数が2あるいは3の場合に、 既存研究の結果より計算時間を短縮できた。 今後の課題 色数が一般にc(定数)の場合でも、既存の 研究結果より計算時間を短縮するアルゴリ ズムを開発。 12 終 想定質問1 ・アクションカードがあると、どうなります か。 2色UNO問題と3色UNO問題の場合、 例えばDraw2カードがあっても、1人 UNO問題は線形時間で解けます。 想定質問2 ・b≦nとは限らない場合どうなりますか。 O(nlogn)で解けます。 想定質問3 ・色が4色以上の時、線形時間で解けま すか。 現在、考えています。 想定質問4 2 c ・どうしてO(n )なのか。 UNOカードを、カードの持つ要素である色と数字 に対応させた2次元平面格子状の点で表します。こ れらの点を全て通るハミルトン路を探す問題を、cを 定数とした1人UNO問題と同等のものとして考えま す。ハミルトン路を探す問題を解くのにO(nc2)時間か かるので、cを定数とした1人UNO問題はO(nc2)時間 かかります。 これからの研究 ・1人UNO問題で色数と数字数(3、b)に おいて、更に短い多項式時間で判定で きるよう考える。 ・k人UNO問題についても研究していく。 11 2人UNO この場合でも1人UNOと同じく 難しいと言える おそらく何人でやっても難しいと予想 UNOのルール • 全員にカードを配り、順番にカードを捨てていく。 • 最初の人はどんなカードでも1枚捨てることがで きる。 • 次の人からは直前に場に出されたカードと色ま たは数字が同じであるカードを1枚捨てることが できる。 • 一番早く手持ちカードを全て捨てることができた 人が勝ち。 • カードを捨てられなくなった人は負け。 パラメータ プレイヤー数p=1 色集合X={1,…,c} 数字集合Y={1,…,b} カード(x、y)∈X×Yとみなす。 「カード(x’、y’)を(x、y)の直後に出すことがで きるための必要十分条件は、x’=xまたは y’=y」←ルールの肝 1人UNO • 入力:n枚のカード、ただし色数はx、数字の 数はy • 出力:手持ちカードを全て出しきり上がれるか。 1人UNO 例:n=9のとき、プレイヤーの手持ちカード集 合(ci、bi)を (1、3)(2、2)(2、3)(2、3)(2、4)(3、2) (3、4)(4、1)(4、3)としたとき 次のUNOグラフというものを考える。 UNOグラフ 「1枚のカード」 → 「2枚のカードを連続して出せる」 → (2,4) と表す。 (4,1) (2,2) (2,3) (4,3) (3,4) (3,2) (2,3) (1,3) このように一人UNOをUNOグラフに置き換える。 1人UNOで勝つためには (2,4) (4,1) (2,2) (2,3) (4,3) (3,4) (3,2) (2,3) (1,3) UNOグラフがハミルトン路を持つ→カードを出し切れる組み合わせを持つ。 キュービックグラフ • 例 G a d x s y u t b z c キュービックグラフがハミルトン路を持つかどうかはNP完全。 キュービックグラフとUNOグラフが同値だと示せれば、 UNOグラフがハミルトン路を持つかどうかはNP完全だと言える。 Gの変形 G G’ e1 e3 v (v,e1) (v,e3) e2 (v,e2) このように1つの頂点を3つに分割する。 Gの変換 V(G´)={(x,e)|x∈V(G),e={x,y}∈E(G)} E(G´)={((x,e),(y,e))|e={x,y}∈E(G)}∪ {((x,ei),(x,ej))|ei≠ej} (a,x) (b,y) (c,s) (d,x) (a,y) (b,t) (c,u) (d,t) (a,s) (b,z) (c,z) (d,u) これはカードの色xと数字yの(x、y)をルール通りに連続して出せる部分を結 んでいる。→UNOグラフと等価 グラフG’(UNOグラフ) (a,x) (d,x) (a,y) (a,s) (d,t) (b,y) (b,t) (c,s) (c,u) (b,z) (c,z) G⇔G’を証明していく。 (d,u) GからG’へ Gがハミルトン路P=(Vi1,…,Vin)を持つ。 PにおけるVij-1,Vij,Vij+1 (Vij-1,e1) (Vij,e1) (Vij,e3) P’における(Vij-1,e1),(Vij,e1),(Vij,e3),(Vij,e2),(Vij+1,e2) 最初と最後:(Vi1,e1)(e1≠{Vi1,Vi2}),(Vi1,e2)(e2≠{Vi1,Vi2}), (Vi1,{Vi1,Vi2}),(Vi2,{Vi1,Vi2}) (Vij,e2) よってG→G’ (Vij+1,e2) G’からGへ (a,x) (a,y) (a,s) 中の全てを連続して通ってから次へいくなら、 明らかにG’→Gが分かる。 (v,e1) (v,e2) (a1) (v,e3) (v,e1) (v,e2) (a2) (v,e3) 連続して通らないケース1 (v,e1) (v,e2) (b’) (v,e3) (v,e1) (v,e2) (b) (v,e3) 連続して通らないケース2 (v,e1) (v,e2) (c’) (v,e3) (v,e3) (v,e1) (v,e2) (c) まとめ G⇔G’=UNO-1が示せたので1人UNOにお いて全てのカードを出し切ることは難しいこと が証明された。
© Copyright 2024 ExpyDoc