I have a non-linear objective function F of p binary arguments…

I would like to solve this using a branch and bound method, using a continuous relaxation to acquire the bound.

The continuous relaxation of F, however, is not convex. Instead I have another function which lower bounds F for all inputs in the domain H(x1,…,xp) < F(x1,…,xp) etc. The continuous relaxation of H is convex.

I can provide the objective function F, H, as well as a function B that returns a bound by solving the convex continuous relaxation minimization problem.

This should be all I need to provide a branch and bound algorithm.

Is there a flexible enough API somewhere that performs the branch and bound algorithm if I pass objective and bound functions as arguments?

Thanks!