Home

押し引きアルゴリズムの改善(4) 〜 押し引き閾値の再調整

打牌選択アルゴリズム(10) 〜 残り牌数の正規化 で残り牌数の数え方を変えたため、評価値の値も変わりました*1。 このため現在の評価値のスケールに合わせて調整していた押し引きの閾値にも変更が必要です。 押し引き表の牌姿は評価値何点?押し引きアルゴリズムの改善(3) と同様な方法で再調整していきます。


前準備

閾値の調整に入る前に、同じ 押し引きアルゴリズムの改善(1) で行った

の修正を行います。

この段階で局収支は以下となりました。

結果 0400 0600 修正後
和了 10.2% 10.2% 11.6%
放銃 10.3% 10.6% 12.8%
被ツモ 32.7% 32.6% 31.8%
横移動 26.5% 26.8% 25.7%
流局 20.3% 20.0% 18.1%
局収支 -1045 -1082 -1040

閾値の調整

現在のAIの閾値は以下のとおりです*2

意味
A1シャンテン以前でも全押しする(超好形) 1200
B1シャンテンでもベタオリする(愚形) 300
Cポンテン・チーテンをとらない(副露愚形) 500
Dテンパイしていても無スジは押さない(聴牌愚形) 200
Eテンパイしてもリーチしない(立直愚形) 200

押し引きアルゴリズムの改善(2)押し引きアルゴリズムの改善(3) のように、AI 0600 と閾値を調整したAIを実際に1,000戦対戦させて、この値を再調整します。

超好形の閾値(閾値A)

押し引きを 0401 のアルゴリズムに戻したため、1シャンテンでは「スジまでは押す」なのですが、これを全押しにできる手牌の評価値 閾値A を調整します。 超好形なら1シャンテンでも全押しするということですね。

結果 調整前 600 650 700 750 800 1000 1200
和了 11.6% 12.1% 12.0% 12.0% 12.0% 11.9% 11.8% 11.7%
放銃 12.8% 13.2% 13.1% 13.1% 13.0% 13.0% 12.9% 12.8%
被ツモ 31.8% 31.6% 31.6% 31.6% 31.6% 31.6% 31.6% 31.7%
横移動 25.7% 25.5% 25.6% 25.6% 25.7% 25.7% 25.8% 25.7%
流局 18.1% 17.6% 17.7% 17.7% 17.7% 17.9% 18.0% 18.0%
局収支 -1040 -1011 -1010 -1007 -1007 -1011 -1022 -1025

閾値Aの値は 750 とします。

愚形の閾値(閾値B)

次に1シャンテンでもベタオリする愚形の手牌の評価値 閾値B を調整します。

結果 調整前 60 80 100 200 300
和了 12.0% 11.9% 11.7% 11.7% 11.3% 11.2%
放銃 13.0% 12.1% 12.0% 11.8% 11.4% 11.3%
被ツモ 31.6% 31.6% 31.7% 31.7% 32.2% 32.1%
横移動 25.7% 25.9% 26.0% 26.1% 26.3% 26.4%
流局 17.7% 18.3% 18.7% 18.7% 18.9% 19.0%
局収支 -1007 -973 -971 -976 -987 -1006

閾値Bの値は 80 とします。

副露愚形の閾値(閾値C)

続いて副露に関する閾値を調整しますが、まず超好形とみなす閾値Aを超える副露を常に許可するよう修正します。

この段階で局収支は以下となりました。

結果 修正前 修正後
和了 11.7% 11.7%
放銃 12.0% 12.0%
被ツモ 31.7% 31.7%
横移動 26.0% 25.9%
流局 18.7% 18.6%
局収支 -971 -971

次に、ポンテン・チーテンをとらない副露時の愚形の評価値 閾値C を調整します。

結果 調整前 200 250 300 400
和了 11.7% 11.7% 11.7% 11.7% 11.3%
放銃 12.0% 11.9% 11.8% 11.8% 11.6%
被ツモ 31.7% 31.7% 31.7% 31.7% 31.7%
横移動 25.9% 26.0% 26.1% 26.1% 26.4%
流局 18.6% 18.7% 18.8% 18.8% 19.0%
局収支 -971 -966 -961 -966 -970

閾値Cの値は 250 とします。

聴牌愚形の閾値(閾値D)

最後にテンパイ時の閾値を2つ調整します。 1つ目はリーチしていないテンパイ(副露してのテンパイなど)で全押しとはしない評価値 閾値D です。

結果 調整前 0 50 100 150 200
和了 11.7% 11.7% 11.7% 11.5% 11.4% 11.2%
放銃 11.8% 11.5% 11.5% 11.3% 11.2% 11.1%
被ツモ 31.7% 31.7% 31.7% 31.7% 31.8% 31.8%
横移動 26.1% 26.2% 26.2% 26.3% 26.3% 26.3%
流局 18.8% 18.9% 19.0% 19.2% 19.2% 19.5%
局収支 -961 -961 -961 -962 -967 -962

閾値Dの値は 50 としました。

立直愚形の閾値(閾値E)

2つ目はメンゼンテンパイしてもリーチはしない評価値 閾値E です。

結果 調整前 200 250 300 350 400
和了 11.7% 11.7% 11.7% 11.7% 11.7% 11.6%
放銃 11.5% 11.5% 11.5% 11.5% 11.4% 11.5%
被ツモ 31.7% 31.7% 31.7% 31.7% 31.7% 31.8%
横移動 26.2% 26.2% 26.2% 26.2% 26.2% 26.1%
流局 19.0% 19.0% 19.0% 19.0% 19.0% 19.0%
局収支 -961 -962 -961 -961 -956 -961

閾値Eの値は 350 としました。

調整後の閾値

調整の結果、各閾値は以下となりました。

意味
A1シャンテン以前でも全押しする(超好形) 1200 750
B1シャンテンでもベタオリする(愚形) 300 80
Cポンテン・チーテンをとらない(副露愚形) 500 250
Dテンパイしていても無スジは押さない(聴牌愚形) 200 50
Eテンパイしてもリーチしない(立直愚形) 200 350

残り牌数の数え方を変えたことにより相対的に閾値が下がる中、「立直愚形」の設定が異様な気もします。

押し引き表

調整後の閾値による 超好形・好形・愚形 の分類を下表に示します(子の場合)。

1 2 3 4 5 6 7 8 9101112131415161718
聴牌 愚形 のみ手
+1翻
+2翻
好形 のみ手
平和
平和+1翻
平和+2翻
1向聴 悪悪 のみ手
+1翻
+2翻
七対子 のみ手
+1翻
+2翻
良悪 のみ手
平和
平和+1翻
平和+2翻
良良 のみ手
平和
平和+1翻
平和+2翻
完全 のみ手
平和
平和+1翻
平和+2翻
刻子1
ヘッドレス
のみ手
平和
平和+1翻
平和+2翻
普通
くっつき
のみ手
平和
平和+1翻
平和+2翻
4連形1
くっつき
のみ手
平和
平和+1翻
平和+2翻
4連形2
くっつき
のみ手
平和
平和+1翻
平和+2翻

超好形、 愚形

同じ牌姿であっても巡目により評価が異なるのでかなり複雑になりました。 人間の打ち手がこれを意識することは不可能な気もします。

対戦結果

修正後のAIを 0601 として、0600 および 0403 と10,000戦の デュプリケート対局 を行いました。 手作りに関する変化はないため、役の出現率の統計は割愛します。

0600 0601 0600 0601
1位率 .251 .266和了率 .214 .220
2位率 .256 .255放銃率 .128 .133
3位率 .247 .241立直率 .226 .232
4位率 .246 .238副露率 .339 .340
平均順位 2.49 2.45平均打点5,5665,652
0403 0601 0403 0601
1位率 .258 .257和了率 .219 .219
2位率 .243 .247放銃率 .136 .134
3位率 .243 .245立直率 .238 .231
4位率 .256 .252副露率 .341 .338
平均順位 2.50 2.49平均打点5,6705,644

「テンパイ・シャンテン」と「スジ・無スジ」に頼る 0600 と比べると、平均順位は 2.49 → 2.45 と大きく上昇しています。 しかしながら、残り牌数を「見えていない牌の枚数」とする 0403 との比較では、残念なが「残りツモ数に正規化」した 0601 に大きな成績の上昇はありませんでした。

次回 は牌の危険度の閾値についても同様に調整します。

  1. ^ ツモ可能枚数は見えていない牌数より少ないので、評価値も相対的に低くなる
  2. ^ ver.2.0.0 作成の際にも調整を行なっているため、ブログに掲載の値とは異なります。現在の値決定の過程は「電脳麻将本」に記載しています