オセロAIはどう考えている?評価関数の入門
遊びを見つける執筆にClaudeを使用しています。

オセロのAIと対局して「なぜそこに打つのだろう」と感じたことはないでしょうか。人間の目には損に見える手でも、AIは迷わず選びます。その判断の根拠になるのが「評価関数」です。 評価関数とは、盤面の状態に数値(スコア)を与える仕組みです。AIは合法手のすべての結果を数値で比べ、自分にとって最も高い盤面を目指して手を選びます。将棋や囲碁のAIも同じ考え方の上に成り立っていますが、オセロは盤面が8×8と小さく、終盤は完全読みが可能なため、評価関数の効きが特に実感しやすいゲームです。 この記事では「評価関数が何を数値にしているか」「なぜ石数を単純に数えるだけではまずいか」「どんな要素を重視するとAIが強くなるか」という順に説明します。オセロが好きな方なら、読み終えたあとに自分の対局の見方が変わるはずです。
石数を数えるだけでは弱い理由
最も単純な評価関数は「自分の石の数から相手の石の数を引いた値」です。実装は簡単ですが、この方針で動くAIはほぼ例外なく弱くなります。
オセロの序盤から中盤にかけて、石数は非常に流動的です。多く取れた局面は、裏を返せば相手に多くのひっくり返し先を与えた局面でもあります。石数が多いほど次のターンに取り返されやすくなるため、「今の石数が多い=有利」は成立しません。むしろ中盤に石を取りすぎることで終盤に一気に逆転されるのが、初心者がよく経験するパターンです。
AIの設計では、この「石数の多さが必ずしも有利ではない」という逆説を評価関数に組み込むことが出発点になります。
評価関数が重視する三つの要素
強いオセロAIの評価関数は、おおむね次の三つを軸にスコアを計算します。
位置の価値(静的重み)
盤面の各マスにあらかじめ固定の点数を割り当てる方法です。角(コーナー)は相手にひっくり返されない確定石になりやすいため非常に高得点になります。逆に角の斜め隣(C1・C2と呼ばれるマス)は角を相手に与えるリスクが高く、大きなマイナス点になります。
この重みマップは人間の経験則を数値化したものです。単純ながら効果は大きく、位置重みを導入するだけで「角の隣には打たない」という基本的な判断をAIが自然に行うようになります。
着手可能数(モビリティ)
「次に打てる場所が何マスあるか」という指標です。着手可能数が多い側は選択肢が豊富で、相手は自分に都合の悪い手を強制しにくくなります。逆に着手可能数が極端に少ないと、望まない場所に打たざるを得なくなるため不利です。
評価関数では「自分の着手可能数」から「相手の着手可能数」を引いた値をスコアの一部に加えます。石数より安定した優劣の指標になります。
確定石の数
一度置いたら終局まで絶対にひっくり返らない石を「確定石」といいます。角を取ったあとに角から連続して埋まったマスがその代表例です。確定石は相手がどう打っても消えないため、枚数の差がそのまま終盤の得点差になります。
確定石の計算はやや複雑ですが、評価関数の中では最も信頼できる優劣の根拠です。終盤に向かうほどこの項の重みを上げる設計が一般的です。
ゲームフェーズによって重みを変える
優れた評価関数は、序盤・中盤・終盤でそれぞれの項の重みを切り替えます。
序盤(置かれた石が少ない段階)はモビリティと位置重みを中心に判断します。石数の確定石はまだ少なく、自由度を高く保つことが優先されます。中盤は位置重みと確定石の両方を均等に見ます。終盤(残りマスが十数手以内)になると、AIは完全読みに切り替えて評価関数を使わず、最終石数の差を直接計算します。
この「終盤は読み切る」という設計がオセロAIの大きな特徴です。将棋や囲碁では終局まで読み切ることは現実的に難しいですが、オセロは盤面が限られているため、一般向けのAIでも残り12〜16手程度から完全読みに入れます。
評価関数をチューニングする考え方
各項の重みをどう設定するかは、AIの強さに直結します。重みの調整にはいくつかのアプローチがあります。
ひとつは人間の棋譜を参考にする方法です。強い棋士が選んだ手に高いスコアがつくよう重みを手作業で調整します。経験と直感を要しますが、ロジックが追いやすい利点があります。
もうひとつは自己対局(セルフプレイ)による学習です。AIどうしを大量に対局させ、勝率が上がる方向に重みを自動更新します。現在の強いオセロAIの多くはこの方法か、ニューラルネットワークを組み合わせた発展形を採用しています。重みの意味が人間には読みにくくなる代わりに、純粋な強さは手作業の調整を大きく上回ります。
自分でオセロAIを作ってみたい場合は、まず位置重みだけを実装したシンプルな評価関数から始めるのが現実的です。角をプラス、角隣をマイナスにするだけでも、ランダム手よりはるかに強いAIが動き始めます。そこにモビリティを追加し、終盤の完全読みを組み込む順で拡張すると、段階的に強さを確認しながら進められます。
評価関数を知ると対局の見方が変わる
AIがなぜその手を選んだかを評価関数の視点で解釈すると、「石数が増えても喜ばない」「角の隣を避ける」「相手の選択肢を狭める手を優先する」という方針が見えてきます。これはそのまま人間の上達にも使えるフレームです。
次に対局するとき、AIの手に違和感を感じたら「この手はモビリティを上げているのか」「確定石を生み出しているのか」と問いかけてみてください。直感と論理の両方でオセロを楽しめるようになります。
次の行動
アソバースの公式作品「潮目のオセロ」でAIと対局しながら、今回紹介した評価関数の観点(角・角隣・着手可能数)を意識して盤面を眺めてみてください。AIの手の意図が少しずつ読めるようになると、対局の質も変わってきます。自分でAIを実装したい方は、まず位置重みのみの評価関数を組み、ランダム手と対局させて動作を確かめるところから始めるのがお勧めです。
参考資料
- Reversi / Othello の評価関数に関する一般的な解説(Brian Rose "Othello: A Minute to Learn... A Lifetime to Master" など)
- ミニマックス法・アルファベータ法の基礎(アルゴリズム教科書各種)


