Eight Puzzle Search ExampleΒΆ

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