150 likes | 262 Views
Compressing a Single PDB. Presented by: Danielle Sauer CMPUT 652 Project December 1, 2004. Outline. Problem Definition Key Background Approach Results Conclusion. Problem Definition. Motivation: What happens when a pattern database is too large to store in memory? We can:
E N D
Compressing a Single PDB Presented by: Danielle Sauer CMPUT 652 Project December 1, 2004
Outline • Problem Definition • Key Background • Approach • Results • Conclusion
Problem Definition • Motivation: What happens when a pattern database is too large to store in memory? • We can: • Use several PDBs (and combine them into one). • Compress individual PDBs. • My solution: Compress a single PDB.
Key Background • Pattern databases generally store two things: • A state • The state’s distance to goal. • The number of collisions are affected by: • The hash function • The size of the PDB
Approach • Overview • Hash Functions • Puzzle Types • Domain Abstractions
Overview of Approach • Stores only the distance in the PDB. • How to resolve collisions? • Given state ai already in entry E in the PDB. • State aj maps to entry E and collides with ai. • Take the minimum distance value of ai and aj E = min(di, dj) • Lossy compression (throwing away values).
Hash Functions • Three hash functions • Base 10 hash function • Perfect hash function (permutation) • Positional ordering hash function
Base 10 and Perfect Hash • Base 10 Hash • Perfect Hash Function • Based on permutations • No gaps in the hash table • No collisions Go through each entry in the puzzle (row by row). Hashvalue = 102 345 678
Positional Ordering Hash • Ignore the nondistinct value with largest number of occurrences. Position: 1 5 7 8 6 Tile #: 0 2 2 2 3 Hashvalue = 15786
Puzzle Types • 8-puzzle from class • Pancake Puzzle • Topspin • Physical-based sliding tile puzzle
Domain Abstractions • 1 “don’t care” symbol. • Maps a tile to itself or maps it to the “don’t care” symbol. di(c) = c if c is an element of Gi blank if c = blank “don’t care” otherwise
Results • Expectation: As the size of the table becomes smaller, the number of nodes generated should become larger. • Reasoning: This method is lossy – we are throwing away heuristic values. • The stored distance values will not be accurate heuristics for some of the states.
Summary • This method stores only the distance in the PDB. • It resolves collisions by storing the smallest distance of the colliding states. • Preliminary results suggest we can use a much smaller amount of memory and still get the same performance as a larger PDB.