2010年03月31日

麻雀AIの叩き台

問題が簡単そうになったところで、具体的にどう選択するのか?
と言っても、そもそも私の麻雀の実力は初段程度しかなく
(それは棒聴即リー全ツに負ける程度の強さです)
AIについても詳しいわけでもなく
ニューラルネットワークだとかなんたらアルゴリズムだとか、
さっぱり分かりません。

なので、とりあえず適当なAIを考えて作ってみることにしました。
いろんな案はあるんですが、始めに作ろうと思っているのは…


今の場の状況に対して、数順分のランダムな自摸を用意して
自摸を4人(もしくは自分だけ)に振り分けるけど打牌はしないまま
何となくシミュレーションぽい事をさせます。

それで、局終了時の状況がある程度だせるので
得点状況判断的に最も好ましい方向に向かうように選択します。



この案なら終局状況を判定するルーチンを作れば、
とりあえず動かしてみる事ができます。
(得点状況的にどういう結果が望ましいのか、将来的には牌譜を解析して検討するか、強い人に教えて貰うか、するとしても、始めはなくても何とかなる)


ただ、序盤に終局までシミュレートさせようとすると
自摸パターンを十分な数、用意できないと思います。
それだと、局の途中をどう判定するのかって問題が出てきて困ってますが…
posted by idaten! at 13:00| Comment(3) | TrackBack(0) | 開発日記
この記事へのコメント
モンテカルロ法・・・?
とはちょっと違うんでしょうか。アルゴリズム的なことは割と分かりません><

Posted by enecre at 2010年03月31日 15:26
ニューラルネットワークで得られたAIの戦略は人間に理解できる形ではないのが難点ですね.
遺伝的アルゴリズムで得られたAIはその遺伝子配列を見れば戦略が理解できるので比較的面白いかと.遺伝子の設計の仕方が上手くいけば実装はそこまで難しくなさそうですが,麻雀においてはその設計が難しいんですよね.場況が多すぎて.

モンテカルロっぽいアプローチも面白いと思います(*´ω`*)
Posted by うたたねこ at 2010年03月31日 20:51
enecreさん

モンテカルロ法:シミュレーションや数値計算を乱数を用いて行なう手法の総称。

まさにその通りですね。
そんな名前が付いているなんてしりませんでした。



うたたねこさん

遺伝的アルゴリズムとニューラルネットワークって似たようなもんかと思ってましたw
無知すぎて恥ずかしい(/ω\)

実装が難しくないと言うのはとても惹かれますね!
ちょっと勉強してみますw
Posted by idaten! at 2010年03月31日 21:08
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/36761628
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック