リゼット(14新)推奨日記

旧はてなダイアリー(http://d.hatena.ne.jp/risette14/ )から移行しました。

イロレーティングを用いた拡張的な対戦形式の表現方法について

概要

イロレーティングというシステムにおいては、一般に「1対1の対戦」および「2値(勝敗)の結果」を前提としている(当然様々な改良が存在するが)。
当ブログではイロレーティングを用いてMCバトルのレーティングを行っているが、可能な限り単純化するため内部では以下のような記述フォーマットを入力にレーティングを算出している。

ID(主キー) 集合ID 対戦ID 勝者 敗者 勝重み 敗重み
s250301 s25 03 A B 1 1

この例は1レコードの対戦1件を示し、以下を意味している。

  • この対戦にはs250301というIDが割り当てられている。
  • この対戦は他の集合IDs25の対戦と同日に行われ、他の集合IDs25かつ対戦ID03の対戦と同時に行わた。
  • AはBと1回(勝重み)対戦し、1回(勝重み)勝利した。
  • BはAと1回(敗重み)対戦し、1回(敗重み)敗北した。
  • AはAとBのレーティング差を入力としたロジスティック関数に1(勝重み)を乗じた結果をAのレーティングに加算する。
  • BはAとBのレーティング差を入力としたロジスティック関数に1(敗重み)を乗じた結果をBのレーティングに減算する。

しかし、現実には様々な対戦形式が考えられる。対戦形式ごとに記述フォーマットを作っていくと複雑となることから、便宜的に、上記のような「1対1の対戦」および「2値(勝敗)の結果」のレコードを複数組み合わせることによって様々な対戦形式を表現したい。
本記事では、他分野でも一定程度応用できるだろうことから、これまで検討してきたMCバトルにおける表現方法の案を紹介する。

引き分け

MCバトルにおいては通常勝敗が必ず定まるが、引き分けが発生した場合については以下のように処理する。

ID(主キー) 集合ID 対戦ID 勝者 敗者 勝重み 敗重み
s250401 s25 04 A B 1/2 1/2
s250402 s25 04 B A 1/2 1/2

AがBに対して1/2勝したというレコードと、BがAに対して1/2勝したというレコードを同時に与える。
2レコードを別々に与えた場合、後に処理された方が結果に強く影響するため、必ず同時に与える必要がある。以下についても同様。
この2レコードにより、A・Bの間で1戦が行われたこととなり、対戦数・勝敗数は整合的である。
対戦をそもそも行わなかったことにする、という方法もあるが、行われたはずの対戦と対戦数が一致しなくなること、イロレーティングは対戦勝率比を対数化した結果を理想的なレーティング差とみなすシステムであり、レーティング差があるプレイヤー同士で引き分けが生じたならばレーティング差を減少させることが望ましいと考えられることから、上記手法を取る。

チーム戦(N vs N)

MCバトルにおいてはしばしばチーム戦が行われる。チーム戦にも、各チームメンバーが同時参加する形式と、星取り戦のように各チームの先鋒・中堅・大将がそれぞれ戦う形式が存在するが、後者については独立した1対1の対戦の集合とみなせることから、前者のみを考える。
例として、2 vs 2の場合は以下のように処理する。(A1,A2)のチームが(B1,B2)のチームに勝利した場合、

ID(主キー) 集合ID 対戦ID 勝者 敗者 勝重み 敗重み
s250501 s25 05 A1 B1 1/2 1/2
s250502 s25 05 A1 B2 1/2 1/2
s250503 s25 05 A2 B1 1/2 1/2
s250504 s25 05 A2 B2 1/2 1/2

このようにn^2=4件のレコードで表現する。これにより、各プレイヤーは1回対戦し、1/2勝(1/2敗)を対戦相手2人から得て1勝(1敗)したこととなる。全体を見ればN^2/2=2件の対戦が発生した計算となるが、プレイヤー単位でレーティングを行っていることから、各人について「チーム戦に出て勝利した」という結果を1戦1勝として表すことを優先するのがMCバトルにおいては妥当であろうと考えた。
なお、重みを1/nでなく1とすれば、チーム戦においては対戦相手チームの人数分だけ勝利した計算となるし、重みを1/n^2とすれば、全体で見て対戦1件が発生した計算とすることもできるだろう。

チーム戦(N vs M)

より複雑な問題として、MCバトルにおいては人数差のあるチーム戦が時折行われる。結局は何人いようと8小節(あるいは16小節など)という限られた枠の中でチームがラップすることとなるため、人数が多くなっても特段有利ではない、むしろチーム内の協調が難しくなるため不利な場合もあると考えられているためである。
例として、2 vs 3の場合は以下のように処理する。(A1,A2)のチームが(B1,B2,B3)のチームに勝利した場合、

ID(主キー) 集合ID 対戦ID 勝者 敗者 勝重み 敗重み
s250601 s25 06 A1 B1 1/3 1/2
s250602 s25 06 A1 B2 1/3 1/2
s250603 s25 06 A1 B3 1/3 1/2
s250604 s25 06 A2 B1 1/3 1/2
s250605 s25 06 A2 B2 1/3 1/2
s250606 s25 06 A2 B3 1/3 1/2

このようにnm=6件のレコードで表現する。この場合、各プレイヤーは1回対戦し、勝チームは1/3勝を対戦相手3人から得て、敗チームは1/2敗を対戦相手2人から得る。全体で見ればNM/2=2.5件の対戦が発生した計算となり、N vs Nチーム戦と齟齬のない拡張が行えている。
この方式では1レコード内で勝重みと敗重みに異なる値を用いることで、1対1の対戦の組み合わせであるにもかかわらず人数差のある対戦を表現できているが、一方でイロレーティングのゼロサム原則を崩すこととなる。イロレーティングでは原則として、勝者が得る値と敗者が失う値は一致しており、環境全体の平均レーティングは常に原点となる。しかし、この方式の場合は重みと敗重みの値が異なることから増減が一致しなくなり、レコードの組み合わせでも解消されない。レーティングに大きな差がない場合、少ない人数のチームが勝利すれば環境全体の平均レーティングは減少し、多い人数のチームが勝利すれば環境全体の平均レーティングは増加する。
ただし、MCバトルの場合は全体に比して人数差のある組み合わせの対戦は微小*1であり、全体に影響するほどではないことから、N vs Nチーム戦と平仄を取って各プレイヤー単位の勝敗を1戦分として表現することを優先し、この方式を取る。

バトルロイヤル(1 vs 1 vs 1 vs…)

近年の戦極 MCBATTLEで試みられている形式として、3~4人が同時対戦し1人が勝ち上がるバトルロイヤルが存在する。
現状は単発イベント規模であることからレーティングの対象大会に組み入れる予定はないが、あらかじめこの形式についても表現方法を検討する。
例として、チーム数T=3で1 vs 1 vs 1の場合は以下のように処理する。AがB、Cに勝利した場合、

ID(主キー) 集合ID 対戦ID 勝者 敗者 勝重み 敗重み
s250701 s25 07 A B 1/2 1/2
s250702 s25 07 A C 1/2 1/2
s250703 s25 07 B C 1/4 1/4
s250704 s25 07 C B 1/4 1/4

このように(T-1)^2=4件のレコードで表現する。この場合、各プレイヤーは1回対戦し、勝プレイヤーは1/2勝を対戦相手2人から得る一方、敗プレイヤー2人は勝プレイヤーから1/2敗を得た上互いに引き分けに相当する1/4勝1/4敗を与え合う。全体で見ればT/2=1.5件の対戦が発生した計算となる。
1人だけが勝ち上がることから、負けた他プレイヤー同士の関係については無勝負と考えることもできるが、プレイヤー同士でdisが発生し競い合っている以上は、勝敗が発生した関係含め各対戦相手に対して等しい重みをつけるべきと考えた。
ただし、勝者に関する重みを1/2でなく1、敗者に関する重みを1/2(T-2)としても整合性に問題がなく、実際のイベントを考えた時に適切な変動量がどちらであるかは改めて検討したい*2

*1:2012年~2019年の主要大会での対戦2926件中AsONEを中心とした41件

*2:主観では、現状の重みづけでは通常のトーナメントに比して変動量が小さすぎ、勝者重みを1とした場合は変動量が大きすぎるように思える

IIDXのランダム配置について・その2(CS EMPRESS編)

スマートフォンからは表が正しく表示されないようです。ブラウザを"PC版"表示にしてご覧ください。

1.はじめに

 前回の記事では、AC環境(beatmania IIDX 27 HEROIC VERSE)におけるランダム配置分布について分析し、一定の偏りが存在する可能性は否定できないが、プレイヤーが通常のプレー中に感知できるような偏りとはなっていない、と考察した。

 引き続き今回の記事では、AC環境以外の他環境における分析として、長年CS環境の中核を担ってきたPS2用ゲームソフト”beatmania IIDX 16 EMPRESS + PREMIUM BEST”におけるランダム配置について分析と考察を行う。

 先に結論を述べておくと、本ソフトのランダム配置には明らかな偏りが見られ、またその有力な原因についても推測することができた。以下ではその詳細を述べていく。

 

2.検証方法

 今回の記事のデータについては、全面的に@yonexun氏から頂戴した。その検証方法については以下の通りである。

 PS2beatmania IIDX 16 EMPRESS + PREMIUM BESTのEMPRESS DISCを用いて、2種類のモードで調査を行った。

 

(1) TRAININGモード 

 “Marie Antoinette“SPAの131小節目を表示させ、ボタン自動連射機能の付いたコントローラ(連射機)を用いてRANDOMオプションのON/OFF切り替え操作を繰り返し、その様子を動画撮影することでランダムの配置を取得した。“Marie Antoinette“SPAの131小節は、”朧”SPAと同様に正規レーンで1234567の階段のみが配置されており、本調査に適している*1

 なお、連射機にはPS用アスキーパッドV2を用いた。連射速度は約27回/秒の性能であり、約3分の撮影で2450回のランダム配置を取得することができた。撮影した動画からフレーム単位で画像を抽出し、画像解析から配置を取得した。

 

(2) FREEモード

 “BITTER CHOCOLATE STRIKER” SPAをHARDゲージにてプレーを開始し、放置状態でクイックリトライ連奏している様子を動画撮影することでランダムの配置を取得した。

 “BITTER CHOCOLATE STRIKER” SPAは開幕に正規レーンで「765432」の階段配置が繰り返されるため、ゲージが無くなって途中終了する前に全てのレーン配置先を確認することができ、本検証に適している。

 1回約9秒のプレーを約7時間撮影し、2744回のランダム配置を取得することができた。

 なお、CS EMPRESSのクイックリトライは、AC同様に途中終了時に所定のボタンを押し続けることで実行可能であるが、ACとは違って途中で強制終了する操作とクイックリトライの操作が異なるため、クイックリトライのボタンだけを押しっぱなしにしておくことで、自動的にレーン配置先を確認しながら連奏する状況を作り出すことが可能である*2

 

 

3.「偏り」の定義について

 前回の記事同様、個々の配置傾向を確認する「独立的偏り」および、前回配置による影響を確認する「従属的偏り」の2つの観点から検討を行う。

 

4.検証結果

 TRAININGモードおよびFREEモードそれぞれについて、正規レーンに対する移動先分布および前回配置に対する今回配置分布を表に示す。表は前回の記事同様、等確率である場合の期待値を黄色、期待値+20%を赤、期待値-20%を緑とする3色カラースケールで表現し、期待値±10%以上の場合は太字とする。

スマートフォンからは表が正しく表示されませんので、以下、ブラウザを"PC版"表示にしてご覧ください。

(1)TRAININGモード

①正規レーンに対する移動先分布(横軸:配置先鍵盤、縦軸:その鍵盤に対して配置された正規のレーン)
  1 2 3 4 5 6 7
1 346 363 350 347 340 353 351
2 324 323 384 348 359 356 356
3 356 357 345 324 353 358 357
4 384 345 336 357 335 348 345
5 396 352 338 325 373 328 338
6 308 374 320 370 346 370 362
7 336 336 377 379 344 337 341
②前回配置に対する今回配置分布(横軸:今回配置鍵盤、縦軸:前回配置鍵盤)
  1 2 3 4 5 6 7
1 348 449 381 368 317 308 278
2 360 301 449 372 357 289 321
3 355 339 284 410 348 362 351
4 346 328 303 336 421 385 330
5 349 316 350 312 323 422 377
6 341 355 330 326 344 299 454
7 350 361 352 325 339 384 338

(2)FREEモード

①正規レーンに対する移動先分布(横軸:配置先鍵盤、縦軸:その鍵盤に対して配置された正規のレーン)
  1 2 3 4 5 6 7
1 406 497 424 396 382 326 313
2 380 399 486 425 372 353 329
3 381 325 347 451 421 426 393
4 367 365 364 341 463 433 411
5 396 388 372 370 320 471 427
6 403 366 372 374 387 351 491
7 411 404 379 387 399 384 380
②前回配置に対する今回配置分布(横軸:今回配置鍵盤、縦軸:前回配置鍵盤)
  1 2 3 4 5 6 7
1 419 378 405 374 380 403 384
2 352 403 389 386 425 389 399
3 384 403 400 392 420 366 378
4 436 393 343 378 420 395 378
5 399 424 424 381 336 387 392
6 360 378 385 422 382 400 416
7 393 364 397 410 380 403 396

 

 (1)②のTRAININGモードの前回配置に対する今回配置分布、(2)①のFREEモードの正規レーンに対する移動先分布については、AC環境の分布と比較して明らかに偏りが見られることがわかる。いずれも1~6鍵について、TRAININGモードでは、移動元と同じ鍵盤には配置されにくく一つ隣の鍵盤に配置されやすい傾向があること、FREEモードでは、正規と同じ鍵盤には配置されにくく、一つ隣の鍵盤に配置されやすい傾向があることが明らかである。それぞれカイ二乗検定を行うと、p値=4.98E-30、p値=2.93E-30と極めて特異であり、まったく等確率ではないと言える。

 一方で、(1)①TRAININGモードの正規レーンに対する移動先分布および、(2)②のFREEモードの前回配置に対する今回配置分布についてもカイ二乗検定を行うと、それぞれp値=0.123、p値=0.019となり、後者については等確率とは言い難いと考えられる。

 これはどのような原因なのだろうか。本記事では、その一つの推測として、本ソフトにおけるランダム配置生成アルゴリズムが偏りを生んでいる、という仮説を論ずる。

 

5.Fisher-Yates法について

 ある配列をランダムにシャッフルするための著名なアルゴリズムとして、Fisher-Yates法が存在する*3。このアルゴリズムは、(乱数生成に問題がない限りにおいて)偏りを生むことなく、計算量O(n)で配列をシャッフルすることができるため、広く利用されている。

 その具体的方法は、以下のとおりである*4

 要素数が n の配列 a をシャッフルする(添字は1からn):

①i を n から 1 まで減少させながら、以下を実行する

② j に 1 以上 i 以下のランダムな整数を代入する

③a[j] と a[i]を交換する

  これを図解すると以下のようになり、結果としてn!通りの分岐により配列a(n)の取りうる組み合わせn!通りを等しい頻度で網羅している。

初期状態            
添字 1 2 3 4 5 6 7
要素 1 2 3 4 5 6 7
               
入替1回目          
入替先(i=7)
添字 1 2 3 4 5 6 7
要素 1 2 3 4 7 6 5
               
  入替元をランダムに選択(j=1~7)
入替2回目        
入替先(i=6)
 
添字 1 2 3 4 5 6 7
要素 1 6 3 4 7 2 5
               
 

入替元をランダムに選択(j=1~6)

以下7回目まで同様に入替

 

 

  n=7のケース(IIDXのケースに相当する)について、初期配置を「1234567」(正規配置に相当する)とし、本アルゴリズムを用いて1000万回のシミュレーションを行うと、レーンごとの配置確率分布は下表のとおりとなり、偏りを生んでいないことがわかる。

  1 2 3 4 5 6 7
1 14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%
2 14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%
3 14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%
4 14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%
5 14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%
6 14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%
7 14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%

 

6.Fisher-Yates法の誤った実装について

 5.で扱ったFisher-Yates法は、しばしば誤った形で実装される。その代表的な誤りとして、上に引用した手順を、②でjの値として1以上n以下から選択するようにしたものが挙げられる。図解すると以下のとおりとなる。

初期状態            
添字 1 2 3 4 5 6 7
要素 1 2 3 4 5 6 7
               
入替1回目          
入替先(i=7)
添字 1 2 3 4 5 6 7
要素 1 2 3 4 7 6 5
               
  入替元をランダムに選択(j=1~7)
入替2回目        
入替先(i=6)
 
添字 1 2 3 4 5 6 7
要素 1 2 3 4 7 5 6
               
 
ランダムに選択して入替(j=1~7)
範囲を狭めず毎回全範囲から選択している!
以下7回目まで同様に入替
 

 これは、一見問題なくシャッフルが機能しているように見えるが、実際にはシャッフル後の各配列が等確率で生成されることはない。なぜなら、この手順で生まれる分岐はn^n通りである一方、配列a(n)の取りうる組み合わせはn!通りであり、n≧3である場合、n!はn^nを常に割り切れない。このため、特定の配列が特定の配列に比べて生成されやすいという問題が生じるのである。

 さて、n=7のケース(IIDXのケースに相当する)について、初期配置を「1234567」(正規配置に相当する)とし、この誤った実装を用いて1000万回のシミュレーションを行うと、レーンの移動関係はどのような結果となるだろうか。その確率分布を以下に示す。

  1 2 3 4 5 6 7
1 14.3% 17.9% 16.2% 14.7% 13.4% 12.3% 11.3%
2 14.3% 13.2% 17.1% 15.6% 14.3% 13.2% 12.3%
3 14.3% 13.4% 12.6% 16.7% 15.4% 14.3% 13.4%
4 14.3% 13.5% 12.9% 12.3% 16.7% 15.6% 14.7%
5 14.3% 13.8% 13.3% 12.9% 12.5% 17.1% 16.2%
6 14.3% 14.0% 13.8% 13.5% 13.4% 13.2% 17.9%
7 14.3% 14.3% 14.3% 14.3% 14.3% 14.3% 14.3%

 この誤った実装では、上記(1)②TRAININGモードの前回配置に対する今回配置分布、(2)①FREEモードの正規レーンに対する移動先分布にかなり近似する配置分布を生み出すことがわかった。確率分布に対してカイ二乗検定を行うと、それぞれp値=0.292、p値=0.756となり、十分に尤もらしいと言える。

 ここから、FREEモードでRANDOMを使用した場合には正規配置に対してこの誤った実装でランダム配置を生成しているのではないか、TRAININGモードでRANDOMを使用した場合には、前回配置に対してこの誤った実装でランダム配置を生成しているのではないかと考えられる。データ構造については完全に憶測となるが、レーンの配置を保持する変数について、FREEモードの場合はステージごとに正規配置に一度初期化し、TRAININGモードの場合は初期化されず前回配置をそのまま保持しているのではないだろうか。

 

7.結論

 PS2用ゲームソフト”beatmania IIDX 16 EMPRESS + PREMIUM BEST”のEMPRESS DISCでは、ランダム配置に明確な偏りが存在しており、FREEモードでは、各レーンが正規レーンと同じ鍵盤に配置されにくく、一つ隣の鍵盤に配置されやすい。また、TRAININGモードでは、各レーンが前回と同じ鍵盤に配置されにくく、一つ隣の鍵盤に配置されやすい。

 その原因は、ランダム配置を作成するシャッフルアルゴリズムの実装誤りであると考えられ、有力なシャッフルアルゴリズムであるFisher-Yates法の実装誤り時における配置分布とほぼ一致していることから、同種の誤りが生じている可能性が高い。

 FREEモードでは正規配置を元に誤ったアルゴリズムによるシャッフルを行っていること、TRAININGモードでは前回配置を元に誤ったアルゴリズムによるシャッフルを行っていると推測される。

 データセットについてはこちら(TRAININGモードFREEモード)に公開するので、統計に詳しい方にぜひ詳細な分析を行っていただきたい。

 

 検証・考察にご参加いただいた方 サークル"AA(A)AAA"メンバーおよび関係各位(@capue、@yonexun、@SIG49san、@genmi___san、@rice_Place、@t_cha_n、@robo_taisho、@norimisoIIDX、@radio613、@smania0711) およびBOOTHにてカンパいただいた皆様

 

 BOOTHにて、ビートマニアの統計・歴史などをまとめた本を販売しています。売上は今後の検証資金とさせていただきますのでご興味のある方はぜひ。

 

 

*1:なお、TRAININGモードの仕様について説明を補足しておく。TRAININGモードは、選択した譜面の任意の小節を静止状態でプレビューすることができる。また、RANDOMオプションについては、適用した瞬間にプレビュー表示中の譜面のレーン配置が入れ替って表示される。通常のプレーとは異なり、このランダム配置状態でプレーを繰り返してもレーン配置は再配置されず、プレビュー表示された配置で固定されたままであるため、ランダムを再配置させるにはオプションでRANDOMのON/OFFを切り替える(一度外して付け直す)必要がある。

*2:※途中で強制終了はSTART+SELECTを長押し、クイックリトライはL1+R1(アナログコントローラ)または白鍵+黒鍵(専用コントローラ)を長押し

*3:これは元来紙とペンの利用を意識したアルゴリズムであるため、以下ではその現代的実装方法としてのDurstenfeld法を指してFisher-Yates法と呼ぶ

*4:以下はwikipediaより引用するが、IIDXに置き換えてイメージしやすいよう、添字番号は引用元で「0からn-1」となっているところ、「1からn」に振り替える。また、①でi=1のループは実際には行う必要はないが、後の説明を簡略化するため行うものとする。

IIDXのランダム配置について・その1(AC HEROIC VERSE編)

スマートフォンからは表が正しく表示されないようです。ブラウザを"PC版"表示にしてご覧ください。

1.はじめに

 beatmania IIDXにおいては、オブジェの配置レーンを入れ替えるRANDOMオプションの常用が長らくプレイヤーのデファクトスタンダードとなっている。配置の当たり外れがもたらすインパクトが大きく、クリアやスコアにおいて良い成績を出すためのほとんど前提条件となっているためだ。
 一方で昨今、ランダム配置の「偏り」がしばしば取り沙汰されている。「3バスが来やすい」「階段が階段のまま降ってくる」「連続して同じような譜面となる」といった類の不満が少なからず上がっているのだ。
 これは果たして事実なのだろうか*1。残念ながら、現在までにランダム配置について大規模な調査が行われたことはおそらくない。そこで今回、ランダム配置について、個人の力の及ぶ範囲で検証を試みることにした。
 本記事をご覧になる前にぜひ、同様にIIDXにおけるランダムの偏りについて論考した駄文氏のブログ記事をご一読いただきたい。事前知識として踏まえておくべき事項が網羅されている。
 また、本記事を部分的にスクリーンショットで切り出すなどして、記事の特定箇所のみを拡散することのないようご協力いただきたい。

 

2.検証方法

 以下において、「x番レーン」は、正規配置においてx鍵に配置されるオブジェ集合を示し、「x鍵」はレーンが割り当てられる先のボタン位置を示す。
 beatmania IIDX 27 HEROIC VERSEのアーケード筐体にて、2019/11/18~24の1週間に渡って、1Pサイド・PREMIUM FREEモードで”朧”SPAをクイックリトライにより連奏し、配置先鍵盤を確認の上、鍵盤を全く押さず途中終了する作業を繰り返した。
 ”朧”SPAは、開幕に正規レーンで1234567の16分階段が配置されており、本検証に極めて適していることから選定した。1譜面のみでの検証となることから、「譜面によって配置生成方法が異なっている」可能性については確認できない。また、試行ごとのプレー時間も一定化できていない(おおよそは最初の7ノート目前後でリトライしているがブレがある)。
 検証回数については、PREMIUM FREE20分を15回プレーし2261回分のデータを取得した他、@norimisoIIDX氏より同様の方法で検証した239回分のデータを提供いただき、合わせて2500件のデータセットとした(データセットについては、本記事の最後で公開する)。うち、プレーの区切り等により、クイックリトライによる連続したプレーとなっていない箇所が21箇所存在している。
 2500件という数字は7!=5040通り存在する全ランダム配置に対しては無力もいいところであるが、たとえばバス配置については、バス(1番レーン)が各鍵盤に1/7の確率で割り振られるとすると、2300回程度の試行で、各バスの回数が期待値の誤差10%以内に95%信頼水準で収まることから、一定の条件下では考慮に値する件数と考えられる。
 なお、調査過程において、正規レーンで「1234567」および「7654321」の正規・MIRRORと一致する配置を観測した。巷ではRANDOMオプションにおいてこうした配置となることはないとの俗説があるが、少なくとも現行バージョンにおいては明確に誤りである。

3.「偏り」の定義について

 そもそも「偏っている」という状態はどういうものを示すのか。不満をあげるプレイヤーに聞いてみても答えがバラバラであり、はっきりとした合意が得られない。そこで、2つの偏りに分けて検討することとした。

(1)独立的偏り

 「ある試行における配置は、前回の配置に影響されない」という仮定に立った上で、配置傾向の偏りを検討する。これにより、「特定の鍵盤にバスが偏っている」「特定のレーン同士が連続した鍵盤に並びやすい」といった傾向がないかを確認することができる。

(2)従属的偏り

 「ある試行における配置が、前回の配置に影響されている」という可能性を検討する。これにより、「前回と同じバスになりやすい」「前回と似た配置が来やすい」といった傾向がないかを確認することができる。

 

4.独立的偏りの有無について

(1)レーンの移動関係

 最もわかりやすい「バス配置が偏っていないか」、拡張して「特定のレーンが特定の鍵盤に移動しやすくなっていないか」を確認するため、2500回のうちあるレーンがどの鍵盤に移動していたかを表に表した。
 表については、横軸が鍵盤の位置、縦軸がその鍵盤に対して割り当てられたレーンを示す。例として、表の右上(1,7)は、7鍵に対して正規配置の1番レーンが割り当てられたこと、すなわち7バスを意味している。視覚的にわかりやすくなるよう、確率1/7とした時の試行2500回での期待値357回を黄色、期待値+20%を赤、期待値-20%を緑とした3色カラースケールで表現し、また期待値+10%以上、期待値-10%以下の値は太字とした。以下の図も同様である。

  1 2 3 4 5 6 7
1 359 349 343 349 379 339 382
2 346 390 337 347 378 347 355
3 349 352 361 369 324 356 389
4 369 360 394 361 334 361 321
5 371 386 368 344 350 346 335
6 375 371 349 350 350 354 351
7 331 292 348 380 385 397 367

  2.検証方法に記載のとおり、各鍵盤に各レーンが移動する確率を等しく1/7とすると、2500回の試行下では、信頼水準95%で誤差が約±10%(より正確には9.6%)に収まる。表1行目のバス配置についてはいずれも誤差±10%の範囲に収まっており、特に偏った傾向は見られなかった。
 他方、表から、移動元・移動先の組み合わせ49通りにおいて誤差10%を上回ったものは4通り存在した。これは信頼水準95%においてはやや多いが、一方でレーン同士が独立ではなく、あるレーンの特定の鍵盤への移動回数が増えれば他の鍵盤への移動回数は減るという性質を持つことに留意したい。
 また、各鍵盤に配置されるレーンが等確率となっているかについてカイ二乗検定を行ったところ、p値=0.0135となり、等確率だとすれば1%程度のかなり稀な事象と言える。これは、2鍵に対して7番レーンが移動する回数が際立って少ない点が起因している。確率1/7において2500回の試行で期待値-18%以下となる確率は0.01%程度であり、シャッフルアルゴリズムに何らかの歪みが生じている可能性が推察される。
 とはいえ、有意な差の見られなかった「3バスが多い」を主張する者はしばしばいても「2鍵に7が来にくい」と主張する者は見たことがなく、体感でわかる範囲の差なのかは疑問である。

(2)レーン同士の距離

 レーン同士の配置距離について、隣接配置を1、最も遠い1鍵と7鍵への配置を6とし、2500回の試行における平均距離を求めた。これにより、正規で距離1の隣接レーンが隣接しやすいか(階段が階段のまま残りやすい)、正規で距離偶数の同色レーンが隣接しやすいか(割れた配置となりやすい)を調べることができる。各鍵盤に各レーンが移動する確率が等しく1/7である場合、レーン間の距離の期待値は2.67となる。

  1 2 3 4 5 6 7
1 - 2.69 2.70 2.63 2.72 2.72 2.60
2 2.69 - 2.66 2.65 2.63 2.69 2.67
3 2.70 2.66 - 2.66 2.63 2.68 2.73
4 2.63 2.65 2.66 - 2.70 2.67 2.61
5 2.72 2.63 2.63 2.70 - 2.66 2.67
6 2.72 2.69 2.68 2.67 2.66 - 2.63
7 2.60 2.67 2.73 2.61 2.67 2.63 -

 表より、各レーン同士の平均距離に大きな差は見られず、また「全レーンから全レーンへの距離分布」(確率分布と一致する)に対し、「正規で距離1の隣接レーンの距離分布」「正規で距離偶数の同色レーンの距離分布」についてカイ二乗検定を行うと、それぞれp値=0.58、p値=0.56となり有意差がないことがわかる。

距離 全体 隣接 偶数
1 28.57% 28.42% 28.67%
2 23.81% 24.33% 23.32%
3 19.05% 18.65% 19.10%
4 14.29% 14.13% 14.59%
5 9.52% 9.67% 9.59%
6 4.76% 4.81% 4.72%


5.従属的偏りの有無について

(1)前回配置に対する配置分布

 「あるレーンが、前回配置された鍵盤からどこかの鍵盤に移動しやすくなっていないか」を確認するため、試行2500回のうちクイックリトライによる連続した試行となっている2479回について、ある鍵盤からどの鍵盤に移動していたかを表に表した。
 表については、横軸が今回配置された鍵盤の位置、縦軸が前回配置された鍵盤の位置を示す。例として、表の右上(1,7)は、前回1鍵に配置されたレーンが、今回7鍵に配置されたことを示す。色分け、太字については4.(1)の表と同様である。

  1 2 3 4 5 6 7
1 349 366 361 349 335 353 366
2 342 358 339 336 378 360 366
3 355 330 330 407 332 370 355
4 377 340 367 360 338 341 356
5 369 369 361 335 362 358 325
6 351 362 349 351 366 361 339
7 336 354 372 341 368 336 372

 こちらについても、2.検証方法に記載のとおり、各鍵盤に各レーンが移動する確率を等しく1/7とすると、2479回の試行下では、信頼水準95%で誤差が約±10%(より正確には9.6%)に収まる。
 表から、前回配置先・今回配置先の組み合わせ49通りにおいて誤差10%を上回ったものが1通り存在した。信頼水準95%に対して49回の試行があれば第一種の誤りが1~2生じることは不自然ではないが、前回配置先3鍵に対して今回配置先が4鍵となった回数については、確率1/7において2479回の試行で期待値+15%以上となる確率は0.1%程度であり、比較的稀な事象と言える。一方で、前回配置先・今回配置先の関係が等確率となっているかについてカイ二乗検定を行ったところ、p値=0.537となり十分に大きいことから、全体としては等確率でないとは言えないことが示された。
 これらについても、有意な差の見られなかった「前回と同じ配置が来る」を主張する者はしばしばいても「3鍵から4鍵に移動しやすい」と主張する者は見たことがなく、体感でわかる範囲の差なのかは疑問である。

(2)前回配置と一致・または同種のレーン数分布

 前回配置と今回配置を比較した時に、「同一鍵盤に配置されたレーン数」および「同一色に配置されたレーン数」を求め、確率分布に対しこれらのレーン数分布についてカイ二乗検定を行うと、それぞれp値=0.808、p値=0.279となり有意差は見られなかった*2

集計結果 確率分布上
一致数 同一 同色 一致数 同一 同色
0 36.06%   0 36.77%  
1 37.43% 12.34% 1 36.81% 11.41%
2 18.39%   2 18.33%  
3 6.41% 50.06% 3 6.25% 51.43%
4 1.41%   4 1.39%  
5 0.28% 35.01% 5 0.42% 34.29%
6     6    
7 0.00% 2.58% 7 0.02% 2.86%


6.まとめ

 ACにおけるランダム配置については、独立的偏りにおいて「2鍵に7番レーンが来にくい可能性がある」こと、従属的偏りにおいて「前回3鍵に配置されたレーンが4鍵に来やすい可能性がある」ことが有意な傾向として示されたが、これまでこのような主張をしてきた者が見られない一方で、今回有意性が見られなかった主張をする者が多いことから、ACにおけるランダム配置の偏りについては、プレイヤーが体感だけで「おかしい」と判断できるような種のものではない、と考察する。
 データセットについてはこちらに公開するので、より統計に詳しい方にぜひ詳細な分析を行っていただきたい。
 なお、他環境についても検証を進めており、一部環境では極めて興味深い結果を見出している。続報にご期待いただきたい。

 

 検証・考察にご参加いただいた方 サークル"AA(A)AAA"メンバーおよび関係各位(@capue、@yonexun、@SIG49san、@genmi___san、@rice_Place、@t_cha_n、@robo_taisho、@norimisoIIDX、@radio613、@smania0711) およびBOOTHにてカンパいただいた皆様

 

 BOOTHにて、ビートマニアの統計・歴史などをまとめた本を販売しています。売上は今後の検証資金とさせていただきますのでご興味のある方はぜひ。

 

*1:なお、これまでに、KONAMIよりRANDOMオプションのランダムの真正性については一切保証や明言がなく、たとえ偏りがあっても批難に値するとまでは言えない。

*2:前者については同一鍵盤に配置されたレーン数7のケースが0であり、確率分布上も微小であることから無視して自由度5とした。