- 74 Views
- Uploaded on
- Presentation posted in: General

Lirong Xia

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Basic search

Lirong Xia

- TA OH
- Joe Johnson (mainly in charge of the project): Wed 12:30-1:30 pm, Amos Eaton 217
- HongzhaoHuang (everything else): Thur 12:30-1:30 pm, Amos Eaton 125

- Project0 due on next Tuesday Jan 28 midnight
- LMS working!
- 2 points
- submission instruction changed, if you have uploaded project 0, please re-submit it

- Sign up on piazza by Jan 28 midnight (1 point)
- Try your best to use piazza for Q/A
- You are encouraged to stop me and ask questions in class

- Rational agents
- Search problems
- State space graph vs search trees

- Uninformed search
- Depth first search (DFS) algorithm
- Breadth first search (BFS) algorithm

Agent

- An agent is an entity that perceives and acts.
- A rational agent selects actions that maximize its utility function.
- Characteristics of the percepts, environment, and action space dictate techniques for selecting rational actions.

Actuators

Sensors

Percepts

Actions

Environment

Agent

Sensors

Percepts

Environment

?

Actuators

Actions

- Reflex agents:
- Act on how the world IS
- Do not consider the future consequences of their actions

- Goal-based agents:
- Plan ahead
- Act on how the world WOULD BE
- Must have a model of how the world evolves in response to actions

- We will be interested in goal-based agents in this class

- 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

The world state specifies every last detail of the environment

A search state keeps only the details needed (abstraction)

- Problem: Pathing
- States: (x,y) location
- Actions: NSEW
- Successor: adjacent locations
- Goal test: is (x,y) = END

- Problem: Eat-All-Dots
- States: {(x,y), dot booleans}
- Actions: NSEW
- Successor: updated location and dot booleans
- Goal test: dots all false

- World state:
- Agent positions: 120
- Food count: 30
- Ghost positions: 12
- Agent facing: NSEW

- How many
- World states?
- States for pathing?
- States for eat-all-dots?

- 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 is memory (so we don’t)

Ridiculously tiny search graph for a tiny search problem

- 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

- Fringe = set of nodes generated but not expanded
= nodes we know we still have to explore

- fringe := {node corresponding to the initial state}
- loop:
- if fringe empty, declare failure
- choose and remove a node v from fringe
- check if v’s state s is a goal state; if so, declare success
- if not, expand v, insert resulting nodes into fringe

- Key question in search: Which of the generated nodes do we expand next?

Cohoes

- State space:
- Cities

- Successor function:
- Roads: Go to adjacent city with cost = dist

- Start state:
- Cohoes

- Goal test:
- Is state == Delmar

- Solution?

4.4

Latham

4.1

4

Troy

3.1

5.3

10.7

Loudonville

8

4.3

Guilderland

8.7

Albany

1.5

Rensselaer

5.2

Delmar

Cohoes

Latham

Troy

Cohoes

Troy

Loudonville

Cohoes

Latham

Loudonville

La

T

C

La

Lo

A

- Search:
- Expand out possible plans
- Maintain a fringe of unexpanded plans
- Try to expand as few tree nodes as possible

State

graph

Search

trees

- State graphs: a representation of the search problem
- each node is an abstract of the state of the world

- Search tree: a tool that helps us to find the solution
- each node represents an entire path in the graph
- tree nodes are constructed on demand and we construct as little as possible

- Nodes in state space graphs are problem states:
- Represent an abstracted state of the world
- Have successors, can be goal/non-goal, have multiple predecessors

- Nodes in search trees are plans
- Represent a plan (sequence of actions) which results in the node’s state
- Have a problem state and one parent, a path length, a depth and a cost
- The same problem state may be achieved by multiple search tree nodes

Problem States

Search Nodes

- Uninformed search: given a state, we only know whether it is a goal state or not
- Cannot say one nongoal state looks better than another nongoal state
- Can only traverse state space blindly in hope of somehow hitting a goal state at some point
- Also called blind search
- Blind does not imply unsystematic!

b

a

Start

c

d

e

GOAL

- Ignores the cost
- May expand more nodes than necessary
- BFS is complete: if a solution exists, one will be found
- BFS finds a shallowest solution
- Not necessarily an optimal solution

- If every node has b successors (the branching factor), shallowest solution is at depth d, then fringe size will be at least bd at some point
- This much space (and time) required

- Never expand a node whose state has been visited
- Fringe can be maintained as a First-In-First-Out (FIFO) queue (class Queue in util.py)
- Maintain a set of visited states
- fringe := {node corresponding to initial state}
- loop:
- if fringe empty, declare failure
- choose and remove the top node v from fringe
- check if v’s state s is a goal state; if so, declare success
- if v’s state has been visited before, skip
- if not, expand v, insert resulting nodes whose states have not been visited into fringe

- This is the BFS you should implement in project 1

b

a

Start

c

d

e

GOAL

- Ignores cost
- Not complete (might cycle through nongoal states)
- If solution found, generally not optimal/shallowest
- If every node has b successors (the branching factor), and we search to at most depth m, fringe is at most bm
- Much better space requirement
- Actually, generally don’t even need to store all of fringe

- Time: still need to look at every node
- bm + bm-1 + … + 1 (for b>1, O(bm))
- Inevitable for uninformed search methods…

- Never expand a node whose state has been visited
- Fringe can be maintained as a Last-In-First-Out (LIFO) queue (class Stack in util.py)
- Maintain a set of visited states
- fringe := {node corresponding to initial state}
- loop:
- if fringe empty, declare failure
- choose and remove the top node v from fringe
- check if v’s state s is a goal state; if so, declare success
- if v’s state has been visited before, skip
- if not, expand v, insert resulting nodes whose states have not been visited into fringe

- This is the DFS you should implement in project 1

- Read the instructions on course website and the comments in search.py first
- Q1: DFS
- LIFO

- Q2: BFS
- FIFO

- Due in two weeks (Feb 7)
- Check util.py for LIFO and FIFO implementation
- Use piazza for Q/A

- The auto-grader is very strict
- 0 point for expanding more-than-needed states
- no partial credit

- Hint 1: do not include print "Start:", problem.getStartState() in your formal submission
- comment out all debuging commands

- Hint 2: remember to check if a state has been visited before
- Hint 3: return a path from start to goal. You should pass the local test before submission (details and instructions on project 1 website)

- TA OH
- Joe Johnson (mainly in charge of the project): Wed 12:30-1:30 pm, Amos Eaton 217
- HongzhaoHuang (everything else): Thur 12:30-1:30 pm, Amos Eaton 125

- Project0 due on next Tuesday Jan 28 midnight
- LMS working!
- 2 points
- submission instruction changed, if you have uploaded project 0, please re-submit it

- Project1 due on Feb 7 midnight
- Sign up on piazza by Jan 28 midnight (1 point)
- Try your best to use piazza for Q/A
- You are encouraged to stop me and ask questions in class