期待値型麻雀評価関数のジレンマ
「真の意味でのデジタル派な…」とか名乗っておきながらこんな言い方するのはなんだけど、オートモードで新アルゴリズムが打っているのをぼんやり見ていると、なんかすごく流れが悪いなと感じる。自摸の運が悪いとかではなくて、打ち方にポリシーを感じないという意味で。
ようするに、天さんからも同様のコメントいただいているけれど、「ここでこう打つなら、さっきああ打てばいいのに。」と感じる打牌が多いのだ。
前の状態だと打牌の良し悪しは別として打牌に一貫性があった。だから、棒聴即リー派な人が打ってると思えば割と自然に感じられたけれど、今度はいかにもコンピュータが打ってるっぽい支離滅裂なうち方と感じるケースも出てくる。変な表現だけれど、山崎一夫さんが打っていたのが途中から小島武夫さんが代打ちに入った感じになる。(!?)
これは、新アルゴリズムが計算量の関係で1向聴のときには使えるけれど、2向聴のときには使えないことに原因がある。2向聴と1向聴でアルゴリズムが替わるので、当然打ち方の癖が変わる。2向聴までは割と棒聴気味の打ち方なのに、1向聴になると手替わりまで読むようになるのだ。
2向聴でも新アルゴリズムが使えると良いのだけれど、どうしても計算量の爆発が起きてしまう。
2向聴で手代わりまできっちり期待値計算することは、3向聴の手で棒テンをで探索するのと同等以上に計算量がかかるのだけど、2向聴(6手先まで探索)から、3向聴(8手先まで探索)に探索の深さを変えると、単純なやり方だと、計算量は200倍から300倍程度かかる。
まったり麻雀は21世紀に入ってから発売開始された程度のPCの能力でも快適に動作できることを目安に計算量を決めているが、それらの比較的古いPCでも、ボウテン期待値型のアルゴリズムで計算させて、2向聴の手牌で最悪でも2,3秒以内には打牌すると思う。けれど、3向聴だと3分以上かかってしまい、ゲームの思考アルゴリズムとして使えない。
麻雀では、手がまとまっていない早い段階で手替わりを考えるのは、有効度が高いが、順目が進んでから考えるのはあまり有効度が低いとされているのだけど、この関係が逆になってしまうというジレンマが起きてしまっている。
私のプログラムは速度的に改善できる点がいっぱいあるので、何とかチャレンジしてみるつもりだけど、正直これはそんなに簡単ではない。このジレンマが解決できるようだと、少なくとも一人麻雀では人間が太刀打ちできない領域に達するだろう。
| 固定リンク
この記事へのコメントは終了しました。
コメント
研究ご苦労様です。
さて、一つ御願いがあるのですが、、、。
私のウェブサイト「陸の孤島」からこのブログにリンクを貼らせていただきたいのですが、
いかがでしょうか?
よろしく御願いします。
投稿: MeaninglessX | 2007/12/29 00:05
もちろんOKです。どうぞリンク張ってください。
投稿: kmo2 | 2007/12/29 00:24
ありがとうございます。
早速リンクを貼らせていただきます。
投稿: MeaninglessX | 2007/12/29 00:50