foundations of artificial intelligence
play

Foundations of Artificial Intelligence 10. State-Space Search: - PowerPoint PPT Presentation

Foundations of Artificial Intelligence 10. State-Space Search: Breadth-first Search Malte Helmert and Thomas Keller University of Basel March 16, 2020 Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary State-Space


  1. Foundations of Artificial Intelligence 10. State-Space Search: Breadth-first Search Malte Helmert and Thomas Keller University of Basel March 16, 2020

  2. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary State-Space Search: Overview Chapter overview: state-space search 5.–7. Foundations 8.–12. Basic Algorithms 8. Data Structures for Search Algorithms 9. Tree Search and Graph Search 10. Breadth-first Search 11. Uniform Cost Search 12. Depth-first Search and Iterative Deepening 13.–19. Heuristic Algorithms

  3. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Blind Search

  4. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Blind Search In Chapters 10–12 we consider blind search algorithms: Blind Search Algorithms Blind search algorithms use no information about state spaces apart from the black box interface. They are also called uninformed search algorithms. contrast: heuristic search algorithms (Chapters 13–19)

  5. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Blind Search Algorithms: Examples examples of blind search algorithms: breadth-first search uniform cost search depth-first search depth-limited search iterative deepening search

  6. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Blind Search Algorithms: Examples examples of blind search algorithms: breadth-first search ( � this chapter) uniform cost search depth-first search depth-limited search iterative deepening search

  7. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Blind Search Algorithms: Examples examples of blind search algorithms: breadth-first search ( � this chapter) uniform cost search ( � Chapter 11) depth-first search ( � Chapter 12) depth-limited search ( � Chapter 12) iterative deepening search ( � Chapter 12)

  8. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Breadth-first Search: Introduction

  9. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Breadth-first Search Breadth-first search expands nodes in order of generation (FIFO). � e.g., open list as linked list or deque A open: A

  10. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Breadth-first Search Breadth-first search expands nodes in order of generation (FIFO). � e.g., open list as linked list or deque A B C open: B, C

  11. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Breadth-first Search Breadth-first search expands nodes in order of generation (FIFO). � e.g., open list as linked list or deque A B C D E open: C, D, E

  12. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Breadth-first Search Breadth-first search expands nodes in order of generation (FIFO). � e.g., open list as linked list or deque A B C D E F G H open: D, E, F, G, H

  13. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Breadth-first Search Breadth-first search expands nodes in order of generation (FIFO). � e.g., open list as linked list or deque A B C D E F G H I J open: E, F, G, H, I, J

  14. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Breadth-first Search Breadth-first search expands nodes in order of generation (FIFO). � e.g., open list as linked list or deque A B C D E F G H I J searches state space layer by layer always finds shallowest goal state first

  15. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Breadth-first Search: Tree Search or Graph Search? Breadth-first search can be performed without duplicate elimination (as a tree search) � BFS-Tree or with duplicate elimination (as a graph search) � BFS-Graph (BFS = breadth-first search). � We consider both variants. German: Breitensuche

  16. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree

  17. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Reminder: Generic Tree Search Algorithm reminder from Chapter 9: Generic Tree Search open := new OpenList open . insert(make root node()) while not open . is empty(): n := open . pop() if is goal( n . state): return extract path( n ) for each � a , s ′ � ∈ succ( n . state): n ′ := make node( n , a , s ′ ) open . insert( n ′ ) return unsolvable

  18. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree (1st Attempt) breadth-first search without duplicate elimination (1st attempt): BFS-Tree (1st Attempt) open := new Deque open . push back(make root node()) while not open . is empty(): n := open . pop front() if is goal( n . state): return extract path( n ) for each � a , s ′ � ∈ succ( n . state): n ′ := make node( n , a , s ′ ) open . push back( n ′ ) return unsolvable

  19. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree (1st Attempt) breadth-first search without duplicate elimination (1st attempt): BFS-Tree (1st Attempt) open := new Deque open . push back(make root node()) while not open . is empty(): n := open . pop front() if is goal( n . state): return extract path( n ) for each � a , s ′ � ∈ succ( n . state): n ′ := make node( n , a , s ′ ) open . push back( n ′ ) return unsolvable

  20. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree (1st Attempt): Discussion This is almost a usable algorithm, but it wastes some effort: In a breadth-first search, the first generated goal node is always the first expanded goal node. (Why?) Hence it is more efficient to already perform the goal test upon generating a node (rather than upon expanding it). � How much effort does this save?

  21. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree (2nd Attempt) breadth-first search without duplicate elimination (2nd attempt): BFS-Tree (2nd Attempt) open := new Deque open . push back(make root node()) while not open . is empty(): n := open . pop front() if is goal( n . state): return extract path( n ) for each � a , s ′ � ∈ succ( n . state): n ′ := make node( n , a , s ′ ) if is goal( s ′ ): return extract path( n ′ ) open . push back( n ′ ) return unsolvable

  22. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree (2nd Attempt) breadth-first search without duplicate elimination (2nd attempt): BFS-Tree (2nd Attempt) open := new Deque open . push back(make root node()) while not open . is empty(): n := open . pop front() if is goal( n . state): return extract path( n ) for each � a , s ′ � ∈ succ( n . state): n ′ := make node( n , a , s ′ ) if is goal( s ′ ): return extract path( n ′ ) open . push back( n ′ ) return unsolvable

  23. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree (2nd Attempt): Discussion Where is the bug?

  24. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree (Final Version) breadth-first search without duplicate elimination (final version): BFS-Tree if is goal(init()): return �� open := new Deque open . push back(make root node()) while not open . is empty(): n := open . pop front() for each � a , s ′ � ∈ succ( n . state): n ′ := make node( n , a , s ′ ) if is goal( s ′ ): return extract path( n ′ ) open . push back( n ′ ) return unsolvable

  25. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Tree (Final Version) breadth-first search without duplicate elimination (final version): BFS-Tree if is goal(init()): return �� open := new Deque open . push back(make root node()) while not open . is empty(): n := open . pop front() for each � a , s ′ � ∈ succ( n . state): n ′ := make node( n , a , s ′ ) if is goal( s ′ ): return extract path( n ′ ) open . push back( n ′ ) return unsolvable

  26. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary BFS-Graph

  27. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Reminder: Generic Graph Search Algorithm reminder from Chapter 9: Generic Graph Search open := new OpenList open . insert(make root node()) closed := new ClosedList while not open . is empty(): n := open . pop() if closed . lookup( n . state) = none : closed . insert( n ) if is goal( n . state): return extract path( n ) for each � a , s ′ � ∈ succ( n . state): n ′ := make node( n , a , s ′ ) open . insert( n ′ ) return unsolvable

  28. Blind Search BFS: Introduction BFS-Tree BFS-Graph BFS Properties Summary Adapting Generic Graph Search to Breadth-First Search Adapting the generic algorithm to breadth-first search: similar adaptations to BFS-Tree (deque as open list, early goal test) as closed list does not need to manage node information, a set data structure suffices for the same reasons why early goal tests are a good idea, we should perform duplicate tests against the closed list and updates of the closed lists as early as possible

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend