In [1]: from py_search.problems.eight_puzzle import EightPuzzle
...: from py_search.problems.eight_puzzle import EightPuzzleProblem
...: from py_search.utils import compare_searches
...: from py_search.uninformed import depth_first_search
...: from py_search.uninformed import breadth_first_search
...: from py_search.uninformed import iterative_deepening_search
...: from py_search.informed import best_first_search
...: from py_search.informed import iterative_deepening_best_first_search
...: from py_search.informed import widening_beam_search
...: puzzle = EightPuzzle()
...: puzzle.randomize(20)
...: initial = puzzle
...: print("Eight puzzle being solved:")
...: print(puzzle)
...: print()
...:
...: compare_searches(problems=[EightPuzzleProblem(initial)],
...: searches=[depth_first_search,
...: breadth_first_search,
...: iterative_deepening_search,
...: best_first_search,
...: iterative_deepening_best_first_search,
...: widening_beam_search])
...:
Eight puzzle being solved:
120
345
678
()
Problem Search Alg Goal Tests Nodes Expanded Nodes Evaluated Solution Cost Runtime
------------------ ------------------------------------- ------------ ---------------- ----------------- --------------- ---------
EightPuzzleProblem depth_first_search 3 5 0 2 0.0001
EightPuzzleProblem breadth_first_search 7 18 0 2 0.0004
EightPuzzleProblem iterative_deepening_search 7 7 0 2 0.0001
EightPuzzleProblem best_first_search 3 5 5 2 0.0002
EightPuzzleProblem iterative_deepening_best_first_search 3 5 8 2 0.0002
EightPuzzleProblem widening_beam_search 3 5 5 2 0.0001