うらお昨日の記事でONE_PLY(1手の深さ)を1以外にする話が出たが、これが理解できない人が大半だということにいまさらながら気づいた。ONE_PLYというのは1手の深さのことである。仮にONE_PLY=2にしたときの1という深さは、0.5手を意味することになるわけだろ?0.5手みたいなものがあるのか?結論から言うと、0.5手はある。古くはYSSの山下さんが卒業論文で「0.5手延長」とか言い出したあたりにまで遡る。いや、歴史的にはそれより遥か昔になるのかも知れん。0.5手みたいなものが必要なのか?それは空想上の概念なのか?そうではない。ように2回王手をした場合、0.5手延長×2になるので1手延長である。そこで、本来なら、4手の深さまでしか読まないところ、その指し手の変化については、5手の深さまで読むわけだ。これが王手延長という考え方である。昔のソフトは無駄に王手をして、都合の悪い変化を自分の読みの深さの外側に追いやってしまう(水平線効果)ことが多かったが、王手を延長することでその現象を少しだけ回避することが出来るし、王手をすることで詰むこともあるわけで、王手絡みの指し手を重点的に読むという意味もある。2になっていれば、0.5手延長は、残り探索深さに1を足すだけで良い。具体的には次のようなプログラムになる。王手の指し手であるなら残り探索深さに0.5手を加算する。王手の指し手であるなら残り探索深さに0.5手を加算する。1だとまずいわけであるな。1でも(王手延長に関しては)問題とならない。:公開されているフリーの将棋ソフトって、王手千日手(反則)をやるのがたまに有りますが、回避プログラムは難しいんでしょうか?どうでもいいことなんですが、技巧が公開される前の村山慈明7段の棋譜を技巧で解析したら、攻め筋と攻めのタイミングが妙に一致率が高かった。これ以降、村山慈明7段が技巧にしか見えなくなりました。:連続王手の千日手、回避するコードを書くのわりと面倒ですね。連続王手の千日手はチェスにはない概念なので、Stockfishのコードにはそれが含まれていないので、Stockfishを参考にする場合でも、自ら実装しないといけない部分でもありますし。する意味はあるのでしょうか?人間のチェスでは、白黒両方指して1手と数えると記憶しています。読みを打ち切れるので”速い”という事でしょうか。する意味はあるのでしょうか?最小で1/64手が表現できます。王手延長のときに0.5手ではなく43/60手だけ延長するだとか、細かなコントロールが出来るようになります。人間のチェスでは、白黒両方指して1手と数えると記憶しています。plyをそう数えることはありますが、ここでの話とは関係ないです。違いがあるかもしれないという設計思想(?)なのですね。これが、>さすがチューニングの鬼と言ったところか。この違いを有意に検出しようとすると、対局数が100万局でも足りない気がします。この違いを有意に検出しようとするとまあ、勝率に直接響くようなパラメーターなら1万局もやればそこそこ調整は出来ますので...。:そこまでは完璧で、正しい理解です。詳しくは明日の記事で。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。