Problem Solving and Search
Geraint A. Wiggins Professor of Computational Creativity Queen Mary, University of London
What is problem solving?
An agent can act by
establishing goals that result in solving a problem considering sequences of actions that might achieve those goals
To automate this, we need to formulate the problem The process of considering action sequences within a problem
formulation is called search
problem-solving agents problem types problem formulation example problems search strategies
This part of the module is about
An Agent on Holiday
Example
An agent is in Arad, Romania, at the end of a touring holiday. It has a ticket to y out of
Bucharest the following day. The ticket is non-refundable, the agents visa is about to expire and there are no seats available on ights for six weeks.
The agents performance measure includes
cost of ticket avoidance of arrest and/or deportation improvement of suntan seeing more sights
Lots of actions are possible to score highly on the performance
Agent can reject any actions that fail to meet this goal
measure, but the seriousness of the agents situation means that the agent should adopt the goal of getting to Bucharest
A problem-solving agent
Goals help to organise behaviour
goal formulation is the rst step to problem solving a goal is a desired state of (part of) the world
though it does not usually specify the state of the whole world alternatively, a goal can be thought of as the set of world states in which it is satised
Actions cause transitions between world states
The agent has to work out which action(s) will get it to the goal state
Problem formulation is exhaustive analysis of possible actions and states The agent needs to consider possible actions and the resulting states
put left foot forward 18 inches?? get cab to next town??
A problem-solving agent
Our holiday agent has adopted the goal of driving to Bucharest There are three roads out of Arad: to Sibiu, Timisoara and Zerind
None of these reaches the goal. Which road should the agent follow?
Without additional knowledge about Romania, the agent cannot choose
the best road to take: it can only make a random choice get to and which actions it can perform
However, if the agent has a map of Romania, it knows which states it can
Exercise: route planning on a map
Exercise
Oradea Neamt Zerind Iasi Arad Sibiu Fagaras Vaslui Timisoara Rimnicu Vilcea Pitesti Hirsova Mehadia Urziceni Bucharest Dobreta Craiova Giurgiu Eforie
Lugoj
a route from Arad to Bucharest. Find Find a route from Aradto [Link] this the optimal route? How did you go the optimal the route? Is thisabout ndingroute? How did you go about nding the route?
ELE611 Articial Intelligence Department of Electronic Engineering Problem Solving & Search 6
A Problem-Solving Agent
The agent can use the map information
consider subsequent stages of a hypothetical journey through each of the 3
nearest towns, to try to nd a route that eventually leads to Bucharest
Once it has found a path on the map from Arad to Bucharest, it can
achieve its goal locally by driving to each town on the route agent can decide what to do by searching
utility (goal states)
More generally, with several immediate options of unknown value, the
assessing different possible sequences of actions that lead to states of known choosing the best one
Design Process
To design a problem-solving program
FORMULATE:
Formulate problem, goal and starting conditions SEARCH:
Use search algorithm to nd action sequence that realises goal
from starting conditions
EXECUTE:
Use solution to guide actions
To design a problem-solving agent
Do the above in the context of a changing world
THE ART OF AI PROBLEM SOLVING IS DECIDING WHAT GOES INTO THE DESCRIPTION OF THE OPERATORS AND STATES, AND WHAT IS LEFT OUT
Search Algorithms
A search algorithm takes a problem as input, formulated as
a set of goals to be achieved a set of possible actions to be applied
It returns a solution in the form of an action sequence or plan Once a solution is found, the chosen actions can be carried out
the execution phase
In the agent context, this becomes complicated because of interaction
between agents and other dynamic things in the world
so we consider the search on its own rst
Well-dened problems
Basic problem elements are states and actions Formally, we need
initial state: the world the agent starts in operators: describe actions in terms of states reached by applying them goal state: the world that the agent is trying to be in
The initial state and operators dene the state space of the problem To determine when the goal state is reached, we need
goal test: a boolean function over states, true if input is the goal state
the set of all states reachable from the initial state and any sequence of actions
Searching for solutions
A solution is a sequence of operators leading from start to goal state Given a problem formulation, we have to map out the state space
while we are searching the state space its sometimes called the search space
Generate action sequences, using an agenda:
start at initial state check whether in goal state
if yes, were done
otherwise, consider other states by applying the operators to the present state
to generate a new set of states
This is called expanding the state
Search Trees
Its helpful to think of the state space as structured into a tree
actions correspond with arcs Choosing states and actions I states correspond with nodes
Sibiu
Oradea Neamt Zerind Arad Sibiu Fagaras
Arad
Timisoara
Zerind
Arad
Iasi
Rimnicu Vilcea Fagaras Oradea
Vaslui
Timisoara
Rimnicu Vilcea Pitesti Hirsova Mehadia Urziceni Bucharest
Lugoj
Note that we dont allow loops
Dobreta Craiova Giurgiu Eforie
Search Trees
Searching this way takes us to Bucharest in 3 steps
but only because of the order we picked the cities in
Arad
Choosing states and actions I
Oradea Neamt
Sibiu Arad
Iasi Arad Sibiu Fagaras
Timisoara
Zerind
Zerind
Rimnicu Vilcea Fagaras Oradea
Vaslui
Timisoara
Rimnicu Vilcea Pitesti
Sibiu
Bucharest
Lugoj
Hirsova Mehadia Urziceni Bucharest Dobreta Craiova Giurgiu Eforie
Clear thinking: state node!
States of the world and nodes in the search tree are not the same thing
A state is a (representation of) a problem conguration A node is a data structure used by a search algorithm
constitutes part of a search tree includes parent, action, children, depth (for IDS), path cost (for UCS)
States do not formally have parents, actions, children, depth, or path cost!
The Expand function creates new nodes, lling in the various elds and
using the operators of the problem formulation to approximate the corresponding states
Search Algorithm Framework
function AgendaSearch( start-state, actions, goal-test ) returns action-sequence or failure static: seq, an action sequence, initially empty agenda, a state sequence, initially contains start-state loop do if Empty(agenda) then return failure if goal-test(First(agenda)) then return seq agenda Queuing-Fn(Rest(agenda), Expand(First(agenda), actions)) seq Append( seq, Action(First(agenda))) end loop
The Queuing-Fn function determines what kind of search we are doing The Expand function produces a set of states achieved by applying all possible
actions to the given state
This is generally called Agenda-based search
Search & the Queuing-Fn
Searching this way takes us to Bucharest in 3 steps
but only because of the order we picked the cities in
Arad Timisoara Zerind
Choosing states and actions I
Oradea Neamt
Sibiu
Zerind Iasi Arad Sibiu Fagaras Vaslui Timisoara Rimnicu Vilcea Pitesti Hirsova Mehadia Urziceni Bucharest Dobreta Craiova Giurgiu Eforie
Lugoj
if wed chosen rightmost order, we would have gone via Timisoara, Dobreta and Pitesti wasting time and fuel
Search & the Queuing-Fn
This is an example of Depth-First Search (DFS)
we construct the search tree by going down it, only going across it when going
down fails
depth-rst search can fail when the tree is innitely deep
the space contains cycles or is generated from continuous values
depth-rst search depends (crucially) on the order in which operators are
applied/nodes are expanded
it may not nd things that are present it may nd long action sequences before short ones (usually, thats unhelpful)
In terms of agendas, we implement DFS with a Queuing-Fn that
removes the current node from the agenda appends its children to the front of the agenda note that the agenda is rotating all the time, always dealing with its rst item
Search & the Queuing-Fn
An alternative is Breadth-First Search (BFS)
we construct the search tree by going across it, repeatedly, replacing each node
with its children
breadth-rst search guarantees to nd the solution if there is one breadth-rst search guarantees to nd the shortest action sequence but it causes a combinatorial explosion of nodes in the agenda, and so is
unsuitable for very large search spaces
most real AI problems have very large search spaces
In terms of agendas, we implement BFS with a Queuing-Fn that
removes the current node from the agenda appends its children to the back of the agenda note that the agenda is rotating all the time, always dealing with its rst item
Breadth-rst search in Romania
Here the different depths are given different colours
we can see the different layers of the tree as the search proceeds Choosing states and actions I and its clear that the shorted solution, if there is one, will be found
Oradea Neamt Zerind Iasi Arad Sibiu Fagaras Vaslui Timisoara Rimnicu Vilcea Pitesti Hirsova Mehadia Urziceni Bucharest Dobreta Craiova Giurgiu Eforie
Lugoj
Measuring search effectiveness
To determine the utility of a particular path, we need
cost: a function that assigns a cost to a path (to differentiate between solutions)
To evaluate a search strategy or algorithm, need to ask
does it nd a solution? is it a good solution (one with a low path cost)? is it the best solution (optimal)? how much time and memory are required to nd a solution?
Effectiveness of search depends on the objectives. Compare
searching for a route to Bucharest (many routes may be satisfactory) searching for the next prime number (must be a true prime, and theres only 1)
Measuring search effectiveness
Now consider the efciency of the planned route
going via Sibiu and Fagaras has the fewest towns Exercise: Arad to Bucharest using UCS but going via Sibiu Pitesti is shorter
71
Oradea Neamt
75
Arad
Zerind
151
87
Iasi
140
Sibiu
92 99
Fagaras Vaslui Rimnicu Vilcea
118 80
Timisoara
111 70
Lugoj
97 146
Pitesti
211
142 98
Urziceni
Mehadia
101 138
85
Hirsova
75
Dobreta
86
Bucharest
120
Craiova
90
Giurgiu Eforie
Straight!line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374
Measuring search effectiveness
We can compute the utility of a route by a function which implements
Exercise: Arad to Bucharest using UCS
here, we might use distance for each road
Oradea Neamt
the performance measure, in terms of the problem formulation
71
75
Arad
Zerind
151
87
Iasi
140
Sibiu
92 99
Fagaras Vaslui Rimnicu Vilcea
118 80
Timisoara
111 70
Lugoj
97 146
Pitesti
211
142 98
Urziceni
Mehadia
101 138
85
Hirsova
75
Dobreta
86
Bucharest
120
Craiova
90
Giurgiu Eforie
Straight!line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374
Search & the Queuing-Fn
We can implement this using Uniform-Cost Search (UCS)
Also called Best-First Search
we construct the search tree by picking the best node in the agenda after each
expansion, according to the utility function, expanding it, and so on
best-rst search guarantees to nd the solution if there is one best-rst search guarantees to nd the best action sequence in terms of utility but it cannot guarantee to use less memory than BFS
most real AI problems have very large search spaces
In terms of agendas, implement UCS/BestFS with a Queuing-Fn that
removes the current node from the agenda appends its children to the agenda and then sorts the whole agenda by the utility
function
and stores the cost-so-far at each node in the agenda, to avoid recalculation
note that the agenda is rotating all the time, always dealing with its rst item
Best-rst search (UCS) in Romania
Using UCS to consider real distances
Here BFS would get us wrong answer Exercise: Arada to Bucharest using UCS
146 71 75
75
Arad Zerind Oradea Neamt
UCS is correct, but spends time searching routes which are obviously wrong
Straight!line distance to Bucharest Arad 366 Bucharest 0 Craiova 160 Dobreta 242 Eforie 161 Fagaras 178 Giurgiu 77 Hirsova 151 Iasi 226 Lugoj 244 Mehadia 241 Neamt 234 Oradea 380 Pitesti 98 Rimnicu Vilcea 193 Sibiu 253 Timisoara 329 Urziceni 80 Vaslui 199 Zerind 374
151
87
Iasi
140
Sibiu
118
Timisoara
99
239
92
Vaslui
Fagaras
140 229
111 70 299 75
Dobreta
80
118
160
Rimnicu Vilcea
257
97 146 138 120
Craiova Pitesti
211
142
Lugoj
450
Mehadia
444
101
85
98
Urziceni
Hirsova
358 Bucharest
90
86
374
306
Giurgiu
Eforie
Formulating the problem
Now lets look at the full specication of this problem
State space: cities (20) Goal test: in Bucharest?
Initial state: in Arad Exercise: Arad to Bucharest using U Operator: drive between two cities
71
Oradea Neamt
Strai to Bu
87
Iasi
Path cost: one of
75
Arad
Zerind
151
140
Sibiu
total milage total expected travel time step count in search
92 99
Fagaras Vaslui Rimnicu Vilcea
118 80
Timisoara
111 70
Lugoj
97 146
Pitesti
211
142 98
Urziceni
Many details are left out
abstraction
Mehadia
101 138
85
Hirsova
75
Dobreta
86
Bucharest
120
Craiova
90
Giurgiu Eforie
Arad Buch Crai Dob Efor Faga Giur Hirs Iasi Lugo Meh Neam Orad Pites Rim Sibiu Tim Urzi Vasl Zeri
Analysing search spaces
A strategy is dened by its order of node expansion Uninformed strategies use only information in the problem formulation
Sometimes called blind search or brute-force search
Breadth-rst search Depth-rst search Best-rst search/Uniform-cost search (this feels informed, but isnt, by this denition)
Informed or heuristic search strategies a quality measure not strictly in the
problem formulation to guide the order in which nodes are expanded
e.g., An informed agent might notice that the goal state, Bucharest, is southeast
Algorithm A and Algorithm A*
of Arad, and that only Sibiu is in that direction, so it is likely to be the best choice
Analysing search spaces for cost
A strategy is evaluated along the following dimensions
completeness
time complexity
space complexity
optimality
does it always nd a solution if one exists? number of nodes generated maximum number of nodes in memory at once does it always nd a least-cost solution?
Time and space complexity are measured in terms of the search tree
b
maximum branching factor of the search tree (bushiness of tree) d
depth of the least-cost solution m
maximum depth of the state space (may be )
Even the best strategies need to avoid repeated nodes
trade-off between time and space (see Russell and Norvig)
Analysing search algorithms for cost
So far, weve looked at Depth rst, Breadth rst, and Uniform Cost
search in practice
now, the theory
Analysing search algorithms for cost
Depth rst search (DFS)
Complete? No, DFS fails in innite depth search spaces and spaces with loops Time? O(bm): terrible if m is much larger than d, but if search tree is bushy, may
be much faster than breadth rst
Space? O(bm), i.e., space linear in length of action sequence! Need only store a
single path from the root to the leaf node, along with remaining unexpanded sibling nodes for each node on path
Optimal? No Pros: For problems with many solutions, DFS may be faster than BFS because it Cons: can get stuck down wrong search path
has a good chance of nding a solution after exploring only a small portion of the whole space
Analysing search algorithms for cost
Breadth rst search Properties of breadth rst search
Complete? Yes, all nodes are examined if b is nite Complete: if b is nite. Time? 1 + bYes, 2all nodes. .are examinedd), i.e., exponential in b + b + b3 + . + bd = O(b
Time: 1 + b + b2 + b3 + . . . + bd = O(bd), i.e., exponential in b. Space? O(bd) keeps every node in memory Space: O(bd) (keeps every node in memory). Optimal? Only if cost = 1 per step, not in general Optimal: Yes (if cost = 1 per step); not optimal in general. If there are several If there are several solutions it will nd the shallowest goal rst solutions it will nd the shallowest goal rst. Drawbacks: Memory requirement to store nodes areaabig problem Drawbacks: Memory requirements to store nodes is big problem.
Assumingbb== 10, expansion1000 nodes/sec, and 100 bytes/node: Assuming 10, expansion of of 1000 nodes/sec, and 100 bytes/node:
Depth Nodes Time Memory 0 1 1 millisecond 100 bytes 2 111 0.1 seconds 11 kilobytes 4 11,111 11 seconds 1 megabyte 6 6 10 18 minutes 111 megabytes 8 108 31 hours 11 gigabytes 10 10 10 128 days 1 terabyte 12 12 10 35 years 111 terabytes 14 14 10 3500 years 11,111 terabytes
Analysing search algorithms for cost
Uniform-cost (Best rst) search
Shares dynamic properties of DFS and BFS Requires step cost information in problem formation and path cost in agenda Time? Number of nodes with path cost less than optimal solution Space? Number of nodes with path cost less than optimal solution Optimal? Yes nds the cheapest solution as long as step cost > 0 First solution reported (but not necessarily encountered) is always the cheapest
does not explore the whole tree and avoids looping but can explore the same path multiple times if there is more than one route through a node
Depth bounded search: IDS
Iterative-deepening search is a compromise between DFS and BFS
Do DFS, but include a depth bound, forcing BFS-like behaviour In the agenda-based algorithm, we keep track of the depth of each node in the
agenda, then
Start with depth-cutoff = 1 Search, expanding only nodes with depth < depth-cutoff if unsuccessful, increment depth and repeat
Exercise: IDS on holiday
Execute IDS for the Romanian holiday problem, on paper
71
Oradea Neamt
Exercise: Arad to Bucharest using UCS
Arad Bucharest Craiova Dobreta Eforie Fagaras Giurgiu Hirsova Iasi Lugoj Mehadia Neamt Oradea Pitesti Rimnicu Vilcea Sibiu Timisoara Urziceni Vaslui Zerind
Straight!line distanc to Bucharest
87
Iasi
75
Arad
Zerind
151
140
Sibiu
92 99
Fagaras Vaslui Rimnicu Vilcea
118 80
Timisoara
111 70
Lugoj
97 146
Pitesti
211
142 98
Urziceni
Mehadia
101 138
85
Hirsova
75
Dobreta
86
Bucharest
120
Craiova
90
Giurgiu Eforie
Draw the search tree created by UCS. How many nodes are expanded
Analysing search algorithms for cost
Iterative Deepening Search
Complete? Yes Time? (d+1)b0 +db1 +(d1)b2 +...+ bd = O(bd) Space? O(bd) Optimal? Yes, if step cost = 1 Pros: combines the benets of BFS and DFS
optimal and complete (like BFS) modest memory requirements (like DFS) can be modied to explore uniform-cost tree
Cons: some (perhaps many) states are expanded multiple times
Although this appears wasteful, the overhead is actually quite small for most cases
Informed Search
Informed search methods use problem specic information about the state
space to generate solutions more effectively
Sometimes called Best First Search
Extra knowledge is provided by a heuristic which returns a number
describing the desirability of expanding a given node
an approximation since we usually dont know best node to expand nodes expanded in order of desirability (like UCS) most desirable processed rst
The aim is to nd low cost solutions
typically evaluate estimated cost of solution and try to minimise it measure incorporates estimate of cost from a state to the closest goal state
try to expand the node closest to the goal try to expand the node on the least cost solution path
Greedy, or hill-climbing, search
The simplest kind of informed search estimates the cost from the current
UCS Exercise: Arad to Bucharest using UCS
note the difference with UCS, where we use the actual cost so far
Oradea 71 Oradea
node to the solution and uses that to sort its agenda Exercise: Arad to Bucharest using
Straight!line distance Straight!line distance to Bucharest to Bucharest Neamt Arad 366 71 Neamt Arad 366 0 Bucharest 87 Zerind 151 Bucharest 0 160 Craiova 87 75 Zerind 151 Craiova 160 242 Iasi 75 Dobreta Iasi Dobreta 242 161 Arad Eforie 140 92 Arad Eforie 161 178 140 Fagaras Sibiu 92 Fagaras 99 Fagaras 178 77 Giurgiu Sibiu Fagaras 118 99 Giurgiu 77 151 Hirsova Vaslui 118 80 Hirsova 151 226 Vaslui Iasi 80 Rimnicu Vilcea Iasi Lugoj 226 244 Timisoara Rimnicu Vilcea Lugoj 244 241 Timisoara Mehadia 142 211 Mehadia 111 241 234 Neamt 142 Pitesti 97 Lugoj 211 111 Neamt 234 380 Oradea Pitesti 97 Lugoj 70 98 Oradea 380 98 Pitesti Hirsova 85 70 146 98 Pitesti 101 Rimnicu Vilcea 98 193 Mehadia Urziceni Hirsova 85 146 101 193 253 Sibiu 86 Rimnicu Vilcea Mehadia Urziceni 75 138 Bucharest Sibiu 86 253 329 Timisoara 75 138 120 Bucharest Dobreta Timisoara 329 80 Urziceni 90 120 Dobreta Urziceni 80 199 Vaslui Craiova 90 Eforie Giurgiu Vaslui Craiova 199 374 Zerind Eforie Giurgiu Zerind 374
Greedy, or hill-climbing, search
Most greedy search has an agenda of length 1
all but the best node is thrown away, at every cycle but it can be implemented with an agenda of any length the shorter the agenda, the more likely the search is to get caught in local
minima, where there is a temporary dip in the solution quality
throwing away solutions means you cant recover if you go astray
In the route-nding problem, a good heuristic is the straight-line distance
to the goal
as the crow ies this idea, that a geometrical distance estimates a distance along a graph, is the basis
of many heuristics
But because it doesnt account for cost so far, it can lead us astray
Algorithm A
Algorithm A combines the best of UCS and Greedy search
UCS had cost so far Greedy had estimated cost remaining or heuristic
Algorithm A has cost so far + estimated cost remaining
This is usually notated as f(n) = g(n) + h(n)
f is the overall cost/evaluation/utility function g is the cost-so-far function h is the heuristic
Algorithm A
is complete but can be sub-optimal in node expansion
Algorithm A*
Algorithm A* uses a heuristic which is admissible
this means that it never over-estimates the distance to the closest solution in any graph representation of space, geometric distance has this property
A* is optimal
in the sense that we are guaranteed a solution if there is one in the sense that the fewest possible nodes will be expanded, given this problem
formulation
NB re-formulating may produce better search
Exercise
Using the data on the earlier slide, apply A* to the Arad-Bucharest route problem
in what order are the nodes expanded?
Analysing search algorithms for cost
Proving optimality of A*
Suppose there is a suboptimal goal G2 in the agenda A (standard proof ) Optimality of
Let n be an unexpanded node on a shortest path to an optimal goal G1 but h(G2) = 0, as its a goal
f(G2) = g(G2)+ h(G2) Suppose some suboptimal goal G2 has been generated and is in the g(G2) > g(G1)
because G2 is sub-optimal
n Start
n be an unexpanded node on a shortest path to an optimal goal G1
g(G1) f(n)
because h is admissible
G2
Because f(G2) f(n), A* will never select G2 for expansion
2 2 2 The more accurate h is, the fewer unnecessary nodes will be expanded
f (G ) = g(G ) > g(G1) f (n)
since h(G ) = 0 since G2 is suboptimal since h is admissible
Analysing search algorithms for cost
One way to characterise the quality of a heuristic is the effective
branching factor (b*)
if
the total number of nodes expanded by A* for a particular problem is N the solution depth is d
then
b* is the branching factor that a uniform tree of depth d would have to have in order to contain N nodes
N =1+b*+(b*)2 +...+(b*)d
e.g., if A* nds a goal at depth 5 using 52 nodes, the effective branching factor is 1.91
Usually the effective branching factor exhibited by a given heuristic is
fairly constant over a large range of problems
This can be used for empirical evaluation of a heuristics usefulness
Exercise: The 8s-Puzzle
Choosing a heuristic function for a more abstract problem
the 8s-puzzle
typical solution 20 steps branching factor 3 (2 if space in corner, 4 in middle, 3 otherwise) exhaustive search to depth 20 examines 320 3.5 109 nodes
A* Heuristic must never over-estimate number of steps to goal
h1 = number of tiles in wrong position h2 = sum of Manhattan/city-block distances of tiles from their goals
Choosing a heuristic for 8s-puzzle
d 2 4 6 8 10 12 14 16 18 20 22 24 Search Cost IDS A*(h1 ) A*(h2 ) 10 6 6 112 13 12 680 20 18 6384 39 25 47127 93 39 364404 227 73 3473941 539 113 1301 211 3056 363 7276 676 - 18094 1219 - 39135 1641 Eective Branching Factor IDS A*(h1 ) A*(h2 ) 2.45 1.79 1.79 2.87 1.48 1.45 2.73 1.34 1.30 2.80 1.33 1.24 2.79 1.38 1.22 2.78 1.42 1.24 2.83 1.44 1.23 1.45 1.25 1.46 1.26 1.47 1.27 1.48 1.28 1.48 1.26
Table comparing the search costs and eective branching factors for IDS and A* using h1 and h2 . Data are averaged over 100 instances of the 8-puzzle, for various solution lengths.
better than h1 which is which better than uninformed search h2 is Clearly, h is better than h betteristhan uninformed search Is h always better than h ? AlwaysYes. A*heuristicwill expand fewer nodesso long as it doesnt over use a using h with higher values, than A* using h .
2 1 2 1 2 1
estimate use a heuristic with higher values, as long as it doesnt overestimate. Always
Further Reading
In Chapters 3 & 4 of the textbook you can read more about search
including
Bidirectional search Searching with partial information Hill-climbing search and simulated annealing Genetic algorithms Online search agents