150 likes | 241 Views
Depth Increment in IDA*. Ling Zhao Dept. of Computing Science University of Alberta July 4, 2003. Outline. Introduction Examples Modifications on IDA* Analytical Model Experimental results Work to do Conclusions. Introduction.
E N D
Depth Increment in IDA* Ling Zhao Dept. of Computing Science University of Alberta July 4, 2003
Outline • Introduction • Examples • Modifications on IDA* • Analytical Model • Experimental results • Work to do • Conclusions
Introduction • In some single-agent search problems with very low branching factors (less than 2), the generic IDA* typically visits many more nodes than A*. • Branching factor: b solution length: s A* -- bs IDA* -- b1+b2 +… +bs = (bs+1-b)/(b-1) when bs is large enough, IDA* visits about 1/(b-1) times more nodes than A*.
Examples Overhead = 1/(1-b) PCP: b = 1.120 overhead = 8.33 Pathfinding: b is very close to 1 (?) overhead > 30
How to solve the problem? • Depth is increased by more than one in each iteration. cons: less redundant work pros: may need to search nodes with f value greater than solution length. Modification on generic IDA*(ensure optimality): when a solution is found, update the search threshold and keep searching.
Analytical model Assumptions: • search tree grows perfectly in an exponential series (1<b<2, s is very large) • need to find all optimal solutions • depth increment is a constant
Analytical model A* - bs IDA* - (bs+1-b)/(b-1) -> bs+1/(b-1) IDA*’- (b(i+1)c- bc)/ (bc -1) -> b(i+1)c/ (bc -1) (ic = k+s) = bs * bk+c / (bc -1) overhead = bk+c / (bc -1) -1 Iteration 1: bc c Iteration 2 : b2c solution length s Iteration i-1: b(i-1)c k Iteration i: bic
overhead = bk+c / (bc -1) –1 worst case (k=c): Min(overhead)=3 when bc = 2 best case (k=0): Min(overhead)->0 when bc -> +infinity average case (k=c/2): Min(overhead)=1.598 when bc = 3 Iteration 1: bc c Iteration 2 : b2c solution length s Iteration i-1: b(i-1)c k Iteration i: bic
overhead = bk+c / (bc -1) –1 another average case: only shadowed area is visited (suppose it is 50% of the over-searched area), and k=c/2 Min(overhead) = 1.1 when bc =2.28 Iteration 1: bc c Iteration 2 : b2c solution length s Iteration i-1: b(i-1)c k Iteration i: bic
Experimental results • 200 difficult PCP instances k = 45%i x = 20% of over-searched area From the model: Min(overhead) = 0.81 when bc= 7.70 Empirically: Min(overhead)=0.67 when c=20
Further thoughts Decrease overhead of IDA*’ 1. node overhead - better heuristics (look ahead) 2. right increment - very specific to problems 3. variable increment???
Work to do • Test the impact from better heuristics (lookahead) • Apply the idea to other problems - pathfinding? - two-player games with low bf - sliding puzzles (15, 24-puzzles)? • Better statistical methods to compare analytical and empirical results
Summary • Search problems with very low branching factors receive relatively less attention. difficult problem => high/medium bf • PCP is a good domain to test algorithms for problems with low bf • IDA* with large depth increment performs much better in some problems with low branching factor (1<b<2) and typically very long solution lengths. • IDA*’ is almost cost-free
100 1 pair 1: 1001 100 pair 3: 1001100 1001 pair 1: 123 100 0 1 1 100 00 1001100100 10011 pair 1: 10011001001 1001100 pair 3: 100110010010 1001100100 pair 2: 1001100100100 1001100100100 pair 2: A Simple Example of PCP Instance • Rules: • select pairs • make the concatenated top string and bottom string identical.