1.09k likes | 2.44k Views
Branch and Bound Algorithm Analysis & Design. Derek DaSilva Bryan Masson. Overview. Branch and Bound General algorithm used for optimization Splits a problem set into two or more smaller sets, i.e. Branching Uses a “bound” to rule out specific solutions to a problem
E N D
Branch and BoundAlgorithm Analysis & Design Derek DaSilva Bryan Masson
Overview • Branch and Bound • General algorithm used for optimization • Splits a problem set into two or more smaller sets, i.e. Branching • Uses a “bound” to rule out specific solutions to a problem • Can give an optimal solution without checking every single solution.
B&B Origins • First Realized By A.H. Land and A.G. Doig for its use in Linear Programming. • Developed to solve all-integer, mixed-integer and zero-one problems. • Later revised by Dakin for nonlinear programming.
Example 1: The Traveling Salesman • Given a set of cities, what is the shortest round-trip path that the salesman can take, visiting every city while not visiting the same city twice? • Create a bound consisting of the sum of the shortest outgoing edges from each node. This is the smallest (though not always possible) path. • Branch from the node, creating all potential solutions containing a given destination node and solutions that do not contain that destination node. (Result is an acyclic tree).
Example 1: The Traveling Salesman (Cont.) • For each branch created, calculate its bound. This is done by taking the parent’s bound, subtracting the smallest weighted edge that is exiting the parent node and then adding the actual weight of the edge connecting the parent to the current node. • Once this is done, select the node with the smallest bound that has not already be examined, and Branch and Bound from that node.
Example 1: The Traveling Salesman (Cont.) • This method of Branching and Bounding examines the paths that have the most potential to be the smallest first. • Once a solution is found, all Bounds are then compared to it. If a node’s current bound is greater than the already discovered solution, then that path is discarded (also known as pruning), thus optimizing the run time.
Example 2: 0-1 Knapsack Problem • Given a knapsack of size K and a collection of n items each of which are associated with a size, determine some subset of these n items that would yield the best fit result. • Create a bound yielding a minimum value limit of the items in the set • Branch from the node, creating all potential solutions containing a given subset node and solutions that do not contain values under the lower bound
Example 2: 0-1 Knapsack Problem (cont.) • Calculate the bound for each branch created this way based on the parent’s bound and the value of the current node. • Continue to select the node with the min yielding bound that has not been visited and branch from that node.
Example 2: 0-1 Knapsack Problem (cont.) • The branch and bound algorithm in this example examines the subset solutions that yield the most potential to be the best choice. • Based on the comparisons a solution may be entirely discarded yielding a more optimal and efficient solution to the 0-1 Knapsack Problem.
Applications • Knapsack Problem • Integer Programming • Nonlinear Programming • Traveling Salesman Problem • Quadratic Assignment Problem • Max Profit Scheduling Problem • Maximum Satisfiability Problem • Nearest Neighbor Search • Cutting Stock Problem • False Noise Analysis