*All archives* |  *Admin*

<<01  2018/02  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  03>>
完全一向聴VS安牌残し両面両面一向聴(不完全安牌)
前回(完全一向聴VS安牌残し両面両面一向聴(自分親))に引き続き、完全一向聴に取るか、安牌をもって狭く受けるか、というネタです。

今回は不完全安牌、特にまだ生きている字牌について考えてみます。

まずは生牌役牌を残して狭く両面両面一向聴に受けるケースです。
シミュレーションの仮定は前回と大体同じです。(東家→南家)
171203-01.png
生牌役牌残しだと、あまり放銃率が下がらず、上がり率が低下するデメリットの方が大きくて、聴牌時両無筋456だったとしても、完全一向聴取りがいいようです。


次に1枚切れ役牌を残すケースです。
この場合は三人のうち一人は該当する字牌を切っていることを想定する(自分が切っていることもありますが。)ので、
事は単純ではないです。

今回は聴牌時完全安牌のケースと聴牌時2枚見え役牌のケースの両方を取って、その中間(1:2で内分の計算)を取ることにします。
171203-02.png
グラフ上は僅差でよくわからないです。
数値で見ると、
聴牌時完全安牌のケースと比べて、中盤で局収支70点くらいの悪化になります。
もともとが僅差なので、この70点差は馬鹿にならない差です。

聴牌時通常無筋なら常に完全一向聴取り、
聴牌時両無筋456なら中盤で若干2枚見え役牌残しのところもありますが、極めて僅差なので、読み次第でどうにでも変わりそうなところです。


今回はこんなところで。
完全一向聴VS安牌残し両面両面一向聴(自分親)
雀ゴロK本3の発売を記念して、
関連のあるテーマを取り上げてみたいと思います。

完全一向聴か安牌残し両面両面一向聴か、というお題です。

本では自分子のケースでやっていますが、自分親の場合は、子のときより、ぶくぶくに構えることも増えるかと思います。
そのあたりを検証してみましょう。

○仮定
・自分東家、他3人非リーチ面前
・リーチ平和(ドラはなし)の一向聴。
・完全一向聴にとったとき、聴牌時に切る牌無筋456or無筋2378。
・両面両面一向聴にとったとき、聴牌時に切る牌完全安牌。他家リーチがかかったら危険牌と安牌取り換えを考慮。
・一向聴から危険度10%以上の牌を切ることになったら降りる。

171126-01.png

・聴牌時切る牌無筋2378なら、常に完全一向聴取りが有利。
・聴牌時切る牌無筋456なら、8巡目~13巡目は安牌残し両面両面が有利。

あえて子のときとの比較は今日のところは伏せとこうと思います。

気になる方は、ぜひ本を買って見比べてみてください。
雀ゴロK本第3弾のお話
今までは黙ってましたが、年末ごろ(?)に出る雀ゴロKさんの第3弾の本でデータ監修をさせていただきました。
特に黙ってたことに理由はなかったですが、各所で情報が出始めてて、話題になってるっぽいので、まぁ話すいい機会かと思いました。

まず感想としては、無事に自分のかかわったものが本という形になりそうで、とてもうれしいです。
影であまり目立たないところで、こそこそネタを書いてたのが、いよいよ表舞台に出るのか、と思うと充足感とちょっとの不安(世間一般的には物議をかもす内容もあるようなので、集中砲火を浴びたりしないかなぁ、みたいな)があります。

形式的には1テーマ数ページ程度の1問1答形式で、お題に対して牌譜解析なりシミュレーションなりAIなりの出力結果をグラフや表にして、そこから導き出される結論とか雀ゴロKさんの所見が書いてあるのが1テーマ分ワンセットで、それが40テーマくらいあると。

元ネタのうち3分の1~半分くらいが自分が考えたネタで、残りが雀ゴロKさんからのお題というかアイデアです。
過去ブログに載ってるものが多いですが、私の貧弱な文章力と表現能力よりはかなり読みやすくなってるのが多いと思います。
(余談ですが、文章力が稚拙すぎて、「あとがき」で1000字くらい書くのにえらい苦労しました。)

とりあえず、この1週間くらいはゲラをチェックして、間違ってる部分の指摘とか補強データを出したり、とかいうのをやってたので、また完成品だと少し内容が変わるかもしれませんが、なんにせよ出るのが楽しみですね。

まぁ、今のところはこんなところで。具体的な中身についてのコメントはまた発売後ということで。
麻雀AI開発その79・自己対戦途中経過
麻雀AIの続きです。
AIどうしの自己対戦をやっている最中です。
やっぱりどうがんばっても現状のままだと1日150試合くらいしか消化できません。人間的には鬼打ちでもAI的にはすごくスピードが遅いです。

現在651試合まで打ち終わったので、いったん和了率とか局収支とかの基本的なデータを牌譜解析で出してみることにします。
なにか致命的なミスがあったときに、早めにやり直しできるように。

AIの思考については前回(麻雀AI開発その78・AIどうしの自己対戦プログラム)で述べたように、
平均順位の多寡で打牌選択するAI(COM1)、局収支の多寡で打牌選択するAI(COM2)、自分和了得点に1.1倍の重みをつけた局収支ベースAI(COM3)、自分放銃失点に1.1倍の重みを付けた局収支ベースAI(COM4)の4体です。

二向聴以上の手についてはニューラルネットの計算なので、どのAIも思考は同じです。一向聴と聴牌の打牌選択・鳴き判断のみ思考が変わってきます。
171028-01.png

鳳凰卓の実測値と大きく違っていそうなところは、

・リーチ和了が多い。(和了時リーチ割合・対リーチ放銃割合・対リーチ被ツモ割合)
・副露和了が少ない。(和了時副露割合・対副露放銃割合・対副露被ツモ割合)
・ダマ和了が少ない。(和了時ダマ割合・対ダマ放銃割合・対ダマ被ツモ割合)
COM2・3・4は局収支しか見てないので、副露・ダマ和了が少ないのはまぁわかる気がします。

・流局率が低い。
・流局時聴牌割合が高い。
・流局時得失点が低い。
・リーチ和了が多い。
・和了時ツモ割合はほぼ同じ。
AIはみんな聴牌・上がりを目指す傾向が人間よりも強いためか、流局になりにくく、流局になった時聴牌の割合も多いと。
和了時ツモ割合はほぼ同じですが、リーチ和了割合が多い(→ツモ割合が高くなりがちな和了が多い)ことから考えれば、
実質では人間同士より出上がりが多くて、全員参加型に近い場になっているように思います。
(人間だと段位戦でラス回避を重視する、ということも関係しているかも。)

・リーチ率が高い。
特に局収支型のCOM2や局収支攻め型のCOM3のリーチ率はかなり高いです。

・リーチ時先制割合がやや低い。
全員参加型になることが多い、ということで。

・リーチ時良形割合(ここでの定義は字牌待ちor待ち牌が5枚以上(捨て牌は関係なしで。))が低い。
人間の方が手作りがうまい(?)、というか良形を目指したがる、ということでしょうか。

・副露成功率(副露したという条件の下での和了率)が低い。
人間の方が仕掛けの精度が高い、とか守備のために遠いところからは仕掛けない、ということかと思います。

今のところはこんなところですね。
まぁ、あまりにも致命的なものはなさそうなので、このまま継続で試合数を重ねていきます。

今のところは試合数が少なくて標準偏差(σ)が大き目で結論が出しにくいところが多いですが、
10000試合とかまでがんばって積み重ねられたら各AIごとの特徴とかがはっきりして面白くなったりするような気がします。
牌譜さえ先に取れれば、後は牌譜解析で好きなデータを引っ張ってこれるので、わくわくしますね。
麻雀AI開発その78・AIどうしの自己対戦プログラム
麻雀AIの続きです。

前回、染め手パラメータを取って、これから染め手も含めたシミュレーションの設計をやろう!…と思ったのですが、
とある事情により、そっちはいったんほったらかして、AIどうしの自己対戦のプログラムを作ることにします。

人間一人VSAI三体のプログラムはすでにできてるので、それをちょっと改造すればすぐできます。

バグを収拾させつつ1試合分打たせたのがこんな感じ↓。
haifufile.txt

とりあえず自然な感じにはなっているっぽいです。

問題は計算時間ですね。東風戦1試合で10分~15分かかりました。
10000試合しようとすると1試合10分なら1時間6試合、1日150試合、ということは66日かかる、と。うむー。

ボトルネックになってるのは一向聴・聴牌の再帰計算+シミュレーションです。
二向聴以上の手みたいに全部機械学習で置き換えた方がよろしいのかしら。
一向聴以下だと上がりに直結する分、最終の待ち受けとか役判定打点関連とかをもっと精密に作らないといけなさそうな気がします。
機械学習でやると、中身がブラックボックス的になって分析がやりにくいですし、一番は今までシミュレーションで培ってきた知見が活かしづらいということがあるので、あんまり乗り気ではないです。

さて、どうしようか。
とりあえず1000試合・7日くらいでお茶を濁しておきましょうか。

後は対戦するAIですが、全部同じものを対戦させるのも芸がないので、別個のものを4体用意しようかと思っています。
今考えているのは、平均順位ベースAI・局収支ベースAI・局収支ベース(攻め型)・局収支ベース(守り型)

平均順位ベースは打牌選択基準(一向聴以下手牌のみ)を平均順位の良し悪しで判断する。
攻め型は自手上がり時得点に関して局収支を1.1倍換算したものを判断基準にする。
守り型は放銃時失点に関して局収支を1.1倍換算したものを判断基準にする。
という感じの予定。


普段使いのPCとは別に、自己対戦とかfloodgateでの大量対戦用のPCを買おうかなーと本気で検討中です。
もし、今のPC(3年選手)がつぶれてもスペアがあれば安心ですしね。
ハードディスクをSSDというのにすれば動作が早いらしいですし。
プロフィール

nisi5028

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

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

この人とブロともになる

QRコード
QRコード