テトリスに対する オンラインアルゴリズム 豊橋技術科学大学 情報工学専攻2年 猿渡 慎也 テトリスとは 世界的に有名なパズルゲーム 最初に幅Wの盤面が与えられる 盤面に現れるテトロミノを操作し うまく横1行を揃えると行が消える ゲームオーバーになるまでにどれ だけ行を消せたかを競う テトリスの難しい点 将来どのテトロミノが 出てくるか分からない この場合、 この3行を消せた テトリスの難しい点 未来のテトロミノを知った 上で最適な置き方が出来 れば... 実は5行も消せていた テトリスの定式化 テトリスは将来どんなテトロミノが与えられるか分 からない問題、すなわちオンライン問題である 入力:テトロミノ列σ 出力:σに対し消せる行数 目的:出力の最大化 研究目的 どんなテトロミノ列に対しても、なるべく 多くの行を消せるオンラインアルゴリズ ムの開発(ただし盤面の高さは無制限) なぜ盤面の高さを無制限に? 必ずゲームオーバーにさせるテトロミノ列を作れるアルゴ リズムが存在 [J.Brzustowski,1992] 本研究では、テトロミノが積み上がってしまうのは諦 め、なるべく多く行を消すことを目指す テトリスに対する競合比の定義 OPT 競合比 lim sup ALG | | : テトロミノ列 ALG : オンラインアルゴリズ ムが消す行数 OPT : 最適オフラインアルゴリズムが消す行数 競合比の定義について 一般的に競合比として は OPTσ max σ ALGσ を用いることが多いが 、なぜ lim sup? 例:短いテトロミノ列が与えられたとき σ=( )の場合 ALG(σ ) 1 OPT ( ) | | なので、 OPT ( ) max 5 ALG( ) OPT (σ ) lim sup 2.5(解析は後述 ) ALG(σ ) |σ | ある ALGによる配置 lim sup と max OPT ALG max(|σ|が小さいとき、特異な結果が現れる場合がある) lim sup このような漸近的競合比は ビンパッキング問題にもよく用いられている σ そのようなmaxは、アルゴリズムの性能を表すのに適切か? 普通プレイヤーはかなりの数のテトロミノを配置する。ならば lim supによる漸近的な競合比の方が、性能評価として適切と 考えた 関連研究及び本研究の成果 必ずゲームオーバーにする テトロミノをある2種類に制限したとき、競合比1 テトロミノ列を作れる組合せ [J.Brzustowski,1992] 組合せ 盤面の幅 競合比 組合せ 盤面の幅 [J.Brzustowski,1992] 偶数 特に難しい 偶数 偶数 競合比 - 未解決 - 未解決 ・ ・ ・ 未解決 偶数 4- 未解決 2.5 偶数 4- 未解決 1.6 設定 盤面の幅W=4 テトロミノはLSとRSのみ現れる 用語 レーン 2 2列毎に区切った盤面 レーンの高さ 2 6 各レーンで一番上の テトロミノがある行の高さ 左レーンの高さ 5 4 3 2 1 左レーン 4 3 2 1 右レーン 競合比2.5以下のアルゴリズム アルゴリズムの動作 ステップ1. 最初の1個は図のように配置 アルゴリズムの動作 ステップ2. それ以降はLSは左レーンに、 RSは右レーンに図の向きにして配置 問題点 ステップ1と2だけだと、同じテトロミノばかりが 現れたとき 1行も消せない アルゴリズムの動作 ステップ3. 左右のレーンの高さ差がある閾値を 越えるとテトロミノに関係なく低い方に配置 高さ差が 閾値以上 競合比の評価 アルゴリズムにより発生する盤面 LS/ 0行消えた LS LS/0 S1 LS/? RS/ 0行消えた RS S0 RS/2 RS / 2行消えた RS RS/0 S7 RS/? 盤面の変化を状態遷移図で表す LS/? レーン内にテトロミノを配置するとき 補題 低い方のレーンの高さより下の行は、 今後変化しない。 この補題により、区別すべき盤面は 6 有限個となった 5 4 低い方の レーンの高さ 3 2 1 変化しない (1~3行目) 例 = = どちらの盤面も 右端の盤面と同じと見なせる! 状態遷移図(閾値=5のとき) このアルゴリズムの競合比 OPT 競合比 lim sup ALG | | 競合比の算出のために、 ALG(σ)とOPT(σ)を評価する OPT(σ)の上界 テトロミノはどちらも4つのブロックから成る また幅4の盤面では、1行は4ブロックで消える よって消せる行数は、高々 |σ| である。 OPTといえどもこれは越えられないので、上界は OPT( ) である。 定義:閉路の効率 1周する間に消せた行数 1周する際のテトロミノ 数 2 0 0 0 閉路の効率 全ての閉路の効率の中で、 最小のものを η とする テトロミノ数=2 0 1 0 2 消せた行数=2 この閉路の効率=1 1 テトロミノ数=5 消せた行数=2 この閉路の効率=2/5 ALG(σ)の下界 盤面の全状態数 mに対し m σ である テトロミノ列 σが与えられたとき、 ALG( ) m である。 ALG(σ)の下界 証明 盤面の全状態数 mに対し十分長いテトロミノ列 が 与えられたとする。こ のとき遷移する状態の列をSとする。 | S |, すなわち状態遷移の回 数は | | である。 m より、必ず Sには複数回現れる状態 が存在する。 S ALG(σ)の下界 証明続き 同じ状態が現れるとい うことは閉路が存在す るという ことである。 Sからこのような閉路を 取り除き、 閉路の集合 Cと、Cを除かれて短くなった 列S 'に分割する。 S C S' ALG(σ)の下界 証明続き ALG( ) S を辿って消せる行数 Cを辿って消せる行数 S ' を辿って消せる行数 |C | | ci | i i 1 |C | | ci | i 1 | S | | S ' | ci C , i : ciの効率 ALG(σ)の下界 証明続き S 'に閉路は存在せず、同 じ状態は現れない。 よって| S ' | mである。 | S | は | | に等しいと示したので ALG( ) | S | | S ' | | | m が得られる。□ 競合比の上界の算出 OPT 競合比 lim sup ALG | | 1 lim sup | | m 競合比 1 閾値による競合比の変化 閾値5以上20以下の場合(η=2/5) 競合比2.5以下 OPT ( ) また閾値5のとき lim sup 2 となる例を発見。 ALG( ) | | よってこの場合、競合比は2以上であることも分かった またLSとT字型の場合では、競合比1.6の アルゴリズムを示すことができた 最後に まとめ テトリスをテトロミノ列に対して消せる行数を最大 化するオンライン最適化問題として定式化した テトロミノがLS,RSの2種類で盤面の幅が4のとき、 競合比2.5以下のアルゴリズムを示した テトロミノがLS,Tの2種類で盤面の幅が4のとき、 競合比1.6以下のアルゴリズムを示した 今後の課題 競合比の真の値を求める 他のテトロミノの組合せについて調べる
© Copyright 2024 ExpyDoc