cs188 lecture3
Abstract
Informed Search:
- Heuristics
 - Greedy Search
 - A* Search
 
Graph Search
General Tree Search
We call it "general" because we can change the strategy depending on the search algorithm we use.
Search Heuristics
A heuristic is:
- A function tat estimates how close a state is to a goal
 - Designed for a particular search problem
 
Need to find a heuristic function.
A good selection of heuristic function maybe cost less in algorithms.
Greedy Search
Expand the node that seems closest…
- Strategy: expand a node that you think is closest to a goal state
- Heuristic: estimate of distance to nearest goal for each state
 
 - A common case:
- Best-first takes you straight to the (wrong) goal
 
 - Worst-case: like a badly-guided DFS
 
A* Search
- Uniform-cost orders by path cost, or backward cost \(g(n)\)
 - Greedy orders by goal proximity, or forward cost \(h(n)\)
 - A* search orders by the sum: \(f(n) = g(n) + h(n)\)
 
When should A* terminate
Should we stop when we enqueue a goal?
No: only stop when we dequeue a goal
Is A* optimal
A* is not generally optimal.
Actual bad cost < estimated good goal cost.
We need estimates to be less than actual costs.
Idea: Admissibility
If heuristics satisfy the property, then it's optimistic, then A* is optimal.
Admissible Heuristics
A heuristic \(h\) is admissible (optimisitic) if: \[ 0 \leq h(n) \leq h^*(n) \] where \(h^*(n)\) is the true cost to a nearest goal.
Coming up with admissible heuristics is most of what’s involved in using A* in practice.
Creating Admissible Heuristics
- Most of the work in solving hard search problems optimally is in coming up with admissible heuristics
 - Often, admissible heuristics are solutions to relaxed problems, where new actions are available
 - Inadmissible heuristics are often useful too
 
Semi-Lattice of Heuristics
- With A*: a trade-off between quality of estimate and work per node
- As heuristics get closer to the true cost, you will expand fewer nodes but usually do more work per node to compute the heuristic itself
 
 
Trivial Heuristics, Dominance
- Dominance: \(h_a \geq h_c\) if
 
\[ \forall n:h_a(n) \geq h_c(n) \]
Heuristics form a semi-lattice:
- Max of admissible heuristics is admissible \[ h(n) = max(h_a(n),h_b(n)) \]
 
Trivial heuristics
- Bottom of lattice is zero heuristic
 - Top of lattice is the exact heuristic
 
Graph Search
- Idea: never expand a state twice
 - How to implement:
- Tree search + set of expanded states (“closed set”)
 - Expand the search tree node-by-node, but…
 - Before expanding a node, check to make sure its state has never been expanded before
 - If not new, skip it, if new add to closed set
 
 - Important: store the closed set as a set, not a list
 - Can graph search wreck completeness? Why/Why not?
 - Optimality?
 
Consistency of Heuristics
- Main idea: estimated heuristic costs \(\leq\) actual costs
- Admissibility: heuristic cost \(\leq\) actual cost to goal
 - Consistency: heuristic "arc" cost \(\leq\) actual cost for each arc
 
 - Consequences of consistency:
- The f value along path never decreases
 - A* graph search is optimal
 
 
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!