結局バグが気になってしまった…
この前に書いた、変な突き捨てのバグ、結局原因を突き止めて修正してしまいました。
結論から書くと、スレッドをコントロールする部分にかなり恥ずかしいバグが残っていまして…探索のスレッド毎に、別のスレッドでβカットが発生した/時間切れなどで、探索を中断されたかどうかのフラグを持っているのですが、昔使っていたフラグで今は使っていないフラグを参照している箇所が残ってました _no
というわけで、今までのプログラムでは、探索途中で時間が来た場合に最善手が変な手になっていた可能性があります。もしかすると、ほんの少しだけ挙動がまともになるかも知れないけれど、強さには影響しない…かなぁ…。探索の中断のされ方とか次第で、指し手への影響が変わるのと、デバッグモードでコンパイルした場合には、VC++が特定の数値で構造体の中を初期化するために、フラグが立ちっぱなしになり、影響がもろに出るけれど、リリースモードでコンパイルした場合には、フラグが立たない状態になって、読み筋に影響しないことになりそうな気がします。
しかし、この手のバグは、ちまちまと残っていそうな気がします(--;
最近のコメント