1 / 21

CMPUT 651: Front to Front Perimeter Search & Pattern Databases

CMPUT 651: Front to Front Perimeter Search & Pattern Databases. Johnny Huynh. Outline. Introduction to FFPS Problems Improving FFPS itself Perimeters and PDB’s Results Conclusion. Front-to-Front Perimeter Search (FFPS). Build a perimeter around goal Find shortest path a perimeter state

john
Télécharger la présentation

CMPUT 651: Front to Front Perimeter Search & 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. CMPUT 651:Front to Front Perimeter Search& Pattern Databases Johnny Huynh

  2. Outline • Introduction to FFPS • Problems • Improving FFPS itself • Perimeters and PDB’s • Results • Conclusion

  3. Front-to-Front Perimeter Search (FFPS) • Build a perimeter around goal • Find shortest path a perimeter state • Use a heuristic to find a perimeter state • Heuristic can be a pattern database (PDB) P S G

  4. Problems with FFPS • Taking the MIN of estimates • Checking for |P| Perimeter States • Each node expansion requires |P| estimates • Perimeter states and PDBs requires memory P S G

  5. Problems with FFPS • Taking the MIN of estimates • Checking for |P| Perimeter States • Each node expansion requires |P| estimates • Perimeter states and PDBs requires memory P S G

  6. Improving FFPSReducing Perimeter Checks • given a perimeter state, p, if h(p) = 0 then state, s, needs to be checked only when h(s) = 0. • In the 9-puzzle (2x5), reduced number of goal comparisons by 92.5%

  7. Problems with FFPS • Taking the MIN of estimates • Checking for |P| Perimeter States • Each node expansion requires |P| estimates • Perimeter states and PDBs requires memory P S G

  8. Improving FFPSReducing Heuristic Evaluations • Fraction of Node expansion time required to evaluate heuristic determines speedup. [Dillenburg ’93]

  9. Improving FFPSReducing Heuristic Evaluations • If heuristic is monotonically non-decreasing. • Estimate distance to all perimeter states • Decrease estimate by edge cost • Re-compute only the minimum estimates

  10. Improving FFPSReducing Heuristic Evaluations

  11. Problems with FFPS • Taking the MIN of estimates • Checking for |P| Perimeter States • Each node expansion requires |P| estimates • Perimeter states and PDBs requires memory P S G

  12. Memory for Perimeter or PDB? • Distance to each P estimated by a PDB • Fixing number of states in memory, • How many Perimeter states? • How many PDB entries? • |P| + |P| * |PDB| = c • Must remember that |PDB| determined by level of abstraction

  13. Initial (Poor) Results

  14. Initial (Poor) Results

  15. Mixing Levels of Abstraction • c = |P| + |P| * |PDB| • What if |P| > |PDB|? • Each Perimeter’s PDB doesn’t have to be the same • c = |P| + ∑(|Pi| * |PDBi|) , Piє P , PDBiє PDB

  16. Mixing Levels of Abstraction [8-puzzle with 8 perimeter nodes and ~360K states in memory]

  17. Combining Perimeter PDBs • If each PDB uses same abstraction, then will look up the same key in each PDB. • h(s) = min {PDB1 [Φ(s)] … PDBN [Φ(s)] } • Create one PDB with the same keys, and save only the MIN from each perimeter PDB. • h(s) = PDBc[Φ(s)] • Reduce memory from: |P| + |P| * |PDB| to |P| + |PDB|

  18. Combining Perimeter PDBs

  19. Combining Perimeter PDBs

  20. Conclusion • FFPS performance affected by: • Number of goal comparisons • Number of heuristic evaluations (PDB lookups) • FFPS Perimeter vs PDB: • Without combining PDB’s, radius should be kept small. • Combining PDB’s, memory should be allocated for radius… (up to a certain point?)

  21. Questions?

More Related