Many Artificial Intelligence programs use search strategies to find solutions to problems. This project will involve developing a search tutoring system which shows a novice user how different search strategies work. The system could use a simple example to illustrate each strategy, such as the route-finding problem which involves finding the shortest route between two towns (Russell & Norvig has a simplified map of the towns in Romania showing the distance between each town). The system should show a number of different search strategies such as breadth-first, depth-first, best-first, A* and local search algorithms such as hill-climbing and simulated annealing.
In addition, the system should allow the user to select the problem (e.g. for the shortest route, select the two towns they would like the shortest route for), and select the search strategy. The user should be able to step through the search process and the system should provide an explanation of each stage. Ideally, in order that the user can learn how each search strategy works, they should be able to interact with the search process by providing their own input as to what the outcome of each stage should be. The system should compare the user's input with the actual outcome of each stage and provide feedback as to whether the user is correct or not.