0% found this document useful (0 votes)
86 views5 pages

MODULE IV - Branch and Bound

The branch and bound method searches a tree model of the solution space for discrete optimization problems. [1] Each node represents a partial problem state, and leaf nodes are complete solutions. [2] Bounding functions prune subtrees that cannot contain optimal solutions based on estimated minimum costs. [3] Variants include first-in first-out (FIFO), last-in first-out (LIFO), and least-cost search, which prioritizes expanding nodes closest to optimal solutions.

Uploaded by

Raji Pillai
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)
86 views5 pages

MODULE IV - Branch and Bound

The branch and bound method searches a tree model of the solution space for discrete optimization problems. [1] Each node represents a partial problem state, and leaf nodes are complete solutions. [2] Bounding functions prune subtrees that cannot contain optimal solutions based on estimated minimum costs. [3] Variants include first-in first-out (FIFO), last-in first-out (LIFO), and least-cost search, which prioritizes expanding nodes closest to optimal solutions.

Uploaded by

Raji Pillai
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/ 5

MODULE IV

BRANCH AND BOUND -- THE METHOD



The design technique known as branch and bound is very similar to backtracking in
that it searches a tree model of the solution space and is applicable to a wide variety of
discrete combinatorial problems.

Each node in the tree generated in defines a problem state. All paths from the root to
other nodes define the state spaceof the problem.

Solution states are those problem states 's' for which the path from the root to 's'
defines a tuple in the solution space. The leaf nodes in the combinatorial tree are the
solution states.

Answer states are those solution states 's' for which the path from the root to 's'
defines a tuple that is a member of the set of solutions (i.e.,it satisfies the implicit
constraints) of the problem.

The tree organization of the solution space is referred to as the state space tree.

A node which has been generated and all of whose children have not yet been
generated is called a live node.

The live node whose children are currently being generated is called the E-node (node
being expanded).

A dead nodeis a generated node, which is not to be expanded further or all of whose
children have been generated.

Bounding functions are used to kill live nodes without generating all their children.

Depth first node generation with bounding function is called backtracking. State
generation methods in which the E-node remains the E-node until it is dead lead to
branch-and-bound method.

The term branch-and-bound refers to all state space search methods in which all
children of the E-node are generated before any other live node can become the E-node.

In branch-and-bound terminology breadth first search(BFS)- like state space search
will be called FIFO (First In First Output) search as the list of live nodes is a first -in-first
-out list(or queue).

A D-search (depth search) state space search will be called LIFO (Last In First Out)
search, as the list of live nodes is a list-in-first-out list (or stack).


Bounding functions are used to help avoid the generation of sub trees that do not
contain an answer node.

The branch-and-bound algorithms search a tree model of the solution space to get the
solution. However, this type of algorithms is oriented more toward optimization. An
algorithm of this type specifies a real -valued cost function for each of the nodes that
appear in the search tree. Usually, the goal here is to find a configuration for which the
cost function is minimized. The branch-and-bound algorithms are rarely simple. They
tend to be quite complicated in many cases.

Example 4.1 : 4-queens Problem
Let us see how a FIFO branch-and-bound algorithm would search the state space tree in
Figure 4.1 for the 4-queens problem.


Figure 4.1 State Space Tree for 4-Queens Problem

Initially, there is only one live node, node1. This represents the case in which no
queen has been placed on the chessboard. This node becomes the E-node.

It is expanded and its children, nodes2, 18, 34 and 50 are generated.

These nodes represent a chessboard with queen1 in row 1and columns 1, 2, 3, and 4
respectively.

The only live nodes 2, 18, 34, and 50.If the nodes are generated in this order, then the
next E-node are node 2.

It is expanded and the nodes 3, 8, and 13 are generated. Node 3 is immediately killed

using the bounding function. Nodes 8 and 13 are added to the queue of live nodes.

Node 18 becomes the next E-node. Nodes 19, 24, and 29 are generated. Nodes 19 and
24 are killed as a result of the bounding functions. Node 29 is added to the queue of live
nodes.

Now the E-node is node 34.Figure 8.1 shows the portion of the tree of Figure 7.2 that
is generated by a FIFO branch-and-bound search. Nodes that are killed as a result of the
bounding functions are a "B" under them.

Numbers inside the nodes correspond to the numbers in Figure 7.2.Numbers outside
the nodes give the order in which the nodes are generated by FIFO branch-and-bound.

At the time the answer node, node 31, is reached, the only live nodes remaining are
nodes 38 and 54.


Least Cost (LC) Search:

In both LIFO and FIFO branch-and-bound the selection rule for the next E-node
is rather rigid and in a sense blind. The selection rule for the next E-node does not give
any preference to a node that has a very good chance of getting the search to an answer
node quickly.

Thus, in Example 4.1, when node 30 is generated, it should have become obvious to
the search algorithm that this node will lead to answer node in one move. However, the
rigid FIFO rule first requires the expansion of all live nodes generated before node 30
was expanded.


The search for an answer node can often be speeded by using an "intelligent" ranking
function (.) for live nodes. The next E-node is selected on the basis of this ranking
function.

If in the 4-queens example we use a ranking function that assigns node 30 a better
rank than all other live nodes, then node 30 will become E-node, following node 29.The
remaining live nodes will never become E-nodes as the expansion of node 30 results in
the generation of an answer node (node 31).

The ideal way to assign ranks would be on the basis of the additional computational
effort (or cost) needed to reach an answer node from the live node. For any node x, this
cost could be

(1) The number of nodes on the sub-tree x that need to be generated before any
answer node is generated or, more simply,

(2) The number of levels the nearest answer node (in the sub-tree x) is from x

Using cost measure (2), the cost of the root of the tree of Figure 8.1 is 4 (node 31 is
four levels from node 1).The costs of nodes 18 and 34,29 and 35,and 30 and 38 are
respectively 3, 2, and 1.The costs of all remaining nodes on levels 2, 3, and 4 are
respectively greater than 3, 2, and 1.

Using these costs as a basis to select the next E-node, the E-nodes are nodes 1, 18, 29,
and 30 (in that order).The only other nodes to get generated are nodes 2, 34, 50, 19, 24,
32, and 31.

The difficulty of using the ideal cost function is that computing the cost of a node
usually involves a search of the sub-tree x for an answer node. Hence, by the time the
cost of a node is determined, that sub-tree has been searched and there is no need to
explore x again. For this reason, search algorithms usually rank nodes only based on an
estimate (.) of their cost.

Let (x) be an estimate of the additional effort needed to reach an answer node from x.
node x is assigned a rank using a function (.) such that (x) =f (h(x)) + (x), where h(x)
is the cost of reaching x from the root and f(.) is any non-decreasing function.

A search strategy that uses a cost function (x) =f (h(x)) + (x), to select the next e-
node would always choose for its next e-node a live node with least (.).Hence, such a
strategy is called an LC-search (least cost search).

Cost function c (.) is defined as, if x is an answer node, then c(x) is the cost (level,
computational difficulty, etc.) of reaching x from the root of the state space tree. If x is
not an answer node, then c(x) =infinity, providing the sub-tree x contains no answer
node; otherwise c(x) is equals the cost of a minimum cost answer node in the sub-tree x.


It should be easy to see that (.) with f (h(x)) =h(x) is an approximation to c (.). From
now on (x) is referred to as the cost of x.


Bounding:

A branch -and-bound searches the state space tree using any search mechanism in
which all the children of the E-node are generated before another node becomes the E-
node.

We assume that each answer node x has a cost c(x) associated with it and that a
minimum-cost answer node is to be found. Three common search strategies are FIFO,
LIFO, and LC.

A cost function (.) such that (x) <=c(x) is used to provide lower bounds on
solutions obtainable from any node x. If upper is an upper bound on the cost of a
minimum-cost solution, then all live nodes x with (x)>upper may be killed as all
answer nodes reachable from x have cost c(x)>= (x)>upper. The starting value for upper
can be set to infinity.

Clearly, so long as the initial value for upper is no less than the cost of a minimum-
cost answer node, the above rule to kill live nodes will not result in the killing of a live
node that can reach a minimum-cost answer node .Each time a new answer is found ,the
value of upper can be updated.

You might also like