Upcoming SlideShare
×

# Introcution to DFS & BFS

4,279 views

Published on

2010 NTNU CSIE Winter Training Resource

0 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

• Be the first to like this

Views
Total views
4,279
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
62
0
Likes
0
Embeds 0
No embeds

No notes for slide

### Introcution to DFS & BFS

1. 1. DFS & BFS / Backtracking 2010 NTNU CSIE Winter Training S.C. Chen / Dannvix [at] gmail [dot] com
2. 2. Search • Find a solution • To a maze • To a puzzle • … • Enumeration • Till the end of time? • Algorithm • Thinking! 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com
3. 3. Algorithms • D.F.S. • Depth-First Search • Try to be the deepest • Uchiha Sasuke in Naruto - Raikin • B.F.S. • Breadth-First Search • Try to be the widest(?) • Uzumaki Naruto in Naruto - Kage Bunshin no Jutsu 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com
4. 4. Algorithms (cont.) • Backtracking • Enumeration • Cut • Abandons each partial candidate c as soon as it determines that c cannot possibly be completed to a valid solution. • Eight Queens Puzzle • 64 * 63 * 62 * 61 * … * 1 = 64! = 1.26886932 * 10 89 • Check first when you build candidates 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com
5. 5. Visualization • Youtube is our friend! • http://www.youtube.com/watch?v=2XjzjAfGWzY • Path-Finding Demonstration using Pac-Man • BFS • DFS • Hill Climbing • A* • Google is our friend, too • Google://BFS Animation 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com
6. 6. Application • Classic Puzzles / Problems • Eight Queens Puzzle • 8-Puzzle • Sudoku • Field Counting • Extensions • N Queens Puzzle • 15-Puzzle 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com
7. 7. Flood Fill • Flood Fill, also called Seed Fill • Determines the area connected to a given node in multi- dimensional array. • Counts connected fields • Implementations • D.F.S. • May cause stack overflow • B.F.S. 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com
8. 8. Flood Fill (cont.) Flood-Fill (node, target_color, replacement_color) do 1. If the color of node is not equal to target_color, then return 2. Set the color of node to replacement_color 3. Perform Flood-Fill (step to the west of node ...) Perform Flood-Fill (step to the east of node ...) Perform Flood-Fill (step to the north of node ...) Perform Flood-Fill (step to the south of node ...) 4. Return end 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com
9. 9. Flood Fill (cont.) Flood-Fill (node, target_color, replacement_color) do 1. If the color of node is not equal to target_color, then return 2. Set Q to the empty queue, and add node to Q 3. For each element n of Q: If the color of n is equal to target_color Set w and e equal to n Move w to the west until the color of node to the west of w no longer matches target_color, so does e (east). Set the color of nodes between w and e to replacement_color For each node n between w and e: If the color of the node to the north of n is target_color, then add that node to Q, so does south. 4. Return end 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com
10. 10. Uva Problems 2010 NTNU CSIE Winter / Dannvix [at] gmail [dot] com