Warning: Undefined variable $position in /home/pystyles/pystyle.info/public_html/wp/wp-content/themes/lionblog/functions.php on line 4897

麻雀 – 何切るシミュレーターのアップデート予定

麻雀 – 何切るシミュレーターのアップデート予定

概要

麻雀何切るシミュレーターを公開してから半年ぐらい放置していたのですが、時間がとれそうなので、いくつか残っている課題について対応しようと思います。以下に把握している不具合や機能追加の予定を整理しました。まず、シミュレーション結果の信頼性に関わる不具合の修正と七対子の考慮を実装したあと、機能追加を行っていく予定です。

Advertisement

昨今の何切る支援ツール事情

何切るの支援ツールは大きく分けて、受入枚数のみ計算するツール、他家がいない仮定でシミュレーションを行うツール、他家ありで点棒状況や危険度など場況も含めて総合的にシミュレーションを行うツールの3種類があります。

受入枚数

1手先の受入枚数を計算を計算するツールです。

平面何切るの支援ツール

他家がいない仮定のもとで、和了までのすべての手牌推移パターンを調べて、期待値、和了確率、聴牌確率を計算するツールです。本ツールの他に一人麻雀練習機、ツモアガリ確率計算機があります。

機能の違いを整理すると以下のようになります。

何切るシミュレーター ツモアガリ確認計算機 一人麻雀練習機
受入枚数表示
期待値表示
和了確率表示
聴牌確率表示
七対子考慮
赤牌対応
手替わり考慮
向聴数考慮
裏ドラ考慮
槓ドラ対応
オープンソース

立体何切るの支援ツール

麻雀 AI が場況に応じて、総合的に判断した結果を表示するツールです。麻雀 AI で有名なものでは、Suphx爆打 がありますが、牌譜を入力として AI の判断をユーザーに表示するツールとしては以下の2つがあります。

まだ使ったことがないので機能の詳しい比較は省略しますが、以下のような特徴があります。

  • Akochan の特徴
    • 天鳳段位7~9段の強さ
    • 無料
    • オープンソース: critter-mj/akochan にコードが公開されています。
    • 天鳳の牌譜読み込みに対応
    • ルールベースの AI: 牌譜から集計した統計データは活用していると思われますが、ディープラーニングは使用していません。
  • Naga の特徴
    • 天鳳段位10段の強さ
    • 有料
    • クローズドソース
    • 天鳳の牌譜読み込みに対応
    • ディープラーニングを使用した AI

昨今はディープラーニングを使用した AI が流行っていますが、ディープラーニングの場合は判断に至る計算過程がブラックボックスになってしまうため、ユーザーに判断基準を提示する目的には、従来のルールベースの AI のほうがいいかもしれません。また、Naga は有料ですが、ディープラーニングは大量の演算が必要であり、サーバーの運用コストがかかるので、有料なのは仕方ない部分かと思われます。

麻雀何切るシミュレーターの機能追加・不具合修正の予定

確率が100%を上回る場合がある (version 0.8.0 で暫定対応済み)

牌姿によっては、確率が100%を上回る例が確認されています。おそらく、確率が真の値より1~3%前後高く算出されおり、真の値は99%など100%に近い値であると推測されます。結果について、他のツール (一人麻雀計算機、ツモアガリ確認計算機) の計算結果と大きな隔たりはないことは確認しており、打牌の優越が変わるほどの影響はないと思いますが、確率が100%を上回るのは気持ちが悪いので修正したいです。数値計算の丸め誤差の影響にしては差異が大きすぎるので、計算過程になにか問題があるのかもしれません。

1つの例として牌姿「2345678m445p123s南 ドラ白」に対する何切るシミュレーターと一人麻雀練習機の計算結果を載せました。どちらも打牌の優劣は一致していますが、ある打牌で聴牌確率が100%を上回っております。また、期待値や確率が両ツールで異なるのは、赤牌の考慮などシミュレーションの仮定の違いによると思われます。

何切るシミュレーター

打牌 期待値 和了確率 聴牌確率
4354点 62.08% 101.64%
五筒 3970点 54.23% 101.27%
四筒 3371点 51.85% 97.71%
一索 2956点 34.72% 86.70%
八萬 2699点 42.16% 99.08%

一人麻雀練習機

打牌 期待値 和了確率 聴牌確率
4423.18 57.70% 103.10%
五筒 4197.96 53.69% 102.49%
四筒 3350.3 50.49% 100.48%
一索 3407.99 41.17% 93.52%
八萬 3020.52 47.42% 101.62%

何切るシミュレーターの結果

一人麻雀練習機の結果

  • 追記 2021/9/24

有効牌が引けない場合に、有効牌以外のどの牌を引いたのかということはシミュレーションしていないため、「各牌の残り枚数の合計 > その巡目の本来の残り枚数」という状況が起こり得る。そのため、「牌Aの自摸の確率 = 牌Aの残り枚数 / 各牌の残り枚数の合計」として、確率値が1を超えないように暫定対応した。 一人麻雀練習機も同様の問題で確率が100%を超えているものと思われる。

七対子手の考慮

現在は「手牌の種類」を「一般手」にした場合、七対子手の和了が考慮されません。向聴数の計算方法が一般手と七対子で異なるため、実装の都合上別れています。対子が多い牌姿の場合、七対子を考慮するかどうかで正着が変わってくるので、一般手と七対子手を同時に考慮するように対応したいです。

他の平面何切るシミュレーターとの差異の検証

各シミュレーターで数値が異なるのは、赤牌の考慮などシミュレーションの仮定の違いによりますが、一部の牌姿で打牌の優越が他シミュレーターと異なるケースを確認しています。これがシミュレーションの仮定による違いによるものなのか不明なため、本シミュレーションの計算になんらかの間違いがないかを調査する予定です。

三麻の対応

現在四麻のみですが、三麻にも対応したいです。牌の種類が減るだけなので、対応はそこまで難しくなさそうです。

ツイッターとの連携機能

何切る問題の出題やシミュレーションの結果をツイートできるような機能を追加するかもしれません。