Hi Chessfarrell,
now you get to a pretty complex topic. As you said, as long as you play variations you can let CPT only play top-ranked candidiate moves. If you want to jump to the worst position you run the risk to jump to a position which you actually would not reach via a top-ranked candidate move.
There is no simple way to correct this and I have thought about this issue hours already. There two approaches:
1) you save the info wether a position belongs to a variation which is reachable by top-ranked move
2) you calculate this info on the fly during the training.
The first approach runs into many issues when someone adds a new move, changes the ranking, imports some moves or deletes some. At all these moments you have to recalculate for all affected positions (and follow-up positions) whether they are reachable by a top-ranked candidate move list or not. Then we have such a wonderful thing like transposition in chess. Overall this is not easy to implement in a practical way.
The second approach is too time-consuming to do it on the fly.
I tend to follow a different approach. There should be a batch-job that will save the necessary information to each position. If moves are added / deleted or rankings changed the complete sub-repertoire will be marked as "dirty". Its up to the user to run the batch-job again. CPT might ask to do so from to time when you start training the sub-repertoire.
Regards,
Stefan