0% found this document useful (0 votes)
47 views31 pages

Lec 3

1. Search algorithms are used in artificial intelligence to find optimal solutions or paths through large problem spaces. 2. Common search algorithms include breadth-first search, depth-first search, and informed searches that use heuristics to guide the search. 3. The key aspects of defining a search problem include the initial state, possible actions/operators, goal test, and solution cost metric.

Uploaded by

eng_kmm
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)
47 views31 pages

Lec 3

1. Search algorithms are used in artificial intelligence to find optimal solutions or paths through large problem spaces. 2. Common search algorithms include breadth-first search, depth-first search, and informed searches that use heuristics to guide the search. 3. The key aspects of defining a search problem include the initial state, possible actions/operators, goal test, and solution cost metric.

Uploaded by

eng_kmm
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/ 31

Artificial Intelligence

Search
Search
• Search permeates all of AI
• What choices are we searching through?
– Problem solving
Action combinations (move 1, then move 3, then move 2...)
– Natural language
Ways to map words to parts of speech
– Computer vision
Ways to map features to object model
– Machine learning
Possible concepts that fit examples seen so far
– Motion planning
Sequence of moves to reach goal destination
• An intelligent agent is trying to find a set or sequence of actions to
achieve a goal
• This is a goal-based agent
Problem-solving Agent

SimpleProblemSolvingAgent(percept)
state = UpdateState(state, percept)
if sequence is empty then
goal = FormulateGoal(state)
problem = FormulateProblem(state, g)
sequence = Search(problem)
action = First(sequence)
sequence = Rest(sequence)
Return action
Assumptions
• Static or dynamic?

Environment is static
Assumptions
• Static or dynamic?
• Fully or partially observable?

Environment is fully observable


Assumptions
• Static or dynamic?
• Fully or partially observable?
• Discrete or continuous?

Environment is discrete
Assumptions
• Static or dynamic?
• Fully or partially observable?
• Discrete or continuous?
• Deterministic or stochastic?

Environment is deterministic
Assumptions
• Static or dynamic?
• Fully or partially observable?
• Discrete or continuous?
• Deterministic or stochastic?
• Episodic or sequential?
Environment is sequential
Assumptions
• Static or dynamic?
• Fully or partially observable?
• Discrete or continuous?
• Deterministic or stochastic?
• Episodic or sequential?
• Single agent or multiple agent?
Assumptions
• Static or dynamic?
• Fully or partially observable?
• Discrete or continuous?
• Deterministic or stochastic?
• Episodic or sequential?
• Single agent or multiple agent?
Search Example
Formulate goal: Be in
Bucharest.

Formulate problem: states


are cities, operators drive
between pairs of cities

Find solution: Find a


sequence of cities (e.g., Arad,
Sibiu, Fagaras, Bucharest) that
leads from the current state
to a state meeting the goal
condition
Search Space Definitions
• State
– A description of a possible state of the world
– Includes all features of the world that are pertinent to the problem
• Initial state
– Description of all pertinent aspects of the state in which the agent starts
the search
• Goal test
– Conditions the agent is trying to meet (e.g., have $1M)
• Goal state
– Any state which meets the goal condition
– Thursday, have $1M, live in NYC
– Friday, have $1M, live in Valparaiso
• Action
– Function that maps (transitions) from one state to another
Search Space Definitions
• Problem formulation
– Describe a general problem as a search problem
• Solution
– Sequence of actions that transitions the world from the initial state to a
goal state
• Solution cost (additive)
– Sum of the cost of operators
– Alternative: sum of distances, number of steps, etc.
• Search
– Process of looking for a solution
– Search algorithm takes problem as input and returns solution
– We are searching through a space of possible states
• Execution
– Process of executing sequence of actions (solution)
Problem Formulation

A search problem is defined by the

1. Initial state (e.g., Arad)


2. Operators (e.g., Arad -> Zerind, Arad -> Sibiu, etc.)
3. Goal test (e.g., at Bucharest)
4. Solution cost (e.g., path cost)
Example Problems – Eight Puzzle
States: tile locations

Initial state: one specific tile configuration

Operators: move blank tile left, right, up, or


down

Goal: tiles are numbered from one to eight


around the square

Path cost: cost of 1 per move (solution cost


same as number of most or path length)

Eight puzzle applet


Sample Search Problems
• Graph coloring
• Protein folding
• Game playing
• Airline travel
• Proving algebraic equalities
• Robot motion planning
Search Problem Example (as a tree)
Search Function –
Uninformed Searches
Open = initial state // open list is all generated states
// that have not been “expanded”
While open not empty // one iteration of search algorithm
state = First(open) // current state is first state in open
Pop(open) // remove new current state from open
if Goal(state) // test current state for goal condition
return “succeed” // search is complete
// else expand the current state by
// generating children and
// reorder open list per search strategy
else open = QueueFunction(open, Expand(state))
Return “fail”
Search Strategies
• Search strategies differ only in Queuing
Function
• Features by which to compare search
strategies
– Completeness (always find solution)
– Cost of search (time and space)
– Cost of solution, optimal solution
– Make use of knowledge of the domain
• “uninformed search” vs. “informed search”
Breadth-First Search
• Generate children of a state, QueueingFn
adds the children to the end of the open list
• Level-by-level search
• Order in which children are inserted on
open list is arbitrary
• In tree, assume children are considered left-
to-right unless specified differently
• Number of children is “branching factor” b
BFS Examples

b=2

Example trees

Search algorithms applet


Analysis
• Assume goal node at level d with constant branching factor b

• Time complexity (measured in #nodes generated)


1 (1st level ) + b (2nd level) + b2 (3rd level) + … + bd (goal level) + (bd+1 – b) = O(bd+1)

• This assumes goal on far right of level


• Space complexity
At most majority of nodes at level d + majority of nodes at level d+1 = O(bd+1)
Exponential time and space

• Features
Simple to implement
Complete
Finds shortest solution (not necessarily least-cost unless all operators have equal cost)
Analysis
• See what happens with b=10
– expand 10,000 nodes/second
– 1,000 bytes/node
Depth Nodes Time Memory
2 1110 .11 seconds 1 megabyte
4 111,100 11 seconds 106 megabytes
6 107 19 minutes 10 gigabytes
8 109 31 hours 1 terabyte
10 1011 129 days 101 terabytes
12 1013 35 years 10 petabytes
15 1015 3,523 years 1 exabyte
Depth-First Search
• QueueingFn adds the children to the
front of the open list
• BFS emulates FIFO queue
• DFS emulates LIFO stack
• Net effect
– Follow leftmost path to bottom, then
backtrack
– Expand deepest node first
DFS Examples
Example trees
Analysis
• Time complexity
In the worst case, search entire space
Goal may be at level d but tree may continue to level m, m>=d
O(bm)
Particularly bad if tree is infinitely deep

• Space complexity
Only need to save one set of children at each level
1 + b + b + … + b (m levels total) = O(bm)
For previous example, DFS requires 118kb instead of 10 petabytes for d=12 (10 billion times less)

• Benefits
May not always find solution
Solution is not necessarily shortest or least cost
If many solutions, may find one quickly (quickly moves to depth d)
Simple to implement
Space often bigger constraint, so more usable than BFS for large problems
Comparison of Search Techniques

DFS BFS
Complete N Y
Optimal N N
Heuristic N N
Time bm bd+1
Space bm bd+1
Avoiding Repeated States
Can we do it?

• Do not return to parent or grandparent state


– In 8 puzzle, do not move up right after down
• Do not create solution paths with cycles
• Do not generate repeated states (need to store
and check potentially large number of states)
Maze Example
• States are cells in a maze
• Move N, E, S, or W
• What would BFS do
(expand E, then N, W, S)?
• What would DFS do?
• What if order changed to
N, E, S, W and loops are
prevented?
Example
• Solution = 0 0 1 0 1 0
• Fitness(x) = #digits that match solution
A) 0 1 0 1 0 1 Score: 1
B) 1 1 1 1 0 1 Score: 1
C) 0 1 1 0 1 1 Score: 3
D) 1 0 1 1 0 0 Score: 3

Recombine top two twice.


Note: 64 possible combinations
Example
• Solution = 0 0 1 0 1 0 • Next generation:
C) 0 1 1 0 1 1 E) 0 0 1 1 0 0
D) 1 0 1 1 0 0 F) 0 1 1 0 1 0

E) 0 | 0 1 1 0 0 Score: 4 G) 0 1 1 | 1 0 0 Score: 3
F) 1 | 1 1 0 1 1 Score: 3 H) 0 0 1 | 0 1 0 Score: 6
G) 0 1 1 0 1 | 0 Score: 4 I) 0 0 | 1 0 1 0 Score: 6
H) 1 0 1 1 0 | 1 Score: 2 J) 0 1 | 1 1 0 0 Score: 3

DONE! Got it in 10 guesses.

You might also like