牌効率
牌効率の定義
「牌効率」という言葉は結構有名で、聞いたことのある方は多いかもしれません。
ご存知ない方のために、ここで大雑把にその意味を定義するなら、「牌効率とは、和了を目指す上での個々の牌の重要度である」とでもなるでしょうか。
麻雀エンジンを開発する者にとって、この牌効率を追求することが非常に重要なテーマの1つであるということは、容易にイメージできるかと思います。
しかし、この「牌効率」という言葉は、使う人によってその定義が若干異なります。 例えばGoogleで「牌効率」を検索してみてください。 数千件以上ヒットすることがおわかりいただけると思います。しかし 最初の数ページに表示されたサイトでその内容を比較するだけでも、細かな部分で違いが見られることがわかります。
「牌効率」とは何かを考える場合、その共通するキーワードとして、「受け入れの広さ」「スピード」「確率的な考え方」が挙げられます。 しかし、その判断の基準には違いがあります。
例えば「一向聴時における受け入れの広さ」ということを考えてみましょう。役を無視して考える場合でも「聴牌する確率が一番高くなるような受け方」と「聴牌後の和了確率も含めて考えて一番確率が高くなるような受け方」では結果が変わることがあります。(麻雀初心者のためのページ Beginner's Luck 「第5章牌効率:牌効率の基本 3.テンパイチャンスと牌効率」)。 また、和了についても役を考えずにアガリやすい形を重視するか、役も含めて和了期待値計算を行うかも見解の分かれるところです。
牌効率と評価関数
麻雀にはいろいろな牌姿がありますが、これをひとまとめにして、牌全体の集合をΩと表すことにします。 また、Ωに属するある牌姿ωに「牌xを加える」ことをω+xで表し、 牌姿ωから「牌xを捨てる」ことをω-xで表します。
また、個々の牌姿に対して特定のアルゴリズムにより数値評価を行う 関数V(ω) を考えます。これを牌姿ωの「評価関数」と呼ぶことにします。 この評価関数は自由に定義することができますが、数値の大きいものほど良いという評価を持つものと考えることにします。すなわち
V(ω) > V(ω') ならば牌姿ωは牌姿ω'よりも良い
とするわけです。
例えば V(ω) = 13 - (ωの向聴数) と定義すると、向聴数の低い牌姿ほど良い牌姿ということになります。(聴牌形は0向聴、和了形は-1 向聴とします)
牌xをツモる確率をP(x)で表したときに
V(ω+x)P(x)
を牌姿ωにおいて牌xをツモったときの効率と定義します。
xとしてすべての牌を考えたとき、その総和となる
ΣV(ω+x)P(x)
x∈Q(Qは牌の種類の集合)
を牌姿ωの評価関数 V による牌効率と定義します。
記号としてE(ω)で表すことにします。
ある牌姿ωにおいて、牌効率を考えて捨て牌を選択するということは 牌姿ω内の各牌yに対して E(ω-y) を計算し、E(ω-y)が最大となる ようなyを選択することになります。E(ω-y)が最大となる牌をy0とすると
E(ω-y0) = MAX( ΣV(ω-y+x)P(x) )
y∈Y x∈Q(Yは牌姿内の牌の種類の集合 MAXは最大値を求める関数)
と書くことができます。
なお、牌xを引く確率P(x)は厳密な形では計算できませんので、別の関数で推定することになります。
評価関数の定義例
上記のように牌効率を定義することで、「牌効率とは評価関数 V をどのように定義するかである」という表現に置き換えることができるようになります。
以下、評価関数の定義の例をいくつか挙げてみます。
[定義例 1]
V(ω) = 13 - (ωの向聴数) (ω∈Ω)
単純に向聴数のみに着目した例です。この場合の牌効率を考えた打ち方は
「向聴を一つ下げるのに一番受け入れの広い牌を捨てる」
ということになります。
[定義例 2]
V(ω) = (ωの和了する確率) (ω∈Ω)
牌姿ωの和了確率を評価関数とする考え方です。この場合の牌効率を考えた打ち方は
「和了するために一番可能性の高い牌を捨てる」
となります。
なお、「ωの和了する確率」は向聴数が大きいほど飛躍的に計算時間が増大します。
[定義例 3]
牌姿ωから、残りツモ数で実現可能なアガリ形のすべての集合を A(ω)とします。
V(ω) = Σ(ωがω'となって和了する確率) ×(ω'の和了点)
ω'∈A(ω)
これはつまり和了となったときの点数も含めて評価するという考え方です。 この場合の牌効率を考えた打ち方は
「和了期待点の一番高い牌を捨てる」
となります。
この定義に従うと、残りツモ数が多いほど飛躍的に計算時間が増大します。 実際にプログラムとして作成する場合には、レスポンス性が要求されますので上記の定義例を簡略化して作成することになります。また、場の状況を加味して値を修正するなどといったことも考えられます。以上が牌効率についての考え方でした。
正文舎マスコットキャラクター
ぷらねっとくん