ROEコモン・ソート解析の深み
2010年5月3日 ゲームどうやら、6枚ソートは三階マルコフ過程だ、ということが分かったので、次のステップとして、直前の3枚のカードに基づくソート推定をやってみました。
以下、例によって、カードはすべてコレクターズ番号で表現します。
下準備
(1) 各パック・データから、6枚ソート中の4枚の並びをすべて抜き出し、その出現件数を数え上げます。
例えばあるパックにA,B,C,D,E,Fの6枚が含まれているなら、A,B,C,D/B,C,D,E/C,D,E,Fの3つを抜き出します。
これによって例えば、23,149,210,133という並びが5パックに含まれていることが分かります。
これを、23->149->210という3枚の並びから133へと遷移する三階遷移件数と呼ぶことにします。
ソートの推定
(2) 特に出現件数の大きい4枚並びを一つ取り出し、この並びがソートに含まれると仮定します。
(3) 現在仮定しているソートの最後の3枚のカードから遷移する三階遷移件数が最大であるカードが、ソートのその次のカードであると仮定します。
(4) そのようなカードが存在しないか、または、同じ3種類のカードが同じ順序で現れるまで、(3)を繰り返します。
試しにこれをやってみたところ、次のような131枚のループが得られました。
43, 68,228, 26, 97, 145,213, 41,182, 5,
142, 86,121, 23,149, 210,133,222, 88,207,
27,136,108,174, 65, 171, 29,132,187,164,
193, 68,121, 41,114, 155, 78, 15,153,186,
36,228, 74,150,130, 223,182, 36, 16,138,
210, 72,150,111, 5, 171,175, 86,138,116,
29, 99, 85,148, 23, 132,187, 79, 50,202,
15,142,110, 60, 85, 166,203,130,222, 78,
26,213,145, 74, 16, 60,193, 97,149,174,
133, 88,155,108, 42, 153,203, 72,164,114,
223, 50, 5, 99, 43, 166,111, 42, 56,207,
136, 27, 68,186, 97, 56, 41,116,142,175,
23, 65,133,148,207, 79,108,202,171,110,
187
さてしかし、このソートが、(従来的な意味では、)誤っているのは明らかです。
何故なら、このソートには、49枚のカードが2回出現し、11枚のカードが3回出現するからです。
実際のパックが、このソートのランダムな位置から6枚封入されるのだとしたら、それらの11枚のカードは、他の49枚のカードに比べて、1.5倍の頻度で出現しなくてはなりません。
が、実際にはそうなっていません。
とはいえ、この求められたソートが、何らかの真実を内包していることもまた事実でしょう。
この先に進むには、いったい、このソートが、実際のデータのどの程度をカバーできているのか、そこを評価する必要があります。
(ソートの尤度を求めるということです。)
でないと、この先、「こっちのソートの方が確からしい」というハナシになったときに、どっちのソートの方が「いい」ソートなのか、判断できないからです。
先の記事で見たように、どうやら、パックによって少しずつ異なるソートが使われているらしいことが分かっています。
その様子から見て、次の仮定をしました。
・「元になるソート」がある。
・「生産に使用されるソート」は、「元になるソート」から、何箇所かカードを取り除いたものである。
・ただし、「元になるソート」の、連続した二ヶ所を取り除くことはしない。
これは、全くの仮定で、嘘っぱちかもしれない、っていうか、嘘っぱちである可能性の方が高いと思いますが。
ともあれ、その仮定に基づき、ソートの尤度を、(とりあえず)次のように定義しました。
・パック・データに対するソートの尤度は、各パックに対するソートの尤度の平均値である。
・各パックに対するソートの尤度を、次のように定義する。
o そのパックの6枚の並びと一致する6枚の並びがソート中にある ... 1.0
o そのパックの6枚の並びに何枚かカードを挿入したり、何枚か削除したりすると、それに一致する並びがソート中にある
(ただし、2枚以上連続して挿入/削除はしない) ... (6-削除した枚数)/6
o 上記のどれでもない ... 0.0
上記を計算するプログラムを作り、所与の560件のデータを流してみたところ、尤度は 0.481 でした。
直感的には、このソートでは、全体の48.1%しかカバーできてないってことです。
さて、これからどうするか、ですが・・・。
・パックのデータから、同じ場所の同じカードを削除すると、今回見つかったソートに一致する、というケースが何件かある場合、それは、「元のソート」にはそのカードがその場所に存在するということではなかろうか。
・・・と考えて、削除して一致するパックについて、どんな具合になってるのか調べてみる。とか。
・今回見つかったソートとは全然無関係なパックもあると思うので、それらに共通する出現パターンを種にして、ソートの推定をやってみる。とか。
・・・A-2ソートが見つかるかもしれませんなー。
このあたりはやってみたいところです。
あとは、もう少し尤度データをつぶさに見てみて考えますか。
以下、例によって、カードはすべてコレクターズ番号で表現します。
下準備
(1) 各パック・データから、6枚ソート中の4枚の並びをすべて抜き出し、その出現件数を数え上げます。
例えばあるパックにA,B,C,D,E,Fの6枚が含まれているなら、A,B,C,D/B,C,D,E/C,D,E,Fの3つを抜き出します。
これによって例えば、23,149,210,133という並びが5パックに含まれていることが分かります。
これを、23->149->210という3枚の並びから133へと遷移する三階遷移件数と呼ぶことにします。
ソートの推定
(2) 特に出現件数の大きい4枚並びを一つ取り出し、この並びがソートに含まれると仮定します。
(3) 現在仮定しているソートの最後の3枚のカードから遷移する三階遷移件数が最大であるカードが、ソートのその次のカードであると仮定します。
(4) そのようなカードが存在しないか、または、同じ3種類のカードが同じ順序で現れるまで、(3)を繰り返します。
試しにこれをやってみたところ、次のような131枚のループが得られました。
43, 68,228, 26, 97, 145,213, 41,182, 5,
142, 86,121, 23,149, 210,133,222, 88,207,
27,136,108,174, 65, 171, 29,132,187,164,
193, 68,121, 41,114, 155, 78, 15,153,186,
36,228, 74,150,130, 223,182, 36, 16,138,
210, 72,150,111, 5, 171,175, 86,138,116,
29, 99, 85,148, 23, 132,187, 79, 50,202,
15,142,110, 60, 85, 166,203,130,222, 78,
26,213,145, 74, 16, 60,193, 97,149,174,
133, 88,155,108, 42, 153,203, 72,164,114,
223, 50, 5, 99, 43, 166,111, 42, 56,207,
136, 27, 68,186, 97, 56, 41,116,142,175,
23, 65,133,148,207, 79,108,202,171,110,
187
さてしかし、このソートが、(従来的な意味では、)誤っているのは明らかです。
何故なら、このソートには、49枚のカードが2回出現し、11枚のカードが3回出現するからです。
実際のパックが、このソートのランダムな位置から6枚封入されるのだとしたら、それらの11枚のカードは、他の49枚のカードに比べて、1.5倍の頻度で出現しなくてはなりません。
が、実際にはそうなっていません。
とはいえ、この求められたソートが、何らかの真実を内包していることもまた事実でしょう。
この先に進むには、いったい、このソートが、実際のデータのどの程度をカバーできているのか、そこを評価する必要があります。
(ソートの尤度を求めるということです。)
でないと、この先、「こっちのソートの方が確からしい」というハナシになったときに、どっちのソートの方が「いい」ソートなのか、判断できないからです。
先の記事で見たように、どうやら、パックによって少しずつ異なるソートが使われているらしいことが分かっています。
その様子から見て、次の仮定をしました。
・「元になるソート」がある。
・「生産に使用されるソート」は、「元になるソート」から、何箇所かカードを取り除いたものである。
・ただし、「元になるソート」の、連続した二ヶ所を取り除くことはしない。
これは、全くの仮定で、嘘っぱちかもしれない、っていうか、嘘っぱちである可能性の方が高いと思いますが。
ともあれ、その仮定に基づき、ソートの尤度を、(とりあえず)次のように定義しました。
・パック・データに対するソートの尤度は、各パックに対するソートの尤度の平均値である。
・各パックに対するソートの尤度を、次のように定義する。
o そのパックの6枚の並びと一致する6枚の並びがソート中にある ... 1.0
o そのパックの6枚の並びに何枚かカードを挿入したり、何枚か削除したりすると、それに一致する並びがソート中にある
(ただし、2枚以上連続して挿入/削除はしない) ... (6-削除した枚数)/6
o 上記のどれでもない ... 0.0
上記を計算するプログラムを作り、所与の560件のデータを流してみたところ、尤度は 0.481 でした。
直感的には、このソートでは、全体の48.1%しかカバーできてないってことです。
さて、これからどうするか、ですが・・・。
・パックのデータから、同じ場所の同じカードを削除すると、今回見つかったソートに一致する、というケースが何件かある場合、それは、「元のソート」にはそのカードがその場所に存在するということではなかろうか。
・・・と考えて、削除して一致するパックについて、どんな具合になってるのか調べてみる。とか。
・今回見つかったソートとは全然無関係なパックもあると思うので、それらに共通する出現パターンを種にして、ソートの推定をやってみる。とか。
・・・A-2ソートが見つかるかもしれませんなー。
このあたりはやってみたいところです。
あとは、もう少し尤度データをつぶさに見てみて考えますか。
コメント