1 / 17

Finding Search Heuristics

Finding Search Heuristics. Henry Kautz. A* Graph Search for Any Admissible Heuristic. if State[node] is not in closed OR g[node] < g[LookUp(State[node], closed )] then. Inconsistent but Admissible. Memory Efficient Versions of A*. Iterative Deepening A* (IDA*)

alayna
Download Presentation

Finding Search Heuristics

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Finding Search Heuristics Henry Kautz

  2. A* Graph Search for Any Admissible Heuristic if State[node] is not in closed OR g[node] < g[LookUp(State[node],closed)] then

  3. Inconsistent but Admissible

  4. Memory Efficient Versions of A* • Iterative Deepening A* (IDA*) • Just like IDS, except that: • Stopping condition: g(n)+h(n)=f(n) > Cutoff • Increment: Min{ f(n) | n was cutoff last iteration} • Optimal • Memory linear in cheapest path • Will re-expand nodes frequently

  5. Memory-Bounded A* • Throw nodes out of Closed and/or Fringe when memory gets low • Dropping nodes from Closed can make extra work, but doesn’t hurt optimality • Dropping nodes from Fringe: • Choose worst node n from Fringe • Set f(Parent(n)) = Max { f(Parent(n)), Min{ f(n’) | n=Parent(n’) } • If Parent is not in Fringe, put it in Fringe • Many variations – MA*, SMA*, SMAG*, …

  6. Properties of Heuristics • Let h1 and h2 be admissible heuristics • if for all s, h1(s)  h2(s), then • h1 dominates h2 • h1 is better than h2 • h3(s) = max(h1(s), h2(s)) is admissible • h3 dominates h1 and h2

  7. Exercise: Rubik’s Cube • State: position and orientation of each cubie • Corner cubie: 8 positions, 3 orientations • Edge cubie: 8 positions, 2 orientations • Center cubie: 1 position – fixed • Move: Turn one face • Center cubits never move! • Devise an admissible heuristic

  8. Heuristics • # cubies out of place / 8 • Must divide up 8 so is admissible • Too optimistic / weak •  Better:  •  Korf 1997 – Solves Rubik’s cube optimally

  9. Automatically DerivingHeuristics for STRIPS planning • Goal: quickly compute upper bound on distance from S to a state containing Goals • Consider: |Goals – S|/m where m is the maximum number of goals added by any one action • Admissible? • Accurate? Yes! No, ignores preconditions!

  10. Another Attempt • Create relaxed planning problem: Solve • Initial = S • Same Goals • Eliminate negative effects from all operators • Use length of shortest solution to relaxed problem as h • Admissible? • Accurate? • Easy to compute? Yes! Pretty good No, hard as set covering!

  11. Plan Graph Heuristic • Idea: Quickly estimate the minimum length of solution of relaxed problem • Method: • For each literal, create a dummy “persistence” action with that literal as precondition and effect • Compute a Plan Graph: • S0: initial literals • A0: actions whose preconditions are in S0 • S1: add effects of actions in A0 • A1: actions whose preconditions are in S1 …

  12. Plan Graph Heuristic • Method (continued): 3. Propagate mutual exclusions (mutexes): • Two non-persistence actions at the same level are mutex • A persistence action is mutex with an action that whose effect negates it • Two literals A and B are mutex at level i if all the actions that add A are mutex with those that add B 4. Estimated length = lowest level containing all goals with no mutexes between them

  13. Example Plan Graph

  14. Is Planning Solved? • A* with plan graph heuristic works well for domains with relatively few bad interactions between actions • For “harder” domains: • Solve non-optimally using non-admissible heuristics • Solve optimally using other approaches – such as satisfiability testing • More later in the course!

More Related