FC2ブログ

*All archives* |  *Admin*

<<07  2017/08  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  09>>
麻雀AI開発その56・評価値関数と危険度
昨日の評価値関数→局収支への変換をAIに搭載して、実際どうなってるのかをテストしてたら、
170815-01.png
あ、これは2m中抜きして降りてもらわないといけないやつだ。これはあかんわ。

単に局収支に変換してそこから危険度指数を定数で差し引くのがダメですね。2シャンテン以上に遠い手で先手を取られた時点で、手牌価値指数がプラス5(いい手)だろうが、マイナス5(悪い手)だろうが、関係なく最も安全な牌で降りるのが正着になるので、序盤(他家攻撃無し)と同じロジックは使えません。

そこで、危険度とベタ降りの挙動を入れるためにちょっと前に作った理論(麻雀AI開発その42・数学的なお話その2)を応用します。
xが再帰関数で求めた局収支だったところが、手牌価値評価値にそのまま置き換えただけです。

ツモに対する打牌についてはこのままの式ですが、他家打牌に対する鳴き判断は少し厄介です。
yは初手切る牌の危険度指数ですが、スルーの場合はyに相当するものが存在しません。
そこで、場合分けをして、
・鳴きの場合は同じ式
・スルーの場合はyがからむb,c,eの項の代わり(その項は0とする)に定数項fを加算する。
ということにしました。

というわけで、(紆余曲折ありつつも)係数がこんな感じで出せたことにします。
(4副露はどうせまともな値が出ないだろうから3副露と同じにして、対染め手は危険度のパラメータがまだ取れてないので後回しにする。)
170815-02.png
他家攻撃が強いほど、xの係数が小さくなって、yの係数がマイナス側に大きくなってるので、
より手牌価値指標との関連が薄くなる、より牌の危険度の多寡が重要になる…という理論です。

具体的なテストはまた次回にします。
スポンサーサイト



プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード