Heuristic Search:
What is Heuristic Search? Heristic Search is an informed search, which use problem-specific Knowledge beyond the defination of the problem itself - often more fficient than uniformed search stratedy.
Best first search Very similar to Normal Graph Search algorithm (uniformed), BUT, at steps each node is selected for expansion based on an evalution function f(n).
heristic function, often denoted by h(n): is the estimated cost of the cheapest path from node n to a goal node.
Beam Search Breadth First Search where each step you prune all but the n best nodes, as decided by your heuristic. Prevents fringe from being too enourmous, but sucks lots when heuristic sucks (sometimes not finding a path at all)
A* what is A*? A* is a special form of best first search. Its evaluation function f(n) is g(n) + h(n), where g(n) = the cost to reach the node, and h(n) = the cost to get from the node to the goal. Hence, at steps we use f(n) with smallest value.
- Optimality proof
- Is optimality useful
- Admissibility
A* is optimal if h(n) is admissible. What is admissible huristic? h(n) doesnot overestimate the cost to reach the goal - Monotoniciticy Monotone: h(n) is said to be monotonic if for every node n and every successor n' of n generated by any action "a", the estimated cost of reaching the goal from n is no greater than the step cost of getting to n' plus the estimated cost of reaching the goal from n'
- Non-optimality mods
- Delta-min in queue
- Non-admissible heuristics
- Dominance of heuristics
- Optimality proof
- Heuristics
- Steps to Goal
- Cost to Goal
- Heuristic quality/search time tradeoff
Implementation
- Non-mutable lists
- Back-pointers
- Links into A* heap
Invention of heuristics through relaxation
- Relation to abstraction