*All archives* |  *Admin*

<<08  2015/09  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  10>>
鳳凰卓戦績メモ15/09
今月は9-14-12-18でぼこぼこにされました。
ちょうどきりよく1か月半で降段。

この1か月半の戦績は16-17-19-27。平均順位2.72、全79戦。
ラスを10回多く取ったら降段のゲームで、79戦しか持たなかったのか…。
弱いなー。

これからはちょうど区切りもついたし、三麻の世界に飛び込んでみようかなー。
私は全く研究してないので、リーチ判断も押し引き判断も全く持ってないのですが。
それに読みも重要そうな気がするから絶対四麻より難しい気がする。

ま、何事も挑戦です。最初のうちは打てば打つほどいい状況なので、数を打つことを目標にしましょう。
もちろん、四麻の研究もおろそかにはしません。
スポンサーサイト
先制副露聴牌の実測値とシミュレーション値の比較その2
手役を判定できる関数が作れたので、それを使って実測を取り直して、シミュレーションと数値を比べてみます。

例のごとく分量が多いのでテキストファイル化。
見るときは全部選択してエクセル等に貼り付けてみてください。
jissokuVSsimyu7.txt

(エクセルに貼り付けた時)A列~I列が実測値。K列~T列がシミュレーションです。

2~63行目が両面25,58で自分1副露~3副露まで変えた場合。
65行目以降はすべて自分は2副露に固定します。
65行目~147行目が両面系統。107~126行目が両面14,69の片上がり(シミュレーションではタンヤオの片上がり、実測もほぼタンヤオの片上がりだろうが、たまに19が高め三色や一通もあるかも。)
149行目~231行目がシャボ待ち。170~189行目が字牌シャボの片上がり(シミュレーションでは役牌片上がり、実測もほぼ役牌片上がりと思われる。)
233行目~315行目がカンチャンペンチャン待ち。
317行目~378行目が単騎待ち。

実測・シミュレーションともに特段の記述がなかったら手役確定であるものとします。
なお、筋待ち・残り枚数とかの分類はしないものとします。(副露聴牌については筋待ちでパラメータを特に分けるようにはしていない。)

シミュレーションの仮定は前回と同じとします。

この条件で比べると、良形は和了率やや高め、愚形は和了率やや低め、放銃率はかなり高め、不聴流局率が2~3%VS0%で違う、とけっこうずれています。

おそらく下のような事情でずれてくるのだろうなぁと思いました。

シミュレーションについて
・全ツ条件である
・変化を考慮してない
・他家リーチがあった時、常に非現物待ちとしている。
・回し打ちを考慮してない

多分、全ツ条件が一番大きく、次に愚形の和了率の低さから変化が考慮されてないことも結構大きそう。
3番目はまだしも4番目はシミュレーションではどうしようもないので、ここは保留にして、1番目と2番目だけを考えます。

シミュレーションの仮定を次のように変えてやり直してみます。
・放銃率が13%以上の牌(中盤以降の無筋456)を引いたら降りに回る。
・降りに回ったときの現物数は2個。
・愚形は変化を考慮する。

愚形の変化については単純に次のようにします。
・変化した時は常に両面25,58待ちとする。
・シャボ(タンヤオ牌含み)は両面変化2種
・カン28、カン37は両面変化1種
・カン46、カン5は両面変化2種
・単騎については(字牌への待ち変えとか亜両面変化とか暗刻くっつきの多面待ち変化とか)難しいので省略

これでシミュレーションをやり直した結果がV列~AE列です。

結果を比べてみると、全体的にシミュレーションの方が和了率が低いか放銃率が高いかのどちらか(もしくは両方)になってるところが多いです。あんまり芳しくないです。
不聴流局率は割と似通ってるので、たぶんベタ降りに回るタイミング自体は平均的に13%以下押しのラインでそこまで問題はなさそうな気がします。(もちろん自分の待ちと打点次第のところが大きいでしょうが。)

となると、上の方で述べた問題点の3番目4番目はしょうがないとして、他に考えられるのは他家の攻撃を強めに見積もってる可能性くらいか。
実際にパラメータ表を眺めると、リーチ発生率、ダマ和了率、チーポン発生率はリーチ者の有無だけを見ていて副露者については何の考慮もしてません。
鳳凰卓ならば副露に対して(特に染めとか高打点濃厚とか)それなりに対応して手を曲げる可能性はありえそうなので、ここは一考の余地ありです。

ここまではシミュレーション側の問題点で、これからパラメータの取得とシミュレーションの変更をやるものとして、
ここからは実測値の数値を(シミュレーションの数値も)見て感想を述べていきたいと思います。
(実測を取ったプログラムが間違ってなければ、の話ですが。(若干問題がありそうな)シミュレーションと比較して大差ということはないので、重大なバグはなさそう。)

・違う副露数で比べると副露数が1増えると和了率は2~3%下がる。和了時ツモ割合も増える。他家からの警戒が増えるので当然ですね。

・両面14,69の片上がりの和了率はカン46には劣るが、カン5と同等くらい。フリテンの可能性があるデメリットは思ったほど大きくないのかもしれない。よく序盤なら46は出ないし、フリテンの可能性が大きいので鳴いて聴牌よりスルーの方がいいとは言われるが、むしろ和了率は中盤よりも片上がり14,69寄り。理由は不明。

・シャボ(字牌含み)役確定の和了率は両面より明確に低く、どちらかというと愚形に近い。パラメータ表でもリーチロンの時は両面<字牌シャボだが、副露ロンだと両面>字牌シャボと逆転している。ツモに関しても枚数の分当然不利なので、この結果には納得。副露なら待ちが真ん中寄りだろうが、他家に取っていらなければそのまま出るし、字牌が持ち持ちだと出てくることはほぼあり得ない。相対的にリーチ字牌待ちは警戒されても出してくれやすい牌になり、副露字牌待ちは警戒とかあまり関係ないので、ほぼ枚数勝負で数牌愚形と似たり寄ったりになってしまう(それでも他家にとってはいらなくなる可能性が高いのでまだ和了率は上だが)。字牌単騎も同じような傾向です。

・シャボ(字牌含み)片上がりは輪をかけてひどい。ふつうのカン5待ちとかより明確に劣る。やはり上がり牌が最大2枚しかないのはかなり大きいみたい。今までは役牌バックを好き好んでやってたけど、ちょっと認識を改める必要がありそう。今回は取ってないが役牌1枚切れだともっと死にそう。ただし、放銃率はカン5とかとほぼ同等で、不聴流局率はかなり高いところから見ると、従来言われてるような「バックは守備に優れた仕掛け」というのはうなずける。

・実はシャボ(19含み)は中盤以降、役確定の字牌シャボより和了率が上。これは新事実ではないだろうか。副露ロン率のパラメータを見ても中盤以降は19シャボは字牌より出やすい。鳴いた以上高打点になる可能性がある役牌は警戒されやすいということだろうか。

・カン37とカン46は上がり率的に大差ない。直接の出はカン37の方がいいが、カン46は両面変化が多いので結果として同じような和了率になるみたい。上がりから遠いほど変化優先の原則に従うなら聴牌時点でも同等なら一向聴以上なら変化優先でカン46の塔子を優先することになるのだろうか?ただ直接チーできる受けのことも考えれば一向聴以上でも両者は同等になる気がしないでもない。

・シミュレーションではのみ手でやっているが、カン46(orカン37)とカン5だと和了率はカン46有利なものの、赤5の高打点の影響もある。きわめて微妙だが、局期待値的にはカン46の方が有利なように見える。リャンカン246からの待ち選択なら赤5と7引き両面狙いの5待ちよりも3待ちの方が無難か。効果は薄そうだけど筋に引っかかる効果もあるし。

・今回シミュレーションと実測が大差になったのはタンヤオ牌単騎だが、これは待ち変えされることが多いためと思われる。

今日のところはこんなところか。
先制副露聴牌の実測値とシミュレーション値の比較その1
実測との比較の続き。
自分は副露聴牌で、他3人が非リーチ面前の場合。

この場合は手替わりとか聴牌崩しとかの話題もあるけれど、今回は一番簡単な方式で実測値を取ってみます。

実測の集計法
・自分の副露数別で集計する。筋待ちとかは考慮しない。他3人が非リーチ面前のケースのみカウントする。
・副露聴牌者が牌を捨てたところで、他3人が非リーチ面前ならば総数にカウントする。
・総数にカウントが入った時、局結果によりツモ和了~不聴流局の各ケースにカウントする。
・手替わりや聴牌崩しが入った時も特別な処理は行わない。手替わりの場合は手替わった時点で他3人が非リーチ面前なら新しい待ちでカウントを行う。
・ここでの「巡目」は先制者が牌を切った時、+1するものとする。
・役の有無は考慮しない。

上の説明じゃ多分何やってるかよくわからないので、具体的なケースでみてみると、

「6巡目先制カン28聴牌、7巡目ツモ切り、8巡目手替わりで両面25,58待ち、10巡目が回ってくる前に他家にリーチが入る、11巡目にリーチ者からロン和了」の場合だと、
6巡目と7巡目のカン28の総数とロン和了回数に+1、8巡目と9巡目の両面25,58の総数とロン和了回数に+1、10巡目11巡目は「
先制」の状態でないので+1カウントしない。

「6巡目に両面25,58聴牌、10巡目の前に他家から鳴きが入る、13巡目に聴牌を崩した、そのまま流局」の場合だと
6~9巡目の両面25,58の総数と不聴流局回数に+1、10巡目以降は「先制」でないのでカウントしない。

といった具合です。
リーチの時はリーチをかけた時点(巡目)で1回だけ+1カウントしましたが、今回の副露聴牌では先制の状態である限り、複数回カウントされることがあります。

手役の有無については明日以降やるものとして、とりあえず暫定版をシミュレーションと比較してみます。

シミュレーションの仮定
・自分南家副露聴牌、他3人非リーチ面前
・他家の攻撃に対して全ツするものとする。
150928-01.png
左側が実測、右側がシミュレーションです。

1副露とか2副露だと全ツする仮定が、実際とは異なる(聴牌を崩されることがある)ので、和了率がやや高め、放銃率やや高めになってます。
なお、実測だと聴牌を崩されて流局する確率は2~4%くらいになってます。(シミュレーションでは全ツなので0。)
放銃率はかなり違いますが、和了率の違いはそこまで気にならないくらい。この程度かなぁという印象。

3副露だと実測側も降りる余地が少なくなるので、和了率はかなり近いものになります。放銃率やや高め、不聴流局率が1%~2%くらいあるのは同じような感じですが。

両面25,58だと役なしのケースが少ないので、そこそこ合ってくれてますが、
両面14,69にすると片上がりのケースも含まれるため、かなり和了率に差が生じてます。これは実測側の問題でしょう。


となると、やはり次にやるのは役の有無の判定。
判定すべき手役をメモっておきます。(カッコ内は上位互換の手役なので判定する必要なし)
・タンヤオ→簡単
・役牌(小三元、大三元、四喜和)→やや簡単
・三色同順→難しい
・一気通貫→難しい
・チャンタ(純チャン、混老頭、清老頭)→難しい
・三色同刻→普通
・三槓子(四槓子)→普通
・トイトイ→作成済み
・ホンイツ(清一色、字一色、緑一色)→作成済み
・鳴き三暗刻(非トイトイ)→ツモ専を特別扱いするのは面倒なので無視

最難関の平和をやらなくていいのは気が楽だけど、三色一通チャンタとかすごく難しそうなんですけど。
手役判定を毎順やらないといけないので、プログラムの負荷も半端なさそう。
でも、避けては通れないよなあ。
シミュレーションの概要(再掲)
点棒状況と残り局数から最終順位を求めるプログラムについて、前にその概要(前段階の局収支の算出部分も含めて)を文章でまとめていたので、再掲しておきます。
局収支シミュレーションの概要

↑のテキストファイルの433行目から460行目が最終順位を求めるプログラム部分になります。

簡単に手法を説明すると、


各種パラメータ(上がり率、打点、…etc)に従って乱数により、
残りの局数の回数(連荘も考慮に入れて)だけ
上がり者・放銃者・被ツモ者を決定し、
上がり者の持ち点を増やして、放銃者・被ツモ者の持ち点を減らして、…etc
の処理を行い、
半荘終了時のそれぞれの持ち点から各順位の結果を出力する

、という処理をシミュレーション回数(デフォルト値10000回)繰り返す。

という感じです。いわゆるモンテカルロシミュレーションです。

これで説明になってるかはよくわからないですが。

シミュレータ本体とパラメータの数値(パラメータ表)はhttp://epsilon69399.blog20.fc2.com/blog-entry-457.htmlからどうぞ。
対1軒追っかけの横移動の詳細その3+実測値とシミュレーション値のまとめ
昨日、いろいろいじってて、ふと気づいた。
ノーテン者から他家リーチ者へのロン率がおかしいのを修正してなかった。
あと、他家ノーテン者の副露数による横移動率への影響も入れてなかった。

この二つを修正。
150926-01.png
↑は不聴者から他家リーチ者へのロン率(巡目別のみ)
従前のパラメータは↓の記事を参照のこと。
鳳凰卓の基礎パラメータその4
カウントするタイミングが打牌の直前だったところが、打牌して副露聴牌判定やらリーチ発生処理やらが終わった後のタイミングに変えた影響でロン和了率は少し下がってる。

これでシミュレーションの横移動の詳細を見てみる。
150926-02.png
ダマ→リーチへの横移動が実測とかなり近いものになってくれた。これで一安心。

横移動関連のパラメータを変えたので、もう一回先制リーチからシミュレーションを取り直した。
↓のテキストファイルの通り。
jissokuVSsimyu4.txt
横移動率が微妙に下がった、と思う。大勢にはそこまで影響はないです。

次に対1軒リーチに対する追っかけリーチの実測とシミュレーションの比較。
↓のテキストファイルの通り。
jissokuVSsimyu5.txt
横移動率がかなり実測に近づいた。
全体的にサンプル数が減ったので、場所によっては違う待ちでも和了率が近そうな待ちと合算してるところもあります。
2%誤差だとちょっと厳しいけど、5%誤差なら対1軒でも悪くない結果。

次に対2軒リーチに対する追っかけリーチの実測とシミュレーションの比較。
↓のテキストファイルの通り。
jissokuVSsimyu6.txt
サンプル数が激減するので、分類は三面、両面、字牌・筋、愚形無筋の4種類のみ。

先制や対1軒追っかけの時と比べて合ってる具合はちょっと悪い。
サンプル数少なくて実測のばらつきが激しい点、
シミュレーション側は待ちを詳しく特定しておく必要があるので、合算したものと微妙にずれがちな点(字牌・筋はカン28筋待ち、愚形無筋はカン37片無筋待ちとみなしてシミュレーションした。)、
対3軒リーチのパラメータは出してない(対2軒と同じ扱い)なので、残ってる非リーチ面前者のふるまいが微妙に対2軒とは異なること、
などが原因かなぁ。

そこまであからさまにおかしいということはなさそうなので、まぁいいのですが。

次にやるのは自手副露聴牌の時、なのですが難儀な論点が複数あってどうしたもんかと思ってます。
・副露数によって出上がり率が異なる。(シミュレーションで反映はできてる。)たぶん、副露数は分けないといけないでしょう。
すると、サンプル数が足りるかどうか不安。
・手替わりが発生した時をどうカウントするか。
・途中でリーチ等がかかって聴牌を崩した時をどうカウントするか。

いまいちよくわからないので、とりあえずてきとうに実測取ってみて、シミュレーション回して、比較してから考えましょうか。
対1軒追っかけの横移動の詳細その2
昨日からいろいろ調べてみた成果。

まずはダマ者がリーチをかける確率について二人以上の場合を分けて集計してみました。
150925-01.png
二人以上リーチだと三人目リーチがかかる確率は減っているが、その減り具合は劇的とは言えない。2,3割減といったところか。

そこのところをシミュレーションに加味して、再度横移動の詳細を取ってみる。
150925-02.png
まずは先制リーチからの経過巡目1でやってみたところ(上2つ)、
まだシミュレーションの方がリーチ→リーチへの横移動が過大で、リーチ人数も多かった。

リーチ発生率の素データをみると二人以上リーチの場合、経過巡目2~4くらいが最頻値になってたので、
シミュレーションの仮定を経過巡目2に変えてやり直してみた(下2つ)。
すると、リーチ→リーチ横移動とリーチ人数がほぼ実測と合った。こちらの仮定の方がいいみたいです。

ただ、依然としてダマ→リーチ横移動が過大なまま。
ここに関連するパラメータは二人以上リーチロン率補正の0.68倍という数値しかない。
後は大元のノーテン者からのリーチロン率の数値くらい。

リーチロン率補正についてノーテン者の副露数別で取ってみた。
150925-03.png
0副露で0.67倍なので従前と大差はない。
リーチの良形率を調べても一人時も二人時もそこまで大差はなかった。
うーん。わからん。

さっきの横移動の詳細のダマ→リーチのところを巡目別で見ると、早い巡目ほど差異が大きく、遅い巡目ならそこまで差は出てない。
となれば、巡目の問題だろうか?今の二人以上リーチロン率補正だと巡目関係なしの数値にしてるので。
これから取ってみます。
対1軒追っかけの横移動の詳細
対1軒リーチの追っかけの場合で、横移動がシミュレーションの方が2~3%高く出ている問題について。

上がり者と放銃者の状態(リーチorダマor副露)と横移動発生時のリーチ者の人数をシミュレーションと実測の両方で調べてみました。
150924-01.png
4列目から12列目までが上がり者と放銃者の状態。
両面25,58のケースで見ると、一番影響がでかいのがダマ者からリーチ者への横移動とリーチ者からリーチ者への横移動。
この部分でシミュレーションと実測の横移動率に差が出ているんだと思います。
ダマ者と副露者の和了はそこまで影響は大きくない。

初期状態非リーチ面前者から初期状態先行リーチ者への横移動については、
二人以上リーチのリーチロン率の補正はすでに考えています。(通常時の0.68倍)

まだ考えてない要素でありそうなのが、非リーチ面前者が新たにリーチをかける確率。
今のところは巡目別・親子別・先制リーチからの経過巡目だけで二人以上リーチのケースを分けてません。
その部分が影響してシミュレーションは非リーチ面前者が過大に攻めているのではないかと。

実際、横移動発生時のリーチ者の人数は初期状態で二人のところ、シミュレーションが2.3人、実測が2.2人と差がついています。(ここでは、リーチ宣言時にリーチが成立していて、リーチ者の人数に含まれるとしている。)
実際はシミュレーションより3分の2くらいリーチが発生しにくいのかと。

とりあえずリーチ発生率について二人以上時を分けて調べてみましょうか。
対1軒追っかけの実測とシミュレーションの比較(初回版)
先制リーチの比較が終わったので、次に手を付けるのは対1軒(他二人は面前不動)の追っかけリーチの挙動。

実測の集計法
・追っかけリーチが成立していることを条件にする。(宣言牌がリーチ者などに当たった場合は除外する。)

シミュレーションの仮定
・自分南家で追っかけリーチ。北家が先制リーチ者。西家は0副露非リーチで、先制リーチに対して現物を1枚、東家は0副露非リーチで、無筋を1枚切ってるものとする。
・初手に切る牌は完全安牌とする。(リーチにもダマにも当たらない。)
・先制リーチからの経過巡目を1とする。(北家の一発順が終わった後のタイミング)

前までと同じで左側が実測、右側がシミュレーション。
150923-01.png
150923-02.png
これでいくつかとってみると、
和了率から被ツモ率まではだいたい合ってる。(誤差の範囲として見逃してほしいレベル。)

ただ、横移動率だけは一律でシミュレーションの方が高めの数値が出ていて、ちょっと見逃せないレベル。
横移動率が違うのに合わせて流局率も低めの数値が出ている。

先制の時と同じように横移動時の詳細を調べてみてから考えてみた方がいいけれど、
今のところ思い当たるのは次のようなところか。

・二人以上リーチによる補正を自分と他家のリーチロン率にのみ適用しているのが現状。
・ダマ和了率とリーチ発生率については二人以上リーチによる補正をかけてない(リーチ者が一人以上か0人かの判断のみ)なので、その部分で実測と齟齬が出ている?

とりあえずいろいろ調べてみましょう。
点棒状況の計算例
新しくcritterさんが点棒状況から最終順位を計算ツールを公開されているらしいです。
http://critter.sakura.ne.jp/jun_keisan.html
そのことについて、みーにんさんがご自身のツールとの比較をしていらっしゃいます。
https://twitter.com/Mark_of_Mind/status/646212311988867073

私も同じように計算できるツールを持っている(すでに公開している局期待値等のシミュレータと同一のもの)ので、せっかくなので私の分でも出してみて比較してみましょう。

半荘収支についてはオカ20000点、ウマ10-30、段位ptについては特上六段とします。
150922-01.png

誰のデータが合ってるかとか間違ってるかとかいう議論はここではしません。
他家面前不動(先制)リーチの実測値とシミュレーションの比較その3
以下のような修正を加えたうえで、再度実測とシミュレーションの比較を再度やります。
・ツモ率の枚数補正について、同巡目で比較するよう修正。
・リーチロン率の枚数補正について、筋待ち片無筋待ち両無筋待ちを分ける。
・ポンチー時の聴牌率のパラメータを追加。
・リーチロン率のパラメータにバグがあったので、修正したうえで数値差し替え。
・リーチロン率に他家副露数による補正を加える。

前と同じでテキストファイル形式で。
左側が実測、右側がシミュレーション。
jissokuVSsimyu3.txt

前回と比べて、上がり率はかなり合ってる部分が多いです。
「科学する麻雀」の101ページにのってる「期待値指標」(和了率-放銃率-被ツモ率÷3)の差に着目してみます。

載せてる待ちの種類は34種類でそれが18巡分で612個のデータがあります。
このうち実測のサンプル数が1000以上あるのは194個、サンプル数400以上あるのは293個です。

サンプル数1000だと実測値の標準偏差は(上がり率が50%とすると、)0.5*0.5/1000の平方根で1.5%くらい、
サンプル数400だと2.5%くらいになります。
2σをとるとだいたい和了率などの数値は実測値の誤差だけで3%~5%あることに留意しておきます。

サンプル数1000以上の194個のうち期待値指標の差が2%以下に収まってるのが135個(全体の70%)、5%以下に収まってるのが184個(全体の95%)
サンプル数400以上の293個のうち期待値指標の差が2%以下に収まってるのが170個(全体の58%)、5%以下に収まってるのが264個(全体の90%)

これらから、期待値指標を目安とするならば、シミュレーションの結果は5%の誤差でかなり信用できる(確度90%~95%)、
また2%の誤差はそれなりに例外も多いが、まったく無意味ということはなさそう(確度58%~70%)、
という感じの結論になりそうです。(最後だけ超なげやり。)


期待値指標についてはかなり合っていていいのですが、和了時ツモ割合がシミュレーションの方がやや高めの数値が出ているのが若干気がかりです。(場所によっては5%くらい実測と違うところも。)
ここは局期待値の議論をするときに、和了時の打点にかかわってくる(ツモ割合が多いほど面前ツモの1ハン分高くなりやすい。)のでちょっと問題です。

ちょっと計算して見積もってみましょう。
3ハンくらいの手ならツモったときはロンの時より3000点くらいUPになる。
ツモ割合が5%違うと和了時得点は150点違うことになる。
和了率の値が60%なら局期待値が90点違うことになる。
…ツモ割合の影響だけでこのくらいだから結構大きいですね。局期待値誤差500点まで許容できるならこのくらいはなんとかなりますが、これより縮めるとけっこうきついですね。


とりあえず今のところはスルーしておきます。劇的な改善案はもう残ってないので。

次は追いかけリーチの実測とシミュレーションの比較をやります。

プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード