A python program implementing several search algorithms to solve the three digit puzzle, in which we are given a starting three digit number and a goal three digit number and want to find a path from the start to the goal by changing one digit at a time, with certain restrictions such as forbidden numbers!
This program implements several classical search algorithms including Breadth First Search, Depth First Search, Iterative Deepening Search, Greedy, A* and Hill-climbing, outputting the solution path found and the nodes expanded in the search.