The Decision Based Tree solver generates row specs by:
- choosing and removing a decision from the tree
- selecting an option from that decision
- adding the constraints from the chosen option to the root of the tree
- adding the sub decisions from the chosen option to the root of the tree
- "pruning" the tree by removing any options from the tree that contradict with the new root node
- any decisions that only have 1 remaining option will have that option also moved up the tree, and pruned again.
- restarting from 1, until there are no decision left
- creating a rowspec from the constraints in the remaining root node.