ホーム › 忖度AIのしくみ

わざと負けるリバーシ AI の作り方 ― 忖度 AI のしくみ

公開日:2026年10月25日

強いリバーシ AI を作る方法は、よく知られています。では、人間をいい気分にさせながら、わざとらしくなく負けてくれる AI はどう作ればいいのでしょうか。この記事では、「忖度リバーシ」の CPU が手を選ぶしくみを、プログラムの中身にそって解説します。

「弱い AI」を作るのは意外と難しい

手加減する AI として最初に思いつくのは、次のような方法です。

  • ランダムに打つ:すぐに作れますが、隅をあっさり渡すなど明らかにおかしな手を打つので、人間は「手を抜かれている」とすぐに気づきます。勝っても嬉しくありません。
  • 読みを浅くする:少し先しか読まない AI は確かに弱くなりますが、強さが安定しません。人間が上手なら一方的に勝ちすぎ、苦手な人には CPU が勝ってしまいます。
  • ときどき悪手を混ぜる:悪手を打つ確率を調整すれば平均的な強さは変えられますが、悪手の瞬間はやはり不自然です。

どの方法にも共通する問題は、「どのくらい手加減するか」を相手の強さに関係なく決めていることです。忖度リバーシが目指したのは、相手の打ち方を見ながら、毎回「ちょうどいい接戦」に持ち込み、最後は人間が勝つ CPU です。

基本のアイデア:評価の向きを変える

多くのボードゲーム AI は、ミニマックス探索という方法で手を選びます。数手先までの展開を木の形に書き出し、最後の局面を「自分にとってどれだけ有利か」という点数(評価値)で採点します。そして「自分の番には点数が最大になる手、相手の番には点数が最小になる手が選ばれる」と仮定して、さかのぼって今打つべき手を決めます。

忖度 AI も、探索のしくみそのものは普通の AI と同じです。違うのは採点の基準です。「CPU にとってどれだけ有利か」ではなく、「人間にとってどれだけ望ましい局面か」で局面を採点します。そして CPU は、この「人間にとっての望ましさ」が最大になる手を全力で探します。

何を「望ましい」とするかを変えれば、CPU のふるまいも変わります。これが忖度レベルの違いです。

局面の評価のしかた

「望ましさ」を決める前に、まず局面がどちらにどれだけ有利かを測る必要があります。忖度レベル「標準」と「最高」では、次の 3 つを足し合わせた値を使っています。

1. マスの位置の価値

リバーシでは、マスによって石の価値が大きく違います。下の表は、各マスに自分の石があるときの点数です(相手の石なら同じ点数を引きます)。

120-20205520-20120
-20-40-5-5-5-5-40-20
20-5153315-520
5-53333-55
5-53333-55
20-5153315-520
-20-40-5-5-5-5-40-20
120-20205520-20120

隅(120 点)は二度と裏返されないので最も価値が高く、隅の斜め隣(-40 点)は相手に隅を渡すきっかけになるので大きなマイナスです。ただし、隅をすでに自分が取っていれば、その隣のマスはもう危険ではありません。そこで、隅を取っている場合は隣のマスのマイナスを打ち消すようにしています。

2. 打てる場所の数

自分が打てる場所の数と相手が打てる場所の数の差に、12 を掛けて加えます。打てる場所が多いほど選択肢が広がり、相手は悪いマスに追い込まれやすくなるからです(遊び方ページの「打てる場所の数を意識する」と同じ考え方です)。

3. 終盤の石の数

途中で石が多いことは、リバーシではあまり意味がありません。ただ、終盤になると最終的な石数がそのまま勝敗に直結します。そこで、空きマスが 16 個以下になってから石数の差を加え、空きマスが減るほどその重みを大きくしています。

忖度レベル「標準」:ちょうどいい接戦を作る

「標準」では、人間側の優勢度(上の評価値を人間の視点で計算したもの)が目標値に近いほど「望ましい」とします。目標値は、人間がほんの少しリードしているくらいの値に設定してあります。

  • 人間の優勢度が目標より低い(人間が苦しい)局面は、大きく減点します。CPU は人間を助ける方向に打ちます。
  • 人間の優勢度が目標より高い(人間が楽勝しすぎ)局面も、軽く減点します。CPU は本気で追い上げてきます。

減点の重みは、苦しいときが 1.0、勝ちすぎのときが 0.7 です。人間が負けそうな展開のほうを強く避けるようにして、「CPU が勝ってしまう」失敗を起こりにくくしています。人間が苦しければ助け、勝ちすぎていれば追い上げるので、どんな相手でも競り合いながら人間が少し前に出る展開に落ち着きます。

人間が悪手を打っても崩れない工夫

探索の中で人間の番が来たとき、普通の AI なら「人間は CPU にとって一番困る手を打つ」と仮定します。忖度 AI では、評価の向きが逆になっているので、「人間は自分にとって一番悪い手を打つ」と仮定することになります。

これは一見ひどい仮定ですが、接待には好都合です。人間が最悪の手を打っても望ましい展開を保てる手を CPU が選ぶので、人間が多少ミスをしても接待が破綻しにくくなります。人間がいい手を打てば、もっと楽になるだけです。

最後は 6 石差で勝ってもらう

空きマスが 13 個以下になると、CPU は対局の最後まで全部の展開を読み切ります(完全読み)。この段階では、最終的に人間が 6 石差で勝つ展開に一番近い手を選びます。大差で勝つと手加減が見え見えになり、1 石差だとハラハラしすぎるので、「接戦だったけど勝った」と感じやすい差にしています。人間の勝ちになる展開はすべて、人間の負けになる展開よりも高く評価するので、勝ちを逃させることはありません。

わざとらしく見せない工夫

忖度の度合いがほぼ同じ手が何手かあるときは、その中から CPU 自身にとって一番得な手、つまり普通のプレイヤーから見て一番まともに見える手を選びます。どうせ接待するなら、なるべく本気で打っているように見せるためです。

さらに、毎回同じ基準で選ぶと動きが機械的になるので、35% の確率で 2 番手や 3 番手の手を選びます。この「ゆらぎ」は、終盤の完全読みに入ると止めます。

読みの深さ

空きマスの数読む手数
45 個以上(序盤)4 手先まで
23〜44 個(中盤)5 手先まで
14〜22 個(終盤の入り口)6 手先まで
13 個以下最後まで読み切る

忖度レベル「最高」:とにかく圧勝させる

「最高」では、人間側の優勢度そのものを「望ましさ」とします。言いかえると、CPU は「人間の側を持った強い AI」として盤面を読み、その結果を自分の手として打ちます。

終盤(空きマス 12 個以下)の完全読みでは、人間の最終的な石数をできるだけ多くする手を選びます。CPU の石がゼロになって終わるパーフェクト勝ちには、さらにボーナス点を与えています。

パーフェクト勝ちを狙う「協調探索」

ここでも基本は「人間が一番悪い手を打っても大丈夫な手」を選びますが、それだけだと人間がいい手を打ったときに取れたはずの大勝ちを逃すことがあります。

そこで、空きマスが 8 個以下になり、しかも人間がどう打っても 8 石差以上で勝てると確かめられたときだけ、探索のしかたを切り替えます。人間の番も「人間にとって一番いい手を打つ」と仮定し、CPU と人間が協力して最大のスコアを目指す筋を探すのです(協調探索)。勝ちが確定している手の中から選ぶので、人間が思った通りに打たなくても負けることはありません。

協調探索は、探索を大幅に省略できる「αβ 枝刈り」がほとんど効かず、とても時間がかかります。そのため、使うのは残り 8 マス以下に限っています。

忖度レベル「忖度無し」:本気の CPU

「忖度無し」は、上の 2 つとはまったく別のプログラムで動いています。評価は常に CPU 自身の視点で、勝つことだけを考えて打ちます。限られた時間でできるだけ深く読むために、次のような工夫をしています。

  • ビットボード:64 マスの盤面をビットの列として表し、打てる場所の計算や石の裏返しをビット演算でまとめて行います。1 マスずつ調べる方法より 1 秒あたりに読める局面の数が一桁増え、同じ時間でも数手深く読めます。
  • 反復深化:1 手先、2 手先…と少しずつ深く読み、持ち時間(約 2.4 秒)を使い切ったところで打ち切ります。端末が遅い場合は読みが浅くなるだけで、待ち時間は変わりません。
  • PVS と置換表:一番よさそうな手を先に詳しく読み、ほかの手は「それより良いか」だけを手早く確かめます。一度読んだ局面の結果は表に覚えておき、同じ局面に別の順序でたどり着いたときに使い回します。
  • 手の並べ替え:前に読んだときの最善手、ほかの場所で効果があった手、相手の打てる場所を減らす手、の順に読みます。良い手を先に読むほど、残りの手を早く切り捨てられます。
  • パターン評価:辺や斜めの石の並び方ごとに点数をつけて局面を評価します。点数の表は、強豪リバーシ AI「Edax」の評価値を手本にして、機械学習で求めました。
  • 終盤の読み切り:空きマスが 18 個以下になると勝ち・負け・引き分けを、14 個以下になると最終的な石差を、最後まで読み切って最善の手を選びます。

また、序盤の最初の数手だけは、評価の差が 1.5 石分以内の手からランダムに選びます。毎回同じ定石の進行にならないようにするためです。

思考はブラウザの Web Worker という別の処理で行うので、CPU が考えているあいだも画面が固まりません。

まとめ

忖度 AI の考え方は、強い AI と同じ探索の力を、評価の向きだけ変えて使うことです。弱く打つのではなく、「人間が気持ちよく勝てる局面」を全力で探すので、手加減が見えにくく、相手の強さに関係なく接戦を作れます。

  • 標準:人間がほんの少しリードしている状態を保ち、最後は 6 石差で勝ってもらう
  • 最高:人間の側を持った強い AI として読み、勝ちが決まったらパーフェクト勝ちを狙う
  • 忖度無し:ビットボード探索と学習した評価で、本気で勝ちに来る

3 つのレベルを打ち比べると、同じ盤面でも CPU の打ち方がまったく変わるのがわかります。ぜひ試してみてください。

忖度リバーシで遊ぶ →