*All archives* |  *Admin*

<<05  2017/06  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  07>>
麻雀AI開発その22・ログの調査中
AI製作の続きです。
引き続き、1試合通しで計算させたログ(1打1打ごとの評価値)を見て、バグ潰しとかをしていきます。

1試合分のログ16000行のうち6000行くらいまでチェック終わりました。
とりあえず今日のところは重大なバグは出ていなくて小康状態といったところです。

ログをゆっくり眺めているとAIの特徴とか改善点がちょっとずつ見えてきます。

・かなり守備型のAIである。
上がりの可能性が薄い状況で、字牌とか2者に対する端牌現物とかを残したがる傾向がかなり強いです。

例えば次のような状況です。普通なら手牌に何の関係もない1mはツモ切りなんですけど…
170615-01.png
再帰パート(他家和了無視)では余剰牌なしで1mを切るのが圧倒的によくなっていますが、(この段階で1mと3sの二択に絞られる)
シミュレーションパートでは逆転して打3sが有利という結果を返してきます。

中身の数値を見てみると、和了率は7%前後ともともとの数値がかなり低いので、両者そこまで差がつかない一方、
放銃率では1.5%くらい打3sの方がいいということになっています。

現状は全員動きなしなので1mも3sもほぼ通るという一方、聴牌打牌が異なるので、将来の危険牌である3sを先に処理する方が放銃率的に有利である、という計算だと思われます。

ダイレクトのカン2s受けがある場合でさえこれなので、ただの変化(例えば両面+愚形+真ん中浮き牌)でしかない場合はよけいに字牌を残して浮き牌が切られる傾向が強いです。

これだけならまぁそういう(守備型)傾向がある、というだけで済む話なのですが、
さすがにドラの浮き牌とか23赤5s北とかからでも字牌を残してドラを切ろうとするのはいかがなものか、という気がします。
まぁ理屈はわからんでもない(上がりの可能性が低いので打点UPよりも将来の危険牌先切りを優先)のですが、ちょっと釈然としないものがあります。
局収支等の数値の求め方自体はがっちり決まってしまっているので、どうにも修正のしようがない感じです。


・シミュレーションパートの結果のばらつきが結構激しい。
10000回の試行だと局収支で±数十点はふつうにばらつくのですが、細かい牌効率系だと局収支の差がその誤差の範囲内(±数十点)での勝負になることがかなり多いです。
なので、人間の目から見れば明らかな上位互換になる打牌(例えば孤立役牌>孤立オタ風)でもその影響度が小さいと、
ちょっとシミュレーションで片側に上振れ下振れを引くと逆転してしまうケースがかなり多くみられます。
これも構造的な問題なので、すぐに解決はできそうにないです。(シミュレーション回数を増やすのが一番手っ取り早いが、計算時間がかなり増える)


・序盤の手組が実際の打牌となかなか一致しない。
3シャンテン(枚数の多い2打牌候補について手替わり0回再帰計算+シミュレーション)とか4シャンテン以上(一次有効牌の枚数のみ)とかの実際の打牌との一致率が極めて低いです。(体感でたぶん5割もない)
上がりまで遠いので、この時の方がむしろ実際の打ち手は字牌を残して端寄りの浮き牌とかから処理していく傾向が強いです。
また、他家に仕掛けが入った後についても、3シャンテンとかの枚数で2択に絞るところで、枚数のみなので危険度が低い牌を優先して切るみたいなことはできていません。

これについては枚数と危険度の比較なので、一見難しそうですが、手がないわけではないです。
「シャンテン数」と「一次有効牌の枚数」ごとに局収支の実測値をパラメータとして取って、そこから危険度指数(Σ(放銃率×放銃時失点))分だけ差し引けば、危険度との兼ね合いを測ることができる…かもしれないです。

字牌を残す問題については孤立字牌に対して守備力を評価して±何枚かの補正をつける、とか。


現状、こんなところですかね。いつになったら自分鳴き処理に入れるんでしょうね。
スポンサーサイト

コメントの投稿

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

コメント

プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード