*All archives* |  *Admin*

<<04  2017/05  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31  06>>
floodgate for mahjong へ参戦その7・ベタ降りプログラムと再帰式牌効率プログラムの実戦投入
攻撃面は2シャンテン以下は再帰計算、3シャンテン以上は1次有効牌が一番多い棒テンAIということで、
鳴きはできないけど、一応最低限は打てるようになったので、
今回は守備面を考えます。

まずは簡単のためにリーチがかかったとき、1シャンテン以上ならベタ降り、というシンプルなアルゴリズムにしてみます。

ベタ降りプログラムの中身は具体的なテスト風景を見ながら話をしたほうがよいでしょう。

ログ1
http://gimite.net/mjai/log/2017-02-16-223414.mjson.html

ログ2
http://gimite.net/mjai/log/2017-02-16-224639.mjson.html

ログ2の9巡目、親リーを受けた一発目に全く通ってない赤5pを切ってしまってます。
170216-01.png
中身を取り出してみると、
170216-02.png
手に持ってる全種の牌の中から3者それぞれに対して、危険度(放銃率)とその牌が当たった時の平均失点をパラメータから取ってきて、
(危険度)×(平均放銃失点)の3人分の和が最も最小になる牌を選んで切ります。
(なお、実際の放銃率については3人分の和を取るのは厳密には誤りで、正確には1-(1-下家への放銃率)×(1-対面への放銃率)×(1-上家への放銃率)になりますが、天鳳ルールだとダブロンがあって、放銃が重複したときは二人に対して点棒を支払うので、むしろ単純な加算のほうが良いと判断しました。)

この場合はリーチの現物の9m切りが正しい(赤5p以外の中では実際に(危険度)×(平均放銃失点)の3人分の和が最小になってる)のですが、
なんか赤関連の危険度でバグがあるのか、危険度が0になっているので、赤5pを誤って切ってしまってます。

ここ以外は降りに関しては今のところ想定通りに動いているので、赤関連バグだけ直してもうちょっとテストを続けてみることにします。
スポンサーサイト

コメントの投稿

Secret
(非公開コメント受付中)

コメント

プロフィール

nisi5028

Author:nisi5028
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
フリーエリア
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード