Heuristic Searches
Heuristics
"rules of thumb", educated guesses, intuitive judgments or simply common sense
Minimax
- A search method (Game Playing) where your opponent tries to prevent your win at every move - Maximize your position whilst minimizing your opponents
What happens when h = 0 in A* search
- A* becomes UCS - Complete & optimal, but search is undirected
What happens when h is too large (i.e. an overestimate)
- Becomes Greedy, lose optimality
Problem with Minimax
- Game trees can get very big for complex games - Evaluation of positions is time-consuming
Describe 3 things which make a good heuristic
- The closer the estimate of the heuristic, the better - Lower average effective branching factor - Admissible
Principle behind Minimax
- Two players against each other - Max tries to maximize its score - Min tries to minimize its score - Take in turns - You can work out the tree by working backwards from the leaf nodes. - The utility value of the root node will tell you which player wins in that position. (i.e. +ve value = MAX, -ve value = MIN)
How can we reduce the number of nodes to be evaluated in Minimax?
- alpha-beta search based on minimax - Better estimate of utility values (possibility of winning)
Is greedy search optimal?
No, because it does not take into account the actual cost to get from the current node to the next node. It only cares about how close the next node is to the goal.
Is greedy search complete?
No, it is possible to get stuck in an infinite loop if a node leads to a dead end.
Worst case space complexity of greedy search
O(b^m) where m is the maximum depth of the search space. With a good heuristic function, however, the complexity can be reduced substantially.
Evaluation function for A* search (and explain what each part is)
f(n) = g(n) + h(n) g - path cost from the initial state to current state h - heuristic cost from current state to a goal state f - an evaluation of the state: estimated cost of the cheapest solution *through* n
Heuristic function
h(n) = estimated cost of the cheapest path from node n to a goal node
Utility function
A method of measuring how good a position is
What is a heuristic search?
A search where it explores nodes which are more likely to lead to the goal state
Example of an admissible heuristic
Straight line distances (often abbreviated as SLD)
Condition for A* to be optimal and complete
The heuristic must be admissible
Admissible
The heuristic must never overestimate the cost to reach the goal
Greedy search
Tries to expand the node that is closest to the goal, on the grounds that this is likely to lead to a solution quickly