0% found this document useful (0 votes)
95 views12 pages

Mod-3-Part-2 BB Control Abstraction 221027 153239

Branch and Bound is a state space search method that generates all children of a node before expanding any children. It uses three types of searches: FIFO, LIFO, and LC (Least Cost). FIFO uses a queue, LIFO uses a stack, and LC search uses a ranking function to select the child node with the minimum cost to expand first. This helps guide the search towards an optimal solution more efficiently than FIFO or LIFO searches. The LC search algorithm uses Least-cost() and Add_node() functions to select the next node to expand and add/remove nodes from the list of live nodes.

Uploaded by

Anonymous
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)
95 views12 pages

Mod-3-Part-2 BB Control Abstraction 221027 153239

Branch and Bound is a state space search method that generates all children of a node before expanding any children. It uses three types of searches: FIFO, LIFO, and LC (Least Cost). FIFO uses a queue, LIFO uses a stack, and LC search uses a ranking function to select the child node with the minimum cost to expand first. This helps guide the search towards an optimal solution more efficiently than FIFO or LIFO searches. The LC search algorithm uses Least-cost() and Add_node() functions to select the next node to expand and add/remove nodes from the list of live nodes.

Uploaded by

Anonymous
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/ 12

Module -3

Part-2
Branch and Bound
Branch and Bound
Definitions:
• Branch and Bound is a state space search method in which all the children of a
node are generated before expanding any of its children.
• Branch & Bound (B & B) is general algorithm (or Systematic method) for
finding optimal solution of various optimization problems, especially in
discrete and combinatorial optimization.
• The B&B strategy is very similar to backtracking in that a state space tree is
used to solve a problem.
• It is much slower, indeed (truly), it often (rapidly) leads to exponential time
complexities in the worst case
• Branch and Bound is the generalization of both graph search strategies,
BFS(Breadth First Search) and D-search
• Live node is a node that has been generated but whose children have not yet
been generated.
• E-node is a live node whose children are currently being explored. In other
words, an E-node is a node currently being expanded.
• Dead node is a generated node that is not be expanded or explored any
further. All children of a dead node have already been expanded.
Definition of Branch and Bound
• Branch and Bound is a state space search method in which all the children of
an E –node are generated before any other live node can become the E-node
• A BFS like state space search is called as FIFO (First in first out) search as the
list of live nodes in a first in first out(Stack).
• A D-search like state space search is called as LIFO (last in first out) search as
the list of live nodes in a last in first out list(Queue).
Here we will use 3 types of search strategies in B&B:
1. FIFO (First In First Out)-Queue
2. LIFO (Last In First Out)-Stack
3. LC (Least Cost) Search
FIFO Branch and Bound Search:
• For this we will use a data structure called Queue. Initially Queue is empty.

• Assume the node 12 is an answer node (solution)


• In FIFO search, first we will take E-node as a node 1.
• Next we generate the children of node 1. We will place all these live nodes in a
queue.
LIFO Branch and Bound Search
• For this we will use a data structure called stack. Initially stack is empty.
Example:
• LC (Least Cost) Branch and Bound Search
• In both FIFO and LIFO Branch and Bound the selection rules for the next E-
node in rigid and blind.
• The selection rule for the next E-node does not give any preferences to a node
that has a very good chance of getting the search to an answer node quickly.
• In this we will use ranking function or cost function.
• We generate the children of E-node, among these live nodes; we select a node
which has minimum cost.
• By using ranking function we will calculate the cost of each node.
• Initially we will take node 1 as E-node. Generate children of node 1, the
children are 2, 3,4.
• By using ranking function we will calculate the cost of 2, 3, 4 nodes is ĉ =2,
ĉ =3, ĉ =4 respectively.
• Now we will select a node which has minimum cost i.,e node 2.
• For node 2, the children are 5, 6. Between 5 and 6 we will select the node 6
since its cost minimum.
• Generate children of node 6 i.,e 12 and 13. We will select node 12 since its
cost (ĉ =1) is minimum.
• More over 12 is the answer node. So, we terminate search process.
• Control Abstraction for LC-search
• Let t be a state space tree and c() a cost function for the nodes in t.
• If x is a node in t, then c(x) is the minimum cost of any answer node in the sub
tree with root x.
• Thus, c(t) is the cost of a minimum-cost answer node in t.
• LC search uses ĉ to find an answer node.
• The algorithm uses two functions
• 1. Least-cost()
• 2. Add_node().
• Least-cost() finds a live node with least c(). This node is deleted from the list of
live nodes and returned.
• Add_node() to delete and add a live node from or to the list of live nodes.
• Add_node(x) adds the new live node x to the list of live nodes. The list of live
nodes be implemented as a min-heap.

You might also like