KEMBAR78
Branch & bound | PPT
Backtracking And Branch And Bound
Subset & Permutation Problems
• Subset problem of size n.
 Nonsystematic search of the space for the answer takes
O(p2n
) time, where p is the time needed to evaluate
each member of the solution space.
• Permutation problem of size n.
 Nonsystematic search of the space for the answer takes
O(pn!) time, where p is the time needed to evaluate
each member of the solution space.
• Backtracking and branch and bound perform a
systematic search; often taking much less time
than taken by a nonsystematic search.
Tree Organization Of Solution Space
• Set up a tree structure such that the leaves
represent members of the solution space.
• For a size n subset problem, this tree structure has
2n
leaves.
• For a size n permutation problem, this tree
structure has n! leaves.
• The tree structure is too big to store in memory; it
also takes too much time to create the tree
structure.
• Portions of the tree structure are created by the
backtracking and branch and bound algorithms as
needed.
Subset Tree For n = 4
x1=1 x1= 0
x2=1 x2= 0 x2=1 x2= 0
x3=1 x3= 0
x4=1 x4=0
1110 1011 0111 0001
Permutation Tree For n = 3
x1=1 x1=2
x1= 3
x2= 2 x2= 3 x2= 1 x2= 3 x2= 1 x2= 2
x3=3 x3=2 x3=3 x3=1 x3=2 x3=1
123 132 213 231 312 321
Backtracking
• Search the solution space tree in a depth-
first manner.
• May be done recursively or use a stack to
retain the path from the root to the current
node in the tree.
• The solution space tree exists only in your
mind, not in the computer.
Backtracking Depth-First Search
x1=1 x1= 0
x2=1 x2= 0 x2=1 x2= 0
Backtracking Depth-First Search
x1=1 x1= 0
x2=1 x2= 0 x2=1 x2= 0
Backtracking Depth-First Search
x1=1 x1= 0
x2=1 x2= 0 x2=1 x2= 0
Backtracking Depth-First Search
x1=1 x1= 0
x2=1 x2= 0 x2=1 x2= 0
Backtracking Depth-First Search
x1=1 x1= 0
x2=1 x2= 0 x2=1 x2= 0
O(2n
) Subet Sum & Bounding Functions
x1=1 x1= 0
x2=1 x2= 0 x2=1 x2= 0
Each forward and backward move takes O(1) time.
{10, 5, 2, 1}, c = 14
Backtracking
• Space required is O(tree height).
• With effective bounding functions, large instances
can often be solved.
• For some problems (e.g., 0/1 knapsack), the
answer (or a very good solution) may be found
quickly but a lot of additional time is needed to
complete the search of the tree.
• Run backtracking for as much time as is feasible
and use best solution found up to that time.
Branch And Bound
• Search the tree using a breadth-first search (FIFO
branch and bound).
• Search the tree as in a bfs, but replace the FIFO
queue with a stack (LIFO branch and bound).
• Replace the FIFO queue with a priority queue
(least-cost (or max priority) branch and bound).
The priority of a node p in the queue is based on
an estimate of the likelihood that the answer node
is in the subtree whose root is p.
Branch And Bound
• Space required is O(number of leaves).
• For some problems, solutions are at different
levels of the tree (e.g., 16 puzzle).
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15
1
32
4
56
13
14
15
12
11 10
9 78
Branch And Bound
 FIFO branch and bound finds solution closest to root.
 Backtracking may never find a solution because tree
depth is infinite (unless repeating configurations are
eliminated).
• Least-cost branch and bound directs the search to
parts of the space most likely to contain the
answer. So it could perform better than
backtracking.

Branch & bound

  • 1.
  • 2.
    Subset & PermutationProblems • Subset problem of size n.  Nonsystematic search of the space for the answer takes O(p2n ) time, where p is the time needed to evaluate each member of the solution space. • Permutation problem of size n.  Nonsystematic search of the space for the answer takes O(pn!) time, where p is the time needed to evaluate each member of the solution space. • Backtracking and branch and bound perform a systematic search; often taking much less time than taken by a nonsystematic search.
  • 3.
    Tree Organization OfSolution Space • Set up a tree structure such that the leaves represent members of the solution space. • For a size n subset problem, this tree structure has 2n leaves. • For a size n permutation problem, this tree structure has n! leaves. • The tree structure is too big to store in memory; it also takes too much time to create the tree structure. • Portions of the tree structure are created by the backtracking and branch and bound algorithms as needed.
  • 4.
    Subset Tree Forn = 4 x1=1 x1= 0 x2=1 x2= 0 x2=1 x2= 0 x3=1 x3= 0 x4=1 x4=0 1110 1011 0111 0001
  • 5.
    Permutation Tree Forn = 3 x1=1 x1=2 x1= 3 x2= 2 x2= 3 x2= 1 x2= 3 x2= 1 x2= 2 x3=3 x3=2 x3=3 x3=1 x3=2 x3=1 123 132 213 231 312 321
  • 6.
    Backtracking • Search thesolution space tree in a depth- first manner. • May be done recursively or use a stack to retain the path from the root to the current node in the tree. • The solution space tree exists only in your mind, not in the computer.
  • 7.
    Backtracking Depth-First Search x1=1x1= 0 x2=1 x2= 0 x2=1 x2= 0
  • 8.
    Backtracking Depth-First Search x1=1x1= 0 x2=1 x2= 0 x2=1 x2= 0
  • 9.
    Backtracking Depth-First Search x1=1x1= 0 x2=1 x2= 0 x2=1 x2= 0
  • 10.
    Backtracking Depth-First Search x1=1x1= 0 x2=1 x2= 0 x2=1 x2= 0
  • 11.
    Backtracking Depth-First Search x1=1x1= 0 x2=1 x2= 0 x2=1 x2= 0
  • 12.
    O(2n ) Subet Sum& Bounding Functions x1=1 x1= 0 x2=1 x2= 0 x2=1 x2= 0 Each forward and backward move takes O(1) time. {10, 5, 2, 1}, c = 14
  • 13.
    Backtracking • Space requiredis O(tree height). • With effective bounding functions, large instances can often be solved. • For some problems (e.g., 0/1 knapsack), the answer (or a very good solution) may be found quickly but a lot of additional time is needed to complete the search of the tree. • Run backtracking for as much time as is feasible and use best solution found up to that time.
  • 14.
    Branch And Bound •Search the tree using a breadth-first search (FIFO branch and bound). • Search the tree as in a bfs, but replace the FIFO queue with a stack (LIFO branch and bound). • Replace the FIFO queue with a priority queue (least-cost (or max priority) branch and bound). The priority of a node p in the queue is based on an estimate of the likelihood that the answer node is in the subtree whose root is p.
  • 15.
    Branch And Bound •Space required is O(number of leaves). • For some problems, solutions are at different levels of the tree (e.g., 16 puzzle). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 32 4 56 13 14 15 12 11 10 9 78
  • 16.
    Branch And Bound FIFO branch and bound finds solution closest to root.  Backtracking may never find a solution because tree depth is infinite (unless repeating configurations are eliminated). • Least-cost branch and bound directs the search to parts of the space most likely to contain the answer. So it could perform better than backtracking.

Editor's Notes

  • #4 Tree organizations in which nonleaf nodes represent members of the solution space are also possible.
  • #15 When you move forward on an x =1 branch, add to a variable that keeps track of the sum of the subset represented by the node. When you move back on an x = 1 branch, subtract. Moving in either direction along an x = 0 branch requires no add/subtract. When you reach a node with the desired sum, terminate. When you reach a node whose sum exceeds the desired sum, backtrack; do not move into this nodes subtrees. When you make a right child move see if the desired sum is attainable by adding in all remaining integers; for this keep another variable that gives you the sum of the remaining integers.