I understand that the MCTS algorithm expands its tree after it has selected the best route to take. However, how does it decide when to end selection and then expand the tree? It cannot just traverse down the whole graph... then it would always produce child nodes at the same place (right?) So, how does the MCTS decide when to produce a child node when traversing down the search tree?
With each rollout the algorithm goes through steps of selection, expansion, simulation, and backpropagation. It does this incrementally one move at a time. 1 selection, 1 expansion, 1 simulation of random playouts them back propagated the values back to root. Next rollout and henceforth depending on ucb weights between exploration and exploitation.