Write 1.5-2 page essay(max 12-point font), comparing and contrasting the Backtracking versus Branch-and-Bound design approaches, using your own words. Discuss how they compare to brute-force approach. In addition, discuss the differences and similarities (implementation and performance) between the solution for knapsack problem using Backtracking (Algorithm 5.7) versus Branch and Bound (Algorithm 6.2).The essay needs to be graduate level depth and breadth and at least 50% original thought
Comparing and Contrasting the Backtracking versus Branch-and-Bound design approaches.
The main difference between backtracking and branch-and-bound is that the backtracking algorithm for capturing some or all the solutions to given computational issues, especially for constraint satisfaction issues while branch-and-bound is an algorithm to find the optimal solution to many optimization problems, especially in discrete and combinational optimization.
Backtracking is an algorithm that solves the problem in recursive manner. It is systematic way of trying different sequences of decisions to find the correct decision. All solutions for backtracking need to satisfy a complex set of explicit and implicit constraints while in branch-and-bound is more suitable for situations where we cannot apply the greedy method and dynamic programming.
Furthermore, backtracking finds the solution to the overall issue by finding a solution to the first subproblem and then recursively solving other subproblems based on the solution of the first issue. However, branch-and-bound solves a given problem by dividing it into at least two new restricted subproblems. Hence there is another difference between backtracking and branch-and-bound.
Moreover, efficiency is a major difference between backtracking and branch-and-bound . So, according to efficiency backtacking is more efficient than the branch-and-bound algorithm.
So from the above differences the conclusion is that Backtracking is an algorithm for capturing some or all solution to given computational issue especially for constraint satisfaction issues. Branch-and-Bound ,on the other hand ,is an algoritm to find optimal solutions or many optimization problems,especially in discrete and combinational optimization.That is the main difference between Backtracking and Branch-and-Bound algorithms.
Brute Force Approach:
Firstly we have to know about brute force approach and then about how backtracking and branch-and-bound algorithm different from brute force approach. So, Brute Force method is by solving a paticular by checking all the possible cases which is slow. For,example, you are given a sorted number in an array and you have to find a specific value. The brute force approach is to make for a loop and iterate through the elements. The best case of a brute force is if the element you are accessing is at the beginning or somewhere near since yu will be able to find it immediately.
There are many points which describe that how brute force method is different from backtracking and branch-and-bound algorithms.Brute force is a type of algorithm which computes every possible solution to a problem and then selects one that fulfills the requirement as compare to backtracking and brach-and-bound algorithms.Looking back at other algorithms i can say that the Branch-and-Bound solution is far better than backtracking and Brute Force.The big difference between the three was th constants ignored by the asymtotic analysis.Accordind to the time taken by these algotithms brute force takes the less time s compared to backtracking and branch-and-bound algorithms.
Difference and similarities between the solution for knapsack problem using backtracking versus Branch and Bound:
So, firstly we know about knapsack problem using backtracking method. The knapsack is nothing but a stack where in which we need to place the given items according to the capacity of the knapsack. In case of backtracking we consider the profit but in dynamic programming we consider weights. Knapsack problem is a surely understood class of optimization problem , which tries to expand the profit of items in a knapsack without surpassing its capacity ,Knapsack can be solved by using several algorithms such like greedy,dynamic programming,branch and bound algorithms. The knapsack problem or rucksack problem is a problem in combinational optimization.
Algorithm for knapsack using backtracking is:
Bound(CP,CW,K) {
b=CP,c=CW;
for i=k+1 to n dp {
c=c+w[i];
if(c<m)then
b=b+p[i];
else
return b+(1-(c-m)/w[i])*p[i]
return b;
}}
Consider: CP=Current Profit ,CW= current Weight ,K=index , m=Capacity of knapsack
Knapsack problem comes under combinatorial optimization problem. It says if we have aset of items , containing a weight and a value ,then we need to conclude in a collection of all items and find total count of all intances so that the total weight is less than or equal to a given limit and the total value is as large as possible.So these are the difference between knapsack using backtracking versus branch and bound algorithm.We can also solve the kanpsack problem using branch and bound algorithm which used to design paradigm which is generally use for solving combinatorial optimization problems..
Write 1.5-2 page essay(max 12-point font), comparing and contrasting the Backtracking versus Branch-and-Bound design approaches, using...