Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
89 views7 pages

Unit-2 Branch and Bound Techniques

The document discusses different search techniques used in branch and bound algorithms including least cost search, breadth-first search, and depth-first search. It also covers when to apply branch and bound, basic concepts, types of problems, and examples like job assignment and knapsack problems.

Uploaded by

anshul.saini0803
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views7 pages

Unit-2 Branch and Bound Techniques

The document discusses different search techniques used in branch and bound algorithms including least cost search, breadth-first search, and depth-first search. It also covers when to apply branch and bound, basic concepts, types of problems, and examples like job assignment and knapsack problems.

Uploaded by

anshul.saini0803
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Different search techniques in branch and bound:

The Branch algorithms incorporate different search techniques to traverse a state space tree.
Different search techniques used in B&B are listed below:

1. LC search (Least Cost Search):

It uses a heuristic cost function to compute the bound values at each node. Nodes are added to the
list of live nodes as soon as they get generated.
The node with the least value of a cost function selected as a next E-node.

2.BFS(Breadth First Search):


It is also known as a FIFO search.
It maintains the list of live nodes in first-in-first-out order i.e, in a queue, The live nodes are searched
in the FIFO order to make them next E-nodes.

3. DFS (Depth First Search):


It is also known as a LIFO search.
It maintains the list of live nodes in last-in-first-out order i.e. in a stack.

The live nodes are searched in the LIFO order to make them next E-nodes.

When to apply Branch and Bound Algorithm?

Branch and bound is an effective solution to some problems, which we have already discussed. We’ll
discuss all such cases where branching and binding are appropriate in this section.

 It is appropriate to use a branch and bound approach if the given problem is discrete
optimization. Discrete optimization refers to problems in which the variables belong to the
discrete set. Examples of such problems include 0-1 Integer Programming and Network Flow
problems.

 When it comes to combinatory optimization problems, branch and bound work well. An
optimization problem is optimized by combinatory optimization by finding its maximum or
minimum based on its objective function. The combinatory optimization problems include
Boolean Satisfiability and Integer Linear Programming.

Basic Concepts of Branch and Bound:

▸ Generation of a state space tree:

As in the case of backtracking, B&B generates a state space tree to efficiently search the solution
space of a given problem instance.

In B&B, all children of an E-node in a state space tree are produced before any live node gets
converted in an E-node. Thus, the E-node remains an E-node until i becomes a dead node.

 Evaluation of a candidate solution:

Unlike backtracking, B&B needs additional factors evaluate a candidate solution:


1. A way to assign a bound on the best values of the given criterion functions to each node in a
state space tree: It is produced by the addition of further components to the partial solution
given by that node.

2. The best values of a given criterion function obtained so far: It describes the upper bound
for the maximization problem and the lower bound for the minimization problem.

 A feasible solution is defined by the problem states that satisfy all the given constraints.

 An optimal solution is a feasible solution, which produces the best value of a given objective
function.

 Bounding function :

It optimizes the search for a solution vector in the solution space of a given problem instance.

It is a heuristic function that evaluates the lower and upper bounds on the possible solutions at each
node. The bound values are used to search the partial solutions leading to an optimal solution. If a
node does not produce a solution better than the best solution obtained thus far, then it is
abandoned without further exploration.

The algorithm then branches to another path to get a better solution. The desired solution to the
problem is the value of the best solution produced so far.

▸ The reasons to dismiss a search path at the current node :

(i) The bound value of the node is lower than the upper bound in the case of the maximization
problem and higher than the lower bound in the case of the minimization problem (ii) The node
represents infeasible solutions, de violation of the constraints of the problem.

(iii) The node represents a subset of a feasible solution containing a single point. In this case, if the
latest solution is better than the best solution obtained so far the best solution is modified to the
value of a feasible solution at that node.

Types of Branch and Bound Solutions:

The solution of the Branch and the bound problem can be represented in two ways:

 Variable size solution: Using this solution, we can find the subset of the given set that gives
the optimized solution to the given problem. For example, if we have to select a
combination of elements from {A, B, C, D} that optimizes the given problem, and it is found
that A and B together give the best solution, then the solution will be {A, B}.

 Fixed-size solution: There are 0s and 1s in this solution, with the digit at the ith position
indicating whether the ith element should be included, for the above example, the solution
will be given by {1, 1, 0, 0}, here 1 represent that we have select the element which at ith
position and 0 represent we don’t select the element at ith position.
Classification of Branch and Bound Problems:

The Branch and Bound method can be classified into three types based on the order in which the
state space tree is searched.

1. FIFO Branch and Bound

2. LIFO Branch and Bound

3. Least Cost-Branch and Bound

We will now discuss each of these methods in more detail. To denote the solutions in these
methods, we will use the variable solution method.

1. FIFO Branch and Bound

First-In-First-Out is an approach to the branch and bound problem that uses the queue approach to
create a state-space tree. In this case, the breadth-first search is performed, that is, the elements at
a certain level are all searched, and then the elements at the next level are searched, starting with
the first child of the first node at the previous level.

For a given set {A, B, C, D}, the state space tree will be constructed as follows :

State Space tree for set {A, B, C, D}

The above diagram shows that we first consider element A, then element B, then element C and
finally we’ll consider the last element which is D. We are performing BFS while exploring the nodes.
So, once the first level is completed. We’ll consider the first element, then we can consider either B,
C, or D. If we follow the route then it says that we are doing elements A and D so we will not
consider elements B and C. If we select the elements A and D only, then it says that we are selecting
elements A and D and we are not considering elements B and C.

2. LIFO Branch and Bound

The Last-In-First-Out approach for this problem uses stack in creating the state space tree. When
nodes are added to a state space tree, they are added to a stack. After all nodes of a level have been
added, we pop the topmost element from the stack and explore it.

For a given set {A, B, C, D}, the state space tree will be constructed as follows :

State space tree for element {A, B, C, D}

Now the expansion would be based on the node that appears on the top of the stack. Since node 5
appears on the top of the stack, so we will expand node 5. We will pop out node 5 from the stack.
Since node 5 is in the last element, i.e., D so there is no further scope for expansion.

3. Least Cost-Branch and Bound

To explore the state space tree, this method uses the cost function. The previous two methods also
calculate the cost function at each node but the cost is not been used for further exploration.

In this technique, nodes are explored based on their costs, the cost of the node can be defined using
the problem and with the help of the given problem, we can define the cost function. Once the cost
function is defined, we can define the cost of the node.
Now, Consider a node whose cost has been determined. If this value is greater than U0, this node or
its children will not be able to give a solution. As a result, we can kill this node and not explore its
further branches. As a result, this method prevents us from exploring cases that are not worth it,
which makes it more efficient for us.
Let’s first consider node 1 having cost infinity shown below:

In the following diagram, node 1 is expanded into four nodes named 2, 3, 4, and 5.

Node 1 is expanded into four nodes named 2, 3, 4, and 5

Assume that cost of the nodes 2, 3, 4, and 5 are 12, 16, 10, and 315 respectively.
In this method, we will explore the node which is having the least cost. In the above figure, we can
observe that the node with a minimum cost is node 4. So, we will explore node 4 having a cost of 10.

During exploring node 4 which is element C, we can notice that there is only one possible element
that remains unexplored which is D (i.e, we already decided not to select elements A, and B). So, it
will get expanded to one single element D, let’s say this node number is 6.

Advantages of Branch and Bound Algorithm:

 We don’t explore all the nodes in a branch and bound algorithm. Due to this, the branch and
the bound algorithm have a lower time complexity than other algorithms.

 Whenever the problem is small and the branching can be completed in a reasonable amount
of time, the algorithm finds an optimal solution.

 By using the branch and bound algorithm, the optimal solution is reached in a minimal
amount of time. When exploring a tree, it does not repeat nodes.

Disadvantages of Branch and Bound Algorithm:

 It takes a long time to run the branch and bound algorithm.

 In the worst-case scenario, the number of nodes in the tree may be too large based on the
size of the problem.
Job Assignment problem using Branch and Bound
jobs 1 2 3 4
penalty 5 10 6 3
deadline 1 3 2 1
time 1 2 1 1
0/1 Knapsack problem Using Branch and Bound
M=15, n=4

profit 10 10 12 18
weight 2 4 6 9
per unit weight 5 2.5 2 2

You might also like