[麻雀]新Manue

mjai-manueの新バージョンが開発されているらしい。そして既に旧manueやsilicaより有意に強いらしい。

(ちなみに旧manueと旧silicaの強さの比較についてはここの最後の方を参照)

githubのREADMEにアルゴリズムの概要とサンプル牌譜があったので感想。まだソースコードは読んでません。

  • 持ち点の期待値を最大化するようになっているが、本当は、和了した時の得点(分布)から平均順位の期待値を求めてこれを最大化するべきだと思う。
  • ベタオリがかなりまずい場面があった。2軒リーチだから?
  • チートイツを知らなそう。ただこれは多牌して和了率を推定する都合上わざとそうしていると予想。
  • 残りツモ数や相手の得点の期待値が適当なデータでお茶を濁してあるのでTODOなのだろう。
  • 鳴きによるスピードアップが考慮されない。(今鳴こうとしているものを鳴くぶんは勿論考慮されるが。)
  • ノーテン罰符。
  • 合計2322行ってすごい。

[麻雀]残りツモ数

上と関連して、残りツモ数に使えそうなデータをとってみた。
使用した牌譜は天鳳鳳凰卓東南赤の2009/02~2012/12の全牌譜(を独自形式に変換したもの)で以下。(独自形式についてはここ参照)
牌譜ファイル: http://www3257ui.sakura.ne.jp/upload/all.mjlog.gz (913MB)
結果ファイル: http://www3257ui.sakura.ne.jp/upload/tsumo_number_distribution.txt
ソースコード: http://www3257ui.sakura.ne.jp/upload/tsumo_number_distribution.c

gcc tsumo_number_distribution.c -std=gnu99 -O2 でコンパイルします。

このデータを使って残りツモ数を推定すれば強くなると思うので実験する予定です。(なお今忙しさがアレな模様。)

[麻雀]牌譜解析にかかる時間

今回約30万戦の牌譜を処理したので知見をメモ。
30万戦の牌譜(独自形式)を全て結合したファイルのサイズは約3GB。
つまり約30億文字。
上のプログラムの実行にかかった時間は約38秒(マシンは2012年発売のUltraBook)。
1秒に1億命令というよく知られている概算と一致する。
ちなみにファイルを結合しないと、IOで20秒程度の差がつく。
このプログラムは必要な部分以外読み飛ばしているので、真面目に読むと1分くらいかかるんだろうなという感じ。でもそんなもん。
重い解析をするときの時間見積りに役立つかもしれない。