*All archives* |  *Admin*

<<11  2015/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>>
15年12月の三麻成績
60戦で23-21-16。

やや勝ち越しして五段に上がれた。

ここ何日か負けが込んでて勝ち越してる気分ではないけれど。
スポンサーサイト
シミュレータに使ってるパラメータ種類
パラメータの表について、まだ目次化してまとめてなかった(いつも目当ての数値を探す時はマウスのホイールをくるくる回しながらやってた。)
さすがにもうそろそろまとめといた方がいいだろうと思ったから、さっきささっとやっておいた。

現在使ってるパラメータの種類

'順目別カテゴリ別ツモ率
'順目別カテゴリ別放銃率
'順目別カテゴリ別対副露ツモ率
'順目別カテゴリ別対副露放銃率
'順目別カテゴリ別対染め副露ツモ率
'順目別カテゴリ別対染め副露ロン率[余りなし]
'順目別カテゴリ別対染め副露ロン率[余りあり]
'ベタ降り時順目別放銃率
'リーチ1順当たりツモ率 ノーテン者1順当たり放銃率
'副露者、他家リーチへ放銃しやすさ
'ダマ和了率放銃率
ダマ和了率補正(副露数)
'副露の聴牌率
'手出し時聴牌率
'手出し率
'染め副露聴牌率
'副露ツモ率
'ノーテン者、他家副露へ1順当たり放銃率
'ノーテン者、他家ドラポンへ放銃しやすさ係数
'染め副露ツモ率
'染め副露ロン率
'リーチ発生率
'リーチ発生率補正(副露数)
'チー発生率
'ポン発生率
'チー発生率補正(副露数)
'ポン発生率補正(副露数)
'副露聴牌者聴牌崩し率
'副露数聴牌崩し係数
'親子別聴牌崩し係数
'役数別聴牌崩し係数
'聴牌復帰率(ツモ)
'聴牌復帰率(チー)
'聴牌復帰率(ポン)
'聴牌復帰時待ち
'他家聴牌復帰係数
'染め時チー発生率
'染め時ポン発生率
'副露初期聴牌率2
'ポンテンチーテン率
'副露ノーテン者聴牌化確率(リーチ者なし)
'副露ノーテン者聴牌化確率(リーチ者あり)
'副露ノーテン者聴牌化係数
'ノーテン者切る牌
'ツモ和了点
'ロン和了点
被ツモ失点
'裏ドラ率
'他家赤ドラ率
'他家赤ドラ率2
'次局以降赤ドラ率
'他家一発率
'自分聴牌時1順当たりツモ率
'自分立直の1順当たりロン率
自分副露の1順当たりロン率
'自分現物待ちの1順当たりロン率
'自分枚数別ツモりやすさ係数
'自分枚数別リーチ出やすさ係数
'自分枚数別副露出やすさ係数
'自分副露のロンしやすさ係数(副露数別)
'自分現物待ちのロンしやすさ係数(副露数別)
'他家副露のロンしやすさ係数(副露数別)
'自分枚数別現物待ち出やすさ係数
'自分ドラ待ちのツモりにくさ係数
'自分ドラ待ちの出にくさ係数
'自分赤ドラ待ちの出にくさ係数
'ドラ待ち和了時ドラで上がれる率
'赤ドラ率
'自分染め副露聴牌の出にくさ係数
'手持ち牌別ツモる確率
'染め時余りなし→あり遷移率
'自分チートイの1順当たりツモ率
'自分チートイのドラツモりにくさ係数
'自分チートイのロンor出る率
'自分チートイの手替わりツモ率
'自分チートイのドラ出にくさ係数
'自分チートイの筋出やすさ係数
'自分チートイの手替わり時、筋率
放銃失点
被ツモ失点
自分チートイ時待ちの筋牌をツモる確率
'自分チートイの筋の出る率
'チートイの裏ドラ率
'初期現物数
'現物増える数(聴牌者から)
'現物増える数(ノーテン者から)
'現物増える数(降り者から)
'現物以外で安全な牌
'ハン数符数分布
'赤一発裏なしハン数符数分布
'次局以降上がり方
'次局以降上がり種
'次局以降被和了時リーチ率
'次局以降流局時聴牌率
'二人以上リーチ時、放銃しやすさ係数
'タンヤオ役牌時高め安め率
'副露聴牌者からリーチへ放銃しやすさ係数
'副露聴牌手替わり率(リーチ者なし)
'副露聴牌手替わり時待ち割合(リーチ者なし)
'副露聴牌手替わり率(リーチ者あり)
'副露聴牌手替わり補正(リーチ者あり)
'順目別カテゴリ別対染め副露聴牌ロン率
'染め副露聴牌1順当たりツモ率
'ノーテン者、他家染め聴牌副露へ1順当たり放銃率
'染め不聴時チー発生率
'染め不聴時ポン発生率
'染め副露初期聴牌率
'染め副露ポンテンチーテン率
'染め副露ノーテン者聴牌化確率(リーチ者なし)
'染め副露ノーテン者聴牌化確率(リーチ者あり)
'染め副露ノーテン者聴牌化係数
'染め副露ノーテン者切る牌
'自手染め副露不聴者からロン率
'自手染め副露聴牌者からロン係数
'自手染め副露不聴者からロン係数
'ドラポン者聴牌率
'不聴者からドラポンへ出る率
'不聴者からドラポンへ出やすさ係数
'聴牌者からドラポンへ出やすさ係数
'順目別カテゴリ別対喰いタンツモ率
'順目別カテゴリ別対喰いタン放銃率
'喰いタンドラなしハン数符数分布
'喰いタン和了者ドラ枚数
'喰いタン和了者赤ドラ枚数
'喰いタンチー時タンヤオ崩れ率
'喰いタンポン時タンヤオ崩れ率
'喰いタンチー時ドラ含み数
'喰いタンポン時ドラ含み数
'順位残り局数別平均ハン数
'オーラスラス目子上がり方
'オーラスラス目子上がり時逆転率
'オーラスラス目子上がり時打点分布
'ラス目和了率
'ラス目子上がり種

今のところ134種類。(いくつか使ってないのもあるけど。)
大分増えたなー。


さて、次は何をしようか。実測とシミュレーションの比較シリーズは終わったから、いよいよ各種押し引き判断(先制リーチ判断、押し引き、面前一向聴VS鳴き聴牌比較)をやっていく時間かなー。
半荘収支・平均順位・段位ptの実測とシミュレーションの比較その3
オーラス以外のラス目の和了率と打点を変えたので、比較作業をやり直してみます。

齟齬が大きいラス目のケースをやってみます。
151229-03.png
比較対象になる前回の結果(平均順位)が右端の列に置いていて、
それ以外は前回までと同じ形式です。(誤差を載せ忘れていますが。)

途中までやっていて、前回の結果とほとんど変わらないか、むしろ(実測との誤差が)悪化しているまである。

今回の修正部分はそこまで大きくないと踏んでいたので、この結果はしょうがないか。

うーん。断ラスについてまだ何かを見落としているのか。打点面と和了率面で考慮できることは全部やったつもりなのだが…。

今のところは次局以降部分で平均順位換算で0.05くらい誤差があります、というところでこのまま寝かしておこうか。
点棒状況にまつわる追加パラメータその2
自分断ラスのときに平均順位がまだ合わないので、パラメータを変更して再修正を試みます。

一つ目。残り局数・3位との点差別、ラス目子の和了時の上がりの種類(リーチor染め副露or副露orダマ)
151229-01.png
オーラスでなくても、3位との点差が開くほど、高打点になりやすいリーチの割合が増えて、低打点になりやすい通常副露の割合が減ります。
なので、最終的な和了時打点も上がるのかなーと。

二つ目。残り局数・3位との点差・親の順位別、ラス目子の和了率。
151229-02.png
一つ目で見たように点差の離れたラス目は高打点のリーチを狙うので、和了率が下がる傾向にあります。


一つ目の方はシミュレーションに反映させるのはそんなに難しくない。
問題は二つ目。点差が少ない時はラス目の和了率を現状から上方修正、多い時は下方修正になるのですが、
補正した分を他家和了率と流局率に割り振って全体の発生率を100%にしないといけない。
どう割り振るか。前のオーラスの上がり方分布を見る限り、ラス目の和了率の低下分の半分くらい流局率が上昇したので、
オーラス以外でも半分を流局率に、半分を他家和了率に割り振ればいいかな。(このへんはてきとう。どうせオーラス以外はそこまで大きな補正値ではないし。)

シミュレーションに反映させるのはいいのですが、新しい要素を入れるたびに無駄にコードが長くなって、中身がブサイクになっていく気がする。シミュレーションにかかる時間もちょっと長くなりそうだし。まぁこれはしょうがないか。
半荘収支・平均順位・段位ptの実測とシミュレーションの比較その2
点棒状況判断に、残り局数と現在順位別で打点に補正をかけるのとオーラスラス目の子がラス確和了を避けるのを組み込み終えた。
これで再度、シミュレーションを回して実測との比較をします。
151228-01.png
ファイルのサイズ・画面の大きさがえらいことになってたので、今回はサムネイル表示にしてみた。
表の見方・前提条件は前回の記事(半荘収支・段位ptの実測とシミュレーションの比較平均順位の実測とシミュレーションの比較)を参照のこと。形式は前回と全く同じです。

前よりは誤差が小さくなっててカラーで塗ったところがやや増えています。
まだ誤差がでかいところ(平均順位誤差0.05より大)は次のところです。

・オーラス→これはもうしょうがないです。他家との実際の点差や位置関係などの影響をもろに受けて歪みが大きい。
・2着目残り局数2で点棒が多い状況→トップと僅差で、3着目ラス目と大差の状況(ラスの心配がほぼない)なので、実際には2着目が通常よりもトップ狙いにくる。(安手上がりをあまりしない。)反対にシミュレーションでは2確和了をかなりの頻度でやってしまう。ここら辺の齟齬が誤差の数値に表れてる。条件的に特殊なのでここもしょうがないかな。
・残り局数6・5・3・2の断ラス→東1で南家という仮定なので、親番が少ないから?実際に半荘開始時の席を変えると↓のように平均順位で0.05の差がつくことはよくあることです。それでもまだシミュレーション側の方が悪く見積もってるということですが。となると、オーラス以外でも高打点で逆転を狙いに行くという傾向を踏まえた方がいいのか。一応、ラス目の上がり時ハン数が大きくなる補正は織り込んでいるけれど、それではおそらく足りてないと。「断ラス」(例えば3位と8000点以上差)だけ条件を変えて各パラメータを再集計してみるとか。結構難しそうだけど。
151228-02.png

現状微妙に問題はありそうだけども、そこ以外は誤差的に問題なさそうなので、誤差が一定以下の部分のところをカウントしていきます。(オーラスだけは除外する。)
151228-03.png
半荘収支だと3以下が全体の99%。2以下でも87%なので、大体誤差が2程度に収まると言ってもいいかな?
平均順位だとラス目の部分が合わないのが響いてて、誤差0.05以下になるのが全体の89%。もうちょっとなんとかならんか…。ラス目時を除くと0.05以下が全体の97%でかなりいいんだけど、ラス目だけ外すわけにもいかないし。
段位ptだとこれもラス目の部分の影響で誤差3以下が全体の83%。これもなんとかならんもんか。

次局以降の部分だけでもこれだけの誤差が出るので、実際は局収支部分(現局部分)の誤差もプラスされます。局収支の誤差が500点とすると今回の1000点刻みの数値から考えると1000点の半分で平均順位で0.03程度にはなってきそう。すると単純計算で全体で誤差0.08は見ないといけないということになってきそうです。
これはきついな…。両面のリーチ判断くらい大差がつく局面ならこれでもいいだろうけれど、押し引きとかだと0.08はちょっと広すぎない?と感じてしまう今日この頃。
半荘収支と段位ptの実測とシミュレーションの比較
リクエストがあったので、半荘収支と段位ptの実測とシミュレーションの比較を載せておきます。
(シミュレーションの方は打点関連とラス確和了関連を変えるつもりなので、数値はすぐに更新されるでしょうけど。)
151226-04.png
9列目~11列目が実測の半荘収支、平均順位、段位ptです。
半荘収支は25000点持ち30000点返しのウマ10-30、段位ptは鳳凰卓七段配分とします。

13列目~15列目がシミュレーションの半荘収支、平均順位、段位ptです。

17列目~19列目が実測からシミュレーションの半荘収支、平均順位、段位ptを引いたものです。
半荘収支は-3~3の間を赤色に、
平均順位は-0.05~0.05の間をオレンジ色に、
段位ptは-3~3の間を黄緑色にそれぞれ塗っておきました。

色分けの基準の決め方はてきとう。半荘収支は3では広すぎるかもしれない。

やっぱりオーラスと自分ラス目のケースが大分ずれてます。
ここら辺の差異が次の更新で治ればいいなぁ。
点棒状況にまつわる追加パラメータ
次局以降の順位別の打点関連とラス確和了関連のデータを取っていこうと思います。

一つ目は残り局数と順位別の上がり時平均ハン数です。
なお、役満は一律13ハン扱いにしてます。
151226-01.png
勝ってる時ほど上がりハン数は低く、特にオーラスではその傾向が顕著であると。

現状、ハン数符数分布は親子別・ツモロン別・上がり種別(リーチor染め副露or副露orダマ)のみの分類でしたが、そこに今回の平均ハン数の分を補正する感覚でやっていきます。
例えば残り2局親トップ目でトップ目の通常副露和了の場合、平均1.95ハンで、平均値の2.05ハンより0.1ハン低いので、実際に点棒のやり取りをする前に10%の確率で1ハン下げるみたいな処理のイメージです。

これで一般の点棒状況別の打点関連はいいとしましょう。

二つ目はオーラスで子がラス目の時に誰が誰から上がるかの確率です。3着目とラス目の点差別・親の順位別で分けます。
151226-02.png
ラス目が満貫条件で3着をまくれる場合(7000点~8000点差)だとラス目の和了率は大体15%です。
上がり3着(0点~1000点)だとラス目の和了率は25%~26%です。けっこう高いですね。最速和了狙いだと和了率が25%くらいになると。
3着とラスの点差が離れるほど、ラス目が大物手狙いでほとんど上がりにかけなくなる分、流局率がかなり上がります。

三つめはオーラスラス目の子が上がった時に実際に順位が3位以上になった(まくった)確率です。局開始時の3着目とラス目の点差で分けます。
厳密に半荘終了処理のところでなく、上がり時の局終了処理のところで見ているので、サドンデスで西入した場合は最終順位と異なる場合があります。
151226-03.png
最初の列がラス目が上がったという条件付きでの逆転率。
8000点差で76%、12000点差で59%という確率なので、ラス目からツモとかロンとか言われた瞬間かなりの確率で逆転手になっているということですね。
(なお、1000点未満差なのに上がっても逆転できてないケースがわずかながらありますが、おそらくダブロンの影響と思われます。)

次の列が二つ目の表のラス目和了率×ラス目和了時逆転率で、局開始時点から見て1局で和了によってラス目が逆転する確率です。
満貫条件だと12%、満ツモ条件だと9%、12000点以上差で4%、16000点以上差で1.5%。
意外と逆転できるものですね。単純に通常のハン数符数分布に当てはめるとこんな数値にはなりませんから現状のシミュレーションはまずいということです。

問題はこれをどうやってシミュレーションに織り込もうかというところです。
今のところこんな感じの処理を想定中。

If 非オーラス Or 親がラス目 Then
 通常の上がり者・放銃者決定プロセス
 通常の打点決定プロセス
Else
 If (0~1乱数)> ラス目和了率 Then'ラス目以外和了時
  Do
   オーラスラス目子の上がり者・放銃者決定プロセス
  Loop Until ラス目以外が和了者になる
  通常の打点決定プロセス
 Else'ラス目の和了時
  If (0~1乱数)>ラス目和了時逆転率 Then'非逆転
   Do
    Do
     オーラスラス目子の上がり者・放銃者決定プロセス
    Loop Until ラス目が和了者になる
    オーラスラス目子の打点決定プロセス
   Loop Until 非逆転手になる
  Else'逆転
   Do
    Do
     オーラスラス目子の上がり者・放銃者決定プロセス
    Loop Until ラス目が和了者になる
    オーラスラス目子の打点決定プロセス
   Loop Until 逆転手になる
  End If
 End If
End If

かなり無駄が多く、一歩間違えたら無限ループになりかねない。難しいですね。
これくらいのコードを書かないといけないということで、オーラスだけ特別扱いしようとすることの難しさが伝わるでしょうか。
平均順位の実測とシミュレーションの比較
自分の順位・持ち点別・残り局数別の平均順位の実測値を前回取り終わって、それに対応する他家3人の平均持ち点も前々回に取ったので、後はシミュレーションをひたすら回して比較するだけです。

残り局数8はシミュレーションの都合上の理由でカットして、7~1だけでやります。
シミュレーションをやるときは自分の風を指定しなきゃいけないのですが、今回は一律で東1局で南家としました。(東2・南2で親番)
東家→残り局数4以外で親番が少ないので平均よりも順位が悪化しそう。
西家→トンパツで一番不利な位置
北家→ラス親なので一番有利な位置。残ってる親番の回数も基本的に多い。
ということで消去法で一番平均に近そうな南家にしました。

実際は自分の風が違うことによって平均順位で0.05の差がつくことはよくあります。

自分の風・4人の持ち点・残り局数が決まったのでこれでシミュレーションができます。
結果は以下の通り。
151225-01.png
左3列(自分順位・残り局数・自分点数)が入力変数で変えるところ。
次の3列(他家点数)は前々回の自分の持ち点等による他家の平均得点をそのまま持ってきたもの(100点以下は四捨五入した。なお、簡単のため常に他家1(下家)が得点上位者、他家3(上家)が得点下位者とした。)
次の列(実測平均順位)は前回の自分の持ち点等による最終平均順位の実測値をそのまま持ってきたもの。
その次の列(シミュレーション平均順位)はシミュレーションにより得られた平均順位。
最後の列(誤差)が実測平均順位からシミュレーション平均順位を引いたもの。

誤差の列で数値が-0.05~0.05のところをオレンジで塗っています。これは実測とシミュレーションの差が0.05未満であることを示しています。

誤差の列を見ると最初の方は大体のところがオレンジなので誤差はそれなりに抑えられているように見えます。
しばらくすると自分2着目・残り局数1のところでオレンジがなくなって白になってますが、これはオーラスという特殊条件ということでしょうがないかな、と思います。(実際はできるだけ順位の変動のある上がりをみんな目指す点、他家との点差と平均順位の良さが線形でないので、他家の点数を平均化した1個のモデルと実際とは齟齬が出る点。)
3着目も多少白が増えたけどまぁ誤差0.05には大体入っていそうで、
問題はラス目。ほとんどの部分が白になっている有様です。具体的には残り局数が6・5・4・2・1のところ。
シミュレーションでは順位をかなり悪く見積もっている計算になっています。
残り局数6・5・2・1については東1で南家なので、親番が1回少ない影響が入ってるのかな…と思います。残り局数4についてはよくわからない。

そこ以外でも全体的に現在の点棒を過信しすぎてる傾向が見えます。(自分トップ目だと誤差がやや+でシミュレーションの方が過大評価ぎみ、自分ラス目だと誤差が-でシミュレーションの方が過小評価ぎみ)
多分こういうことが原因かなぁとは思ってます。
・ハン数符数分布は現在、一定のものとして取り扱っているが、実際は残り局数が少なく点棒がない時ほど大物手を狙う傾向が強まると思われる。そこらへんを加味した方がいいか。
・シミュレーションではオーラスの子のラス目のときに、ラス確和了をしてしまうケースが往々にして起こり得る(オーラスだろうがラス目だろうが、淡々と既存のハン数符数分布に基づいて点棒のやり取りをする)が現実には(リーチで裏ドラ勝負の時以外)ラス確和了は起こりえない。
この部分をシミュレーションで加味するのはかなり困難だが、やってみる価値はある。子のラス目のオーラスのときだけ和了率・打点を変える(3位との点差別で)、みたいな処理のイメージ。

こんな感じで、ひとまずは多くのところで平均順位の誤差0.05以内に抑える方針でやっていこうと思います。(ほんとうはもっと下げたいけど、現状で0.05のラインですらできてないし。)
順位と持ち点と残り局数別平均順位(実測)
タイトルの通り、自分の順位と持ち点と残り局数別の分類で、平均順位の実測値を出してみました。
他家の点数については未分類(考慮しない)とします。
なお、集計対象にしたのは東南戦のみとします。(東風戦は除く。)

オレンジに塗ってるのがサンプル数10000以上、
黄色に塗ってるのがサンプル数1000以上です。
1試合当たりの順位の標準偏差は全順位25%ずつのケースで1.25なので、
サンプル数10000の場合、平均順位の標準偏差は√10000で割って0.0125です。
2σを取ると実測値の誤差は±0.025に収まります。
151224-01.png
点数が多いほど平均順位の値が少ないといういたって当たり前の結果です。
151224-02.png
↑の表のうち自分トップのケースをグラフにしてみました。
点数が少ない(≒僅差)のケースほどグラフの傾きが急なので、1000点得点を上積みすることによる平均順位の向上具合は大きいと言えます。(具体的に例えば、残り4局で29000点が30000点に変わると平均順位が2.11から2.01になる。)
逆に点数が多い(≒大差)のケースではグラフの傾きがなだらかなので、1000点得点を上積みするメリットが薄いと言えます。
(具体的に例えば、残り4局で39000点が40000点に変わると平均順位が1.43から1.39になる。29000点の時の半分くらいしか平均順位がよくならない。)

この表のうちサンプル数10000以上のところ(≒出現頻度が高い+誤差が少ない)だけピックアップしてシミュレーションの値と比較するのをこれからやりたいと思います。600か所くらいあってかなり大変ですが。
自分n位の時の他家の平均点
ここまでで、局収支部分は大体3%とか5%程度の誤差で信用できる、ということが言えたと思います。
今日からは次局以降部分(点棒状況部分)の信用性について調べていきたいと思います。

シミュレーションする上では4人の点数と残り局数を入力しないといけません。
自分の順位と持ち点と残り局数については既知として分類するとして、残り3人の持ち点を何らかの形で知る必要があります。
(さすがに4人の点数を全部分類すると膨大な量になってしまう。)

ここでは実測から自分の順位、自分の持ち点、残り局数別の他家の平均持ち点(各順位別)を調べてそれを代入するような形を取りたいと思います。

平均持ち点は例えばこんな感じの調べ方。
自分2着目の時のトップ者の局開始時の平均持ち点です。(供託リーチ棒は誰の点数にも入らない。)
151223-01.png
縦軸が残り局数、横軸が自分(2着目)の点数(1000点未満は四捨五入)

残り4局で2着目の持ち点が20000点のとき、トップ者の平均持ち点は49312点、という見方です。

この表が自分の順位4つ×他家の順位4つの計16枚あるわけです。

例えば残り4局自分2着目の持ち点20000点のときの全員の平均持ち点はこんな感じです。
トップ目 49312点
2着目 20041点
3着目 17388点
ラス目 13101点
(足して10万点にならないのは供託リーチ棒の分と思われる。)

シミュレーションの値(とりあえず平均順位を見る予定)を取るときは今回の数値を参考に他家3人の点数を決めたいと思います。
後は親番が残ってる回数なんかも平均順位にはかかわってきそう…。
その辺は難しいからいいかなー。
実測とシミュレーションが著しく違うとかいうことになったらまた考えようか。

とりあえずは実測の平均順位の方から取ってみましょうか。
プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード