コード例 #1
0
 public Opt_SP_UCTTreeNode(IPuzzleMove move, Opt_SP_UCTTreeNode parent, IPuzzleState state, MersenneTwister rng, bool ucb1Tuned, bool rave, double raveThreshold, bool nodeRecycling, double const_C = 1, double const_D = 20000, bool generateUntriedMoves = true)
 {
     Move               = move;
     this.parent        = parent;
     this.const_C       = const_C;
     this.const_D       = const_D;
     rnd                = rng;
     childNodes         = new List <Opt_SP_UCTTreeNode>();
     NextLRUElem        = null;
     PrevLRUElem        = null;
     SetActive          = false;
     wins               = 0;
     visits             = 0;
     squares_rewards    = 0;
     RAVEwins           = 0;
     RAVEvisits         = 0;
     squaredReward      = 0;
     topScore           = double.MinValue;
     this.ucb1Tuned     = ucb1Tuned;
     this.rave          = rave;
     this.raveThreshold = raveThreshold;
     this.nodeRecycling = nodeRecycling;
     if (generateUntriedMoves)
     {
         untriedMoves = state.GetMoves();
     }
 }