Originally posted by: SystemAdmin
>
>
> yeah mathematically that is not true-- not really nonstop but like keeping cloning hundreds of nodes and after like 10 000 nodes it starts stalling without convergence.
> There is not cut any more in the range array. the pool is now empty but still the node is generated and the cut callback is visited.
> The thing is also that nothing is added in the cut callback because the pool is emptied once here.
>
> branch callback simply returns-- that is all. I check it if the range is empty it immediately returns.
The code in the next reply (without that first return) looks correct to me. You're saying that if the branch callback is called with _rng empty, it still sometimes creates a single child node (as opposed to the normal two children that CPLEX will create if the callback returns without doing anything)? Have you tried printing out _rng.getSize() to make sure that the pool does indeed look empty at such nodes?
I still do not understand the significance of "... and the cut callback is visited." The cut callback is visited at every node. What is there about certain visits that bothers you (other than the possibility that the node at which it is visited ought not exist in the first place)?
/Paul
Mathematicians are like Frenchmen: whenever you say something to them, they translate it into their own language, and at once it is something entirely different. (Goethe)
#CPLEXOptimizers#DecisionOptimization