210 likes | 345 Views
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
E N D
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 • Use a heuristic to find a perimeter state • Heuristic can be a pattern database (PDB) P S G
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
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
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%
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
Improving FFPSReducing Heuristic Evaluations • Fraction of Node expansion time required to evaluate heuristic determines speedup. [Dillenburg ’93]
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
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
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
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
Mixing Levels of Abstraction [8-puzzle with 8 perimeter nodes and ~360K states in memory]
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|
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?)