コンピュータに麻雀の流れを認識させることは可能

たまたまWikipediaの麻雀の項目を見ていたらそこにあった言葉が気になったのでブログで言及。


2004年、とつげき東北の「科学する麻雀」が講談社現代新書から出版された。とつげき東北は、前の局の結果が次の局に影響を及ぼすとする所謂「流れ論」を徹底的に否定しており、本著でも確率論を基礎とした統計学的な麻雀戦略を提唱している。「このような時にはこう打つ」と明確にかつ論理的に場面に応じた打ち方を指導している点は極めて画期的であり、麻雀界に大きな衝撃を与えた。また、C言語のソースや数式がふんだんに載っている点も麻雀書としては前代未聞であった。
これらデジタル麻雀に対して、「ツキ」「勘」「流れ」を重視する雀士も多く、そのような戦術論はアナログ麻雀と呼ばれている。

これを見てデジタル->確率論->流れはない、という誤解を生む可能性があるので、ブログに書いておくとコンピュータに麻雀の流れを認識させて打たせることは可能だと思います。

期待値ベースで麻雀打つことを否定はし、自分もそういう戦法を結構好むけど、それだけだとすぐ限界が来て、みんな同じ打ち方になるので意表を付いた戦略が有効になります。
関連の言葉としては「渋滞情報を知る人が半数を超えると渋滞情報を知らない人が渋滞に巻き込まれなくなる」という意味の「カーナビのジレンマ」という言葉があります。デジタル麻雀も多分、この法則は当てはまるのではないでしょうか。

個人的にはコンピュータサイエンスの専攻ではありますが、片山まさゆきノーマーク爆牌党で提唱していた「麻雀のダンゴ理論」はあると思っています。麻雀ってのはゼロサムゲームですが、一局は配牌と約18回のツモという制約条件があるので単純な期待値だけで打つのは、ちょっと違うんじゃないかと。

で、自分の専門分野は音声認識なんですが、統計的手法がベースとはいえ単純な期待値ではありません。HMMベースの音声認識もかなり色々なテクニックが使われております。それでHMMを使って、麻雀の流れを認識させて打つコンピュータってのは出来ると思っているんですよね。

将棋と違ってすべてが可視化されたゲームじゃないので、Bonanzaみたいにコンピュータ同士の公平な対局とか出来ないんですが、コンピュータ同士を闘わせる統一的な麻雀のフレームワークってないんですかね?それもオープンソースだとなお良い、って感じなんですが。開発者が麻雀の「流れ」をどう捉えるかで色んな実装のバリエーションがあり得ると思うんですけどね。

天鳳とか東風荘のボットを隠れて作るのしか現段階では方法がないのかしら。。。

で、この文章書き終わった後に、ちょっと調べてたら科学する麻雀の続編が出てたのね。

超・入門 科学する麻雀 (洋泉社MOOK)

超・入門 科学する麻雀 (洋泉社MOOK)

ちょっと暇が出来たら読んでみよう。