85DATA OTHELLO PAGE ホームへ
MYCARオセロプログラムの作り方掲示板BLOGプロフィール

OthelloPage HOMEオセロプログラムの作り方 

※「Othello、オセロ」は株式会社メガハウスの登録商標です。


5.先読み 〜Mini-Max探索〜

2章と3章で1手先読みを行い、一番良い評価点の箇所を選択しました。
今回は、もう1手先読み(2手先読み)を行った場合を考えて見ます。

下図の場合、黒番です。着手は5箇所あります。



※図の評価点は、参考例です。これは局面評価によって異なります。

5箇所置いた場合、図「@自分の番」では、A〜Eになります。
この時点では、どの箇所が良いのかは、分かりません。

(1) Aに着手した場合
「A相手の番」では、A1〜A5の5パターンになります。
この時に、局面の評価をそれぞれ行います。
このA1〜A5の中で一番評価点が悪いものを選択します。(ここがポイント)
「相手が一番良い手、(自分にとって不利)を打ってきた」と仮定するのです。
図の例では、A3が一番低得点なので、Aの評価点を決定します。(図の例ではAの評価点は1)

(2) Bに着手した場合
「A相手の番」では、B1〜B3の3パターンになります。
B3が一番悪い評価なので、Bの評価点を決定します。(図の例ではBの評価点は5)

(3) 同様にCからEを着手し、相手が
それぞれ着手した、得点の一番悪い評価点をそれぞれの評価点と決定します。

(4) この中で、AからEの評価点で、Bが一番良い評価点なので、Bを選択するのが一番良い手であるという事になります。

つまり、
「相手が一番良い手(自分にとって一番悪い手 MINI)を打ってきたと仮定し、その中で一番良い手(MAX) を打つ」
・・・と言うことです。

では、次に3手先読みを考えてみます。
考え方をしては、2手先読みと同じです。

下図を見て下さい。簡略化してみました。
この様な図は「ゲーム木」と呼ばれているみたいですね。


この図の例では「@自分の番」で、AとBの2箇所の着手位置があった場合です。
Aに着手したとき、「A相手の番」での選択肢はA1とA2の2箇所です。
この時点では、まだ、どちらが良いかを決定しません。

A1に相手が着手した場合、「B自分の番」での着手位置はA1-1〜A1-4の4箇所です。
この時に自分にとって一番良い手A1-1を選択します。

A2に相手が着手した場合、「B自分の番」での着手位置はA2-1〜A2-3の3箇所です。
この時に自分にとって一番良い手A2-3を選択します。

同様にB1の時、B2の時の後に「B自分の番」時では、一番良い評価点を選択します。

「B自分の番」では一番良い手を選択するのです。(MAX値)

この後に、
「A相手の番」、A1とA2を比較します。
ここでは、一番悪い手を選択します(MINI
値)
この場合では、「4」ですね。

次に、「A相手の番」、B1とB2を比較します

同様に、一番悪い手を選択します(MINI値)
この場合では、「5」ですね。

「A相手の番」では一番悪い手を選択するのです。(MINI値)

次に「@自分の番」でAとBを比較し、一番良い手を選択の
Bの「5」を着手位置として決定するします。


トーナメント表のように、下から(先読み後)上へと、勝ち上がっていくような考え方です。
トーナメントと違うのは、自分の番では良い点を、相手の番では悪い点が勝ち上がっていくということです。

この例では、3手先読みの場合でしたが、考え方は何手先読みでも同じことです。

この先読み数が多いほど、間違った手(不利な手)は打たなくなり、強さに比例していくのです。


   B-NEXT.GIF - 453BYTES