着手の選択方法について

選択方法の色々
一般に、'強い'プログラムは序盤/中盤/終盤で異なる方法を使って着手を選択しています。
序盤では定石またはBookに従って着手を選択しています。
中盤では先読みを行って良さそうな局面を探索してからその局面に繋がる手を選択しています。
終盤では終局までを読みきった上で最善の手を選択しています。

何手目までが序盤で何手目からが終盤という明確な境界線はありません。
定石またはBookで着手を選択している期間を序盤、 終局まで読みきって最善の手を選択している期間を終盤、 それ以外の期間を中盤というように逆に捕らえると判りやすいかもしれません。

定石
定石とは初手から始まり先手/後手共に最善手を打った場合に辿ると考えられている着手の流れです。 現在までに多くの定石が提唱され、それらには個別の名前が付けられてきました。 その多くは数手程度で、長くても20手程度までです。

定石に従って着手を行っていくと先手/後手共に互角の展開が望めます。 定石から外れた着手を行うと一般には外れた着手を行った側に不利な展開になります。

ただし、定石から外れた手を打った側が全ての点で不利になる訳ではありません。
定石やその後の展開は良く知られているため、定石を打った場合には予備知識という点で差がでません。 一方で、先の展開を研究した上で外れた手を打った場合には打った側は予備知識の点で有利に立てます。

定石から外れた手を打つことは変化すると呼ばれています。
強豪同士の対局では定石から外れない限りまず引き分けになります。
定石の何処で変化するか、それが強豪同士の対局では勝ち負けを左右することになります。

Book
Bookは局面の良し悪しが記録されたデータです。
通常、局面の良し悪しはその局面以降での過去の対局結果に基づいて判断されます。

リバーシ対局は開始局面から着手ごとに枝分かれして様々な局面を通過しつつ終局に至ります。 このようなゲーム進行は木の形に似ているため、一般にツリー(木)構造と呼ばれています。 Bookはこのようなゲーム進行に対応するため、概念上はツリー構造を持つことになります。 このため、Book上での各局面はノード(節)と呼ばれ、終局面はリーフ(葉)と呼ばれます。

各リーフでの局面の良し悪しには通常は実際の対局結果が使用されます。 各ノードでの局面の良し悪しはそこから最善進行が行われた場合に辿りつくリーフに基づいて判断されます。

プログラムはBookに記録された局面(ノード)がある場合には通常はその良し悪しに応じて着手を選択します。 例えば、10石勝ちと10石負けの局面(ノード)が登録されている場合には、10石勝ちとなる局面に至る着手を選択します。

多くのプログラムでは、Bookには後からデータを追加できるようになっています。 負けた対局をBookに追加していけば、それ以降は同じ手で負けることは避けられるようになるため、 プログラムを強くしていくことができます。

ただし、自分が悪手を打って負けた対局を追加すると、実際には勝てる手を打たなくなってしまいます。 また、相手が悪手を打って勝った対局を追加すると同じ進行で悪手を打たない相手には負ける可能性が高くなります。

このようなリスクを回避するため、多くのプログラムでは対局の追加時に局面評価で得られる最善手も同時に記録します。 しかし、局面評価から得られる最善手は間違っている場合もあるため、事態を悪化させる場合があります。 このため、Bookへのデータの追加はプログラムを強くするために有効ですが、追加時には注意が必要、ということになります。

局面の良否判定方法
リバーシプログラムでは局面の良否判定は評価関数が行います。
評価関数は与えられた局面に対する良否の度合いを評価値として出力します。

評価関数は局面の様々な状況から評価値を決定します。 どのような状況を重視するかはプログラムによって異なりますが、 '強い'プログラムの多くは盤面上の特定領域に並んだ石の配置(パターン)を重視しています。 このような特定領域の石の配置(パターン)重視の評価方法は「パターンによる評価」と呼ばれています。

リバーシでは一般に角を取ることが有利とされています。 角に隣接したマスに相手の石が置かれている場合には何れは角を採れる可能性があるため、これもまた有利になります。

これらのことは角周辺の4マスの領域に並んだ石の配置(パターン)に置き換えると簡単に扱えます。 角に自分の石があるか、角は空きで周辺の何れかに相手の石があれば自分にとっては有利ということになります。

4マスの状態はそれぞれが自石/相手石/空きとなり得ますので、3*3*3*3=81通りの状況があり得ます。 「パターンによる評価」ではそれぞれの状況での良否を数値化して予め持っておきます。 局面を評価する場合にはその時の4マスの状態に対応した値を取り出して使用します。

実際に使用されている「パターンによる評価」では角以外にも辺やその他の部分についても同様のチェックを行います。 チェック対象領域を合わせると全盤面が網羅され、縦、横、斜めの全方向の石の並びもチェックされます。 このため、「パターンによる評価」では、石数・着手可能数・確定石といった状況も間接的に考慮されることになります。 評価値はそれらの複数領域に対する良否の合計として出力されます。

予め算出しておく特定領域の良否は通常は過去の対局実績から決定されます。 基本的には、その領域でその並びが発生した場合に勝てた場合には良い状況、負けた場合には悪い状況と判定されます。 ただし、複数の領域で異なる状況が同時発生するため、特定領域の良否を単一対局からは決定できません。

特定領域の良否は他領域の状態との組み合わせを考慮した上で決定されます。 組み合わせ数は膨大な数に上るため、良否の判定には非常に多くの対局結果が使用されます。 「パターンによる評価」が行われる場合には、通常は特定領域の良否判定用に数十から数百万の対局実績が使用されます。