Download presentation
Presentation is loading. Please wait.
Published byKarin Rose Modified over 9 years ago
1
Dynamic State-Space Partitioning in External-Memory Graph Search Rong Zhou † and Eric A. Hansen ‡ † Palo Alto Research Center ‡ Mississippi State University
2
External-memory graph search Internal memory vs. External memory 1 ~ 4 GB 160 GB ~ 1.5 TB External memory is cheap and almost inexhaustible But random access of external memory (e.g., for duplicate detection) is 10 5 ~ 10 6 times slower than internal memory
3
Previous work Hash-based delayed duplicate detection [Korf & Schultze AAAI-05; Korf JACM-08] Structured duplicate detection [Zhou & Hansen AAAI-04, 06] Both use state-space abstraction to … partition nodes into buckets or disk files leverage graph local structure to save RAM or disk space
4
Structured duplicate detection [Zhou & Hansen AAAI-04] Localizes memory references in duplicate detection by exploiting graph structure revealed by a state-space projection function Example of projection function … 0 1 15 blank pos. = ?? ? ?? ? ? ? ??? ?? ? ? ?? ? ?? ? ? ? ??? ?? ? ? ?? ? ?? ? ? ? ??? ?? ? ? …
5
Abstract state-space graph Created by state-space projection function Example B0B0 B3B3 B1B1 B2B2 B8B8 B4B4 B5B5 B6B6 B7B7 16 abstract states > 10 trillion states 31 4 65 2 8 7 91011 12 1314 15 B9B9 B 10 B 11 B 12 B 13 B 14 B 15
6
Duplicate-detection scope A set of blocks (of stored nodes) that is guaranteed to contain all stored successor nodes of the currently-expanding node B1B1 B0B0 B4B4 B0B0 B3B3 B1B1 B2B2 B8B8 B4B4 B5B5 B6B6 B7B7 B9B9 B 10 B 11 B 12 B 13 B 14 B 15 B0B0 B1B1 B4B4 B3B3 B2B2 B8B8 B5B5 B6B6 B7B7 B9B9 B 10 B 11 B 12 B 13 B 14 B 15 B2B2 B3B3 B5B5 B6B6 B7B7 B8B8 B 14 …
7
Edge Partitioning Reduces duplicate-detection scope to one block of stored nodes – Guaranteed! B1B1 B0B0 B3B3 B1B1 B2B2 B8B8 B4B4 B5B5 B6B6 B7B7 B9B9 B 10 B 11 B 12 B 13 B 14 B 15 B1B1 B0B0 B3B3 B2B2 B8B8 B5B5 B6B6 B7B7 B9B9 B 10 B 11 B 12 B 13 B 14 B 15 B4B4 B2B2 B3B3 B5B5 B6B6 B7B7 B8B8 B 14 B0B0 B4B4 … B3B3 B2B2 B8B8 B5B5 B6B6 B7B7 B9B9 B 10 B 11 B 12 B 13 B 14 B 15 B4B4 B1B1 B0B0 B4B4 B1B1 B4B4
8
What is a good abstraction? Capture local structure DDD: Interleaving expansion and merging SDD: Fewer incremental expansions Distribute nodes evenly into buckets Make sure largest bucket fits in RAM Not too many buckets Achieving both is challenging, especially for static abstraction
9
A pathological example Degenerative state-space projection function 3 1 4 6 5 2 8 7 9 1011 12 1314 15 31 4 65 2 8 7 91011 12 1314 15 3 1 4 6 5 2 8 7 9 1011 12 1314 15 31 4 65 2 8 7 91011 12 1314 15 In theory, there are 518,918,400 buckets. Start Goal But most (> 99.99%) of them are empty!
10
Greedy abstraction algorithm Starts with a “blank” abstraction Mark all state variables as unselected While ( size of abstract graph M ) Find an unselected variable V i s.t. adding it to current abstraction minimizes largest bucket size Add V i into set of abstraction variables Mark V i as selected Update current abstraction Move nodes to their new buckets
11
Example NodeXYZ a146 b156 c246 d256 e347 f357 VarsValuesStates {X} {X = 1}{a, b} {X = 2}{c, d} {X = 3}{e, f} {Y} {Y = 4}{a, c, e} {Y = 5}{b, d, f} {Z} {Z = 6}{a, b, c, d} {Z = 7}{e, f} VarsValuesStates {X,Y} {X = 1, Y = 4}{a} {X = 1, Y = 5}{b} {X = 2, Y = 4}{c} {X = 2, Y = 5}{d} {X = 3, Y = 4}{e} {X = 3, Y = 5}{f} {X,Z} {X = 1, Z = 6}{a,b} {X = 1, Z = 7} {X = 2, Z = 6}{c, d} {X = 2, Z = 7} {X = 3, Z = 6} {X = 3, Z = 7}{e, f} Nodes 1 st Iteration 2 nd Iteration
12
Computational results Planning results on 15 Puzzle First planner to optimally solve all 100 of Korf’s 15 Puzzle instances (93 for previous best solver) 5x RAM for #88) Uses only Manhattan-Distance heuristic STRIPS planning (6 domains from IPC) Peak RAM reduced by up to ~19x Better time-space tradeoff Improves with accuracy of heuristic function
13
Bucket size histogram for instance #88
14
Conclusion and future work Not all abstractions are created equal – even for the ones with the same resolution! Largest bucket depends on starting state Static abstraction ineffective for heuristic search Future work Sampling approach Parallel search
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.