« 2005年12月 | トップページ | 2006年2月 »

2006/01/30

フーロー時、役複合率

フーローして上がったときの各役の複合率の集計を取ってみた。

元データは、まほ公さん、泉レイさん、私の第2東風荘、超上級ランキング卓のデータ。
フーロー和了数:15018回
注:暗槓 も副露扱いしている。
furo_yaku

役を読む必要が高いのは混一くらいだろうな。混一は和了にくいことを考えると、テンパってる段階での集計だと、もっと割合が高いはずだし、点数も高い点になりやすいってのもあるし。

ちなみに下ラン&上ランのデータで取ってみても大体同じような感じだけど、混一の割合が15~16%程度の割合を占めるところが目立つ。

| | コメント (0) | トラックバック (0)

2006/01/29

Ver.0.8.4出しました

「まったり麻雀 Ver0.8.4」だしました。
変更点は、以下です。

- 七対子と一般手のバランス調整
- 画面に立直棒を表示
- 押し引き判断の微調整
- 得点表示のフォントの変更

次回修正項目は、鳴きの防御の修正とパイの大きさの予定。
両方とも時間が掛かりそうなんで、作業して、あきたら、別の修正を先にやるかもしれない。

明日以降は、まずは、東風ログの解析アプリ作りをやってく。

| | コメント (3) | トラックバック (0)

2006/01/25

役読みアルゴリズム

立直牌の描画部を作成中。

同時に、脳内では、Version0.8.4を出した後の機能を検討中。
今のところ、次はパイの大きさの問題と、鳴き仕掛けへの防御についてを同時にやる予定。

鳴き仕掛けへの防御アルゴリズムの実現方法として、今アイデアとして考えているのが、ベイジアンフィルタを用いた役読みアルゴリズム。

GoogleとかMSがベイズ理論に注目してるって記事を読んだときから、気になって、WEBで調べていたけれど、スパムメールフィルタ(ベイジアンフィルタ)などはベイズ理論の典型的な応用例だそうだ。

ベイジアンフィルタは麻雀にかなり応用が出来そうな予感がしてる。
たとえば、鳴き仕掛けへの防御。
鳴き仕掛けへの防御は、門前と異なって、役や点数を読むことがある程度可能。それをコンピュータにやらせることを考えたときに、スパムメールか通常のメールかを判断するのと同じ要領で役を読む(例えば、混一かどうかなど)ことが出来るのではないかと思う。
また鳴きの仕掛けはかなり個人ごとにクセが出る傾向にあるので、これまたベイズ理論の応用例らしいグーグルパーソナライズド検索と同じ要領で個人のクセを読むアルゴリズムが作れるのかもしれない。(妄想です)
個人のクセを読むってのは今の段階では完全に妄想レベルだけれど、役読み(まずは染め手読み程度)はチャレンジする価値が十分にあると思ってる。

ただ、実現に関して現時点で問題点が3つほど思い当たる。

ひとつは条件付けの問題
英語メールのスパムフィルタの場合は単語がそのま条件付けとして使えたわけだけれど、麻雀の場合は自分で何が条件付けの因子となりえるかを考えなければいけない。例えば、塔子落としとか、捨てパイの偏りとか、鳴き方(例えばオタ風から先に鳴いたとか)、対子場なんかが条件付けの因子になるのかもしれない。
まずはどういう因子をリストアップするかを検討する必要がある。ここら辺は麻雀上級者の経験を頼りにするしかなさそう。麻雀本でも読み漁ってみるかな。(こういった条件を自動的に探せないんじゃあベイジアンフィルタとは呼べないんだろうな。)それと、因子と結果の因果関係がスパムメールよりはずっと弱い気がしてて果たして効力があるかどうかが分からない。英語SPAMメールならSEXYって書いてあれば90%はスパム確定っていえちゃうらしいけれど、そこまで強いファクターは麻雀には無いだろう。
次は、データ解析の問題、東風荘のログを解析するプログラムを作らなければいけない。これだけで結構大変な作業になりそう。もちろん、データも必要。いままではとつげき東北氏のページのデータを使わせてもらっていたけれど、あそこのデータはクイタンなしの第一東風荘のデータが殆どなのであまり鳴きについては役に立たなさそう。泉レイ氏のデータを使わせてもらってそれに自分が打った超ランデータを足した程度の数量で果たして足りるかどうか……

3つ目は私自身の知識の問題。私は後づけ野郎なんで、やりたいことが見つかってから慌てて勉強を開始するタイプ。ぶっちゃけベイズ理論なんて殆ど理解して無い。昨日今日でスパムメールフィルタの理屈がようやく理解できたところ。

とりあえず、だいぶ前にAmazonで買ったベイズ統計学入門の本があるんて、暇を見つけて読んでみるつもり。
でも入門書と言う割には結構難しい数式が多いな、この本……Orz
2006/2/2追記
ぱっと目、難しそうな記号を使った数式が多いけど、じっくり読んでみると、結構当たり前な式が多くて、それほど難しくも無い。式の後に文章で親切な解説があるし、具体例もあるので結構イメージしやすい。実はかなりの良書な気がしてきた。
追記終わり

ちなみに、ポールグラハム方式のスパムフィルタはパラメタの決め方を山勘(?)でやってる部分があるので、こんなのベイズ理論じゃないって言う人もいる。
(Amazonの「ハッカーと画家」の書評にもあるし、別の場所でも批判されているらしい)。
でも、これは、単純に普通のメールをスパムに間違えるのはスパムを普通のメールと判断するよりリスクが大きいから、安全な方向に倒しただけでしょう。
麻雀の場合、遊びなんで、そうったパラメタいじりは多分それほど必要なら無いんじゃないかと楽観的に考えてる。

参考資料:
タグ「ベイズ」を含む注目エントリー


| | コメント (10) | トラックバック (0)

2006/01/22

続・東風ランキング

麻雀くんさん、キーパーさんから指摘をもらったとおり、R2000以下の雀士については、1/19以前のデータがランキングに載って無いので先日のグラフは激しく変。あまり信用しないでください。

とりあえず、自宅Linux鯖で毎日朝6時にランキングページのデータをダウンロードして、HTMLからCSVに変換するスクリプトを作成した。これで、しばらく定期的に観察してみる予定。
でもやっぱ、下ランのデータも欲しいところ。以前自分でランキングページと同じようなことをするモノが作れないかと、東風荘のネットワークプロトコルを軽く調査したことはある。案外単純なプロトコルっぽい感じだったんで、解析しようと思えば出来るはず。そのうちやりたい。今はとても手が回らないけど。


それと、まったり麻雀の方は、長期ランニングテスト中。今のところ重大なバグは出て無い模様。

| | コメント (9) | トラックバック (0)

2006/01/21

東風ランキング

東風荘の魅力のひとつにデータ分析のしやすさがある。

東風荘のランキングページが改良されて、1週間以内に超上級ランキング卓でプレイした全員の成績がわかるようになった模様。誰がメンテナンスしてるのか分からないけど、感謝します。ありがとう。

データが手に入るとグラフにしてみたくなるのが私のクセ。
さっそくヒストグラムにしてみた。

上が第2東風荘、下が第一東風荘。横軸の数字はRate。例えば2000と書いてある部分はR1950~R2000までの人数。縦軸は数字をいれてないけど度数(人数の割合)です。

tonpu_histogram

平均RとRのばらつき具合(標準偏差)は以下の通り。

第二
平均R: 2000
標準偏差: 69.6

第一
平均R: 1989
標準偏差: 69.2

昔(といっても数年前だが)とつげき東北氏の計測では以下ですから、随分と違う。(そもそも計測方法が違うけど。)


第二
平均R: 1958
標準偏差: 68.3

第一
平均R: 1955
標準偏差: 62.4


上ランが下ランに併合されて、下ランでは近いRを持つ雀士同士を組み合わせるようにするシステムになって以降、超上級ランキング卓の平均Rは急激に上昇を続けてる。だから今と昔で平均Rが違うのは理解できる。
けれど、標準偏差も今と昔では随分違うのが気になるところ。

第二ルール(東南戦、クイタンあり)の方が第一(東風戦、クイタンなし)より実力差が平均順位に直結しやすいはずだから、現在でも第二の方が偏差は大きな数値になるはずだと予測してた。しかし、現在のデータでは第一と第二でRateの偏差にあまり違いは無いように見える。

これは何を意味してるんだろう?
超ラン雀士達で牌効率、ベタオリ技術が向上しお互いの差が小さくなり、オーラス間際などの状況判断技術の差が勝敗を分けるようになったために、東南戦か東風戦かによって、実力と平均順位の直結のしやすさに違いが出難くなった。っていうことか?(うーん、ちょっと無理がある説明な気がする。)

それとも、とつげき東北氏の計測は同じ雀士を重複してカウントしてるからそのことが影響してるかも?東風戦の第一の方が試合時間が短い分、一日に連続して何試合もプレーするケースが多い為に同じ人と連続して当たるので、ばらつきが小さくなるとか?(これも相当無理がある説明な気がする。)

単純にデータが少ないための誤差かもしれない。t検定してみるべきかな。でも正規分布とはいえない形のデータで意味あるんだっけ、t検定って。

結論:よくわからん。

| | コメント (4) | トラックバック (0)

2006/01/19

立直棒の描画位置

音を消してプレイしているときに、立直していることを見逃しやすいので、立直棒を表示して欲しいとのコメントがあったので、表示方法を検討中。
このような画像の感じにするつもり。画像はPaintで描いてるだけでまだプログラム的には組み込んでない。
drawReachBar


| | コメント (0) | トラックバック (0)

2006/01/17

七対子と対々和(四暗刻)との分かれ目

立直に関する修正中だけど、修正後のアルゴリズムの打ちスジを観察中。そこでちょっとしたネタ。

チイトイツの一向聴状態で、暗刻が出来た場合、つまり以下のような手牌の場合、
AABBCCDDEEEFGH

このケースでFHIのどれかを切って暗刻を残すか、はたまた、Eを捨ててチイトイツに絞って手広く(?)待つか、どちらを選ぶべきか?


何巻か忘れましたし正確な記述も覚えていませんが、麻雀マンガ界の重鎮の一人、片山まさゆきのマンガ「打姫オバカミーコ」の中で、「暗刻は残すべき、四暗刻が消えるのは相当にイタイ」というニュアンスのことを書いています。

今回、一般手と七対子を同等に扱うように修正している「まったり麻雀」のアルゴリズムはどういう選択をするかというと、いままで見ている限りでは、オバカミーコの波溜の主張と同様に暗刻を残すように選択するケースが多いようです。もちろん、場の状況やドラにもよりますけど、飜牌がなくても、概ね、暗刻を残そうとするようです。

現状のアルゴリズムは相当に対々和の可能性を低く見積もってる分、暗刻を残す評価値の方が理想の値より低くなる誤差があるはずだとおもうんだが、それでも、暗刻は残したほうが良い場合が多いみたい。

これって、強豪雀士では常識だったのか。
実は私はチイトイツに絞る打ち方をすることが多かった。今後は自分の打ち方を変えてみよう。

*
しかし、全然時間が取れん。作業が進まない。

| | コメント (2) | トラックバック (0)

2006/01/15

作業漏れがあった

ほぼ完了と思ったらでかい作業漏れがあった。家庭内LANのWikiには作業項目としてメモってあったんだけど、
最近Wikiメモを見ること自体をサボってた。アホだねえまったく。

* * *
このソフトの作成以外にも(やりたいこと|やらねばならないこと)が多くて作業時間は1時間くらい取れるかどうかなんで、なかなか進まない。

| | コメント (0) | トラックバック (0)

2006/01/14

チイトイツ判定修正中4

チイトイツ判定修正作業は、門前処理と鳴きの補正まで終了。あとは、立直の処理を変える必要がある。

それから、立直棒を表示して欲しいという依頼に応じた修正をしてから0.8.4としてリリースする予定。
ところで、東風荘って立直棒表示してたっけ?きになったので確認したら、表示してました。
気づいて無かった。

tonpu_reach

それと、観戦してるとき(下)と実際に打ってるとき(上)では、伏せている牌の表示が違うっていうことも今日はじめて気がついた。
tonpu_watch


| | コメント (0) | トラックバック (0)

2006/01/10

牌の大きさ

牌を大きくしてくれとコメントがあったので大きくすることを検討してます。
ただかなり厳しいのも事実です。
以下の3つの大きさを見てください。左側が今の大きさです。
sample

今の配置方法のままですと概ね、真ん中の牌の大きさが限界です。これでもおそらく老眼の方には小さくて読めないのではないでしょうか?
これを右の大きさにしようとすると、下の画像のように、画面には収まらなくなってしまいます。下の画像をクリックすると別の窓が開き実寸大の画像が表示されます。

hairanai

なんとかしたいところですが、やり方としては虫メガネ機能(マウスカーソルの位置の牌だけを大きく表示)か、
上下左右に配置するのをあきらめ、横一列に4人分の捨てパイを並べるしか思いつきません。ただしコレでも正直つらいです。


そこで、ゆきやまさんが作成し公開されている老眼マウスというものがあります。こちらで勘弁ねがえないでしょうか?

下が老眼マウスを併用した場合のプレイ画面です。
すこし設定を変える(拡大表示する画面の横幅を広くし、常に中央に表示するをONにする、静止状態が続いたら拡大画面を消す機能をOFFにしてコントロールキーなどで表示したり消したりするように設定する)方がプレイしやすいようです。
もちろんまったり麻雀だけでなくほぼすべてのWindowsアプリで画面を大きく表示してくれるようです。Controlキーを2回押すと拡大画面を表示したり消したりできます。また、設定により拡大するサイズなども設定できるようです。今使ってみたのですが、健常者の私にとっても結構便利なソフトです。いかがでしょうか?
rogan


| | コメント (2) | トラックバック (0)

休養中

ちょっと疲れたので今日も休養。
リラックスできる音楽CD買い込んで効いてたらCDラジカセがぶっ壊れた。

しかし、麻雀界もそうだが、麻雀ゲーム界も勝手に最強を自称してる連中がいっぱいいるな。
本当に、最強ソフトがたくさんあるなら、スパッと開発やめたいところだけど。

| | コメント (0) | トラックバック (0)

2006/01/09

パチンコ攻略情報詐欺

私のもっとも得意とすることは、プログラミングでもなければ、麻雀でもない。ましてや数学なんてとんでもない。
私のもっとも得意とすること、それは、パチンコ。

なので、このブログのテーマとは外れるけれどコレだけは是非書いておきたい。

コンビニの雑誌コーナーにずらっとならぶ詐欺まがいなパチンコ雑誌を熱心に立ち読みしている人を見ていてホント危ないなと思ってたが、案の定引っかかった人が相当数いたのだろう。
確か日テレだったと思う。夕方の報道番組でパチンコ攻略情報提供サービスを装った詐欺の特集がやっていた。TV報道にありがちな、「間違ってはいないが正確でもない」そのため専門家から見ると突っ込みどころ満載といった特集ではなく、細部までしっかりできているいい特集だった。


TV報道ではうさんくさいパチンコ雑誌が詐欺広告とグルであると報道していた。

詐欺まがいなパチンコパチスロ雑誌が多い中にも、いい仕事をしてる雑誌はある。今はやめてしまったので最近の事情を知らないが、私がやってた頃は「パチンコ必勝ガイド」と「パチンコ攻略マガジン」が信頼できた。ただし、信頼できる記事を書いている上記2誌でさえ、どう考えても実効性があるわけが無い攻略情報提供会社の広告が数多く載っていた。読者から編集者にクレームが来ていたようだが、広告を選ぶのは編集者ではなくて出版会社らしく、編集側ではどうにも出来ないらしい。良心的な雑誌なのでときどき攻略情報が偽物であることを検証する記事が載ってたが残念ながら比較的目立たない白黒ページの記事に載ってた。

確かに、10年以上前には、絶対に儲かるとはいえないがやらないよりはやったほうが期待値が良くなる「程々に儲かるパチンコ攻略法」がかなり普通に存在していて雑誌にその方法が書いてあった。その頃は一般的なパチンコ愛好家が攻略法を活用することも可能だった。また法律が改定され「程々攻略法」が完全消滅した最近の10年間でもパチンコやパチスロに「絶対に儲かる攻略法」が見つかったケースは何度かあった。

ただし、最近のパチンコ、パチスロで、絶対に儲かる攻略法が雑誌で広く一般に売られていて、ソレを利用して実際に儲けることが出来るなどと言うことはあり得ない。

絶対儲かる攻略法が見つかった場合の「祭り」の流れには決まったパターンがある。
最初に攻略法を見つけた人間(=半導体ROMの解析ができる一流の攻略プロ)は短い期間(=ほぼ1日か2日)で稼げるだけ稼ぎまくる。そして店に不審に思われマークされ、自分では使えなくなる。そこで多くの同業者に高額で情報を売る。そいつらが別の店(=田舎のパチンコ店)で攻略法を実行しているうちに、パチンコ店、パチンコ台メーカのネットワークで瞬く間に情報は伝わり、あっという間に対策が取られる。攻略法の寿命はセミのソレより短い。5日以上攻略が有効に使えることなど無いのだ。

だから、万が一攻略法が見つかっても、月刊の雑誌に攻略法の広告依頼をだし、承認がおりて、雑誌が出版され、読者が購読し、攻略会社に送金し、攻略情報が郵送され、その情報読んで翌日会社を休んでパチンコ屋にいくなんて長ったらしい手続きをしているのに、まだ大もうけできる攻略方法が使える状態のままなんてケースは絶対に無い。

今でもパチンコやパチスロなどのギャンブルでコンスタントに稼ぐことは不可能ではない。それは確実だ。
ただし、それは教えてもらえれば誰でも簡単に実行できるような性質のものではない。ある程度の才能と正確な知識と非常に多くの努力とリスクが付きまとう。かける労力と得る収入を比較するととても割りの合うことではない。まじめに会社勤めした方ががよほど楽しくそして儲かる。

ギャンブルはあまり金と労力をかけず、一攫千金のロマンを夢見て脳内の妄想で楽しむのが正しい付き合いかただと強く主張しておく。

| | コメント (0) | トラックバック (1)

2006/01/07

オリウチ率集計

プログラミングは集中力の要る作業。夜遅い時間にプログラミングをしていると、就寝時間になっても神経が興奮状態のままで全然眠れない。だいたい私は普段から4時間眠れば長い方で、まったく眠れない日が続くこともある。こんな状況がしばらく続くと効率ががた落ちする。この3連休はゆっくりしたい。

で、書くネタがないので、昔取ったデータの公開。
これは、先制立直をくらったときに、ベタオリしなければいけない状況になったCOM雀士がベタオリに失敗する確率を立直が掛かった瞬間に手牌の中にあった現物の数ごとにグラフにしたもの。
ただし、不要牌と現物牌が一致している間に追いついて追っかけ立直が掛かった場合は対象からはずしている。
少し前に、kというハンドル名でとつげき東北氏のうしうし掲示板で「科学する麻雀」の押し引き判断基準が守備側にかなりずれていることを指摘したときに使っていたデータがこれ。現在リリースしているアルゴリズムはこの結果をベースに押し引き判断を攻撃側にシフトさせた。
今のCOMより押し引き判断が守備的だったときのアルゴリズムによる結果なので今の攻撃的にずらしたアルゴリズムで再度集計しなおしたら別の結果がでるかもしれない。

betaori


過去の関連記事

| | コメント (3) | トラックバック (0)

2006/01/03

今後の修正予定項目

今私が今後修正したいと考えている項目をざっとメモしておく。
作業の優先順位をどうするかは決めてない。

1.七対子と一般手のバランス(修正中)
2.鳴きの攻防(特に鳴き仕掛けに対する防御)
3.パイの大きさを大きく
4.補助評価関数の精密化(端ドラの扱いなどに影響)
5.牌譜機能(東風荘フォーマットに?)
6.点数状況判断、STEP1
7.点数状況判断、STEP2
8.キーボードによる操作
9.ルール設定
10.成績表示(東風フォーマットの牌譜出力で代替か?)

追記:
11. 観戦時のウエイト
12. 立直棒表示(音を消していても分かりやすく)

この中で一番大変なのが点数状況判断だろうな。計算量の問題に突き当たるのが目に見えていて、あまりいい目処が立ってない。しかたないんで暫定修正のSTEP1と、STEP2に分けて作業したい。

今やってる七対子と一般手のバランス調整作業が終わったら鳴きの防御か牌の大きさ修正をやるつもり。
ただ、鳴きの防御についてはデータが少ないという問題が悩みの種。私自身が第2東風荘の超上級ランキング卓で打って採取したデータは1000試合分くらいしか無く。これでは全然数が足りない。とつげき東北氏のHPにあるデータを使わせてもらいたいところだけど、鳴きの防御については第一東風荘(クイタン無しルール)のデータではあまり意味が無いので使えそうに無い。データ数の問題が解決したとしても、牌譜の再生ツールもどきを作らないといけないという問題も残ってる。

| | コメント (6) | トラックバック (0)

チイトイツ判定修正中3

チイトイツ判定を修正した箇所の部分への4人麻雀ゲームへの組み込み作業中。
ソースがだんだんと汚くなってしまったな。
そもそも手牌クラスに課している役割が多すぎるのが悪いんだろうな。どこかで大改造をしたいが、どのタイミングでやるべきか…

総ステップ数:13325

| | コメント (0) | トラックバック (0)

« 2005年12月 | トップページ | 2006年2月 »