初手のprob cut

初手で、LMRのように一度残りの深さを削減して調べる探索を行う場合は、LMRと言わないように思いますので、prob cutと言うことにしました。


私の初手でのprob cutは、max関数で言うと、alpha値を下回るかではなく、null move pruningのようにbeta値を上回るかを調べます。


残りの深さが5、6手未満では、残りの深さを1手削減して、確か(beta値+400)位を上回るかどうかを最初に調べます(400ではなく200だったかな?)。
これは、少し安全めに調べるような感覚です。
上回れば、betaカットとします。
私のプログラムは、歩が200点で、銀が1000点です。


残りの深さが5,6手以上のときは、確か、残りの深さを1、2手削減して、確か、(beta値+200)とかで調べていたように思います(200ではなく0だったかな?)。


あと、この初手のprob cutを行う前に評価関数を呼んで、評価値を調べます。
評価値が、(beta値+400とか)を超えている場合のみ、このprob cutを行います(400とかであってたかな?)。
これは、浅い探索で(beta値+変数)を上回りそうな、betaカットが起きる可能性が高めの時のみ、調べるような感覚です。

また、初手の中でも前回反復時の最善手の時のみです。
他にも王手がかかっている局面では行なわない(どっちだっけ)、などの条件がいろいろあったように思います。


この手法を用いると確か勝率が2%くらい上がったように思います。
いろいろ試行錯誤して調べましたが、このくらいの勝率しか上がりませんでした。
参考になると嬉しいです。