Branch and bound is a general technique for finding optimal solutions of various combinatorial and integer programming problems. It entails examining candidates (“branchesâ€), while utilizing knowledge of upper and lower limits (“boundsâ€) to eliminate sub-trees, to find the optimal solution quicker.