*All archives* |  *Admin*

<<05  2009/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>>
レポート2「ベタ降りの挙動」その5
今回は先制リーチがかかった時点での現物の個数別のベタ降り成功率(失敗率)を考えます。

現物の個数について場合分けをするので、今回はふんぱつして各順目各待ち別にそれぞれ20000局やらせました。

さっそくグラフを示しましょう。rep02-13.png
(技術的なことですが、そのままグラフにプロットするとデコボコが激しかったので3点移動平均をとってグラフをならしました。)

けっこう面白いグラフが書けました。現物数0~1枚と現物数1~2枚の間の差がほぼ順目によらずほぼ一定となっています(0~1枚間は1.7%~2.0%、1~2枚間は1.4%~1.6%)。また2~3枚間も3~12順目の間は1.0%~1.2%とほぼ一定です。

放銃率1%差だと放銃期待点4800点とするとベタ降り期待点で48点差(実際は放銃率が増えると被ツモ率と流局率が減るので差はより小さくなる)。よって現物1つ分では高々100点差しかつかないということですか。

ただそれ以上に順目経過による放銃率減少が思ったより小さいです。現物2個持ちのとき4順目で4%、8順目で3%。序順と中順の差があまり見られない(さすがに終順の現物複数持ちはだいぶ数字が落ちるが)。

ただこのグラフは序順現物多数ではあまり信用できないです。このことに関連して下のグラフ。
rep02-14.png
これはリーチがかかった時点で現物がx個ある確率がどのくらいか?というものです(例えば6順目先制リーチに現物がない確率が20%)。あたりまえですが1,2順目に現物が3枚以上ある確率なんてほぼ皆無です。よってシナリオ発生回数もかなり少ないかつ放銃率が小さいので放銃回数が極めて少ないのでかなり運に左右されている感じです(特に補正前はひどかった・・・)。まぁこればっかりはしょうがないですが。

ところでこのグラフ、超早いリーチじゃなければ現物0の確率結構小さいですねぇ。けっこう「やべぇ現物ないよ。しゃーない、攻めるか。」っていうパターンは少ないのかなぁ。それならもっと非リーチ非2副露時放銃率が低くてもいいもんなのに。


これを使ってベタ降り期待値は次のように書けるでしょう。hjkrfkkkkghf.png
(ただし、B(t,m)はt順目現物m個のベタ降り期待値、H,Kは放銃、被ツモ期待失点、h,k,rは放銃、被ツモ、流局率)そしてこの式で現物数別被ツモ率流局率が必要なことに気づいたのがシミュが半分以上終わった後というマヌケを演じてしまった私。とりあえず現物数無条件ではデータが取れてるからそれでグラフを書いてみよう(H=4800、K=1600)。rep02-15.png
上の考察で現物1個が100点弱の効果ということで大体2順くらいの差が埋まるだろう。かろうじていくつかの順目で現物数別の被ツモ率がとれているからそこらへん限定で期待値を出してみよう。rep02-16.png
やはり現物個数で数百点クラスの変動はそうそうない。5月1日の記事で現物1枚差が90~120点差と書いていたがそこまでの差もない。

ベタ降り期待値だけではどうにもイメージしづらいので攻めた場合との比較も見てみたいところ。(5月1日の記事にのっけたグラフと同じもの)
rep01-50.png
rep01-46.png
自分一向聴VS先制リーチ(5月1日の記事から引用)
・現在順目t0→グラフのx軸
・先制リーチ順目t1→t0の2/3倍(少数点以下切り上げ)
・失点H=4800、K=1600(対子リーチ)
・自分親or子→z=0(自分子)
・自分和了点W=6100(子の3ハン30符)
・現在切ろうとしてる牌の放銃率p(t0)→片無筋
・追っかけリーチ宣言牌の放銃率x→両無筋(←変更!)
・一向聴有効牌→12枚
・聴牌時和了牌→確率1で6枚(両面確定一向聴の想定)
・現物枚数m=2

過去の記事と見比べても現物個数のインパクトは他のファクターに比べ小さいなぁ。このことはどうも事実っぽい。やはり押し引きに重要なのは得点と待ちの広さ(と順目)です。


これからの課題
・実戦との比較。実戦からもベタ降り失敗率とかをとってシミュの誤差評価。レポート1のときから同じような課題を抱えていたわけだが、がんばってやってみようかな。かなり大変だろうが。
・副露して手牌が短くなっているときのベタ降り失敗率。よりベタ降り失敗率は高まるだろうから押し有利になるんだろうがそのあたりを定量的に評価したい。
・3人ベタ降りでなく、他に攻める人がいる場合。攻める人の挙動をどのように評価しようかなぁ(聴牌確率とか)。
スポンサーサイト
レポート2「ベタ降りの挙動」その3
前からちょっとしかやってないけど小出しに出してくほうがいいか。

・スジ待ちの効果

8順目西家で調べてみた。数字は和了率、和了時ツモ率の順。

カン37 リーチ時無筋 40.5% 71.1%
     リーチ時スジ待ち 63.0% 40.8%
     全体 41.40% 69.44%
数数シャボ リーチ時2種とも無筋 38.4% 82.1%
        リーチ時1種スジ待ち 55.04% 54.95%
        リーチ時2種ともスジ待ち 75.18% 40.78%
        全体 42.13% 73.70%
数単騎 リーチ時無筋 33.11% 74.10%
     リーチ時スジ待ち 53.99% 41.01%
     全体 35.41% 68.54%

比較のため
両面 52.99% 89.38%
字牌待ち 68.60% 34.84%

スジ待ちの場合、通常時と字牌待ちの中間くらいという予想通りすぎる結果(決して不満というわけではないが)。他の順目についてまでやるまでもないな。ただ、数数シャボの2種ともスジ待ちのときの和了率の高さは特筆すべきかもしれない(発生回数が10000回中137回と少ないので微妙だが)。

さて、一番の見所である現物の数別の結果を出しにいこうかしらねぇ。
レポート2「ベタ降りの挙動」その3
コンピューターくんにがんばってもらった結果全順目でのデータが得られました。早速グラフを書いてみましょう。
rep02-09.png
rep02-10.png

前回と重複しないようなことを書くと・・・

・悪形(数数シャボ)の早順だと、和了率が(「科学する麻雀」による)一人攻めの和了率とほぼ同等なので放銃しない分むしろ他家には降りてもらったほうがうれしい。
・字牌待ちのあまりにも早い順目(1,2順目)だと他家は降りてるのに和了時ツモ率が25%を割る=単純なランダム打牌よりあがりやすいという結果に。いくらなんでもあんまりだ。
・待ち無条件の平均的な先制リーチ順目(8順目らへん)では和了時ツモ率が80%前後。思ったより低く感じる。

各要素ごとに待ち別のグラフを書いたのが↓
rep02-11.png
rep02-12.png
字牌待ちの別格ぶりがよく分かるグラフだ。1人当たり振込み率を見ると、全体として字牌待ちの高さと両面待ちの低さが相殺してだいたい数数シャボ程度のところに落ち着いているのが分かる。


さて、現時点で残ってる課題は・・・(その1からの貼り付け+α)
・両面以外は生起確率が低いので、十分な数のシミュレーションがとれていない。待ちごとに別々に10000回シミュをして後からくっつけるほうが得策か。(済)
・10順目西家リーチに限定せず他の順目とかでも同様にやる。これは簡単だが、計算時間がいっぱいかかるんだろうなぁ。西家から動かしてないけどまあ(済)でいいや
・悪形待ちのとき、リーチ時にスジ引っ掛けになってるときとそうでない場合に分けて集計してみる。これも簡単でしかも計算時間はそんなに増えそうにない。次回は確実にやる。あ、忘れてた。↓をやる上で不都合がなければ一緒にやる。
(最重要検討課題)
・リーチ時の他家の現物枚数別に集計してみる。今回はそのことは無条件なので、現物0枚から無理やり降りてるかわいそうな状況もあった。一般に降りる人は最低1枚、普通は2枚くらい現物がないとベタ降りにはいけないだろうから今回の上がり時ツモ率73%という低い結果にはならないであろう。これも多分そんなに難しくない。最重要。次回のメインはこれ。
・レポ1でやった机上計算との比較。まだあんまし考えてない。構想をぜんぜん練ってない。また今度。
レポート2「ベタ降りの挙動」その2
前回の「ベタ降りの挙動」プログラムをちょっと改良しました。

まず1点目として「3面以上の待ち」を追加しました。
私の実戦譜によると先制リーチの約9%が3面以上の待ちとけっこう大きく、無視できないだろうと思いました。ただ、3面以上の待ちといっても多種にわたる多面待ちを考えるわけにはいかないので、3面以上の待ちは全て基本3面待ち(つまり、待ち牌は同色の筋に当たる3牌で、待ち構成牌はその内側にある連続5枚)としました。

2点目は次の条件の追加です。
【リーチ時点の「山に残った待ち牌」及び「場に出てない待ち牌」を実戦と同程度とする。】
ただし、実戦の「山に残った待ち牌」及び「場に出てない待ち牌」はできすぎくんによる測定。また、集計の都合上先制リーチ順目は実戦に準拠してランダムにとり、そのときの待ち牌数の平均で考えます。(手持ち牌譜が貧弱なんでとてもじゃないけど順目別には考えられませんでした。ご了承を。)

修正前はこの両者が実戦よりかなり小さかったので、よりリーチ者に有利になるような修正を入れました。
これを満たすように試行錯誤した結果次のようになりました。

○三面以外の待ちの種類に対し、リーチ者はリーチ以前に待ち牌をツモらない。三面に対しても確率80%でツモらない(ツモりそうになったら山シャッフル。前回のシャボと単騎から全ての待ちに対象を拡大)
○以下の条件にひっかかった場合、その局は破棄してもう一度配牌からやり直す。
・待ちが三面及び両面のとき、リーチ時の「場に出てない待ち牌」が3枚以下
・待ちがカンチャンペンチャン数数シャボのとき、リーチ時の「場に出てない待ち牌」が2枚以下
・待ちが数字シャボ字字シャボのとき、リーチ時の「場に出てない待ち牌」が1枚以下、及び2枚のとき60%の確率
・待ちが数単騎のとき、リーチ時の「場に出てない待ち牌」が1枚以下
・待ちが字単騎のとき、リーチ時の「場に出てない待ち牌」が0枚以下及び1枚のとき20%の確率

まぁ、実際上の条件に引っかかるようなときには普通リーチとは行きにくいですからね。その意味から言ってもこの仮定はそこそこ妥当ではないかと考えます。

待ちごとに具体的に「~待ち牌」がどんな感じになってるかを示します(なお字字シャボの実戦は事情により集計できず)。
rep02-05.png
これくらい近ければ文句無いよね?

3点目は待ち別の集計方法の変更です。

10000回中で待ちをランダムに決めて、一括集計→待ちごとに10000回シミュして後から結果を結合
と変更。

待ち11区分それぞれに10000回なのでシミュ回数は11倍に。計算時間が大幅増だがその分納得いく結果になったからいいや。前回ペンチャンがやたら強かったのは確率上のぶれと分かったし。

後は細かいことを
・「順子無視牌効率」で暗刻や唯一の対子を切る確率を0→通常の1/10000に変更。手牌の全てが待ち構成牌だったり暗刻だったりして切る牌がなくなるのを防ぐため。(無限ループに突入してえらい目にあった。デバッグは難しい。)
・待ちが数単騎のとき、待ちに採用される確率を2378を基準として19の場合1.2倍、456の場合0.6倍とする。(数値は実戦に準拠。上の条件を整えてから走らせてみると数単騎の和了率がかわいそうなことになったのでちょっと救済。でも悪い条件ではないと思う。シャボに関しても同様のことをやってもよかったが数別の明らかな傾向が見えなかったのでとりあえず保留。)


さてと、改善点は全部挙げたから結果を書くべ。

↓10順目西家先制リーチ
rep02-06.png
前回から順子系の待ちの和了率が底上げされて、(少なくともあたしにとっては)納得できる結果になりました。基本的な傾向は前回と大体同じです。一人攻めのときと比べて和了率は両面60%(「科学する麻雀」より)から45%に、カンチャンで40%から27%~37%という感じの減少です。三面待ちと数字シャボ、数単騎が同程度の和了率です。両面+10%ということでけっこう上昇幅高いですね。カン28との差よりでかい。自分の中での3面待ちの評価が上がりました。降りてる人にとって降りきれる確率は2%超か。多いのか少ないのか・・・。「科学する麻雀」による放銃率だとスジ191枚分以下だが・・・。

↓5順目西家先制リーチ
rep02-07.png
10順目より和了率大幅UP!!一人攻めのときと比べても両面で10%減、カンチャンで同程度と。10順目よりも差が縮まる。字牌待ちとかはもはやもらったも同然ですな(笑)三面待ちより有利だし、ベタ降りなんか怖くないもん。

↓15順目西家先制リーチ
rep02-08.png
5順目のときと好対照な結果である意味うれしい。ほんとに5順目と真逆で特筆して書くことがない。


今回の教訓
・全員にベタ降りされると順目の効果がでかくなる。
・字牌待ちだとその傾向がより強い。順目経過で三面以上の価値から両面以下へと下がっていく。字牌待ちは早順に限る。

せっかくだからグラフも書いてみたいけど、ひとつの順目調べるのにもけっこう計算時間がかかるから今日はこの辺にしよう。まぁ、パラメータいじるだけだからすぐできるでしょ。
レポート2「ベタ降りの挙動」その1
先日凸さんと少し話しをしたのですが、どうも前回、前々回に書いたことはどうも壮大すぎた野望だった模様。「手近にあるものから手をつけたら?」とのアドバイスをいただき、目をつけたのは「ベタ降りの挙動」。要はベタ降り可能性とかをもうちょい突っ込んで考えることをやってみます。

難しい問題を除けば、下地が出来ていたので、多少強引な方法をとることで、ベタ降り者の挙動を見ることができるシミュレーションができました。

今回は初回版ということで、多少納得いかない結果も出てますが、ちょっとずつバージョンアップして現実に近い(適用可能なもの)に仕上げていきたいです。

シミュの大まかな仮定は次のとおり(詳しい仮定はこの記事の一番下に)

・リーチ者の位置及び先制リーチの順目を最初に固定しておく。(今回の場合、西家の10順目リーチ)
・麻雀を始める前にリーチ者の待ちを固定。(実戦に準拠。詳細は後で)
・多少補正を加え、配牌。(同上)
・リーチ前までは全員が「順子無視牌効率」に従い、打牌させる。
・リーチ後は、リーチ者はツモ牌が和了牌なら和了、そうでなければツモ切り。他家は最も安全な牌を切る。それが和了牌ならロン。
・この一連の麻雀1局分を10000回繰り返す。

まず、待ちを決めるために(母集団が少ないですが)実戦の待ち分布を使ったのでそれを載せておきます。

先制リーチ5404回のうち、
両面 3489 64.5%
カン28 236 4.4%
カン37 271 5.0%
カン456 225 4.2%
ペン37 236 4.4%
数数シャボ 355 6.6%
数字シャボ 239 4.4%
字字シャボ 29 0.5%
数単騎 174 3.2%
字単騎 150 2.8%

この確率に従い、待ちを決めました。

シミュレーション結果は以下のとおり
rep02-02.png

ぱっと見で字牌がらみの待ちの和了率の高さがうかがえます。両面を大きく上回っています。特に他家からのロンが他と比べて雲泥の差です。和了時ツモ率もすこぶる低い。守るほうからすれば字牌待ちって嫌ですね(笑)。(ただ字牌待ちの発生率が低いため、シナリオ発生回数が少なくどこまで信用できるかは?)

そしてカン2378とカン456の間に和了率で8%の差(ほぼ2/3)が出ています(主に他家からロンが少ないため)。今回はスジ引っ掛けとかの条件は特に加えてないので、カン456がスジになりにくい分、(両スジ456がスジ2378より先に切られるとはいえ)他家からはかなり出にくいということなんでしょう。

ちょっと不本意なのは、両面と数数シャボの和了率に大した差が出てないことです。ツモ上がり率に対して単純な枚数で2倍の差がある両面待ち、枚数同じのカンチャン待ちと数数シャボ待ちとの差がどっちも同程度の8%しかないのはちょっとあんまりです。そのせいで全体和了率で3%差しかないのはちょっと間違ってる雰囲気出まくってますわ。
多分原因は、下で書くようにシャボには補正を加えているが、両面にはノータッチだったためか。両面にもうまい補正を考えてあげる必要があるかな。

後、ペン37とカン37になぜか5%というでかい和了率の差が出てしまっている・・・。待ち構成牌が12か24かの違いしかないはずなんだが。シナリオ発生回数が共に500回弱と小さいためかなぁ。試行回数増やしても変わらなかったらマジで原因が分からん。

他に考えられる修正点、及び検討課題
・両面以外は生起確率が低いので、十分な数のシミュレーションがとれていない。待ちごとに別々に10000回シミュをして後からくっつけるほうが得策か。
・10順目西家リーチに限定せず他の順目とかでも同様にやる。これは簡単だが、計算時間がいっぱいかかるんだろうなぁ。
・悪形待ちのとき、リーチ時にスジ引っ掛けになってるときとそうでない場合に分けて集計してみる。これも簡単でしかも計算時間はそんなに増えそうにない。次回は確実にやる。
(最重要検討課題)
・リーチ時の他家の現物枚数別に集計してみる。今回はそのことは無条件なので、現物0枚から無理やり降りてるかわいそうな状況もあった。一般に降りる人は最低1枚、普通は2枚くらい現物がないとベタ降りにはいけないだろうから今回の上がり時ツモ率73%という低い結果にはならないであろう。これも多分そんなに難しくない。
・レポ1でやった机上計算との比較。まだあんまし考えてない。

ただ、両面とシャボの関係はしっかり吟味しないと後々響くからしっかりやっておかねば。


最後にこのシミュレーションの細かい仮定を書いておきます。シミュの仮定は重要ですが、条件の羅列になるのは目に見えてるので、「細かいことなんてどーでもええわ」っていう人がとばして読んでしまうのはまぁしかたがない。

○待ちの確定について
上に書いたような10区分の待ちについて、上で設定した確率分布に従いまず待ち区分をランダムに決める。その後、それぞれの待ち区分の中で等確率でランダムに具体的な待ちを決定する。(36m両面、1p2sシャボ待ちとか)

○配牌
基本的には4人に13枚ずつランダムに牌を配っていく。ただし、リーチ者に対しては先に待ちの構成牌を確定で配っておく(36m両面なら45m1枚づつ、1p2sシャボなら1p2s2枚づつとか)。さらに待ちがシャボ待ちor単騎待ちのときは待ちの性質上、待ち牌をリーチ前にツモってしまうと待ちになりえなくなってしまってまずいので、牌を配っていくときにリーチ者に待ち牌が配られてしまうときはその前に山をシャッフルしてしまう。これはリーチ前のツモについても同様。

○「順子無視牌効率」
リーチ前の打牌について。ツモ後の手牌14枚のそれぞれに対し、以下のような数字をつける。
・ツモ牌がすでに捨てられていたら無条件でツモ切り。
・その牌の種類に応じ、456→0.017、37→0.02、28→0.028、19→0.039、字牌→0.046(これらの数字はレポート1のとき定義した切りやすさ指数k_iである)。
・その牌がすでに捨てられていた場合、数字を5倍する(5に特に根拠はない)。
・その牌が対子のとき、ただひとつの対子なら0、2組あるうちのひとつなら1/12倍、3組以上あるうちのひとつなら1/4倍にする(1/12と1/4に特に根拠はない、唯一の頭を落とすことはほぼ無いからそのときは切る確率0とした)。
・その牌が暗刻のとき、0とする。(暗刻は無攻撃時にはまず切られない)
・その牌がカンツ(4枚使い)のとき1/4倍する。(4枚あるためトータルで単独牌と同じ扱い。鳴き(カン)を考えないため浮き牌扱いとした。)
・リーチ者の場合、その牌が待ち構成牌のとき0とする。(リーチ時に手牌に残すため必然)

これらの数字について重みをつけてランダムに打牌する牌を決め、捨てさせる。

○安全な牌の基準
リーチ者の現物(=リーチ者の捨て牌+リーチ後に切られた牌)のみを基準にする。現物→字牌スジ19456→スジ28→スジ37→片無筋→両無筋の優先順で切っていく。同ランクでは自分の手牌で暗刻→対子→単独牌の優先順とする。その他の要素(ノーチャンスワンチャンス、序順捨て牌の外側など)は勘案していない。


こうしたらもっとよくなるんちゃうん?みたいな提案大歓迎!!
プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード