0% found this document useful (0 votes)
33 views

CS 4700: Foundations of Artificial Intelligence: Bart Selman Problem Solving by Search R&N: Chapter 3

This document provides an overview of problem solving by search, which is a central topic in artificial intelligence. It discusses different types of problem solving agents and problem formulations. Search is used to find solutions, which are sequences of actions to achieve a goal starting from an initial state. Example problems discussed include path finding, the blocks world, vacuum world, and the 8-puzzle and 15-puzzle games. Basic search algorithms are introduced for solving such problems by exploring the state space in a methodical way. Larger search spaces like the 15-puzzle can include over 10 trillion states, posing challenges for finding optimal solutions.

Uploaded by

mahesh anavkar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views

CS 4700: Foundations of Artificial Intelligence: Bart Selman Problem Solving by Search R&N: Chapter 3

This document provides an overview of problem solving by search, which is a central topic in artificial intelligence. It discusses different types of problem solving agents and problem formulations. Search is used to find solutions, which are sequences of actions to achieve a goal starting from an initial state. Example problems discussed include path finding, the blocks world, vacuum world, and the 8-puzzle and 15-puzzle games. Basic search algorithms are introduced for solving such problems by exploring the state space in a methodical way. Larger search spaces like the 15-puzzle can include over 10 trillion states, posing challenges for finding optimal solutions.

Uploaded by

mahesh anavkar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 69

CS 4700:

Foundations of Artificial Intelligence

Bart Selman

Problem Solving by Search


R&N: Chapter 3
Introduction
Search is a central topic in AI.

Originated with Newell and Simons work on problem solving;


Human Problem Solving (1972).

Automated reasoning is a natural search task.

More recently: Given that almost all AI formalisms


(planning, learning, etc) are NP-Complete or worse,
some form of search is generally unavoidable
(i.e., no smarter algorithm available).
Outline

Problem-solving agents
Problem types
Problem formulation
Example problems
Basic search algorithms
Problem-solving agents
More details on states soon.
Problem solving agents are goal-directed agents:

1. Goal Formulation: Set of one or more (desirable)


world states (e.g. checkmate in chess).
2. Problem formulation: What actions and states to
consider given a goal and an initial state.
3. Search for solution: Given the problem, search for a
solution --- a sequence of actions to achieve the goal
starting from the initial state.
4. Execution of the solution

Note: Formulation feels somewhat contrived, but was meant


to model very general (human) problem solving process.
Formulate goal: Example: Path Finding problem
be in Bucharest
(Romania)
Initial
State
Formulate problem:
action: drive between
pair of connected cities
(direct road)
Goal
state: be in a city State
(20 world states)

Find solution:
sequence of cities
leading from start to
goal state, e.g., Arad, Environment: fully observable (map),
Sibiu, Fagaras, deterministic, and the agent knows effects
Bucharest of each action. Is this really the case?

Execution Note: Map is somewhat of a toy example. Our real
drive from Arad to interest: Exponentially large spaces, with e.g. 10^100
Bucharest according to or more states. Far beyond full search. Humans can
the solution
often still handle those!
One of the mysteries of cognition.
Micro-world: The Blocks World
gripper

How many a) Tens?


different possible b) Hundreds?
world states? c) Thousands?
d) Millions?
A
e) Billions?
D D
f) Trillions?
A B C C
T
Initial State Goal State
Size state space of blocks world example
n = 8 objects, k = 9 locations to build towers, one gripper. (One location in box.)
All objects distinguishable, order matter in towers. (Assume stackable
in any order.)

Blocks: Use r-combinations approach from Rosen (section 5.5; CS-2800).


- - - - - - - - - - - - - - - - consider 16 = (n + k 1) spots
Select k 1 = 8 dividers to create locations,
(16 choose 8) ways to do this, e.g.,
| | - - - | - | | - - - | | - | Allocate n = 8 objs to remaining spots, 8! ways, e.g.,
| |418|5| |637| |2| assigns 8 objects to the 9 locations
a b c d e f g h i based on dividers

So, total number of states (ignoring gripper): (16 choose 8) * 8! = 518,918,400


* 9 for location gripper: > 4.5 billion states even in this toy domain!
Search spaces grow exponentially with domain. Still need to search them, e.g., to
find a sequence of states (via gripper moves) leading to a desired goal state.
Problem types
1) Deterministic, fully observable
Agent knows exactly which state it will be in; solution is a sequence of actions.
Increasing complexity

2) Non-observable --- sensorless problem


Agent may have no idea where it is (no sensors); it reasons in terms of
belief states; solution is a sequence actions (effects of actions certain).

3) Nondeterministic and/or partially observable: contingency problem


Actions uncertain, percepts provide new information about current
state (adversarial problem if uncertainty comes from other agents).
Solution is a strategy to reach the goal.

4) Unknown state space and uncertain action effects: exploration problem


-- Solution is a strategy to reach the goal (end explore environment).
Example: Vacuum world state space graph

Start state

Goal
(reach one in
this set of states)
states? The agent is in one of 8 possible world states.
actions? Left, Right, Suck [simplified: left out No-op]
goal test? No dirt at all locations (i.e., in one of bottom two states).
path cost? 1 per action
Minimum path from Start to Goal state: 3 actions
Alternative, longer plan: 4 actions
Note: path with thousands of steps before reaching goal also exist.
Example: The 8-puzzle
sliding tile puzzle
Aside:
variations
on goal state.
eg empty square
bottom right or
in middle.

states? the boards, i.e., locations of tiles


actions? move blank left, right, up, down
goal test? goal state (given; tiles in order)
path cost? 1 per move

Note: finding optimal solution of n-puzzle family is NP-hard!


Also, from certain states you cant reach the goal.
Total number of states 9! = 362,880 (more interesting space;
not all connected only half can reach goal state)
Goal state
15-puzzle
Search space: Korf:
16!/2 = 1.0461395 e+13, Disk errors
about 10 trillion. become a
Too large to store in RAM problem.
(>= 100 TB). A challenge to search
for a path from a given board to goal.

Longest minimum path: 80 moves. Just 17 boards, e.g,

Average minimum soln. length: 53.

People can find solns. But not necessarily


minimum length. See solve it! (Gives strategy.)
Korf, R., and Schultze, P. 2005. Large-scale parallel breadth-first search. In
Proceedings of the 20th National Conference on Artificial Intelligence (AAAI-05).
See Fifteen Puzzle Optimal Solver. With effective search: opt. solutions in seconds!
Average: milliseconds.
# states in billions Where are the 10 trillion states?

minimum distance from goal state (# moves)


dist. # states dist. # states

etc.
4 17 boards farthest away from goal state (80 moves)
1
13

?
<15,12,11>/
<9,10,14>
?
What is
?
it about
these 17
Each require 80 moves to reach:
boards
out of Intriguing similarities. Each number
over 10 has its own few locations.
trillion? Interesting machine learning task:
Learn to recognize the hardest boards!
(Extremal Combinatorics, e.g. LeBras, Gomes, and Selman AAAI-12)
17 boards farthest away from goal state (80 moves)

Most regular extreme case: Goal state


Each quadrant
reflected along
diagonal. move
tiles furthest away

Thanks to Jonathan GS
A few urls:

Play the eight puzzle on-line


Play the fifteen puzzle on-line

Lets consider the search for a solution.


Searching for a solution
to the 8-puzzle. Start state

Aside: in this
tree, immediate
duplicates are
removed.

Goal
A breadth-first search tree. (More detail soon.)

Branching factor 1, 2, or 3 (max). So, approx. 2 --- # nodes roughly doubles at


each level. Number states of explored nodes grows exponentially with depth.
For 15-puzzle, hard initial states: 80 levels deep, requires
exploring approx. 2^80 10^24 states.

If we block all duplicates, we get closer to 10 trillion (the number of


distinct states: still a lot!).

Really only barely feasible on compute cluster with lots of memory and
compute time. (Raw numbers for 24 puzzle, truly infeasible.)

Can we avoid generating all these boards? Do with much less search?
(Key: bring average branching factor down.)
Gedanken experiment: Assume that you knew for each state, the minimum
number of moves to the final goal state. (Table too big, but assume there is
some formula/algorithm based on the board pattern that gives this number
for each board and quickly.)

Using the minimum distance information, is there a clever way to find a


minimum length sequence of moves leading from the start state to the goal
state? How?
d = min dist. to goal
Hmm. How do I know?
d=5 Start state
Note: at least one
neighbor with d =
4. d >= 5 Selectd = 4 d >= 4

d >= 4 Select
d=3 d >= 3

d=2
Select

dSelect
=1

Select
d = 0 d >= 1
Goal
A breadth-first search tree. (More detail soon.)

Branching factor approx. 2. So, with distance oracle we only need


to explore approx. 2 * (min. solution length).
For 15-puzzle, hard initial states: 80 levels deep, requires exploring
approx. 2^80 10^24 states.

But, with distance oracle, we only need to explore roughly 80 * 2 = 160


states! (only linear in size of solution length)

We may not have the exact distance function (perfect heuristics), but
we can still guide the search using an approximate distance function.

This is the key idea behind heuristic search or knowledge-based search.


We use knowledge / heuristic information about the distance to the goal to
guide our search process. We can go from exponential to polynomial or even
linear complexity. More common: brings exponent down significantly.
E.g. from 2^L to 2^(L/100).

The measure we considered would be the perfect heuristic. Eliminates tree


search! Find the right path to goal state immediately.
Basic idea: State evaluation Start state
function can effectively guide
search.

Also in multi-agent settings.


(Chess: board eval.)

Reinforcement learning:
Learn the state eval function.

Goal
A breadth-first search tree.

Perfect heuristics, eliminates search.


Approximate heuristics, significantly reduces search.
Best (provably) use of search heuristic info: A* search (soon).
State evaluation functions
or heuristics
Provide guidance in terms of what action to take next.

General principle: Consider all neighboring states, reachable via some


action. Then select the action that leads to the state with the highest
utility (evaluation value). This is a fully greedy approach.

Because eval function is often only an estimate of the true state value,
greedy search may not find the optimum path to the goal.

By adding some search with certain guarantees on the approximation,


we can still get optimal behavior (A* search) (i.e. finding the
optimal path to the solution). Overall result: generally
exponentially less search required.
N-puzzle heuristics (State evaluation function wrt to goal to be reached):

1) Manhattan Distance: For each tile the number of grid units between its
current location and its goal location are counted and the values for all
tiles are summed up. (underestimate; too loose; not very powerful)

2) Felner, Ariel, Korf, Richard E., Hanan, Sarit, Additive Pattern


Database Heuristics, Journal of Artificial Intelligence Research 22
(2004) 279-318. The 78 Pattern Database heuristic takes a lot of memory
but solves a random instance of the 15-puzzle within a few milliseconds
on average. An optimal solution for the 80 moves cases takes a few
seconds each. So, thousands of nodes considered instead of many
billions.

Note: many approx. heuristics (conservative / underestimates to goal)


combined with search can still find optimal solutions.
State evaluation function (or utility
value) is a very general and useful idea.
Example:
In chess, given a board, what would be the
perfect evaluation value that you would want to know?
(Assume the perspective of White player.)

A: f(board) {+1, 0, -1}, with +1 for guaranteed win for White,


0 draw under perfect play, and
-1 loss under perfect play.
Perfect play: all powerful opponent.
Given f, how would you play then?

In practice, we only know (so far) of an approximation of f.


f(board) [-1,+1] (interval from -1 to +1)
based on values of chess pieces, e.g., pawn 1 point, rook 5 points.
Informally, board value gives probability (?) of winning.
State evaluation function (or utility
value) is a very general and useful idea.
Examples:
TD-Gammon backgammon player. Neural net
was trained to find approximately optimal state (board)
evaluation values (range [-1,+1]). (Tesauro 1995)

Robocopter --- automated helicopter control;


trained state evaluation function.
State given by features, such as,
position, orientation, speed, and
rotors position and speed. Possible
actions change rotors speed and
position. Evaluation assigns value
in [-1,+1] to capture stability.

(Abbeel, Coates, and Ng 2008)


Example: Robotic assembly

states?: real-valued coordinates of robot joint angles


parts of the object to be assembled
actions?: continuous motions of robot joints
goal test?: complete assembly
path cost?: time to execute
Other example search tasks
VLSI layout: positioning millions of components and connections on a
chip to minimize area, circuit delays, etc.

Robot navigation / planning

Automatic assembly of complex objects

Protein design: sequence of amino acids that will fold into the 3-
dimensional protein with the right properties.

Literally thousands of combinatorial search / reasoning / parsing /


matching problems can be formulated as search problems in exponential
size state spaces.
Search Techniques
Searching for a (shortest / least cost) path to goal state(s).

Search through the state space.

We will consider search techniques that use an


explicit search tree that is generated by the
initial state + successor function.

initialize (initial node)


Loop
choose a node for expansion
according to strategy
goal node? done
expand node with successor function
Tree-search algorithms

Basic idea:
simulated exploration of state space by generating successors of
already-explored states (a.k.a. ~ expanding states)

Fig. 3.7 R&N, p. 77


Note: 1) Here we only check a node for possibly being a goal state, after we
select the node for expansion.
2) A node is a data structure containing state + additional info (parent
node, etc.
Tree search example
Node selected
for expansion.
Nodes added to tree.
Selected for expansion.

Added to tree.

Note: Arad added (again) to tree!


(reachable from Sibiu)

Not necessarily a problem, but


in Graph-Search, we will avoid
this by maintaining an
explored list.
Graph-search

Fig. 3.7 R&N, p. 77. See also exercise 3.13.

Note:
1) Uses explored set to avoid visiting already explored states.
2) Uses frontier set to store states that remain to be explored and expanded.
3) However, with eg uniform cost search, we need to make a special check when
node (i.e. state) is on frontier. Details later.
Implementation: states vs. nodes
A state is a --- representation of --- a physical configuration.

A node is a data structure constituting part of a search tree includes


state, tree parent node, action (applied to parent), path cost (initial
state to node) g(x), depth

The Expand function creates new nodes, filling in the various fields
and using the SuccessorFn of the problem to create the
corresponding states.

Fringe is the collection of nodes that have been generated but not (yet)
expanded. Each node of the fringe is a leaf node.
Implementation: general tree search
Search strategies

A search strategy is defined by picking the order of node expansion.

Strategies are evaluated along the following dimensions:


completeness: does it always find a solution if one exists?
time complexity: number of nodes generated
space complexity: maximum number of nodes in memory
optimality: does it always find a least-cost solution?

Time and space complexity are measured in terms of
b: maximum branching factor of the search tree
d: depth of the least-cost solution
m: maximum depth of the state space (may be )

Uninformed search strategies

Uninformed (blind) search strategies use only the


information available in the problem definition:

Breadth-first search
Uniform-cost search
Depth-first search
Depth-limited search
Iterative deepening search
Bidirectional search

Key issue: type of queue used for the fringe of the search tree
(collection of tree nodes that have been generated but not yet
expanded)
Breadth-first search
Expand shallowest unexpanded node.

Implementation:
fringe is a FIFO queue, i.e., new
Fringe
nodesqueue:
go at end <A>
(First In First Out queue.)

Select A from
queue and expand.

Gives
<B, C>
Queue: <B, C>

Select B from
front, and expand.

Put children at the


end.

Gives
<C, D, E>
Fringe queue: <C, D, E>
Fringe queue: <D, E, F, G>

Assuming no further children, queue becomes


<E, F, G>, <F, G>, <G>, <>. Each time node checked
for goal state.
Properties of breadth-first search
Note: check for
Complete? Yes (if b is finite) goal only when
node is expanded.

Time? 1+b+b2+b3+ +bd + b(bd-1) = O(bd+1)

Space? O(bd+1) (keeps every node in memory;


needed also to reconstruct soln. path)
Optimal soln. found?
Yes (if all step costs are identical)

Space is the bigger problem (more than time)


b: maximum branching factor of the search tree
d: depth of the least-cost solution
Uniform-cost search

Expand least-cost (of path to) unexpanded node


(e.g. useful for finding shortest path on map)
Implementation:
fringe = queue ordered by path cost
g cost of reaching a node
Complete? Yes, if step cost (>0)
Time? # of nodes with g cost of optimal solution (C*),
O(b(1+C*/ )
Space? # of nodes with g cost of optimal solution,
O(b(1+C*/ )
Optimal? Yes nodes expanded in increasing order of g(n)
Note: Some subtleties (e.g. checking for goal state).
See p 84 R&N. Also, next slide.
Uniform-cost search
Two subtleties: (bottom p. 83 Norvig)
1) Do goal state test, only when a node is selected for expansion.
(Reason: Bucharest may occur on frontier with a longer than
optimal path. It wont be selected for expansion yet. Other nodes
will be expanded first, leading us to uncover a shorter path to
Bucharest. See also point 2).

2) Graph-search alg. says dont add child node to frontier if already on


explored list or already on frontier. BUT, child may give a shorter path
to a state already on frontier. Then, we need to modify the existing
node on frontier with the shorter path. See fig. 3.14 (else-if part).
Depth-first search
Expand deepest unexpanded node

Implementation:
fringe = LIFO queue, i.e., put successors at front (push on stack)
Last In First Out
Fringe stack:
A

Expanding A,
gives stack:
B
C

So, B next.
Expanding B,
gives stack:
D
E
C

So, D next.
Expanding D,
gives stack:
H
I
E
C

So, H next.
etc.
Properties of depth-first search
Complete? No: fails in infinite-depth spaces, spaces with loops
Modify to avoid repeated states along path
complete in finite spaces
Time? O(bm): bad if m is much larger than d
but if solutions are dense, may be much faster than breadth-first
Note: Can also
reconstruct soln. path
Space? O(bm), i.e., linear space! from single stored
branch.
b: max. branching factor of the search tree
Guarantee that No d: depth of the shallowest (least-cost) soln.
opt. soln. is found? m: maximum depth of state space
Note: In backtrack search only one successor is generated
only O(m) memory is needed; also successor is modification of
the current state, but we have to be able to undo each modification.
More when we talk about Constraint Satisfaction Problems (CSP).
[here]
Iterative deepening search
Iterative deepening search l =0
Iterative deepening search l =1
Iterative deepening search l =2
Iterative deepening search l =3
Why would one do that?

Combine good memory requirements of depth-first with


the completeness of breadth-first when branching factor is
finite and is optimal when the path cost is a non-decreasing
function of the depth of the node.

Idea was a breakthrough in game playing. All game


tree search uses iterative deepening nowadays. Whats
the added advantage in games?

Anytime nature.
Iterative deepening search
Number of nodes generated in an iterative deepening search to depth
d with branching factor b:
Looks quite wasteful, is it?
NIDS = d b1 + (d-1)b2 + + 3bd-2 +2bd-1 + 1bd

Nodes generated in a breadth-first search with branching factor b:

NBFS = b1 + b2 + + bd-2 + bd-1 + bd


For b = 10, d = 5,

NBFS= 10 + 100 + 1,000 + 10,000 + 100,000 = 111,110



NIDS = 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456


Iterative deepening is the preferred uninformed search method
when there is a large search space and the depth of the solution
is not known.
Properties of iterative deepening search

Complete? Yes
(b finite)

Time? d b1 + (d-1)b2 + + bd = O(bd)

Space? O(bd)

Optimal? Yes, if step costs identical


Bidirectional Search
Simultaneously:
Search forward from start
Search backward from the goal
Stop when the two searches meet.

If branching factor = b in each direction,


with solution at depth d
only O(2 bd/2)= O(2 bd/2)

Checking a node for membership in the other search tree can be done in constant
time (hash table)

Key limitations:
Space O(bd/2)
Also, how to search backwards can be an issue (e.g., in Chess)? Whats tricky?
Problem: lots of states satisfy the goal; dont know which one is relevant.

Aside: The predecessor of a node should be easily computable (i.e., actions


are easily reversible).
Failure to detect repeated states can turn
Repeated states
linear problem into an exponential one!
Dont return to parent node

Dont generate successor = nodes


parent

Dont allow cycles

Dont revisit state

Keep every visited state in memory!


O(bd) (can be expensive)

Problems in which actions are reversible (e.g., routing problems or


sliding-blocks puzzle). Also, in eg Chess; uses hash tables to check
for repeated states. Huge tables 100M+ size but very useful.

See Tree-Search vs. Graph-Search in Fig. 3.7 R&N. But need to


be careful to maintain (path) optimality and completeness.
Summary: General, uninformed search
Original search ideas in AI where inspired by studies of human problem
solving in, eg, puzzles, math, and games, but a great many AI tasks now
require some form of search (e.g. find optimal agent strategy; active
learning; constraint reasoning; NP-complete problems require search).

Problem formulation usually requires abstracting away real-world details


to define a state space that can feasibly be explored.

Variety of uninformed search strategies

Iterative deepening search uses only linear space and not much more time
than other uninformed algorithms.

Avoid repeating states / cycles.

You might also like