In the Xpress-optimizer documentation, there is a NODESELECTION parameter and a BACKTRACK parameter. I want to understand the difference between them.
Thanks a lot!
The default branch-and-bound search in the Xpress-Optimizer combines global backtracks with local dives. The Optimizer will pick up an active node from the global pool and then perform a dive on it by branching the node and then recursively continuing with one of the child nodes. This is repeated until a child node is reached that is either integer feasible or it can be shown that no improving integer solution exists in its subtree. At this point a full backtrack is performed to a new active node from the global pool.
BACKTRACK always specifies how to pick up the next node to work on when performing a full backtrack, i.e., when picking up an active node from the global pool.
NODESELECTION is more about the structure of the search, so what should happen after having picked up the next node from the global pool. It determines whether we perform a full dive on the node, or if we should throw the child nodes back into the global pool after branching and pick a new node from the global pool. Note that NODESELECTION=5 (depth-first) is a bit special since the exact same behavior could be accomplished by setting NODESELECTION=2 (always perform a full backtrack after branching) and BACKTRACK=4 (deepest node).
Thanks for your explanations
But if we set the BACKTRACK parameter to unused, what the solver is expected to do without full backtrack ??
If you set BACKTRACK to any invalid value, including the one labelled "unused" (value 1), the Optimizer will fall back on the default backtrack strategy.
Retrieving data ...