I thought the solution set had to be convex or concave for branch and bound to work as an optimization algorithm, and this one clearly isn't?
EDIT: Nope. It's just the objective function that needs to be convex, not the constraints.
EDIT: Nope. It's just the objective function that needs to be convex, not the constraints.
Now, convexity comes into play because it allows us to correctly determine these lower bounds because we can guarantee a globally optimal solution to the relaxed problem. If we lack convexity, it's hard to find such solutions. Does that mean branch and bound requires convexity? No. You can still perform branch and bound using locally optimal solutions and even though you don't have a guaranteed global bound, there's relatively good information about where we should search next. This can lead to good, but not provably globally optimal solutions.