このブログ内を検索可能

2022年1月17日月曜日

デュエルドリーム解析手順

 現在、SPの個数が0個の場合で最適解検索を行っているが進捗率は7915/53130である。ただし配置可能FREE数に結構依存するのであと5倍くらいの時間がかかる、というわけではない。

一応以前やったように対称なものは反転などの操作で省略することもできるのだが、FREEや連結マスの関係上あまりそれが機能しない場合がある。またこれをやっても最大で8倍の短縮にしかならないので難しいところ。

しかしSP1個、2個、3個の方が明らかに時間がかかるので、SP0個に1日くらいかかっていると1個の段階で1週間とかのクラスになってもはや3個は手に負えないような気がしている。

ただまあ仕方ないと言えば仕方ない。なぜならアニマは25球中5球が抽選され、残りは3球であり、FREE配置は最大で4個だったが、こっちは25球5球抽選後、残り6球,5球,4球の場合もあるし、FREE配置も最大で5個(ほかの配置ではもっとある可能性)なので極めて危険な香りがする。

解析順序としてはまずはSP0個、ついでシンキングまでに6球入り、残り3球のパターンを行い、ついでシンキングまでに5球、後半4球入るというパターンを考える。たぶんここまでで数日はかかるとみている。

ビンゴバルーンではすべての抽選は交換可能であったが、こちらでは前半、後半の枠では交換可能(なので組み合わせ25C5を考えている)だが前半と後半は交換不可能。前半ではだぶってもオッズアップしないなどの仕様の差があるからである。ほかにもFREEにHITすると前半はオッズアップせずFREE配置が増えるが、後半はオッズアップのみするという点でも。

参考程度に現在得られているデータから最適解を配置してみる。

今考えているビンゴカードはこれ。

黄色がFREEでオレンジが連結マスである。

例えば7895番目は{1,8,12,14,15}の組がINした場合であるがこの場合の出力は

{7895,{1,8,12,14,15},{2,7,17},1.77544}

となっている。{1,8,12,14,15}がINした場合、以下のようになる。

赤色はシンキング終了後HIT扱いのマスである。厳密にはODDSUP対象マスと、もうHITしたマスの違いはあるがここでは省略する。これに対し、最適「グループ」は{2,7,17}とある。我は以下のようにグループ番号を付与している。

さて、ここに先ほど得た最適解を配置すると

このように2ラインが確定する。(オレンジ色は連結マスを意味するだけなのでHITしていない。勘違いしないように)

これは確かにほとんどの人がこのように3つのマスを配置するだろう。

そしてこの時の払い戻し率は177.544%である。

こういった最適解探索を全部で53130通り行うわけである。それで初めてSP0個の場合が完結する。

これはたのしくなってきたぞ




デュエルドリーム最適解構築開始

 いよいよ準備が整ったので、最適解を構築していくことにする。とりあえず最初の5球、6球、7球、8球と場合を分けて計算していく。最初が5,6,7,8球になる確率はそれぞれ違うがこのあたりは理論による計算か簡単なプログラミングでどうにかする。

その状態に対しての最適解を、残りの球数別に構築する。

例えば最初が7球ならばSPは2球入っているので、後の抽選球数は3または4に絞られる。

最初が8球ならばSPは3球入っているので残りは3球確定で計算が楽…ではなく、8球入るということは25C8通りあるので最初5球の25C5に比べてそっち側で処理を加える。ただその8球で、解の配置パターンが減少するのでその恩恵を若干受けることもあるが、いかんせんファクターが多すぎて予想時間を測るのは難しい。

とりあえず基礎である「5球抽選後、3球の抽選」というSP0球の場合での期待値を計算することをまずやっている。最初の方をずらっと見るとPO率は高くても80%程度で平均的に20%程度?と大赤字。これはSPが入らないうえ、最初の方はマス「1,2,〇,〇,〇」が多いので現在解析中のカードでは1,2,6は同グループなので早速重複が発生しているからである。言い換えると実質7球になっているも同然だからである。


最終的には「はじめーのこり」の球数を「5-3,5-4,5-5,5-6,6-3,6-4,6-5,7-3,7-4,8-3」で全て求め、それらが起こる確率を計算すればカード全体のPO率が算出され、かつすべてのパターンに対してPO率を最大化するパターンが得られる寸法である。


プログラム自体は半日弱で作れたがなんといっても解析が膨大に時間がかかるのが目に見えるのでその間は組織学の課題でもやるとする。今日は消化管となっており、その組織切片を観察して同定を英語でする必要がある…。楽しくないことはないが結構頭が疲れる。

オンライン講義だからこそできるこの時間配分。通勤電車等にエネルギーと時間をそがれないのでこれもまた良いと言えばよいのか…?

デュエルドリームで最適解に近づく

 先ほどの基本的な部分から、これを期待値化した。

これはとあるビンゴの配置の時にマスID[1,2,16,17,25]にINした場合、配置時のグループ番号が[m,n]のときの期待値を表している。

例えば[2,3]というのは2グループ目、3グループ目の配置を意味し、これはマスIDで3,4,5,10が埋まることになる。その場合の期待値は0.955877とPO率95.6%であることを意味する。

こうしてみていくと、[4,15]で最大値をとる。これはマスIDで7,19を埋めることを意味し、確定で3ラインを得られる。よって期待値のLINE数(左側)も3以上に必ずなり、さらにそれ以上のLINEも期待できる、ということが示されている。


なおこれは、FREE配置可能個数が2個で、残り球数が3個の時である。

この組み合わせはもちろんすべての場合において対応できるようにここまで作ってきた。

例えば前半5球が入り、後半でSP3球となって6球も残り入る場合かつFREEが1個配置できる場合は…、25C6通りも考えられるため先ほどより明らかに時間がかかる。

しかし7マス目または19マス目に配置した場合の期待値LINE数が同点で3.15085ライン、そして期待値は19マス目の方が高く、528.425%である。

これは前半がしょぼくてもFREEが1個配置でき、かつ後半にSPが3回も入れば5倍の配当が期待できるとなんとなく理にかなっているような気がする。

がここで雲行きが怪しくなるのは、FREEが5個使用できて後半6球抽選される場合などである。もちろん計算はできるのだが、各FREEの配置に対して8秒くらいかかるのである。

FREEは全部でとあるカードの場合17グループ考えられ、ここからFREEには配置できないことで12グループになるのだが、ここから5個選ぶということは12C5=792パターンあり、

この5球の入り方で、かつFREE配置可能数5個の場合ではこれだけで6400秒つまり2時間弱かかるという点である。

よってここからはもはやPCの処理速度と、それにかける時間との闘いである。

なおビンゴバルーンの解析をしたときも、PCを1か月間は休みなく回し続けた…。


さて次は、その5球の配置パターンや、前半で6球、7球、8球が抽選されたりなどの起こりうるパターンと、それに対応するFREE配置可能個数を算出したりする処理に入っていく。

たぶん期待値を求めるのはこれであっていると思うので…。


マスのHITおよびオッズアップ実装

 とりあえず前半で入ったマスのIDと、配置可能FREE個数、残り球数を与えるとそのそれぞれのパターンでオッズアップの倍率および最後のマスの状況を返すようになった。

とりあえずいろんなパターン(イレギュラーなものを積極的に選んだ)を試して5回くらいやって全部あっていたのでおそらくあっているであろう。

実はここまでくるとかなりうれしく、ビンゴ判定から基礎oddsを定義し、それにもう算出したoddsの倍率を乗じるとそれぞれのパターンでのoddsが計算できる。これはつまり各配置に対してすべてのパターンが分かるので期待値が分かる。すると期待値が分かるということは期待値同士での比較ができるということになり、最適解を得られる。

我の目的はビンゴ数を最大にすることではなく、PO率を最大化する、オッズアップなども考慮したものを考えているので通常のビンゴ最大化より面倒だが、なんとしてでもDDでプレイヤーが我が有利かを暴く。

ちなみに結果は一番下の段に出ている。1.6というのは残り3球がすでに入っているマスにHITしてオッズアップ+0.2が3回起きたということ、{22,23,24}というのは前半に入ったマスを除外した残りの球の辞書式配列の最後(forで繰り返した後なので最後の結果が出てきている)であり、その右がビンゴの判定に使うmassの状況で、0は未HIT、1はHITを表す。

もし演出付きでビンゴを作成するならもう少し場合分けをしなければいけないがここではそれは必要ない。

デュエルドリーム再開

 リモートとなったため、以前のように時間に余裕ができたうえ、体調も半年ほどかかってようやくなんかいい感じになっていた(戻る可能性ももちろんあり)のでデュエルドリームを再開する…といってももちろんプレイではなく、解析の方。

とりあえず当面の目標としては、ビンゴは勝てるのか勝てないのかという結論。

できればチップも含めてJPC、スーパーデュエルビンゴ込みで考えたいが…。

デュエルドリームは過去アニマのついでにプレイしていたが、例のeパス消去作戦により、我の10年のアニマデータおよびデュエルドリームデータは消滅したのでやはり決別以降プレイすらしていない。


まずどこから手を付けるか悩むが、とりあえずは、所定の場所にINしたときの配置と、残り配置可能個数から最適な配置場所を見つけるということである。

なお、すでにINあるいはFREEとなっているものについては、配置できないものとして考える(長らくプレイしていないし実機でそんなことをやったことがないので覚えていないがおそらくこれはかなり期待値が低くなるので最適解を求めるにあたり気にする必要はない)

具体的には、表のようなものを作り、ありえない場合のみを排除していく。

そして後からその表を参照し、計算なども使って確率を求めていく、というものである。

例えば上のような表を作り、黒部分は起こりえないパターンであり、試行回数を減らして処理の向上を図る。(SPは3球のため)

また、{1,2,3,4,5,6,7,8}という組は、間にSPが3個挟まっている(ただし6と7の間までしか入らないことに注意する)ので、その分同じ処理を減らすことができる。

これらの先のことを見据えてやっていきたいと思っている。