Does branch-and-bound always achieve a globally optimal solution?
The idea of branch and bound is almost close to brute force search.
We keep splitting the search space, and work on the subproblems. The bounding part of the algorithm stop us from exploring a branch only if it is proven to not consist of the optimal solution.
Since we do not discard any potential global optimal, we will find one if it exists.