Uploaded by Richa Dhakal

Bi directional searches

advertisement
Thinking of Bi-directional and Iterative deepening searches and Speed up
BFS: O( bd+1 ). It’s optimal.
Bi-directional BFS: b d/2 + b d/2 = O( b d/2 ). Fast enough like A* until certain depth. It’ optimal.
A*: O( (b* )d ) Depends on Heuristic, branch factor can be small and can find the optimal solution.
Bi-directional A*: Very fast. But, it becomes more complicated to find the optimal solution.
IDA* (Iterative deepening A*) is fast enough and finds the optimal solution.
There are many ways to speed up your 15 puzzle lab.
At the result above, Bi-directional BFS seems fast enough.
Thinking of Bi-directional and Iterative deepening searches and Speed up
When the depth is higher, Bi-directional BFS shows exponential growth of time complexity. A* is also
exponential, but branch factor is smaller so that time is still not too bad.
Thinking of Bi-directional and Iterative deepening searches and Speed up
Bi-directional BFS cannot be used to search 39 or higher depth (depth of the optimal solution). It also
shows that simple bi-directional A* is very fast, but it does not guaranteed to return the optimal
solution.
Speed Up!
Sample 1 and Sample 2 approach differently and found the way to solve 15 puzzle faster than A*.
Sample 1: Uses a dictionary for key = cost, value = tuple of path
Sample 2: Uses limits (similar to IDA*) and bucketing (keep all levels – how far from start?)
Download