10/11/20 23:51:48 0
実際に次の1手を決める場合には、適当なところで読みを打ち切り、打ち切った局面における勝敗に
関する近似(通常は、「評価関数」と呼ばれる「駒得」や「王の守り」等の局面の要素に基づく近似)
を行う必要がある。
3.ミニマックス原理とαーβ法
図2 図1において、○は、現局面における手番の側の指す局面、□は相手側の指す局面である。
ここでは、各局面における手が3手ずつであり、2手先(3手目)の局面では勝敗の近似値が
得られているものとしその評価を3手目の局面の下に記述している。2手目の局面では相手側が指すので、
相手側に取りもっとも有利な手を指すはずである。それは、指した後の局面が相手側にとって最善
(手番側にとって最悪)となるようにするもので、2手目の局面から3手目の局面への太線の手
(2手目の局面bから局面fへの手、など)である。したがって、1手目でbを選ぶとやや優勢(fの評価)、
cを選ぶと互角、dを選ぶとやや劣勢の評価を得ることになる。この結果、1手目(現局面)では、
bを選ぶことになる。これは「ミニマックス原理」と呼ばれ、ゲームプログラミングの基本である。
図1では、9個の局面について評価関数で近似することになる。
図3 これに対し、図2では、まずbから先の局面の評価を行うが、ここまでは図1と同じでbは
やや優勢となる。しかし、cから先のiの局面の評価(互角)が得られると、jの局面は評価する
必要がないことになる。jの評価が互角より手番の側に有利な場合は、その手を相手が選ぶことはないし、
jの評価が互角より相手側に有利な場合は、cの評価はより相手側に有利となるが、いずれにしろ、
現局面でcへの手は選ばないからである。すなわち、cから先の局面で、bの評価より相手側にとって
有利なものが一つでも見つかると、cから先のその他の手は評価する必要がない。これを「βカット」という。
同様にdでは、局面lの評価がbの評価より相手側にとって有利なので、その他の手はカットされる