一般化Rogue脱出問題の計算複雑さ

Rogue 脱出判定問題の
PSPACE完全性
新井滋、武永康彦
(電通大)
Rogueについて
1980年ごろに製作されたダンジョン探索型の
1人用コンピュータRPG
地下迷宮の奥深くにある宝を取って脱出す
ることが目的
画面上のキャラクターやアイテム、通路、部
屋など全てテキスト文字で表される
ローグの一般的なルール


プレイヤーと魔物は交互に行
動する
行動とは
・上下左右と斜めの8方向に
移動する
・移動せずその場に留まる
・攻撃、など
ローグの一般的なルール


起きている魔物はプレイヤーに近づく方向に移動
最も近づく方向に移動不可能なら、その
両側のいずれかに移動
プレイヤーは以下の場合死亡
・攻撃を受け体力がなくなる
・空腹で餓死
Rogue脱出判定問題
入力:初期盤面、手数(1進表記)
問題:与えられた盤面において、プレイヤーが必ず
階段から脱出できるか
プレイヤー
起きている魔物
寝ている魔物
階段
Rogue脱出判定問題
部屋はひとつのみで通路はない
 階段は1個

寝ている魔物は攻撃しない限り起きない
 魔物が寝ているかどうかは区別できる

プレイヤーの性質


プレイヤーからは攻撃できず、魔物から一度でも
攻撃を受けた時点で死亡
(体力が限界にきている)
満腹度が減りすぎると餓死する
手数制限(t 手以内)にあたる
規定手数以内に脱出できない場合は餓死
Rogue脱出判定問題
定理
Rogue脱出判定問題はPSPACE完全である。
証明
PSPACEへの所属性
盤面の変化を示す木を探索
必要な領域は盤面のサイズと手数の多項式
PSPACE困難性の証明
Generalized Geographyから帰着
2人のプレイヤーが開始頂点からスタートして、
有向グラフの辺を交互に辿る
既に訪れた頂点を再度訪問すると負け
先手必勝か?
・グラフが二部グラフで、
(入次数、出次数)=(1,1)、(1,2)、(2,1)
に制限されている場合でもPSPACE完全
盤面の設計


頂点集合VA、VE
VA:プレイヤーが再度訪れると死亡
出次数2のとき、魔物の移動方向により
プレイヤーの進行方向が決まる
VE:プレイヤーが再度訪れると脱出できる
出次数2のとき、プレイヤーが進路を選択
開始頂点はVE
通路 ・・・ 辺に対応
寝ている魔物を並べて通路を作る
盤面全体の構造
グラフを多項式時間でグリッド上に平面埋め込み可能
頂点部品と同じx、y座標上に他の頂点部品、
および通路の折れ曲がりが存在しないように配置
VEの各頂点からは階段への道が存在
階段
VE
VA
VA
交差点
VE
頂点部品
VA(入次数2、出次数1)
入口→
入口→
→出口
頂点部品
VA(入次数2、出次数1)
初期配置において
プレイヤーの後ろに魔物
→後退、停止できない
頂点部品
VA(入次数2、出次数1)
1回目は通過可能
頂点部品
VA(入次数2、出次数1)
外を通っている限り
魔物は脱出しない
頂点部品
VA(入次数2、出次数1)
2回目は通過不可能
×
頂点部品
VA(入次数2、出次数1)
出口から進入不可能
×
×
頂点部品
VE(入次数2、出次数1)
頂点部品
通過すると魔物が
ロックされる
VE(入次数2、出次数1)
頂点部品
VE(入次数2、出次数1)
2回目の通過
頂点部品
VA(出次数2)
分岐部
頂点部品
VA(出次数2)分岐部
↓
→
↓
頂点部品
VA(出次数2)部分図
↓
→
↓
交差点の部品
通
路
右から進入の時のみ
魔物がロックされる
至階段←
←
交差点の部品
通
路
魔物は
ロックされない
至階段←
↑
おわりに
Rogue脱出判定問題のPSPACE完全性を証明
考察
・アイテム、飛び道具など
ほとんどのものは使用できてもPSPACE完全
・歩数制限がない場合 ・・・ EXPTIME完全?
・歩数制限なし、魔物の行動が一意に定まる場合
・・・ PSPACE完全?