Null Moveと将棋の不思議な関係

今日は将棋プログラムの探索について少し書いてます。将棋プログラムは探索と評価という両輪が補完しあって動いています。探索というのは人間でいう読みと同じような操作です。また評価は人間でいう形勢判断に近いものです。少しくらい評価にダメな部分があっても、探索によって補うことが可能ですし、逆もまた然りです。f:id:ponanza:20140331221603j:plain

探索の一つのテクニックにNull Move Pruningというのがあります。Nullの意味は「からっぽ」で、Moveは「指し手」、Pruningは「枝刈り」です。日本語に無理やり訳すと「からっぽの指し手の枝刈り」くらいでしょうか。からっぽの指し手の意味することはパスをするという意味です。パスをすることと枝刈りはどんな関係があるんでしょうか?

具体的な局面を持ちだして考えてみましょう。第1図は有名な局面です。評価値としては、どれくらいが適正か難しいですが、Ponanzaは先手が+50点くらいと言っています。

f:id:ponanza:20140401031006p:plain

第1図 角換わり腰掛け銀先後同型 人間の膨大な研究が注がれ、現在は先手有利と言われている

 

ここで▲9八角と打ってみましょう(第二図)。どうですか皆さん、あまりの筋の悪さに目眩がしてきたと思います(笑)。いま先手が▲9八角と打ったので手番は後手番なのですが、ここで後手がパスをしたとしましょう。パスをしてもらったら先手の番ですが、それでも評価値はPonanzaによると先手の評価値は-1300点くらいです。とてもじゃないですがやる気がでませんね。

f:id:ponanza:20140401030857p:plain

第2図 ありえない角打ち 常人ならば一秒も考えない手だ

 

話が戻ります、今後手は▲9八角と打たれた時に具体的な指し手で検証せずにパスをするという手でも十分評価値がいいコトを示しました。パスをしてみても評価値がいい時、その局面は探索する必要がないとして枝刈りをする。このテクニックをNull Move Pruningといいます。

今日の説明は結構大雑把でこれ以上厳密な議論をするにはアルファベータ探索のお話をしなければならいないですがそれはまたの機会に。将棋プログラムはNull Move Pruningを含む様々な枝刈りをしていることを知っていただければ幸いです。

つづき