DOC PREVIEW
Berkeley COMPSCI 188 - Lecture 2: Queue-Based Search

This preview shows page 1-2 out of 6 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1Announcements Project 0: Python Tutorial Due tomorrow! There is a lab Wednesday from 3pm-5pm in Soda 275 The lab time is optional, but P0 itself is not On submit, you should get email from the autograder Project 1: Search On the web today Start early and ask questions. It’s longer than most! Self-Diagnostic on web Sections: can go to any, but have priority in your ownCS 188: Artificial IntelligenceFall 2011Lecture 2: Queue-Based Search8/30/2011Dan Klein – UC BerkeleyMultiple slides from Stuart Russell, Andrew Moore Today Agents that Plan Ahead Search Problems Uninformed Search Methods (part review for some) Depth-First Search Breadth-First Search Uniform-Cost Search Heuristic Search Methods (new for all) Greedy SearchReflex Agents Reflex agents: Choose action based on current percept (and maybe memory) May have memory or a model of the world’s current state Do not consider the future consequences of their actions Consider how the world IS Can a reflex agent be rational?[demo: reflex optimal / loop ]Goal Based Agents Goal-based agents: Plan ahead Ask “what if” Decisions based on (hypothesized) consequences of actions Must have a model of how the world evolves in response to actions Consider how the world WOULD BE[demo: plan fast / slow ]Search Problems A search problem consists of: A state space A successor function(with actions, costs) A start state and a goal test A solution is a sequence of actions (a plan) which transforms the start state to a goal state“N”, 1.0“E”, 1.02Example: Romania State space: Cities Successor function: Roads: Go to adjcity with cost = dist Start state: Arad Goal test: Is state == Bucharest? Solution?State Space Graphs State space graph: A mathematical representation of a search problem For every search problem, there’s a corresponding state space graph The successor function is represented by arcs We can rarely build this graph in memory (so we don’t)SGdbpqcehafrRidiculously tiny search graph for a tiny search problemWhat’s in a State Space? Problem: Pathing States: (x,y) location Actions: NSEW Successor: update location only Goal test: is (x,y)=END Problem: Eat-All-Dots States: {(x,y), dot booleans} Actions: NSEW Successor: update location and possibly a dot boolean Goal test: dots all falseThe world statespecifies everylast detail of theenvironmentA search state keeps only the details needed (abstraction)State Space Sizes? World state: Agent positions: 120 Food count: 30 Ghost positions: 12 Agent facing: NSEW How many World states?120x(230)x(122)x4 States for pathing?120 States for eat-all-dots?120x(230)Search Trees A search tree: This is a “what if” tree of plans and outcomes Start state at the root node Children correspond to successors Nodes contain states, correspond to PLANS to those states For most problems, we can never actually build the whole tree“E”, 1.0“N”, 1.0Another Search Tree Search: Expand out possible plans Maintain a fringe of unexpanded plans Try to expand as few tree nodes as possible3General Tree Search Important ideas: Fringe Expansion Exploration strategy Main question: which fringe nodes to explore?Detailed pseudocode is in the book!Example: Tree SearchSGdbpqcehafrState Graphs vs. Search TreesSabdpacephfrqq cGaqephfrqq cGaSGdbpqcehafrWe construct both on demand – and we construct as little as possible.Each NODE in in the search tree is an entire PATH in the problem graph.Review: Depth First SearchSabdpacephfrqq cGaqephfrqq cGaSGdbpqcehafrqphfdbacerStrategy: expand deepest node firstImplementation: Fringe is a LIFO stackReview: Breadth First SearchSabdpacephfrqq cGaqephfrqq cGaSGdbpqcehafrSearchTiersStrategy: expand shallowest node firstImplementation: Fringe is a FIFO queueSearch Algorithm PropertiesComplete? Guaranteed to find a solution if one exists?Optimal? Guaranteed to find the least cost path?Time complexity?Space complexity?Variables:nNumber of states in the problem (huge)bThe average branching factor B(the average number of successors)C*Cost of least cost solutionsDepth of the shallowest solutionmMax depth of the search tree4DFS Infinite paths make DFS incomplete… How can we fix this?Algorithm Complete Optimal Time SpaceDFSDepth First SearchN NO(BLMAX) O(LMAX)STARTGOALabN N Infinite InfiniteDFS With cycle checking, DFS is complete.*  When is DFS optimal?Algorithm Complete Optimal Time SpaceDFSw/ Path CheckingY NO(bm+1) O(bm)…b1 nodeb nodesb2nodesbmnodesm tiers* Or graph search – next lecture.BFS When is BFS optimal?Algorithm Complete Optimal Time SpaceDFSw/ Path CheckingBFSY NO(bm+1) O(bm)…b1 nodeb nodesb2nodesbmnodess tiersY N*O(bs+1) O(bs)bsnodesComparisons When will BFS outperform DFS? When will DFS outperform BFS?Iterative DeepeningIterative deepening: BFS using DFS as a subroutine:1. Do a DFS which only searches for paths of length 1 or less. 2. If “1” failed, do a DFS which only searches paths of length 2 or less.3. If “2” failed, do a DFS which only searches paths of length 3 or less.….and so on.Algorithm Complete Optimal Time SpaceDFSw/ Path CheckingBFSIDY NO(bm+1) O(bm)Y N*O(bs+1) O(bs)Y N*O(bs+1) O(bs)…bCosts on ActionsNotice that BFS finds the shortest path in terms of number of transitions. It does not find the least-cost path.We will quickly cover an algorithm which does find the least-cost path. STARTGOALdbpqcehafr292818232441513225Uniform Cost SearchSabdpacephfrqq cGaqephfrqq cGaExpand cheapest node first:Fringe is a priority queue (priority: cumulative cost)SGdbpqcehafr39116411571381011171106391128821512Cost contours2Priority Queue Refresherpq.push(key, value) inserts (key, value) into the queue.pq.pop()returns the key with the lowest value, and removes it from the queue. You can decrease a key’s priority by pushing it again Unlike a regular queue, insertions aren’t constant time, usually O(log n) We’ll need priority queues for cost-sensitive search methods A priority queue is a data structure in which you can insert and retrieve (key, value) pairs with the following operations:Uniform Cost SearchAlgorithm Complete Optimal Time SpaceDFSw/ Path CheckingBFSUCSY NO(bm+1) O(bm)…bC*/εtiersY NO(bs+1) O(bs)Y* YO(bC*/ε) O(bC*/ε)* UCS can fail if actions can get


View Full Document

Berkeley COMPSCI 188 - Lecture 2: Queue-Based Search

Documents in this Course
CSP

CSP

42 pages

Metrics

Metrics

4 pages

HMMs II

HMMs II

19 pages

NLP

NLP

23 pages

Midterm

Midterm

9 pages

Agents

Agents

8 pages

Lecture 4

Lecture 4

53 pages

CSPs

CSPs

16 pages

Midterm

Midterm

6 pages

MDPs

MDPs

20 pages

mdps

mdps

2 pages

Games II

Games II

18 pages

Load more
Download Lecture 2: Queue-Based Search
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture 2: Queue-Based Search and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 2: Queue-Based Search 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?