Heuristic Search Introduction to Artificial Intelligence Dr. Robin Burke
Review We can turn (certain classes of) problems into state spaces We can use search to find solutions DFS BFS IDS But what about operator cost?
Example: path planning v1 v2 states = positions initial state v5 goal state v6 start v3 v4 v5 v6 v7 target
Search Tree n1: v5, init n2: v7, n1 n3: v4, n1 n4: v1, n1 n11: v2, n4
Graph with costs v2 v1 v5 v4 v3 v6 v7 1 1 3 4 1 start 6 2 1 4 3 1 5 target
Search Tree n1: v5, init, 0 n2: v7, n1, 3 n3: v4, n1, 6 n4: v1, n1, 1
Possible solutions Costs 4, 6, 6, 7, 9, 12, 15 worst is almost 4x best shortest path is not lowest-cost
Uniform-cost search Simple idea Don’t want use the least cost option Don’t want to use the least cost operation at a given node why not? Concentrate on lowest-cost path so far Djikstra’s algorithm
Search algorithm Given Algorithm a set of nodes N a successor function f that takes a node n returns all of the nodes S reachable from n in a single action Algorithm sort N by path cost, select cheapest path s = state(n) p = path(n) S = f(s) for all s’, a S if s is solution, done if s is illegal, discard if on closed list, ignore this path, must be costlier else create new node na = <s’, (n,a)> N = N – n + na repeat
Basic idea Don’t consider any paths of cost k Implementation until you’ve considered paths of cost < k Implementation need a priority queue path cost = inverse priority nodes with lowest path cost come first possible data structure heap
open closed path: v5, v1, v2, v4, v6 n1: v5, init, 0 n2: v7, n1, 3
Properties of Uniform-Cost Search Complete? Yes Time? O(b(1+C/e)) where C is the cost of the best path e is the minimum action cost Space? same Optimal?
Heuristic search What if we can measure our distance to a solution? We don’t have to guess about the “right” direction perhaps not perfect Example Straight-line distance on a map
Example
Heuristic Suggests paths that are likely to lead in the right direction unlike uniform-cost algorithm Example start in Arad (366) cheapest edge to Zerind but Zerind is actually farther (374) better choice Sibiu (253) even though the edge is longer
Idea Greedy best-first search Same priority queue as before maximize the heuristic at each step Same priority queue as before but prioritize by heuristic the closer the better
Greedy best-first search example
Greedy best-first search example
Greedy best-first search example
Greedy best-first search example
Properties of greedy best-first search Complete? No – can get stuck in loops Mehadia -> Dobreta -> Mehadia ... if road to Craiova missing Time? O(bm), but a good heuristic can give dramatic improvement Space? O(bm) -- keeps all nodes in memory Optimal? There is a shorter path to Bucharest via Fagaras = 450 via Rimnicu Vilcea = 418
A* search Idea: avoid expanding paths that are already expensive Evaluation function f(n) = g(n) + h(n) g(n) = cost so far to reach n h(n) = estimated cost from n to goal f(n) = estimated total cost of path through n to goal
A* search example
A* search example
A* search example
A* search example
A* search example
A* search example
Admissible heuristics A heuristic h(n) is admissible if for every node n, h(n) ≤ h*(n), where h*(n) is the true cost to reach the goal state from n. An admissible heuristic never overestimates the cost to reach the goal, i.e., it is optimistic Example: hSLD(n) (never overestimates the actual road distance) If h(n) is admissible, A* is optimal (see book for proof)
Optimality of A* A* expands nodes in order of increasing f value Gradually adds "f-contours" of nodes Contour i has all nodes with f=fi, where fi < fi+1
Properties of A* Complete? Time? Space? Optimal? Yes Exponential unless there are infinitely many nodes with f ≤ f(G) Time? Exponential Space? Keeps all nodes in memory Optimal?
Search demo
Admissible heuristics E.g., for the 8-puzzle: h1(n) = number of misplaced tiles h2(n) = total Manhattan distance (i.e., no. of squares from desired location of each tile) h1(S) = ? h2(S) = ?
Admissible heuristics E.g., for the 8-puzzle: h1(n) = number of misplaced tiles h2(n) = total Manhattan distance (i.e., no. of squares from desired location of each tile) h1(S) = ? 8 h2(S) = ? 3+1+2+2+2+3+3+2 = 18
Dominance If h2(n) ≥ h1(n) for all n (both admissible) then h2 dominates h1 h2 is better for search Typical search costs (average number of nodes expanded): d=12 IDS = 3,644,035 nodes A*(h1) = 227 nodes A*(h2) = 73 nodes d=24 IDS = too many nodes A*(h1) = 39,135 nodes A*(h2) = 1,641 nodes
Relaxed problems A problem with fewer restrictions on the actions is called a relaxed problem The cost of an optimal solution to a relaxed problem is an admissible heuristic for the original problem If the rules of the 8-puzzle are relaxed so that a tile can move anywhere, then h1(n) gives the shortest solution If the rules are relaxed so that a tile can move to any adjacent square, then h2(n) gives the shortest solution
Practical Programming assignment using AIMA search code link on course page Download and compile Take a look at search demos for eight-puzzle, etc.
Tuesday Reading Ch. 4.3-4.6