*All archives* |  *Admin*

<<05  2017/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>>
全ツ型四人麻雀計算機その7・リーチまわりのテストと改善
パラメータを載せ続けてそれについてコメントするのも飽きてきたので、今日は手抜き。
パラメータの採取と計算機への反映の作業自体はまじめにやってます。

前回から採取したパラメータのラインナップはこちら。
・他家→他家リーチ者への放銃率
・他家リーチ者のツモ和了率
・ドラの切られにくさ倍率
・ドラの放銃率
・ドラなし赤一発裏なしハン数符数分布
・他家晒してない手牌にあるドラの枚数

このうち打点関連については1点コメントしておきます。
従前までは表ドラは含めた打点分布を使っていたのですが、今後副露手を考えるにあたってドラの種類と見え方は重要になってくると思われるので、表ドラを本体打点分布から分離して、後から表ドラの枚数だけハン数を足すということをしています。

それで、自手他家とも面前のみを前提にした場合のパラメータをだいたい取り終わったので、いったんテストしてみます。

まずは自手両面先制リーチの場合。(捨て牌はランダム生成したもの。)
161117-01.png
上が今回やってる計算機で、下が従前の局収支シミュレーションの結果です。
和了率はだいたい合っていて、放銃率・被ツモ率は低めに出ています。
おそらくは他家副露を考慮してない部分が出ているんだろうなーとは思いますが、そこは今後の課題ということで。

次が両面両面一向聴の場合。
161117-02.png
各値がどれも低めになってて、流局率が上がってます。他家副露やダマ和了がないから和了率は高くなると思ったのですが、欠陥ですかねー。

他家リーチがある場合。
161117-04.png
和了率が低くて、横移動率がえらく高めに出てます。
これは追加で調査がいりそうですね。

次は計算時間の調査です。どの部分で時間を食ってるか分かればその部分をを中心に改善を計ればいいので。
161117-03.png
初回。第二段階でかかってる56.4秒のうち、大半を初期処理のところで使っていました。

実際にその部分のコードを調べてると、毎回シミュレーションの先頭で入力した文字列から手牌情報の読み取りとか記憶を格納してる配列のリセットをしているのが無駄な作業だったようです。10000回も繰り返すので、できるだけ省力化したい。
というわけで入力値保存用の変数群を新たに作って、シミュレーションの先頭の初期化処理では配列のコピーだけで済ませる方法を取ってみました。

すると、43秒も食っていた初期処理が1~2秒まで短縮できました。
全行程から計算しても約4分の1の計算時間圧縮になりました。前に比べると、大分早く感じますね。

残りの部分で次に時間を食ってるのがツモ率と切られる率の算出のところです。
これについては毎巡ごとに牌の見えてる枚数とかが変わるので、毎回ツモ率・切られる率を算出しなければいけないのはやむを得ない作業だと思います。さすがに捨て牌のパターンごとにテーブル化して検索するとかいうのは量が膨大すぎて現実的ではないでしょう。


というわけで今日はこの辺にしておいて、テストの続きをやっていきます。
スポンサーサイト

コメントの投稿

Secret
(非公開コメント受付中)

コメント

プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード