Lecture 4: Tree Search Strategies

Slides:



Advertisements
Similar presentations
Heuristic Searches. Feedback: Tutorial 1 Describing a state. Entire state space vs. incremental development. Elimination of children. Closed and the solution.
Advertisements

Review: Search problem formulation
Heuristic Search techniques
Traveling Salesperson Problem
State Space 3 Chapter 4 Heuristic Search. Three Algorithms Backtrack Depth First Breadth First All work if we have well-defined: Goal state Start state.
5-1 Chapter 5 Tree Searching Strategies. 5-2 Satisfiability problem Tree representation of 8 assignments. If there are n variables x 1, x 2, …,x n, then.
Branch & Bound Algorithms
1 Tree Searching Strategies Updated: 2010/12/27. 2 The procedure of solving many problems may be represented by trees. Therefore the solving of these.
Search in AI.
Sum of Subsets and Knapsack
Review: Search problem formulation
Branch and Bound Searching Strategies
6 - 1 § 6 The Searching Strategies e.g. satisfiability problem x1x1 x2x2 x3x3 FFF FFT FTF FTT TFF TFT TTF TTT.
Branch and Bound Similar to backtracking in generating a search tree and looking for one or more solutions Different in that the “objective” is constrained.
MAE 552 – Heuristic Optimization Lecture 27 April 3, 2002
1 Tree Searching Strategies. 2 The procedure of solving many problems may be represented by trees. Therefore the solving of these problems becomes a tree.
Using Search in Problem Solving
1 Branch and Bound Searching Strategies 2 Branch-and-bound strategy 2 mechanisms: A mechanism to generate branches A mechanism to generate a bound so.
Ch 13 – Backtracking + Branch-and-Bound
1 Tree Searching Strategies. 2 The procedure of solving many problems may be represented by trees. Therefore the solving of these problems becomes a tree.
5-1 Chapter 5 Tree Searching Strategies. 5-2 Breadth-first search (BFS) 8-puzzle problem The breadth-first search uses a queue to hold all expanded nodes.
Search  Exhaustive/Blind Search Methods Depth First Search Breadth First Search  Heuristic Methods Hill Climbing Beam Search Best First Search…
Backtracking.
Informed Search Idea: be smart about what paths to try.
Dr. Jouhaina Chaouachi Siala
Contents of Chapter 7 Chapter 7 Backtracking 7.1 The General method
For Monday Read chapter 4, section 1 No homework..
Review: Tree search Initialize the frontier using the starting state While the frontier is not empty – Choose a frontier node to expand according to search.
Lecture 3: Uninformed Search
1 Branch and Bound Searching Strategies Updated: 12/27/2010.
State space representations and search strategies - 2 Spring 2007, Juris Vīksna.
CSCE350 Algorithms and Data Structure Lecture 21 Jianjun Hu Department of Computer Science and Engineering University of South Carolina
Branch and Bound Searching Strategies
1 Tree Searching Strategies 2010/12/03. 2 The procedure of solving many problems may be represented by trees. Therefore the solving of these problems.
Chapter 3 Solving problems by searching. Search We will consider the problem of designing goal-based agents in observable, deterministic, discrete, known.
Chapter 6 Branch & Bound (B & B).
Lecture 3: Uninformed Search
Review: Tree search Initialize the frontier using the starting state
Uniformed Search (cont.) Computer Science cpsc322, Lecture 6
Traveling Salesperson Problem
BackTracking CS255.
Last time: Problem-Solving
Backtracking And Branch And Bound
Introduction to Artificial Intelligence
Design and Analysis of Algorithm
Search
Backtracking And Branch And Bound
Artificial Intelligence Problem solving by searching CSC 361
Analysis and design of algorithm
Uniformed Search (cont.) Computer Science cpsc322, Lecture 6
Problem Solving and Searching
Analysis & Design of Algorithms (CSCE 321)
Problem Solving and Searching
BEST FIRST SEARCH -OR Graph -A* Search -Agenda Search CSE 402
A General Backtracking Algorithm
Branch and Bound Searching Strategies
CO Games Development 1 Week 8 Depth-first search, Combinatorial Explosion, Heuristics, Hill-Climbing Gareth Bellaby.
Backtracking and Branch-and-Bound
HW 1: Warmup Missionaries and Cannibals
Informed Search Idea: be smart about what paths to try.
Backtracking And Branch And Bound
UNINFORMED SEARCH -BFS -DFS -DFIS - Bidirectional
Heuristic Search Generate and Test Hill Climbing Best First Search
The Rich/Knight Implementation
HW 1: Warmup Missionaries and Cannibals
CMSC 471 Fall 2011 Class #4 Tue 9/13/11 Uninformed Search
Tree Searching Strategies
Informed Search Idea: be smart about what paths to try.
Supplemental slides for CSE 327 Prof. Jeff Heflin
The Rich/Knight Implementation
Presentation transcript:

Lecture 4: Tree Search Strategies 主講人:虞台文

Content Introduction Depth-First Search Breadth-First Search Heuristic Searches Best-First Search/Hill Climbing A* algorithm Branch-and-Bound

Lecture 4: Tree Search Strategies Introduction

Introduction The procedure of solving many problems may be represented by trees. Therefore the solving of these problems becomes a tree searching problem.

Example: n-Queen 1 2 3 4 5 6 7 8 x1 = 1 x2 = 5 x3 = 8 x4 = 6 x5 = 3

n = 4 Example: n-Queen x1 = 1 2 3 4 x2 = 2 3 4 1 3 4 1 2 4 1 2 3

n = 4 Example: n-Queen The size of search space is x! 2 3 4 How to search effectively? x2 = 2 3 4 1 3 4 1 2 4 1 2 3 x3 = 3 4 2 4 2 3 3 4 1 4 1 3 2 4 1 4 1 2 2 3 1 3 1 2 x4 = 4 3 4 2 3 2 4 3 4 1 1 4 4 1 2 1 3 2 3 1 2 1 3 2

Some Search Schemes Breadth-First Search Depth-First Search Hill Climbing Best-First Search Branch-and-Bound Strategy for optimization problems Blind Search Guide with Heuristics

Nodes of Search Tree Live Node Dead Node Expanded Node a node ready for being expanded Dead Node a node has been expanded or can not be expanded further Expanded Node a node that is currently selected for expansion

Example: Depth-First Search 2 3 4 x2 = 2 3 4 1 3 4 1 2 4 1 2 3       2 4 2 3 1 3 2 4 2 3 1 3         3 3 2 2  

Example: Breadth-First Search 2 3 4 x2 = 2 3 4 1 3 4 1 2 4 1 2 3       2 4 2 3 1 3 2 4 2 3 1 3         3 3 2 2  

Search Space S0: Initial State Solution Space Search Space Solution Path Sg: Goal State

Major Components in Tree Search Tree-Node Generating Mechanism List: Tree-Node Maintaining Mechanism Stack, Queue, Priority Queue Tree-Node Selection Mechanism Branching Answer Verification Mechanism Bounding Mechanism Pruning Cost Estimation Function Heuristic

Lecture 4: Tree Search Strategies Depth-First Search

Depth-First Search Scheme Step1: Form a stack consisting of the root node. Step2: Test to see if the top element in the stack is a goal node. If it is, stop. Otherwise, go to step 3. Step3: Remove the top element from the stack. Add the first element’s descendants, if any, to the top of the stack. Step4: If the stack is empty, then signal failure. Otherwise, go to Step 2.

Example: Sum-of-Subset Problem Given a set of positive integers, say S={s1, …, sn}, and an positive integer, say M, we want to determine whether there exists a subset, say S’S, whose element sum equals to M. The problem is NP-Complete.

Example: Sum-of-Subset Problem n = 4 Example: Sum-of-Subset Problem Solution Space (I)  {1} {2} {3} {4} {1,2} {1,3} {1,4} {1,2,3} {1,2,4} {1,3,4} {1,2,3,4} {2,3} {2,4} {2,3,4} x1=1 x1=2 x1=3 x1=4 x2=2 x2=3 x2=4 x3=3 x3=4 x4=4

Example: Sum-of-Subset Problem n = 4 Example: Sum-of-Subset Problem M = 9 Solution Space (I)  {1} x1=1 7 {1,2} x2=2 {1,3} x2=3 {1,4} x2=4  12 8 9 {1,3,4} x3=4  10

Example: Sum-of-Subset Problem n = 4 Example: Sum-of-Subset Problem M = 9 Solution Space (I)  {1} {2} {3} {4} {1,2} {1,3} {1,4} {1,2,3} {1,2,4} {1,3,4} {1,2,3,4} {2,3} {2,4} {2,3,4} x1=1 x1=2 x1=3 x1=4 x2=2 x2=3 x2=4 x3=3 x3=4 x4=4

Example: Sum-of-Subset Problem SumSubset_1(S[1..n], M) x[1]1; depth 1; // generate the first tree node loop if (depth =0) return false; // solution space has been exhausted // evaluate the current sum sum  0; for k  1 to depth do sum  sum + x[k]; if (sum = M) return true; // report success if (sum > M or x[depth] = n) // backtracking depth  depth1; if (depth <> 0) x[depth]  x[depth] + 1; else // dig into the tree x[depth+1]  x[depth]+ 1; depth  depth + 1; repeat

Example: Sum-of-Subset Problem n = 4 Example: Sum-of-Subset Problem Solution Space (II) x1=1 x1=0 x2=1 x2=0 x3=1 x3=0 x4=1 x4=0

Example: Sum-of-Subset Problem n = 4 Example: Sum-of-Subset Problem M = 13 Solution Space (II) 7 12 18 22 16 13 17 11 5 15 9 6 10 4 x1=1 x1=0 x2=1 x2=0 x3=1 x3=0 x4=1 x4=0 x1=1 x1=0 x2=1 x2=0 x3=1 x3=0 x4=1 x4=0 1111 1110 1101 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000

Example: Sum-of-Subset Problem n = 4 Example: Sum-of-Subset Problem M = 13 Solution Space (II) x1=1 x1=0 x2=1 x2=0 x3=1 x3=0 x4=1 x4=0 x1=1 x1=0 7 x2=1 x2=0 x2=1 x2=0 12 7 5 18 x3=1 12 16 x3=0 x4=1 1101 x3=1 x3=0 x3=1 x3=0 x3=1 x3=0 13 7 11 5 6 x4=1 x4=0 x4=0 x4=1 x4=0 x4=1 x4=0 x4=1 x4=0 x4=1 x4=0 x4=1 x4=0 x4=1 x4=0 22 18 12 17 13 11 7 15 11 9 5 10 6 4 1111 1110 1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001 0000

Example: Sum-of-Subset Problem n = 4 Example: Sum-of-Subset Problem M = 13 Solution Space (II) Lazy Version 7 x1=1 12 x2=1 18 x3=1 7 x2=0 13 x3=1 12 16 x3=0 x4=1  

Example: Sum-of-Subset Problem n = 4 Example: Sum-of-Subset Problem M = 13 Solution Space (II) Eager Version 7 x1=1 12 x2=1 7 x2=0  12 x3=0 13 x3=1 

Example: Sum-of-Subset Problem Lazy Version Example: Sum-of-Subset Problem SumSubset_2(S[1..n], M, X[1..n]) // return true or false. If true, subset is in X for i  1 to n do X[i] 0; // initialization k  1; sum = 0; // start from the root node loop while k  n and sum < M do // extend left as deep as possible x[k]  1; sum  sum + S[k]; k  k + 1; if(sum = M) return true; // answer found k  k  1; // overshooting sum  sum  S[k]; // withdraw the last element x[k]  0; // branch to right subtree if(k = n) // if no more right subtree, backtrack one level while(k > 0 and X[k] = 0) k  k  1; if (k = 0) return false; // tree has been exhausted else X[k]  0; k  k + 1; // search on subtree repeat

Example: Sum-of-Subset Problem Eager Version Example: Sum-of-Subset Problem SumSubset_2(S[1..n], M, X[1..n]) // return true or false. If true, subset is in X for i  1 to n do X[i] 0; // initialization k  1; sum = 0; // start from the root node loop while k  n and sum + S[k]  M do // extend left as deep as possible x[k]  1; sum  sum + S[k]; k  k + 1; if(sum = M) return true; // answer found if(k > n) // if no more right subtree, backtrack one level while(k > 1 and X[k  1] = 0) k  k  1; if (k = 1) return false; // tree has been exhausted k  k + 1; repeat

Discussion Sum-of-Subset problem is a constraint satisfaction problem. Tree pruning by considering feasibility Can we apply DFS scheme to solve optimization problem? Do we need to inspect the costs (or profits) of all feasible solutions to determine the optimal one? How to prune subtrees sure to with inferior feasible solutions only?

0-1 Knapsack Problem

0-1 Knapsack Problem Fractional Version Fact: the profit for the optimal solution of a 0-1 knapsack problem cannot greater than that of its fractional version.

0-1 Knapsack Problem xk+1 = 1 xk+1 = 0 We can compute the following items for each feasible node: 1. current weight 2. current profit 3. upper bound xk+1 = 1 xk+1 = 0 Fact: a left child has the same upper bound as its root.

0-1 Knapsack Problem Weight/Profit Upper Bound xk+1 = 1 xk+1 = 0

Example: 0-1 Knapsack Problem i 1 2 3 4 5 6 7 8 pi 11 21 31 33 43 53 55 65 wi 23 45 W = 110

Example: 0-1 Knapsack Problem i 1 2 3 4 5 6 7 8 pi 11 21 31 33 43 53 55 65 wi 23 45 W = 110 Example: 0-1 Knapsack Problem 164.88 1/11 x1=1 155.11 x1=0  12/32 x2=1 157.44 x2=0  33/63 x3=1 159.76 x3=0 56/96 x4=1 160.22 x4=0 65/35 x4=1 154.88 x4=0  89/139 x5=1 x5=0 162.44 66/106 x5=1 157.55 x5=0  68/108 157.11  164.66 x6=0 109/159 x6=1 159.79 x6=0 99/149 161.63 159.338 163.81 x7=0 162 105/151 160.18 158  157.63  A 139 x8=0 B 149 C 151 D 159

Example: 0-1 Knapsack Problem i 1 2 3 4 5 6 7 8 pi 11 21 31 33 43 53 55 65 wi 23 45 W = 110 Example: 0-1 Knapsack Problem 164.88 Fact: the bounds can be integers. 1/11 x1=1 155.11 x1=0  12/32 x2=1 157.44 x2=0  33/63 x3=1 159.76 x3=0 56/96 x4=1 160.22 x4=0 65/35 x4=1 154.88 x4=0  89/139 x5=1 x5=0 162.44 66/106 x5=1 157.55 x5=0  68/108 157.11  164.66 x6=0 109/159 x6=1 159.79 x6=0 99/149 161.63 159.338 163.81 x7=0 162 105/151 160.18 158  157.63  A 139 x8=0 B 149 C 151 D 159

Example: 0-1 Knapsack Problem i 1 2 3 4 5 6 7 8 pi 11 21 31 33 43 53 55 65 wi 23 45 W = 110 Example: 0-1 Knapsack Problem 164.88 Fact: the bounds can be integers. 1/11 x1=1 155.11 x1=0  12/32 x2=1 157.44 x2=0  33/63 x3=1 159.76 x3=0  56/96 x4=1 160.22 x4=0 89/139 x5=1 x5=0 162.44 66/106 x5=1 157.55 x5=0  164.66 x6=0 109/159 x6=1 159.79 x6=0 99/149 161.63  163.81 x7=0 162 105/151 160.18 A 139 x8=0 B 149 C 151 D 159

Lecture 4: Tree Search Strategies Breadth-First Search

Breadth-First Search Scheme Step1: Form a queue consisting of the root node. Step2: Test to see if the first element in the queue is a goal node. If it is, stop. Otherwise, go to step 3. Step3: Remove the first element from the queue. Add the first element’s descendants, if any, to the end of the queue. Step4: If the queue is empty, then signal failure. Otherwise, go to Step 2.

Example: 8-Puzzle 2 8 3 1 6 4 7 5 1 2 3 8 6 4 7 5 Start Goal

Example: 8-Puzzle     Blank Cell Movement

Example: 8-Puzzle 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 1 7 6 4 5 2 8 3 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5

Exercise Accompanying with a bounding function to solve the instance of 0-1 knapsack problem describe previously using the breadth-first search. Give your result graphically and compare it with the depth-first one.

Lecture 4: Tree Search Strategies Heuristic Searches

Cost of Subtrees c1 c2 cn c2 cn c1

n = 4 Example: n-Queen 4  4  4  4  4 2 x1 = 1 3 4 x2 = 2 1 x3 = 3

Assume that we are completely informative, then search is trivial. Example: n-Queen Assume that we are completely informative, then search is trivial. 4 2 x1 = 1 3 4 x2 = 2 1 x3 = 3 x4 = 4  4  4  4  4

optimal path in the subtree Cost Evaluation root c(x) g(x) current state (x) h(x) optimal path in the subtree goal

Cost Evaluation root g(x) current state (x) c(x) Usually can be computed precisely. root c(x) g(x) current state (x) h(x) optimal path in the subtree Usually can be estimated only. goal

Admissible Heuristic a How to make a heuristic? generally, drop or relax constraints from the original problem.

Heuristic Search Algorithm Step1: Form a priority queue with root node only. Step2: Test to see if the first element in the queue is a goal node. If it is, stop. Otherwise, go to step 3. Step3: Remove the first element from the queue, and add its descendants, if any, to the queue orderly by referencing to their estimated cost. Step4: If the queue is empty, then signal failure. Otherwise, go to Step 2.

Heuristic Search Algorithm Breadth-First Search Best-First Search/Hill Climbing A* algorithm

Example: 8-Puzzle 2 8 3 1 6 4 7 5 1 2 3 8 6 4 7 5 Start (x) Goal

Example: 8-Puzzle 4 1+5 1+3 1+5 2+3 2+3 2+4 3+3 3+4 3+2 3+4 4+1 5+0 2 6 4 7 5 4 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 1+5 1+3 1+5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2+3 2+3 2+4 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 3+3 3+4 3+2 3+4 2 8 3 1 6 4 7 5 4+1 2 8 3 1 6 4 7 5 5+0

Best-First Search Best-first search is a search algorithm which optimizes depth-first search by expanding the most promising node chosen according to some rule.

Example: 8-Puzzle 2 8 3 1 6 4 7 5 4 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 5 3 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 3 3 4 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 3 4 2 4 2 8 3 1 6 4 7 5 1 2 8 3 1 6 4 7 5

Hill Climbing A simplification of Best-First Search The idea  You don't keep the big list of states around, i.e., you just keep track of the one state you are considering, and the path that got you there from the initial state. At every state you choose the state that leads you closer to the goal and continue from there. In fact, this is a greedy algorithm Local minima/maxima

A* Algorithm Admissible

A* Algorithm 4 1+5 1+3 1+5 2+3 2+3 2+4 3+3 3+4 3+2 3+4 4+1 5+0 2 8 3 1 6 4 7 5 4 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 1+5 1+3 1+5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2+3 2+3 2+4 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 3+3 3+4 3+2 3+4 2 8 3 1 6 4 7 5 4+1 2 8 3 1 6 4 7 5 5+0

Optimality of A* Algorithm If A* returns a solution, that solution is guaranteed to be optimal as long as the cost estimation function is admissible.

Exercise Use BFS, DFS, Hill-Climbing, Best-First Search and A* schemes to solve the following 8-puzzle problem with the evaluation function being the number of misplaced tiles. 2 3 1 8 4 7 6 5 1 2 3 7 6 4 8 5 Start Goal

Branch-and-Bound Algorithm Two main tools: Branching A Mechanism to jump to subtrees Bounding A Mechanism to prune subtrees

Example: Shortest Paths on a Multi-stage Graph 1 2 3 5 4 7

Example: Shortest Paths on a Multi-stage Graph 1 2 3 5 4 7 Search tree

Example: Shortest Paths on a Multi-stage Graph Solved by B&B 1 3 2 Upper Bound 1 3 2 5 3 4 3 2 7  5     6 1 4 7 6 1 4 9 5 5

Example: Asymmetric TSP 1 2 3 4

Example: Asymmetric TSP n = 4 Example: Asymmetric TSP Search Tree (Static) 1 2 4 3 5 6 7 8 9 10 11 12 13 14 15 16 x1=2 x1=3 x1=4 x2=3 x2=4 x2=2 x3=4 x3=3 x3=2

Example: Asymmetric TSP How to determine the lower-bound of each tree node? n = 5

Example: Asymmetric TSP How to determine the lower-bound of root node? Example: Asymmetric TSP 10 2 2 3 4 21 n = 5 Row Reduced (21)

Example: Asymmetric TSP How to determine the lower-bound of root node? 25 Example: Asymmetric TSP 1 3 Reduced Cost Matrix (21 4 = 25) Row Reduced (21)

Example: Asymmetric TSP 25 1 2 4 3 x1=2 x1=3 x1=4 5 x1=5 How to determine the lower-bound of the children? What are their cost reduced matrices?

Example: Asymmetric TSP (i, j) Given the cost reduced matrix of node, say R, how to obtain the cost reduced matrix of its child node, say S, generated by selecting edge (i, j)?

Example: Asymmetric TSP 1 2 i j n … R S (i, j) Reduced Cost Matrix of R Non-leaf

Example: Asymmetric TSP To obtain the reduced cost matrix of S, set the surrounded entries to , then reduce it. Example: Asymmetric TSP 1 2 i j n … R S (i, j) Reduced Cost Matrix of R Non-leaf

Example: Asymmetric TSP Upper Bound  1 2 4 3 x1=2 x1=3 x1=4 5 x1=5 25 10 35 2 Reduced

Example: Asymmetric TSP Upper Bound  1 2 4 3 x1=2 x1=3 x1=4 5 x1=5 25 10 17 35 53 3 11

Example: Asymmetric TSP Upper Bound  1 2 4 3 x1=2 x1=3 x1=4 5 x1=5 25 35 53 3 25 31 6 8 7 x2=2 x2=3 x2=5 28 50 36 9 10 x3=3 x3=5 32 28 11 x4=3 28

Example: Asymmetric TSP Upper Bound  1 2 4 3 x1=2 x1=3 x1=4 5 x1=5 25 28  35  53  3 25 31 6 8 7 x2=2 x2=3 x2=5 28 50  36  9 10 x3=3 x3=5 32  28 11 x4=3 28

Example: Asymmetric TSP Search Tree (Dynamic) Tours include (i, j) Tours exclude (i, j)

Example: Asymmetric TSP Given the cost reduced matrix of node, say r, and how to obtain the cost reduced matrices of its child nodes, say x,and y, and and by considering (i, j)? r Tours include (i, j) Tours exclude (i, j) x y

Example: Asymmetric TSP Obtain the cost reduced matrix of the right child by set (i, j)th entry to  and then reduce it. The low-bound of the right child can be obtained by accumulation. Example: Asymmetric TSP r Tours include (i, j) Tours exclude (i, j)  x y Cost Reduced Matrix of r.

Example: Asymmetric TSP Obtain the cost reduced matrix of the left child by set the entries to  and then reduce it. The low-bound of the left child can be obtained by accumulation. Example: Asymmetric TSP r Tours include (i, j) Tours exclude (i, j) x y Cost Reduced Matrix of r.

Example: Asymmetric TSP At each stage, the edge to be considered is determined based on heuristic. Possible heuristics: Choose (i, j) such that as large as possible. r Tours include (i, j) Tours exclude (i, j) x y or

Example: Asymmetric TSP We will use the first one in the following example. At each stage, the edge to be considered is determined based on heuristic. Possible heuristics: Choose (i, j) such that as large as possible. Tours include (i, j) Tours exclude (i, j) x y or

Example: Asymmetric TSP How to determine the lower-bound of each tree node? n = 5

Example: Asymmetric TSP How to determine the lower-bound of root node? Example: Asymmetric TSP 10 2 2 3 4 21 n = 5 Row Reduced (21)

Example: Asymmetric TSP How to determine the lower-bound of root node? 25 Example: Asymmetric TSP 1 3 Reduced Cost Matrix (21 4 = 25) Row Reduced (21)

Example: Asymmetric TSP 25 1 2 3 ? You should choose one of zero entries that reduces most cost for the right child. Why?

Example: Asymmetric TSP 25 1 2 3 0 ?  1 1 You should choose one of zero entries that reduces most cost for the right child.

Example: Asymmetric TSP 25 1 2 3 0 ? 1 2 You should choose one of zero entries that reduces most cost for the right child.  2

Example: Asymmetric TSP 25 1 2 3 ? 11 1 You should choose one of zero entries that reduces most cost for the right child. 2  0 11

Example: Asymmetric TSP 25 1 2 3 0 ? 1 You should choose one of zero entries that reduces most cost for the right child. 2  0 11

Example: Asymmetric TSP 25 1 2 3 0 ? 1 You should choose one of zero entries that reduces most cost for the right child. 2 11 3  3

Example: Asymmetric TSP 25 1 2 3 3 ? 1 You should choose one of zero entries that reduces most cost for the right child. 2 11 3  0 3

Example: Asymmetric TSP 25 1 2 3 11 ? 1 You should choose one of zero entries that reduces most cost for the right child. 2 11 3  0 3 11

Example: Asymmetric TSP 25 1 2 3 11 ? 1 You should choose one of zero entries that reduces most cost for the right child. 2 11 3 0 3 11

Example: Asymmetric TSP 25 1 2 3 ? 25 36 already reduced

Example: Asymmetric TSP 1 3 2 4 5 25 1 Optimal TSP Tour 2 3 ? 25 36  4 5 28 36  6 7 28 37 

Exercise Using B&B algorithm to solve the TSP instance given in the above table. Using static search tree Using dynamic search tree.