Breadth first search animation 15.082 and 6.855J Breadth First Search Get ahold of a network, and use the same network to illustrate the shortest path problem for communication newtorks, the max flow problem, the minimum cost flow problem, and the multicommodity flow problem. This will be a very efficient way of introducing the four problems. (Perhaps under 10 minutes of class time.) Breadth first search animation
Breadth first search animation Initialize 1 2 4 5 3 6 9 7 8 1 2 4 5 3 6 9 7 8 1 1 pred(1) = 0 next := 1 order(next) = 1 LIST:= {1} Unmark all nodes in N; Mark node s LIST 1 next 1 Breadth first search animation
Breadth first search animation Select a node i in LIST 1 2 4 5 3 6 9 7 8 1 1 1 In breadth first search, i is the first node in LIST LIST 1 next 1 Breadth first search animation
If node i is incident to an admissible arc… 2 4 2 2 8 1 1 1 1 5 7 Mark Node j pred(j) := i Select an admissible arc (i,j) Next := Next + 1 order(j) := next add j to LIST 9 3 6 LIST 1 2 1 2 next Breadth first search animation
If node i is incident to an admissible arc… 2 4 2 2 8 1 1 1 1 5 5 7 3 Mark Node j pred(j) := i Next := Next + 1 order(j) := next add j to LIST Select an admissible arc (i,j) 9 3 6 LIST 1 2 5 2 3 next Breadth first search animation
If node i is incident to an admissible arc… 2 4 2 2 8 1 1 1 1 5 5 7 3 Select an admissible arc (i,j) Mark Node j pred(j) := i Next := Next + 1 order(j) := next add j to LIST 9 3 3 6 4 LIST 1 2 5 3 3 4 2 next Breadth first search animation
If node i is not incident to an admissible arc… 2 4 2 2 8 1 1 1 1 1 5 5 7 3 9 Delete node i from LIST 3 3 6 4 LIST 1 2 5 3 4 3 2 next Breadth first search animation
Breadth first search animation Select Node i 2 4 2 2 2 8 1 1 1 1 1 5 5 7 3 9 The first node on LIST becomes node i 3 3 6 4 LIST 1 2 5 3 4 2 3 next Breadth first search animation
If node i is incident to an admissible arc… 5 2 4 4 2 2 2 8 1 1 1 5 5 7 3 Mark Node j pred(j) := i Select an admissible arc (i,j) Next := Next + 1 order(j) := next add j to LIST 9 3 3 6 4 LIST 1 2 5 3 4 5 3 4 2 next Breadth first search animation
If node i is not incident to an admissible arc… 5 2 4 4 2 2 2 2 8 1 1 1 5 5 7 3 Delete node i from LIST 9 3 3 6 4 LIST 1 2 5 3 4 5 2 3 4 next Breadth first search animation
Breadth first search animation Select a node 5 2 4 4 2 2 2 8 1 1 1 5 5 5 7 3 The first node on LIST becomes node i 9 3 3 6 4 LIST 1 2 5 3 4 5 2 3 4 next Breadth first search animation
If node i is incident to an admissible arc… 5 2 4 4 2 2 2 8 1 1 1 5 5 5 7 3 Mark Node j pred(j) := i Select an admissible arc (i,j) Next := Next + 1 order(j) := next add j to LIST 9 3 3 6 6 4 6 LIST 1 2 5 3 4 6 6 3 2 5 4 next Breadth first search animation
If node i is not incident to an admissible arc… 5 2 4 4 2 2 2 8 1 1 1 5 5 5 5 7 3 Delete node i from LIST 9 3 3 6 6 4 6 LIST 1 2 5 3 4 6 6 2 5 3 4 next Breadth first search animation
Breadth first search animation Select node 3 5 2 4 4 2 2 2 8 1 1 1 5 5 5 5 7 3 node 3 is not incident to any admissible arcs delete node 3 from LIST 9 3 3 3 3 6 6 4 6 LIST 1 2 5 3 4 6 4 2 3 6 5 next Breadth first search animation
Breadth first search animation Select a node 5 2 4 4 4 2 2 8 1 1 1 5 5 7 3 i : = 4 9 3 3 6 6 4 6 LIST 1 2 5 3 4 6 2 6 3 4 5 next Breadth first search animation
If node i is incident to an admissible arc… 5 2 4 4 4 7 2 2 8 8 1 1 1 5 5 7 3 Mark Node j pred(j) := i Select an admissible arc (i,j) Next := Next + 1 order(j) := next add j to LIST 9 3 3 6 6 4 6 LIST 1 2 5 3 4 6 8 7 3 2 6 4 5 next Breadth first search animation
If node i is not incident to an admissible arc… 5 2 4 4 4 4 7 2 2 8 8 1 1 1 5 5 7 3 Delete node i from LIST 9 3 3 6 6 4 6 LIST 1 2 5 3 4 6 8 7 3 2 6 4 5 next Breadth first search animation
Breadth first search animation Select node i 5 2 4 4 7 2 2 8 8 1 1 1 5 5 7 3 i := 6 9 3 3 6 6 6 4 6 LIST 1 2 5 3 4 6 8 7 2 3 6 4 5 next Breadth first search animation
If node i is incident to an admissible arc… 5 2 4 4 7 2 2 8 8 1 8 1 1 5 5 7 7 3 Select an admissible arc (i,j) Next := Next + 1 order(j) := next add j to LIST Mark Node j pred(j) := i 9 3 3 6 6 6 4 6 LIST 1 2 5 3 4 6 8 7 5 4 3 6 2 7 8 next Breadth first search animation
If node i is incident to an admissible arc… 5 2 4 4 7 2 2 8 8 1 8 1 1 5 5 7 7 3 Mark Node j pred(j) := i Select an admissible arc (i,j) Next := Next + 1 order(j) := next add j to LIST 9 9 3 3 6 6 6 4 9 6 LIST 1 2 5 3 4 6 8 7 9 5 9 8 2 4 6 3 7 next Breadth first search animation
If node i is not incident to an admissible arc… 5 2 4 4 7 2 2 8 8 1 8 1 1 5 5 7 7 3 Delete node i from LIST 9 9 3 3 6 6 6 6 4 9 6 LIST 1 2 5 3 4 6 8 7 9 2 9 8 4 6 3 5 7 next Breadth first search animation
Breadth first search animation Select node 8 5 2 4 4 7 2 2 8 8 8 8 1 8 1 1 5 5 7 7 3 node 8 is not incident to an admissible arc; delete it from LIST 9 9 3 3 6 6 6 6 4 9 6 LIST 1 2 5 3 4 6 8 7 9 9 3 2 8 7 4 6 5 next Breadth first search animation
Breadth first search animation Select node 7 5 2 4 4 7 2 2 8 8 1 8 1 1 5 5 7 7 7 7 3 node 7 is not incident to an admissible arc; delete it from LIST 9 9 3 3 6 6 6 6 4 9 6 LIST 1 2 5 3 4 6 8 7 9 9 3 2 8 7 4 6 5 next Breadth first search animation
Breadth first search animation Select node 9 5 2 4 4 7 2 2 8 8 1 8 1 1 5 5 7 7 3 node 9 is not incident to an admissible arc; delete it from LIST 9 9 9 9 3 3 6 6 6 6 4 9 6 LIST 1 2 5 3 4 6 8 7 9 9 3 2 8 7 4 6 5 next Breadth first search animation
Breadth first search animation THE END Breadth first search animation