# Dynamic Programming vs Branch and Bound

Dynamic Programming vs Branch and Bound is discussed in this blog post. Both methods are used for solving optimization problems. Optimization methods find the best solution out of a pool of feasible solutions. The aim of optimization methods is to minimize or maximize the given cost function.

Branch and Bound is a method for solving discrete and combinatorial optimization issues as well as mathematical optimization problems. The collection of candidate solutions is viewed as forming a rooted tree with the entire set at the root in a branch-and-bound method, which uses state-space search to systematically enumerate them. The method investigates the tree’s branches, which are subsets of the solution set. Before enumerating a branch’s candidate solutions, it’s tested against upper and lower estimated bounds on the optimal solution, and it’s eliminated if it can’t generate a better solution than the algorithm’s best so far.

Dynamic programming is a computer programming approach as well as a mathematical optimization tool. Richard Bellman invented the approach in the 1950s, and it has since been used in a variety of industries. It refers to breaking down a big problem into simpler sub-problems in a recursive way in both situations. While certain choice issues cannot be deconstructed in this manner, decisions that span many points in time are frequently dismantled in this manner. In computer science, a problem is said to have optimum substructure if it can be solved optimally by breaking it down into sub-problems and then recursively finding the best solutions to the sub-problems.

## Dynamic Programming vs Branch and Bound Additional Reading: Read More