1 / 32

Combining Front-to-End Perimeter Search and Pattern Databases

Combining Front-to-End Perimeter Search and Pattern Databases. CMPUT 652 Eddie Rafols. Motivation. From Russell, 1992. Allocating Memory. More memory for Open/Closed Lists Caching Perimeter Search Pattern Databases. Allocating Memory. More memory for Open/Closed Lists Caching

laban
Télécharger la présentation

Combining Front-to-End Perimeter Search and Pattern Databases

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. Combining Front-to-End Perimeter Search and Pattern Databases CMPUT 652 Eddie Rafols

  2. Motivation From Russell, 1992

  3. Allocating Memory • More memory for Open/Closed Lists • Caching • Perimeter Search • Pattern Databases

  4. Allocating Memory • More memory for Open/Closed Lists • Caching • Perimeter Search • Pattern Databases

  5. Perimeter Search • Generate a perimeter around the Goal • Any path to Goal must pass through a perimeter node Bi • We know the optimal path from Bi to Goal • Stopping condition for IDA* is now: • If A is a perimeter node and g(Start,A)+g*(A,Goal)  Bound

  6. Perimeter Search • Traditional Search O(bd) • Perimeter Search O(br+bd-r) • Large potential savings!

  7. Perimeter Search • Can be used to improve our heuristic • Kaindl & Kainz, 1997 • Add Method • Max Method

  8. Pattern Databases • Provide us with a consistent estimate of the distance from any given state to the goal* *This point will become relevant in a few slides

  9. Approach • Generate a pattern database to provide a heuristic • Use Kaindl & Kainz’s techniques to improve on heuristic values (Add,Max) • Determine how perimeter search and PDBs can most effectively be combined via empirical testing

  10. A Digression… • Among other things, the Max method requires: • h(Start, A), where A is a search node • h(Start, Bi), where Bi is a perimeter node

  11. A Digression… • Among other things, the Max method requires: • h(Start, A), where A is a search node • h(Start, Bi), where Bi is a perimeter node • We are not explicitly given this information in a PDB.

  12. A Digression... • Recall: Alternate PDB lookups • If we are dealing with a state space where distances are symmetric and ‘tile’-independant, we can use this technique

  13. A Digression... • ex. Pancake Problem

  14. A Digression... • However, this technique may provide inconsistent heuristics ϕ1 ϕ2 ϕ1  ϕ2

  15. A Digression... • Kaindl’s proof of the max method relies on a consistent heuristic • ...but we can still use our pattern database • We just have to use it correctly

  16. A Digression... • Distances are symmetric, therefore • h*(Start, A) = h*(A, Start) • h*(Start, Bi) = h*(Bi, Start) • We can map the Start state to the Goal state • In this case, when we do alternate lookups on A and Bi, we are using the same mapping! • Our heuristic is now consistent!

  17. A Digression... ϕ ϕ ϕ

  18. A Third Heuristic? • Since we have the mechanisms in place, why not use alternate lookup to get h’(Goal, A)? • Turns out that this is the exact same lookup as h(A,Goal)

  19. Combining the Heuristics • The Add method lets us adjust our normal PDB estimate: • h’1(A,goal) = h(A,goal) +  • The Max method gives us another heuristic: • h’2(A,goal)=mini(h(Bi,start) +g*(Bi,goal))-h(A, start) • Our final heuristic: • H(A,goal)=max(h’1(A,goal),h’2(A,goal))

  20. Hypotheses • All memory used on perimeter, expect poor performance • All memory used on PDB, expect good performance, but not the best possible • Small perimeters combined with large PDBs should outperform large perimeters with small PDBs

  21. Method • Do a binary search in the memory space. • Test ‘pure’ perimeter search and ‘pure’ PDB search • Give half the memory to the winner, compare whether a PDB or a perimeter would be a more effective use of the remaining memory • Repeat until perimeter search becomes a more effective use of memory

  22. Results

  23. Results

  24. Results

  25. Results

  26. Results

  27. Discussion • Discouraging results • Using “extra” space for a PDB seems to provide better results across the board

  28. Discussion • Adding a perimeter does not appear to have a significant effect

  29. Discussion • Empirically, the Add method is always returning  = 0 • A directed strategy for perimeter creation is likely needed for this method to have any effect

  30. Discussion • Further experiments show that given a fixed PDB, as perimeters increase in size, there is a negligible performance increase

  31. An Idea • Is the heuristic effectively causing paths to perimeter nodes to be pruned? • This means that performance is only being improved along a narrow search path • Can we generate the perimeter ‘intelligently’ to make it more useful?

  32. Questions?

More Related