lirong xia

34
Lirong Xia Basic search Friday, Jan 24, 2014

Upload: lucius-lancaster

Post on 30-Dec-2015

28 views

Category:

Documents


0 download

DESCRIPTION

Basic search. Lirong Xia. Reminder. TA OH Joe Johnson (mainly in charge of the project): Wed 12:30-1:30 pm, Amos Eaton 217 Hongzhao Huang (everything else): Thur 12:30-1:30 pm, Amos Eaton 125 Project0 due on next Tuesday Jan 28 midnight LMS working! 2 points - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Lirong  Xia

Lirong Xia

Basic search

Friday, Jan 24, 2014

Page 2: Lirong  Xia

• TA OH

– Joe Johnson (mainly in charge of the project): Wed 12:30-1:30 pm, Amos

Eaton 217

– Hongzhao Huang (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

2

Reminder

Page 3: Lirong  Xia

3

Last class

Page 4: Lirong  Xia

4

Welcome back to the earth

Page 5: Lirong  Xia

• Rational agents

• Search problems

– State space graph vs search trees

• Uninformed search

– Depth first search (DFS) algorithm

– Breadth first search (BFS) algorithm

5

Today’s schedule

Page 6: Lirong  Xia

• 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.

Rational Agents

6

Environment

Agent

Sensor

s

Actuators

Actions

Percepts

Page 7: Lirong  Xia

Pacman as an Agent

7

Environment?

AgentSensors

Actuators

Percepts

Actions

Page 8: Lirong  Xia

Reflex vs goal-based Agents

8

• 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

Page 9: Lirong  Xia

9

When goal = search for something

Page 10: Lirong  Xia

10

More general than you may think

Page 11: Lirong  Xia

11

Can we teach agents how to search for all of these?

Page 12: Lirong  Xia

12

WARNING: leisure time is over!

Let’s do science

Page 13: Lirong  Xia

Search Problems

13

• 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

Page 14: Lirong  Xia

What’s in a State Space?

14

A search state keeps only the details needed (abstraction)

The world state

specifies every last

detail of the

environment

• 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

Page 15: Lirong  Xia

State Space Sizes?

15

• 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?

Page 16: Lirong  Xia

State Space Graphs

16

• 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

Page 17: Lirong  Xia

Search Trees

17

• 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

Page 18: Lirong  Xia

Generic search algorithm• 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?

Page 19: Lirong  Xia

Example 2: Capital Region

19

• State space:• Cities

• Successor function:• Roads: Go to

adjacent city with

cost = dist

• Start state:• Cohoes

• Goal test:• Is state == Delmar

• Solution?

Cohoes

Latham

Troy

Loudonville

AlbanyGuilderland

Rensselaer

Delmar

4.4

4

4.1

5.33.1

4.3

8

1.5

5.2

8.7

10.7

Page 20: Lirong  Xia

Another Search Tree

20

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

Cohoes

Latham Troy

LoudonvilleTroy LoudonvilleCohoes Cohoes Latham

CLa T ALa Lo

Page 21: Lirong  Xia

State Graphs vs. Search Trees

21

• 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

State

graph

Search

trees

Page 22: Lirong  Xia

States vs. Nodes

22

• 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

Page 23: Lirong  Xia

Uninformed search• 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!

Page 24: Lirong  Xia

Breadth-first search

Page 25: Lirong  Xia

26

Example

Start

a

b

c

d

e

GOAL

Page 26: Lirong  Xia

Properties of breadth-first search

• 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

Page 27: Lirong  Xia

• 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 128

Fixed BFS

Page 28: Lirong  Xia

Depth-first search

Page 29: Lirong  Xia

31

Example

Start

a

b

c

d

e

GOAL

Page 30: Lirong  Xia

Properties of depth-first search

• 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…

Page 31: Lirong  Xia

• 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 133

Fixed DFS

Page 32: Lirong  Xia

• 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 34

You can start to work on Project 1 now

Page 33: Lirong  Xia

• 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)

35

Dodging the bullets

Page 34: Lirong  Xia

• TA OH

– Joe Johnson (mainly in charge of the project): Wed 12:30-1:30 pm, Amos

Eaton 217

– Hongzhao Huang (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

36

Reminder