update
This commit is contained in:
16
src/mcts.jl
16
src/mcts.jl
@@ -182,6 +182,7 @@ function simulate(a, node::MCTSNode, decisionMaker::Function, progressValueEstim
|
|||||||
|
|
||||||
for depth in 1:maxDepth
|
for depth in 1:maxDepth
|
||||||
if node.isterminal
|
if node.isterminal
|
||||||
|
simTrajectoryReward += node.reward
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
simTrajectoryReward += node.reward
|
simTrajectoryReward += node.reward
|
||||||
@@ -448,12 +449,15 @@ function runMCTS(
|
|||||||
while !isleaf(node)
|
while !isleaf(node)
|
||||||
node = UCTselect(node, w)
|
node = UCTselect(node, w)
|
||||||
end
|
end
|
||||||
|
if node.isterminal
|
||||||
expand(a, node, decisionMaker, progressValueEstimator, isterminal, n=n)
|
# MCTS arrive at the leaf node that is also a terminal state,
|
||||||
|
# do nothing then go directly to backpropagation
|
||||||
leafNode = UCTselect(node, w)
|
else
|
||||||
simTrajectoryReward = simulate(a, leafNode, decisionMaker, progressValueEstimator,
|
expand(a, node, decisionMaker, progressValueEstimator, isterminal, n=n)
|
||||||
isterminal, maxDepth, n=n)
|
leafNode = UCTselect(node, w)
|
||||||
|
simTrajectoryReward = simulate(a, leafNode, decisionMaker, progressValueEstimator,
|
||||||
|
isterminal, maxDepth, n=n)
|
||||||
|
end
|
||||||
backpropagate(leafNode, simTrajectoryReward)
|
backpropagate(leafNode, simTrajectoryReward)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user