Fifteen-puzzle, solution and time taken using the following algorithms:

I modified the eight_puzzle.py presented by simpleai-team repo in github. And here is the modified fifteen_puzzle.py to solve our class problem.

Note, to run the code, you may:

Initial cases

Solution analysis

Solution graphed:

breadth_first(FifteenPuzzleProblem(INITIAL), 1):
limited_depth_first(FifteenPuzzleProblem(INITIAL), depth_limit=8):
limited_depth_first(FifteenPuzzleProblem(INITIAL), depth_limit=9):
iterative_limited_depth_first(FifteenPuzzleProblem(INITIAL),1):

Solution log (samples)

breadth_first(FifteenPuzzleProblem(INITIAL), 1):
limited_depth_first(FifteenPuzzleProblem(INITIAL), depth_limit=8):
iterative_limited_depth_first(FifteenPuzzleProblem(INITIAL),1):