押し引きアルゴリズムの改善(4) 〜 押し引き閾値の再調整

打牌選択アルゴリズム(10) 〜 残り牌数の正規化 - koba::blog で残り牌数の数え方を変えたため、評価値の値も変わりました*1。このため現在の評価値のスケールに合わせて調整していた押し引きの閾値にも変更が必要です。押し引き表の牌姿は評価値何点? - koba::blog押し引きアルゴリズムの改善(3) - koba::blog と同様な方法で再調整していきます。

*1:ツモ可能枚数は見えていない牌数より少ないので、評価値も相対的に低くなる

続きを読む

打牌選択アルゴリズム(10) 〜 残り牌数の正規化

麻雀の打牌選択アルゴリズム(9) - koba::blog 以来、8年ぶりに 電脳麻将 の打牌選択アルゴリズムを変更します。

電脳麻将では手牌の 評価値 を元に打牌を選択していますが、評価値計算 の際の「残り牌数」は「見えていない牌数」つまり、相手の手牌・牌山 に隠れている牌*1を指しています。このため流局時でもまだ最大54枚*2が使えると判断するのですが、実際にはもう使える牌はありません。今回「残り牌数」の総和が「ツモ可能枚数」と一致するように正規化します。ツモ可能枚数は流局時には0枚となるため、もはや使える牌はないことが分かる訳です。

*1:ドラ表示牌・自身の手牌・捨て牌・相手の副露牌 として見えている牌以外

*2:相手の手牌13枚 × 3 + 王牌13枚

続きを読む

牌の危険度決定アルゴリズムを評価する(2)

牌の危険度決定アルゴリズムを評価する - koba::blog ではリーチの直後と終局直前のタイミングで牌の危険度決定アルゴリズムを評価しましたが、今回は「山読み」のアルゴリズムを評価する - koba::blog でやったように毎巡評価し、グラフ化してみました。

評価方法には KLダイバージェンス*1を追加しました。

*1:用語を合わせて「相対エントロピー誤差」としたかったのですが、この方法を「誤差」と呼ぶのは誤りのようです

続きを読む

「山読み」のアルゴリズムを評価する

牌の危険度決定アルゴリズムを評価する - koba::blog では天鳳の牌譜を使って牌の危険度決定アルゴリズムの精度を評価しました。今回はいくつかの山読みアルゴリズムの候補について、同様の手法で評価してみます。

「山読み」といってもランダムに積まれている牌山を直接読むことは不可能です。打ち手の意思が入る手牌に使われている牌を推定することにより、残りの牌が牌山にあると間接的に推定することになります。つまり行うべきことは「手牌読み」という訳です。

続きを読む

ダマテンの効果をシミュレーションする

木原直哉氏のブログ記事 ポーカー的視点から見た、今後の麻雀の進化予想 - 木原直哉オフィシャルブログ に触発されて「敢えてダマにする戦術」の効果をシミュレーションしてみようと思い立ちました。

木原氏の記事は「いつも同じ行動をすると読まれる」が趣旨だと思いますが、例として挙げた「たまにはリーチせずダマテンにとる」という戦術が議論を呼んでしまっているようです。

電脳麻将 のAIの現在の戦略は「テンパイ即リー」であり、押し引きアルゴリズムもリーチ者以外は無警戒としているので「敵を欺く」例題としては格好のケースに思えます*1。さて、いったいどうなるでしょうか?

*1:ダマテンにどんどん放銃するのでは?と言う期待

続きを読む

牌の危険度決定アルゴリズムを評価する

コンボ理論の有用性を検証する - koba::blog では 電脳麻将 の牌の危険度決定アルゴリズムを単純に コンボ理論 に置き換えて対戦シミュレーションを行いました。今回は、危険度決定アルゴリズムが実際に当たり牌をどの程度正しく予想できているか、という観点で実際の天鳳の牌譜を使って評価してみます。

続きを読む

コンボ理論の有用性を検証する

はね氏の note 【第2回】麻雀は学習で強くなるか。|はね によりコンボ理論に注目が集まりました。コンボ理論 とは、面子を構成できる牌の組合せ数をコンボ数と呼び、安全牌の判断の際にコンボ数が少ない牌をより安全とみなす理論のようです。このコンボ理論に従って牌の危険度を判断するAIを実装し、実際に対戦させることでその有用性を検証してみました。

続きを読む

NyankoSweeper

Macintoshユーザには懐かしいNyankoSweeperをWeb上に再現しました。

かつて JavaAppletmixiアプリ でも実装しているのですが、どちらも動かなくなってしまっているので、再実装した次第です。

画像や音声データはオリジナルのものを借用しているので再現度は高いと思います。

続きを読む

鳴かない麻雀の成績への影響をシミュレーションする

前回 麻雀AIの作り方 - koba::blog で麻雀AIの実装と評価方法にいて説明しました。今回は実際に「鳴かない戦術のAI」を実装し、その成績に与える影響をシミュレーションしてみます。

  • AIの実装
  • AIのテスト
  • シミュレーション
    • デュプリケート対局用の牌山を生成
    • 修正前のAIで対局を実施
    • 修正後のAIで対局し結果を比較
続きを読む