UNO is Hard, Even for a Single Player

カードゲーム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にお
いて全てのカードを出し切ることは難しいこと
が証明された。