麻雀AI Suphxの向聴数別第1打

前置き

前回の記事麻雀AI Microsoft Suphxの第1打では、麻雀AI Suphxの第1打を総合してグラフ化した。その結果として比較的フラットな状態におけるSuphxの牌の価値傾向が見て取れた。

今回は、前回から少し詳細に見て向聴数別の第1打をグラフ化してみた。

結論を先にいうと、やはり目新しいことは特にはない。まま、Rの練習はうまくいった。というところである。

ところで、前回の記事はTwitterを経由して来ていただいた方には感謝。勉強がてら続けてみたいと思います。

第1打時の向聴数別の登場分布

まず第1打時の向聴数を見てみる。

ここでいう第1打時は、初期配牌13牌と第1ツモをあわせた14牌から1牌を捨てたときのことを指すこととする。まずは、その場合の向聴数を示してみる。これは、Suphxに限らない話であり、ランダムな状態から適切な1牌を捨てるとした結果であるから、一般的な統計的な傾向だ。なお、0向聴は聴牌である。

聴数 (-1) 0 1 2 3 4 5 6
局数 (0) 8 348 2952 6749 4355 900 45 15357
確率 (0) 0.052% 2.266% 19.223% 43.947% 28.358% 5.861% 0.293% 1

対照するデータとしてあらの(一人)麻雀研究所さんのデータを以下に引用する。登場する割合がほぼ同様なので、偏っていたりということはなさそうだろう。

聴数 -1 0 1 2 3 4 5 6
局数 2 403 12716 104788 236199 152777 29267 849 537001
確率 0 0.075% 2.368% 19.514% 43.985% 28.450% 5.450% 0.158% 1

配牌時の向聴数の分布 - あらの(一人)麻雀研究所

閑話休題。 あらの(一人)麻雀研究所さんは東風荘時代からずっとお世話になっているが、時代の変遷があっても色せない情報がたくさんあるので、本当に助かります。感謝。 閑話休題ここまで。

ここでは向聴数計算に七対子も含めているため、最大向聴数は六向聴になる。一般形などともいわれる四面子一雀頭形は最大八向聴なので、区別するほうが適切かもしれない。が、今回は面倒なので区別しない。

ご覧のとおり、三向聴が半数弱を占め、ついで、四>二>五>一>六向聴>聴牌と続く。なお、天和・地和(-1向聴)があったかは、捨牌分析のしようがないので計上も調べもしていない。

さて、向聴数別のグラフを表したい。六向聴から1ずつ減らしていく形で進める。なお、具体的な数値はここでは割愛する。

その前にRのコード

一応のRのコード。下のは、前回から向聴数を抽出するようにしている。一向聴を抽出するために数値を指定している。

動作は軽くて簡単に絞り込みつつグラフを作れるのは、Rのメリットだな、と思います。

data <- read.csv(filepath, header=T)
d <- data[,1:22]
d$Pick <- data[,c("Pick")]
ret1 <- d[d$Pick == 1 & d$直近捨牌 != "" & d$晒牌0 == "" & d$向聴数0 == 1, c("直近捨牌")]
png("plot1.png", width = 1200, height = 600)
barplot(sort(table(ret1)), main="一向聴の第1打", ylab="総数", xlab="牌種", axis.lty=1, las=1, cex.main=2, cex.names=1)
dev.off()

六向聴のときの打牌(母数:45)

六向聴のときの打牌

サンプルがほとんどないので、明確な傾向があるわけではないが、見て取れる結果を強いて言えば「孤立牌を捨ててとにかく手を進めろ」の一言である。

一九牌を捨てているときはおおむね孤立牌、特に4・6牌があるときなど受け入れの重複が見られるときだった。また、牌数が少ない種類の牌を切っているようにも見え、混一色など一色手を一応見ているようだ。

もう一つ注目したいのは、三元牌の出現が中1回のみ、というところである。六向聴において三元牌がまったくないというパターンもなかったので、やはり三元牌・役牌の価値を重く見ているといえる。

もっとも6向聴という絶望的な手牌を考えたらば、役牌を重ねたり七対子を見るのが当然だろうから、基本的には降りる手牌だし、当たり前といえば当たり前の結果である。

五向聴のときの打牌(母数:900)

五向聴のときの打牌

大きな傾向が見える。五向聴も降りを想定する手牌ではあるが、六向聴よりかは遥かにわかりやすい結果がでた。

孤立する西・北を筆頭に捨てており、続いて東・南と一九牌をほぼ同じブロックとして見ていい割合で捨てている。

そして、三元牌は中張牌とほぼ同じ捨牌の数となっていた。東・南は一九牌と同じ数、というよりも、西・北のほぼ半分の数と見て取れるのでやはり場風のときは残していると推測できる。

五向聴という遠い手牌からは、役牌の価値は重要視する必要がある、といえる。

四向聴のときの打牌(母数:4355)

四向聴のときの打牌

五向聴と同じような結果が出た。強いて言えば、東・南と三元牌の捨てる割合が少し増えていることから、手を進める方を優先するべき場面もある、ということだろう。このあたりは、時間があるときにでも個人的に個別の場面を見ていきたい。

三向聴のときの打牌(母数:6749)

三向聴のときの打牌

三向聴はもっとも出現しやすい第1打傾向である。五向聴・四向聴と同じ傾向ではあるが、東・南・三元牌の捨牌も目立ち、ここからは、二八牌も若干ではあるが選択肢として見える傾向にある。役牌よりも手を進めることを重視する傾向を強くしている。

現実的に上がりを目指すベーシックな傾向といえるだろう。

二向聴のときの打牌(母数:2952)

二向聴のときの打牌

二向聴になると、一九牌と三元牌はほぼ同じ数となった。ここではもう二向聴を取ることを優先した捨牌を取っていると見ていい。二八牌の捨牌も明確に見て取れる傾向が出ているし、少ないながらも三七牌を捨てているところもある。

一向聴のときの打牌(母数:348)

一向聴のときの打牌

一向聴では、サンプル数も少ないので、とりあえず一向聴に取ろうという姿勢が見える。一向聴に取る手順で孤立する么九牌においてはほぼ不要。中張牌もブロック分けするほどの傾向も見えない。強いて言えば、五牌は選択肢として少ない、といえる。

オマケ:聴牌のときの打牌(母数:8)

聴牌のときの打牌

聴牌はもう聴牌とっとけという感じである。そりゃそうだ。

ただ、違う観点で疑問に思ったのは一向聴の数には、「一向聴にする打牌」と「聴牌外し・聴牌取らずの一向聴」もあるだろう。となると、もう少し分析する余地はあるだろう、とは感じた。…ただ、これ以上そのあたりを絞っても徒労かな、とも思う。

検討の余地

実践ではたとえば、聴牌取らずや一向聴取らずなどの場合もある。ここでは、それを想定せずに集計しているので、そういった観点から検討するのもよいかもしれない。ただ、少々場合分けが大変であることや、Rの練習が主目的であるので、第一打分析はこのあたりにしておこうと思う。

また、違う観点で分析するとして、Suphxの論文を読むと、鳴き判断、立直判断、捨牌判断のプロセスが出てくる。その判断プロセスの傾向は見てみたい。

次にやりたいのは、立直判断の盤面を分析するのが比較的容易か、と思っている。全ての聴牌の打牌で「立直したか」「立直しなかったか」のフラグを取れば、傾向が見れるだろう。この場合、捨牌というよりは、待ちの形や点数状況、巡目、親か子かといった観点で条件を絞ってみよう。

他には、Suphxの論文には「攻撃的なモード」と「守備的なモード」の2つのモードが書かれている。つまり、押し引きの話になるのだが、この点がシンプルに見て取りやすいかもしれない。例えば、聴牌取らずや一向聴取らずなどの局面、立直を打たれた局面、鳴きを先行された局面において「守備的なモード」を特徴的な傾向が見れれば、実践に応用できるかもしれない。

上に示した観点は、麻雀を打っていれば当然のところになるが、論文上にあるモデルに着目して分析を進めていくと、もしかすると興味深い結果がでるかもと期待している。

今回の結論

基本的に役牌の価値は高く(それだけで一翻あるのだから当然)、特に向聴数が大きい(和了から遠い)ほどその価値は重くなった。しかし、向聴数が少なくなる状態、手を進めることを優先している傾向にあった。

…とまで言って、また当然といえば当然の結果であるので、Rの練習としては成功だろう。

コメント

このブログの人気の投稿

リモートワークをLogicoolのマウスとキーボードで複数PC切り替えて優勝した

VBAでのInterfaceやキャスト

SUPERHOTがいかにSUPERHOTか語りたい