天鳳雀荘戦における収支制レーティングシステムへの提言
我打麻将

2010/11/11 Version 3

目次
天鳳段位戦のレーティングシステム

2

1.1

定式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.2

一般化の方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3

振る舞いの解析的記述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3

ルール差異とシステム変更

32.1

ルール差異に関する前提 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32.2

システム変更の必要性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42.3

スケーリングによる対応 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42.4

スケーリングによる対応の限界と解決方法の例: 東風戦と東南戦 . . . . . . . . . . . . . . . . .

4とつげき東北による提案

53.1

シミュレーション等の方法が持つ限界 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53.2

ルール相違点の影響 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

結論

6

観測による解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

実戦データから得られたパラメータ

75.1雀荘戦収支における l の値

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75.2

雀荘戦収支における e の値 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75.3

パラメータの計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75.4

雀荘モードにおける適切な R 変動式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

812344.15概要
レーティングはチェスの Elo Rating に始まり、現在インターネット上の麻雀サービスで広く採用されている評価基準システムである。本稿では、大手オンライン対戦麻雀「天鳳」で新モード「雀荘戦」が導入されるにあたり、プレイヤーに適切な (ゲーム終了時に表示される評価と合致した) インセンティブを与え、かつ現行システムである段位戦のレーティングシステムに近い振る舞いを示すレーティングシステムを提案する。
まず天鳳段位戦のレーティングシステムについて、評価方法を計算の便利なように定式化する。次に、あ1

るプレイヤーのレーティングの、各ゲーム結果などに基づいた確率変数としての振る舞いを解析する。さらに、とつげき東北氏の提案に触れて天鳳への適用可能性について考察する。最後に、これらを用いてルール変更について考え、ルール変更によって観測される事象にどのように対応してレーティングシステムを変更するべきであるかを結論付ける。

1 天鳳段位戦のレーティングシステム
マニュアル*1 によれば、天鳳段位戦のレーティング (以下単に R という) は 1500 を初期値とし、その変動*2 はRate の変動 ( 試合数補正 ) × ( 順位点 + 補正値)
試合数補正 0.2
順位点

1 位 +30 2 位 +10 3 位 −10 4 位 −30補正値( 卓の平均 Rate − 自分の Rate)/40*3である。

1.1 定式化
R 変動を ∆R とすると、上記の変動は)(∆R = r + w R − R(1)3と表せる。ただし r は試合数補正を経た順位点 [+6, +2, −2, −6], w は補正係数 800, R は他家平均 R, R は自己 R である。
r
さらに同値な形式として、1 試合安定 R R1 := R + w
を用いてRnew := (1 − w) Rold + wR1(2)を考えることができる。

1.2 一般化の方法
レーティングシステム (以下単に RS という) は、式 (1) におけるゲーム結果の関数としての r と補正係数w の値とによって特徴づけられる。関数 r はゲームの評価についてスケールを含んだ値であり、w は 式 (2)における各試合の重みに相当する。

r は順位*4 と線型関係にあるが、これを収支などに比例するようなシステムに取り換えることができる。wを変更することによって、無限試合後のみかけ R としての成績評価に用いる実質試合数を調整することができる。

*1 http://tenhou.net/man/#RATING*2 十分試合数・4 人打ちにおける*3 マニュアルに記載されていないが、変更前の分母は 40 でなく 60 であった:

http://mixi.jp/view bbs.pl?comm id=758265&page=12&id=10894695*4 2.5 から引いてゼロサム化し、高評価を大きい数値としたもの。以下でもこれを指す。

2

1.3 振る舞いの解析的記述
以下に示すように、式 (1) を漸化式と解釈すると、R が一定の場合には最終到達 R を各試合結果で表すことができる。n 試合を経過した後のみかけ R を Rn とおくと、第 n 試合の結果 rn を用いて()
Rn+1 − R = (1 − w) Rn − R + rn+1(3)漸化式を解き、R0 = R (const.) を仮定すると

Rn = R +∑rk (1 − w)n−k(4)

0<k≤n

1.3.1 無限試合後 R の統計量式 (4) を用いて、無限試合後 R の期待値および分散または標準偏差を求めることができる。n → ∞ とすると和が無限級数になり、その値は r の期待値や分散を用いて表される。
期待値については()
E Rn − R =∑(1 − w)

n−kE (rk )0<k≤n−→
分散については)(V Rn − R =ew∑(5)2(n−k)(1 − w)

V (rk )

0<k≤n−→vw (2 − w)(6)

ただし e, v は r の期待値と分散である。

2 ルール差異とシステム変更
2.1 ルール差異に関する前提
本節において、ルールとは R 変動に対応する評価関数 r を含むものとする。各プレイヤーについて

v := V (r) の値はやや異なるが、これは各ルールにおいて全プレイヤー共通であることを仮定する。さらに、ルールの変更について、実力を示す e := E (r) に関しても以下のように前提となる仮定をおく:• 平均的なプレイヤーに対して各プレイヤーがマークする r の期待値 e は、ルール変更によって定数倍になる。すなわち各プレイヤーの実力にルールの得意不得意といった個性は存在しないものとする。
以上の仮定により、ルール変更の結果を以下のように記述できる:• あるルール変更によって、r の振る舞い (e, v) が (ke, lv) へ変化したとする。

3

2.2 システム変更の必要性
ルール変更によって r の振る舞いが上のように変化したとき、R システムを変更しないと R の振る舞いはどのように変化する (または変化しない) のだろうか。先の解析的な結果 式 (5), 式 (6) を用いて簡単な計算を行うと、以下を得ることができる:

R の振る舞いは (E, V ) から (kE, lV ) へと変化する。

2.3 スケーリングによる対応
最も簡単なシステムの変更は、R の表示時に 1 次関数を用いてスケーリングを行うというものである。R の(表示を k −1 倍にすることによって、(kE, lV ) へ変化してしまった振る舞いは E, lk −2 V)へと修正される。

スケーリングのみによって対応が可能であることは、平均値を修正された表示 R の分散が元の分散と等しいことと同値である。すなわち

lk −2 = 1 ⇔ k =√l

これが非常に「当たり前」であることを指摘しておこう。これはすなわち、e と√v の比 — 偶然性の寄与割合とでも呼ばれるべきもの — が保存されていればスケーリングのみによって対応できるということを示しているのだ。

2.4 スケーリングによる対応の限界と解決方法の例: 東風戦と東南戦
東風戦と東南戦の比較*5 によれば、東南戦において順位 e は東風戦の 1.38 倍*6 を示す。一方、その分散 vはわずかに小さくなるのみであり、前節の条件を外れる。
したがってスケーリングによって東風戦と東南戦との表示 R を一致させると、東南戦プレイヤーの R 変動は東風戦プレイヤーの √12 倍となる。そこで第 2 の — より根本的な — システム変更、すなわちレーティング変動値としての r に対するスケーリングと、それと連動した重み w の変更を余儀なくされるのである。
東南戦のパラメータは東風戦に対して、r を√2 倍、w を 2 倍とすることによって、以上の問題を解決することが可能である。実際、期待値については√√
e2 · 2e=2ww

分散については(√ )22 vv∼2w (2 − 2w)w (2 − w)が成り立つ。ただし、w ≪ 1 より 2 − 2w ∼ 2 − w (∼ 2) の近似を用いた。

*5 http://blog.livedoor.jp/wo da majiang/archives/51469496.html√2 倍になるはずであるものが、それ以外の要素によって抑えられている√と考えられる。したがって、以下これを 2 倍として扱う。

*6 議論の大筋には関係しないが、ゲーム長のみの影響では

4

3 とつげき東北による提案とつげき東北氏*7 によれば、第 1 東風荘のルール下における R 変動は収支*8 を 2000 点で割り、0.373 倍したものを R 変動とするべきである。この結論はいくつかの仮定をもとにシミュレーションを行って導かれたものであるが、p.7 によれば以下のような観測と簡単な計算によって精度のよい近似が可能である:

1. 各順位の平均収支 (素点 + 順位点) を実測したベクトル A を作る。
2.「従来」の RS における各順位の R 変化ベクトル r を用いて、新しい R 変化 r′ を、収支 P に対してr′ =|r|
P|A|と定める。
以下、この方法を天鳳雀荘戦に適用することについて考える。まずシミュレーション等の方法が原理的に持つ限界について考察し、次に天鳳と東風荘とのルール相違点の影響を調べる。

3.1 シミュレーション等の方法が持つ限界
上記のシミュレーション and/or その代替となる観測と計算、および前節の考察は、麻雀のゲーム性が持つ特徴として

1. 結果のもつ偶然性が本来の実力差異より十分に大きいこと
2. 結果のもつ偶然性がプレイヤーによって大きく違わないこと
3. インセンティブの変化は結果の分布を大きく変えないこと
および、確率分布の計算における4. 収支全体の標準偏差の、各順位の平均のみを取り出した分布の標準偏差による近似を用いている。

1. は、実力が結果へ強く影響するような大幅なルール変更についてのみ問題となる事項であるので、ここでは論じない。また 2. は、これが正しくない場合にも対応する適切な方法は存在せず、対応する必要性もな
い*9 ため、ここでは論じない。3. はその程度が不明であるが、以下の結論によればこれが正しくないとしてもRS 改善に必要な手順は変わらない。
4. については、実際に収支全体の分布が観測可能であればその標準偏差を観測するべきである。シミュレー
ションの前段階で順位ごとの平均持ち点に従ったシステム構築を試み、シミュレーションでは各順位の持ち点を当該平均持ち点に固定しているため、収支の順位による分*10 のみを分布の観察対象としており、俗に「大場・小場」と言われるような、平均的な点差に対してより点差の大きくなるゲームだったか、点差のつかない接戦だったかという部分が抜け落ちている。全体としての標準偏差を考える時にはこれらが相殺して平均点を*7 http://www.interq.or.jp/snake/totugeki/Rsystem.pdf*8 順位点 (ウマとオカとの和) [+25000, ±0, −10000, −15000] の場合*9 プレイヤーごとに異なるシステムを適用すると相対評価が意味をなさなくなるため。
*10 本来は素点収支によって順位が決定するため、これは順番が逆であるが。

5

用いた標準偏差に近付くため大きな誤差は生じないが、実際にまず収支全体の分布を観測してから標準偏差を求める場合には、順位ごとの平均持ち点へ直すべきではない。

3.2 ルール相違点の影響麻雀ほど「細かいルール差の多い」ゲームも珍しいものである。東風荘と天鳳との比較においても、ユーザの好みや理論的整合性などの観点からは大きく異なるはずのルール差は、その大半が本論においては大筋に影響しない。レーティングは対局の内容ではなく結果のみをもとに定まるからだ。
しかし点数表示における対局結果を大きく変える可能性のあるルール差があるとすれば、それは赤ドラと、赤ドラ等に付随するチップの授受であろう。これらは授受される点数を大きくする要素であるため、天鳳雀荘戦においては第 1 東風荘と比べて点数収支が増加する (平均, 分散ともに)。しかし、具体的な授受点数増大度に関しては信頼に足るデータが不足しているのが現状である。
したがって、実際に当該ルールで多くのゲームをプレイした結果としての収支分布を測定し、以下に述べるような計算を行って R スケールを決定するべきである。

4 結論
以上をもとに、2.4 の結果を一般化して結論としよう。あるルール変更によって、r の振る舞い (e, v) が(ke, lv) へ変化したとする。変動値 r を f 倍、重み w を g 倍することによって RS の振る舞いを変えないた
めには、期待値および分散が元の RS によるものと一致することが必要十分である。
期待値が一致する条件はf kee=gww
分散が一致する条件は、w ≪ 1 を再び仮定してv
f 2 lv∼gw (2 − gw)
w (2 − w)
2 式を連立して解くと()
k k2(f, g) =,l l(7)4.1 観測による解以上より、ルール変更に伴う RS 変更は評価の期待値および分散の傾向を観測し、その結果に基づいて行う必要がある:

1. 簡易計算によって変動値および重みの係数 (f, g) を求め、ルール変更に伴って R 変動を変更して試験運用を開始する。

2. 全体の成績分散を lv とし、プレイヤーの平均順位と平均収支との関係から k の値を見積もる。
3. (f, g) を観測された値に変更して正式運用とする。この際、最初の推定結果が R 分布を大きく変えてしまっていた場合は、全プレイヤーの R をスケーリングするか、再計算する。

6

l を見積もるには少ない試合数*11 で十分であるが、k の見積もりに必要な試合数は実際の (l, k) によって大きく異なる。具体的には、要求精度にもよるが、f ∼ 1 の場合には 50 試合以上のプレイヤーが 100 名程度必要である。したがって、たとえば 50 試合以上のプレイヤーが 100 名現れるまでを β 期間とし、その結果に基づいて正式 RS のパラメータを決定するべきである。その後も RS の振る舞いが見込みとずれた場合には、パラメータの調整によって対応していくことが望ましい。

5 実戦データから得られたパラメータ
5.1 雀荘戦収支における l の値
天鳳のログ*12 を解析する*13 ことにより、祝儀の点数比 (0, 2, 5) によって、収支 (1000 点単位) は以下のような標準偏差を得ることがわかった:
四東 40.5, 45.4, 53.6
三東 50.0, 54.7, 62.2以上の値を√lv として採用する。なお、段位戦においては v = 20 である。

5.2 雀荘戦収支における e の値
天鳳のログ解析をなめとん氏*14 へ依頼し、各ルールにおけるプレイヤーの平均収支と平均順位を調査した。
その結果、2010/10/30 時点で、(50, 100) 試合以上のプレイヤーについて、回帰直線の傾き m (収支 1 (千点)に対応する順位) は以下の通りになった:
四東 5 0.0214, 0.0213
三東 5 0.0134, 0.0129
段位戦 RS は順位の 4 倍が R 変動となるので、k の値は 1/4m である。四東 5 ルールにおいては 100 試合以上のプレイヤーに限定した場合でも 100 名以上と多数のプレイヤーが存在し、相関係数の 2 乗も 0.9566 と十分大きい。したがって、k = 11.7 を採用する。

5.3 パラメータの計算
以上の節の結果を 式 (7) へ代入すると(f, g) = (0.08158, 0.9575)

(8)

3となる。
すなわち、式 (1) において r = 0.08158 × ( 収支 /1000 点 ), w = 0.9575 × 800

次の最終節で、試合数補正を施す前の形に直す。

*11 全体で高々 100 など*12 http://h.tenhou.net/sc/raw/viewer.cgi?scd2010103101.log.gz&8809

全試合ではなく 1 時間のログであるが、試合数は十分である。
*13 素点とチップと枚数から収支を計算するが、祝儀の点数比はゲームにおける値ではない。チップ額の差によるインセンティブの差異は、このような全体の分散などを観測する際には無視してかまわないと考えられる。
*14 http://nametonn.blog60.fc2.com/

7

5.4 雀荘モードにおける適切な R 変動式
以上より、試合数補正を取り込むと、最も適切な R 変動式として提案するものは、四東 5 については、試合数補正を段位戦と同じ極限に収束するものと仮定すると、以下の形である:Rate の変動 ( 試合数補正 ) × ( 収支 + 補正値 )収支 0.4079 × ( 収支 /1000 点 )補正値( 卓の平均 Rate − 自分の Rate) × 0.9575/40

なお、ここでは詳しく触れないが、試合数補正としては指数的に減少する関数、たとえば{f (n) = max

1,5n }( ) 400
15が適している。

8