FC2ブログ

*All archives* |  *Admin*

<<11  2016/12  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  01>>
全ツ型四人麻雀計算機その20・テスト3
いろいろな局面について旧局収支シミュレーションと今回の四麻計算機を比較してテストしてみます。

自手先制両面リーチで相手3人は非リーチ面前の場合。
161208-01.png
相変わらず横移動率が高めで、チー発生回数が少ないという謎現象です。うーん。わからん。

一番上のはたまたま河に中張牌が切れてる枚数が多めだったので、字牌が多めの河が来るまで、ランダム生成を繰り返してやり直したのが上から3番目の「新」のやつです。
河の濃さが違うだけで局収支1000点も動くのか―。まぁ、3つ目のやつは自分の河が字牌ばかりで、残ってる現物が少なく、相対的に無筋が出やすいというものを反映してるのでしょう、たぶん。

愚形のケースと自手副露聴牌のケースと相手一人副露のケースのそれぞれで比較をやってみた結果がこちら。
161208-02.png
・横移動率(特に相手1副露のケース)が高く出てる。
・自手副露聴牌のロン和了率が高く出てる。
・自手リーチ、相手副露のロン和了率が高く出てる。終局時残り山枚数も多い。

うーん。とりあえず自手他家ともに出上がり関連がうまくいってないのはわかります。出上がり率をたぶん高く見積もりすぎているのだと思います。
自手リーチ・相手0副露については実際の上がり牌が出る確率を低く抑える補正をつけていますが、それをそれ以外のケースでも考える必要がある…とか?
それで一回やってみましょう。
全ツ型四人麻雀計算機その19・テスト2
計算機のテストがてらに、昨日気になった局面を引っ張り出して、
四麻計算機にかけたのですが、バグで途中で強制終了されて、あわわとなっていました。

そのバグつぶしに1日かけました。

鳴きによって自分のツモ番が早く回ってきたときに参照すべき最適打記憶情報が存在しない(再帰計算パートでは二向聴から一向聴になるのに最低1順はかかるのでそれ以降しか記憶情報がないが、シミュレーションパートでは1順回る前にツモ番が来るときがある)というバグと、
14枚手牌が同一牌姿だが、ツモってくる牌とツモ前13枚手牌が異なるケースを同一状況とみなしていて記憶情報を上書きしていたバグ、
(例えば3344789p123450sからの6mツモと6m344789p123450sからの3pツモが同じカテゴリに入っていた。前者は一向聴変わらずの無駄ツモだが、後者は二向聴から一向聴化する有効牌で挙動が異なっていた。)
を改善しました。

前者の方は強制終了系のバグだったので、すぐに発覚しましたが、後者の方は今回のチェックから漏れていたら顕在化しなかったバグでした。前者のバグの原因を調べてたらなぜか黒5sを持ってるのに最適打が赤5sになってたケースがあっておかしいと思ったので発覚しました。
今回見つかってよかった。危ない危ない。

それで今回テストに使った牌姿と状況はこちら。
ストレートに一向聴に取るなら打3pか打1sですが、カン5mに自信がなさ過ぎたので、ちょっとひねって打4pとしてみました。
4pが1枚切れてるのもありますし。
さすがに打4mの二向聴戻しは遅すぎかなーと思いましたが、どうでしょうか。
161205-02.png

再帰計算パート(一人麻雀計算)の結果がこちら。
(打4mの二向聴戻しは手替わり0回、それ以外の一向聴取りは手替わり1回までとして計算。)
161206-01.png

シミュレーションパート(四人麻雀計算)の結果がこちら。
161206-02.png
打3pと打4mは悪そうで、打4p打1s打4sは似たり寄ったりか。
打4pは致命的なエラーというわけではなさそうです。


それにしても思わぬところからバグが出てくるのは怖いですねぇ。やはり入念なテストは重要です。
全ツ型四人麻雀計算機その18・実測とシミュレーションの詳細比較
前回、テストの結果と従前の局収支シミュレーションの結果が合わなかったので、
実測も含めて詳細に分析してみます。

取ったのは和了率等の基本データと終局時残り山枚数と終局時のある特定1家の状態(リーチor非リーチ面前or副露。副露については副露数と聴牌かどうかと途中で聴牌崩しを挟んだかどうかの別。)と1局単位でチーとポンが発生した回数です。

条件は他3人非リーチ面前の状況の先制両面リーチ(待ちが端寄りか中寄りかは問わない。)です。
シミュレーション側もほぼ同等の条件です。待ちは両面25,58。
161205-01.png
実測と局収支シミュレーションの結果はほぼ一致しています。
問題は四麻計算機の方で、明らかに副露の割合が大きく、特にチー発生回数が倍くらい違っています。

チーに関するパラメータとコードを確認していったところ、超重大なバグを発見。(パラメータの読み込みが1列ずれて全然違う数値が代入されてた。)

バグを修正してもう一度やってみたところ、和了率とかの基本的データはだいたい一致してくれましたが、
今度は副露不聴の割合が少なくなってしまいました。問題がありそうなのはチー発生回数のところです。

うーん。基本的なデータは合ってるとはいえ、チー発生回数が3分の2倍も違うのはちょっと見過ごしがたいかなぁ。
と思ってずーっと書いたコードを眺めてたのですが、今日はその原因を突き止めることができませんでした。
うーん、わからん。

一つ浮上してるのは、捨て牌ランダム生成のところで捨て牌の生成が偏ってる可能性です。
捨て牌に中寄りの牌が多ければ、数牌の見えてる枚数が多くなって、鳴ける塔子が他家にある可能性が減るということと、
現物と筋牌が増えるので、その塔子のチー発生率が減少する、というところです。
また、自分の手牌の想定は444m456789p6799s1zと中寄りの牌が多いというのもあります。

試しに他家の6巡目までの捨て牌を全部字牌にしてみたところチー発生回数が0.3回くらいになって実測と局収支シミュレーションの値に近づきました。(その代わり、字牌ポンができない場になるためか、ポン発生回数が少なくなった。)

ただ、全部の捨て牌が字牌という極端な場を作ってようやく同等ですからねぇ。どうしたもんだか。
全ツ型四人麻雀計算機その17・副露者の挙動テスト1
昨日から副露聴牌者の聴牌崩し率を入れて(ほぼ従前の局収支シミュレーションからまるまる移植しただけ。)、
これで他家についてリーチ・ダマ・副露を入れることができたので、一度テストをしてみます。

先制両面リーチ。
161204-01.png
(上が従前の局収支シミュレーション、下が今回の四麻計算機。)
ツモ和了率が減少、ロン和了率が増加、放銃率・被ツモ率が微増、横移動率が激増。

ということは他家の攻め具合(特に副露)を大き目に見積もりすぎているのだろうか。

先制両面両面一向聴。
161204-02.png
これも先制リーチと似たような傾向。

後手両面両面一向聴。
161204-03.png
やっぱり横移動率が高い。

大分鳴きについてのパラメータを従前から変えてるのでその辺の影響だろうか。
一向聴については従前についても扱いが雑だったので多少ずれるのはしょうがないのだが、
せめて先制リーチくらいは同じくらいの数値になってほしいところ。

どうしたものかなぁ。とりあえず、実測値・局収支シミュレーション・四麻計算機の詳細な分析(局終了時の平均巡目とか局終了時の他家の状態とか)をして原因を探ってみようか。
全ツ型四人麻雀計算機その16・副露者の挙動5
ちょっとパラメータの採取に手間取って間が空きましたが、いつも通りパラメータを貼っていきます。
今回はチーに関するパラメータです。

チーの場合はポンと違って同じ牌を鳴く場合でも両面で鳴く場合とかカンチャンで鳴く場合とかで晒す牌が異なる場合があるという点と、
晒す牌の場に見えてる枚数で他家に鳴ける塔子が存在する確率が変わってくるという問題があります。
極論を言えば3が4枚見えなら1や2をチーされる確率は0ですから。

その辺を分類してチー発生率のデータを取っていきます。

まずは基本となるチー発生率。
仕掛け種類と晒す牌別と晒す牌の見えてる枚数の分類です。(量が多いので0副露の時のみを抜粋。)
条件はリーチ者なしで不聴かつ染め模様でないとします。
実際に鳴かれる確率は例えば鳴く牌が3の牌なら12(3)と2(3)4と(3)45と(3)4r5の4パターンの合計になります。
161203-01.png

・関連牌の見えてる枚数が少ないほど鳴かれやすい。
・19含みの塔子はタンヤオが消えるので鳴かれにくい。
・真ん中の牌ほど各パターンのチー発生率の合計が大きく鳴かれやすい。
・赤5は黒5より鳴かれやすい。

この基本のチー発生率に対して各分類による補正を掛け算でつけていきます。

2個目は副露数とリーチ者の有無の分類です。
161201-02.png
副露数が少ないほど、聴牌まで遠いことが多く、鳴ける有効牌が多く、チー発生率が高い、
リーチ者がいると守備を考えて鳴かないことが多い、
みたいなことが読み取れるかと思います。

3個目は出た牌がチー可能な下家の現物か筋か無筋かという分類です。
161203-02.png
フリテン塔子が手に残るケースは少ないため、現物牌と両面塔子の筋牌がチーされる確率は低く、
相対的に無筋牌がチーされる確率は上がります。

4個目はリーチ者ありの状況で、リーチ者に対して切ってる無筋現物数です。
161201-04.png
これはポンの時とほぼ同様で、無筋を押してるほど攻めてきやすいのでチーされる確率は上がるというものです。

5個目はチーできる牌がドラだった場合の通常より鳴かれやすさです。
161203-04.png
特に0副露(非リーチ面前)のときは、ドラじゃなければスルーするところをドラという理由で鳴くケースが増えるので、鳴かれやすさ倍率は大きい傾向にあります。
逆にすでに鳴いている場合はドラでなくても手が進むものは鳴くことが多いので、鳴かれやすさの上昇は控えめです。

ここまででチー発生率のパラメータは終わりです。

最後にチー発生時の聴牌率をチェックしておきます。
161203-03.png
タンヤオ仕掛けと役牌仕掛けについてはほぼポン後聴牌率と同じくらいです。
その他仕掛けについてはチーの方が聴牌率が高いという結果になってます。理由はよくわからないです。


バグが出まくって予想外に手間取ってしまいましたねー。
これで他家の挙動については染め手を除けばリーチ・ダマ・副露まで織り込めたので終わりが見えてきました。
後取ってないのは他家副露聴牌者の聴牌崩し率くらいか。
それと点棒状況判断を前のシミュレータから移植するのもあるけど、それは後回しでいいかなー。

目下の課題は自手の副露ですね。これはけっこう苦労しそうな気がします。
プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード