7138

ツモの偏りについて

by
つみ
つみ
主に「ぷよぷよ通ルール」の中辛の場合について考察します。
ここでは「ツモの偏り」および「配ぷよ(ツモ生成)の偏り」を定義して実例で計算してみますが、数学的な議論がされます。
なるべく専門的な記号などは使わないようにしましたが、興味ない人は前半の「偏り」を計算する部分は読み飛ばしてもらって、後半の表のあたりから読んでください。


「ツモの偏り」を定義するために、まず「同色距離」というものを、次に同じ色のぷよが来るまでの距離で定義します。
例えばあるツモの最初が「r, g, b, y, y, b, g, r, ...」で始まるとすると、「同色距離」は「7, 5, 3, 1, ... 」で始まります。
この「同色距離」が「平均的である」、つまり4に近いほど(中辛4色の場合)ツモの偏りは少ないと判断します。
ここで、「ツモの偏り」を「同色距離の分散」で定義します。
例えば「r, g, b, y, r, g, b, y, ...(以下ループ)」のツモの同色距離は「4, 4, 4, 4, 4, 4, 4, 4... 」で偏りは0。
「r, r, g, g, b, b, y, y, ...(以下ループ)」のツモの同色距離は「1, 7, 1, 7, 1, 7, 1, 7,... 」で偏りは9です。
これは同色距離の平均からの散らばりを示すもので、あくまで一つの数値的評価ですが、ここではこれが小さいほど「普段我々が感じるツモの偏り」は少ないと考えます。

上の定義の注意点をいくつか述べます。
例えば、ツモ「r, g, b, r, g, b, ...」は3色ツモとして偏りを計算すると0ですが、4色ツモとしてみるととても偏っていると感じます。
ツモの偏りを比較する際、同色距離の平均が等しいということを仮定の上で比較できます。
甘口と中辛など、色数が異なる場合は比較できません。
ある特定の区間の偏りを評価する場合は、「「同色距離」は前後の距離を平均したものを使う」等の修正をしたほうがいいでしょう。



次に「配ぷよの偏り」を「ツモの偏りの平均」で定義します。
これは個々のツモの偏りを計算する必要はなく、ツモが確率的に与えられるものとしてその分散が求められればいいです。
以下いくつかの配ぷよについて「配ぷよの偏り」を計算します。ここでは配ぷよが4色の場合を仮定しますが、同様の計算は3色や5色などでも可能です。

配ぷよ1: ランダム
配ぷよ2: 128手色均等
配ぷよ3: 16手色均等
配ぷよ4: 4手色均等
配ぷよ5: 2手色均等

配ぷよ1~5を上で定義しますが、初手数手を3色以内にする補正は行わないものとし、n手色均等ではツモはループするものとします。
なお、同色距離の平均は配ぷよ1~5全てで等しく4になります。
詳しい証明は割愛しますが、n手色均等では各色ごとの同色距離の総和は1ループで2nになるので、簡単に計算できます。


配ぷよ5の偏りはすぐに計算できます。
配ぷよ5のツモは「色1, 色2, 色3, 色4」がループするため、同色距離は全て4で、全てのツモの偏りは0になります。
よって偏りは0です。

配ぷよ1~4の偏りは、分散 = (二乗の期待値) - (平均の2乗) を利用します。
平均は全て4とわかっていますので、同色距離の二乗の期待値が分かれば分散が分かります。
同色距離の二乗の期待値 E(X^2) は 

です。


配ぷよ1の場合、同色距離が k になる確率は、別の色が (k-1) 回でた後、同じ色が出る確率なので、

です。
よって、

です。よって偏りは12です。

配ぷよ4の場合、8コのぷよがループしそのうちのそれぞれ2コが同じ色になるので、
同色距離は7以下で、同色距離がkになる確率はkによらず7分の1です。
よって、

です。よって偏りは4です。

配ぷよ2の場合、同色距離がkになる確率は、
「256コのぷよがあって、最初にぷよを1コ引く。次にk回引いて初めて最初と同じ色のぷよを引く確率」です。
例えば同色距離が1になる確率は (63 / 255) で、
2になる確率は (192 / 255) * (63 / 254)、
3になる確率は (192 / 255) * (191 / 254) * (63 / 253) になります。
同色距離がkになる確率は、下降階乗冪 FP(X, n) = X * (X - 1) * ... * (X - n + 1) を用いて、
(63 / 193) * (FP(193, k) / FP(255,k))  になります。
同色距離は最大で193なので、

です。これを Wolfram Alpha さんに
63 / 193 * Sum[k^2 * FactorialPower[193, k] / FactorialPower[255, k] , {k, 193}]
と聞いてみると、1796 / 65 = 27.6308... と返ってきます。よって偏りは11.63 とします。

配ぷよ3の場合も、 Wolfram Alpha さんに
7 / 25 * Sum[k^2 * FactorialPower[25, k] / FactorialPower[31, k] , {k, 25}]
を聞いて同様にして計算できます(76 / 3 = 25.3333...)。よって偏りは9.33 とします。


以上で配ぷよ1~5の偏りが計算できました。
ここで、配ぷよ0として、低頭ちゃんさんの記事 ぷよスポの配ぷよ で引用されているマジありさんのツイートにあるツモ生成について考察します。
配ぷよ0は128手色均等に近いものになっていますが、初手2手が3色へ置き換えられています。
その分偏りはわずかに大きくなると思いますが、シャッフル部分のアルゴリズムは単純なシャッフル(フィッシャー–イェーツ等)ではありません。
このシャッフルが「均等に」シャッフルできるものだとは私は思いませんが、もしシャッフルが足りないのなら最初は均等なツモ「r, g, b, y, r, g, b, y, ...」からシャッフルさせているので、偏りは小さくなるでしょう。
この配ぷよの偏りを、低頭ちゃんさんの記事 セガぷよの配ぷよデータを公開してみました で公開されているデータを用いて計算機で計算しました。
冒頭で述べたように同色距離の平均が異なると比較はできません。
初手の置き換えによって平均はわずかに異なると思いますが、ほぼ4に等しいので4とします。
アルゴリズムの公開は行いませんが、配ぷよ0の偏りは 11.396746039390564 になりました。
128手色均等と比較してみると偏りは少なくなっていて、やはり均等なシャッフルになっていないように思います。
(w.i さんの記事 初手がゾロの確率は 1/3 よりちょっと小さいくらい。 にてシャッフル部分に関して詳しく書かれていました。やはり理想的なシャッフルではないようです。)


以上を表にまとめると、次になります。
 
配ぷよ 偏り
ぷよスポ(仮) 11.40
ランダム 12.00
128手色均等 11.63
16手色均等 9.33
4手色均等 4.00
2手色均等 0.00


ぷよぷよ用語辞典によると、
ぷよぷよクラシックや20thより前のセガ通などでは16手色均等で、コンパイル時代のぷよぷよ通やセガの20th通などでは128手色均等だそうです(初手の置き換えはあります)。
個人的には、128手色均等の配ぷよは計算資源が限られていたころの名残で、ツモ補正をかけることは重視していないのはないかと思います。
16手色均等は明確に補正しようとしている意図が感じられますが、128手は基本引ききることのない手数です。
今回の結果からもあまり変わっていないように思います。


配ぷよ0(ぷよスポ(仮))についてですが、完全なランダムよりも偏っていないという結果になりました。
しかし、初手2手の3色への置き換えにより「序盤のツモは偏りやすい」です。
さらに、配ぷよ0の初手2手の3色への置き換えは少し特殊なアルゴリズムになっています。
簡単に説明すると、4色のぷよ列「r, g, b, y, r, g, b, y, ...」と3色のぷよ列「r, g, b, r, g, b, ...」を同時に同じ順番でシャッフルをして、その後初手2手部分を3色のものに置き換えるという操作がされています。
これは本来置き換えが必要ない「r, r, r, b, g, g, y, y, ...」が「g, g, g, y, g, g, y, y, ...」等に置き換えられてしまうことが考えられます。
甘口と中辛で対戦する際などに初手を揃えることが目的だと思いますが、単純にABCDツモの場合のみ置き換える等よりも偏りは顕著になるでしょう。
また、128手引ききることはほぼないので、実際には表の数値よりも偏りを感じるでしょう(後半に発火色が来なかった等はほとんど関係ないです)。
「序盤のツモは偏りやすい」ことはつまり、序盤の全消しが増え、「全消し」、「速攻」、「連結土台」が強くなることになります。
ACぷよ通の配ぷよは初手3手が3色になるよう補正されています。これが配ぷよ0と同様のアルゴリズムが使われていると仮定すると(まったく同じである必要はありません)、ACぷよ通の序盤の偏りはより強く、「ACぷよ通ではぷよスポよりも全消し・速攻・連結土台が強い」ということになります。
全消し・速攻に弱い先折りGTRは相対的に弱くなります。
あくまで理論上なのでどれだけプレイに影響するかはわかりませんが、ぷよクロ以降の先折りGTRの隆盛との関係はもしかしたらあるのかもしれません。


ツモ生成にあたって、良いツモ生成アルゴリズムというものはプレイヤーの主観にゆだねられるので考えるのは難しいですが、一方で絶対に生成してはいけない「ダメツモ」が存在することは意識しなければならないと思います。
「ダメツモ」とは例えば「rr, rr, gg, gg, bb, bb, yy, yy, ...(以下ループ)」のように少ない手数での全消しが続いてしまうツモのことです。
ぷよぷよには引き分けは一応ありますが、将棋のような「千日手」の概念はないので、同一盤面が永遠に続いてしまう恐れがあります。
上のような極端な例はマージン制度などでは差がつけられないでしょう。
128手色均等などでこの「ダメツモ」が生成される確率は非常に低いと思われますが、0ではありません。
一方で、「ダメツモ」を絶対に生成しないような実用的なアルゴリズムを見つけることは難しいと思います。
現在使われているであろうツモが65536通りしかない理由の一つはこれかもしれません。
セガ(あるいはコンパイル)はそれら全てが「ダメツモ」でないことを確認したのではないでしょうか。
大部分はプログラムによってコンピュータに判定させられるので、膨大な作業というわけでもないと思います。

多くのプレイヤーが「欲しい色が来ない」状況が少なくなってほしいと願っていると思います。
例えば冒頭で定義した「同色距離」がそれなりに低い上限で抑えられていればそのような状況がなくなりますが、少し考えてみたところそういった条件は強すぎるもので、ツモ補正が強くなりすぎるかもしれません。ツモ補正が強すぎるのもまたゲームをつまらなくさせるでしょう。
バランスの問題であって、ツモ生成による簡単な解決方法はなさそうです。



今回はツモの偏りを定義してみました。
ツモの偏りと勝率に相関があったりしたらおもしろいですが、データ収集は困難ですね。



余談ですが128手色均等での特定の色のゾロの確率は 1 / 16 ではなく (64 / 256) * (63 / 255) = 63 / 1020 です。
大きな違いではありませんが、個人的な感想としては「128手中 ゾロは 128 / 16 = 8 手ずつ、非ゾロは128 / 8 = 16 手ずつ」の「ツモ均等」だったら
確率的にきれいでよかったんじゃないかと思います(非ゾロは軸ぷよが2色等確率になっているとなお美しいですね)。


(追記)2019-11-26 17:30
余談に誤りがあったので修正しました。
更新日時:2019/11/26 17:30
(作成日時:2019/11/26 01:35)
コメント( 0 )
コメントするにはログインが必要です
シェア