GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

バグ一個発見

 昨日のリストの2番のやつ。

 私のUCTの実装は、対局(プレイアウトに相当)をマルチスレッド化する為に、UCTの木をノード単位でロックしていました。

 んで、そういう実装だとあるスレッドがUCTの木をLeafに向かって辿っている時に、同じく木を辿っている他のスレッドがそれを追い抜く事がありえます。

 問題はここからで、Leaf局面から対局を初めた直後に詰む局面があると、追いぬかれたスレッドが木を辿っている途中に他のスレッドがノードの情報(対局で得た報酬とか)を書き換えてしまい、結果的にUCB値計算ルーチンで0除算エラーになるってのがバグの発生状況らしいです。

 という訳で、早速修正して学習を再開させてみます。