osqp / miosqp

MIQP solver based on OSQP
Apache License 2.0
96 stars 27 forks source link

Error in choose_leaf results in very inefficient tree exploration #12

Open Azureuse opened 3 years ago

Azureuse commented 3 years ago

For second phase of two-phase exploration the goal is to choose the leaf with the "best bound". We are performing a minimisation problem and therefore the best lower bound is the smallest one - argmax should be argmin.

https://github.com/oxfordcontrol/miosqp/blob/master/miosqp/workspace.py#L145

Replacing it reduces the number of iterations in my problems substantially (over 100x)!

yasirroni commented 3 years ago

Are you sure that is not by accident? Because randomness seems play some rule in this tree search algorithm.

But, did not choosing the highest lower bound is more logical? I'm interested to test it on large MIQP problem.