E N D
Pedagogical Possibilities for theN-Puzzle ProblemZdravko Markov Central Connecticut State University, markovz@ccsu.eduIngrid Russell University of Hartford, irussell@hartford.eduTodd NellerGettysburg College, tneller@gettysburg.eduNeli ZlatarevaCentral Connecticut State University, zlatareva@ccsu.eduThis work was partially supported by NSF CCLI-A&I Award Number 0409497
Project MLExAIhttp://uhaweb.hartford.edu/compsci/ccli/ Enhance the student learning experience in the introductory Artificial Intelligence (AI) course by: • Introducing Machine Learning (ML) elements into the AI course. • Implementing a set of unifying ML laboratory projects to tie together the core AI topics. • Developing, applying, and testing an adaptable framework for the presentation of core AI topics.
Solving the N-Puzzle Problem Project • Good framework for illustrating the classical AI search in an interesting and motivating way. • Suitable for introducing students to Analytical (Explanation-Based) Learning (EBL) using search. • Hands-on experiments with search algorithms combined with an EBL component give students a deep, experiential understanding of both search and EBL.
The N-Puzzle Game Initial Configuration Moves Goal Configuration 5 → Down 6 → Down 2 → Left 3 → Up 6 → Right 5 → Up 8 → Left • Large state space (3x3)!/2 = 181440 • Not all states are reachable from a given state
State Space Representation (Prolog) s(A,B,C,D,E,F) Variables A,B,V,D,E,F [1,5] 0 – empty tile % Empty tile (0) in position A % Slide B left arc(s(0,B,C,D,E,F),s(B,0,C,D,E,F)). % Slide D up arc(s(0,B,C,D,E,F),s(D,B,C,0,E,F)).
Why Prolog? • Prolog code is concise and easily understood. • Can be used at query level only. Access the database and run algorithms without actual programming. • Suits well other important AI topics such as FOL, KR and Reasoning. • Meta-programming features allow straightforward implementation of EBL techniques. • Free implementations available, e.g. SWI-Prolog (http://www.swi-prolog.org/)
Sample Queries % Access database (one-move transitions) ?- arc(s(0,1,2,3,4,5),X). X = s(1,0,2,3,4,5) ; X = s(3,1,2,0,4,5) % A three-move solution does not exist ?- arc(s(0,4,5,1,2,3),X),arc(X,Y),arc(Y,s(4,2,5,1,0,3)). No % Find a two-move solution ?- arc(s(0,4,5,1,2,3),X),arc(X,s(4,2,5,1,0,3)). X = s(0,4,5,1,2,3) % Use the path predicate to find multiple move solutions ?- path(s(0,4,5,1,2,3),s(4,2,5,1,0,3),P). P = [s(4,0,5,1,2,3)]; P = [s(4,0,5,1,2,3),s(0,4,5,1,2,3),s(4,0,5,1,2,3)]
Sample Student Assignments • Implement the state space representation of the 8-puzzle problem. • Investigate the state space by experimenting with state space transitions at query level. What is the branching factor? Are there repeated states and how many? • Use the path predicate to find paths between states. • Investigate when and why infinite loops occur. • What kind of search does the path predicate implement – depth-first or breadth-first?
Search breadth_first(+[[Start]],+Goal,-Path,-ExploredNodes) (+ Input, - Output) ?- breadth_first([[s(4,5,3,0,1,2)]],s(1,2,3,4,5,0),P,N), length(P,L). P = [s(1,2,3,4,5,0),s(1,2,3,4,0,5),s(1,0,3,4,2,5), s(0,1,3,4,2,5),s(4,1,3,0,2,5),s(4,1,3,2,0,5), s(4,1,3,2,5,0), s(4,1,0,2,5,3),...] N = 1197 L = 19
Sample Student Assignments • Run uninformed and informed search algorithms (depth-first, breadth-first, iterative deepening, best-first, A-star, beam search) to solve s(4,5,3,0,1,2) => s(1,2,3,4,5,0). • Represent the 8-puzzle problem s(2,3,5,0,1,4,6,7,8) => s(0,1,2,3,4,5,6,7,8). Try breadth-first, iterative deepening and depth-first. Explain why depth-first fails. • Use heuristic search for s(2,3,5,0,1,4,6,7,8) => s(0,1,2,3,4,5,6,7,8). Try best-first, A-star and beam search. For beam search use n = 100, 10, 1. Explain why beam search fails with n=1? • Collect statistics and analyze the time and space complexity of the above problems.
Explanation-Based Learning • Target concept - state space search heuristic. • Training example - good (efficient) solution of a state space search. • Domain theory - state space representation. • Operationality criteria - constraints associated with the state space search.
EBL in the N-Puzzle domain 1. Training example s(4,5,3,0,1,2) s(5,1,3,4,2,0) 2. Verify if this is an instance of the target concept ?- breadth_first([[s(4,5,3,0,1,2)]],s(5,1,3,4,2,0),P,N). P = [s(5,1,3,4,2,0),s(5,1,3,4,0,2),s(5,0,3,4,1,2), s(0,5,3,4,1,2),s(4,5,3,0,1,2)] N = 13 3. Explanation-Based Generalization (EBG) A4, B5, C3, E1, F2, 0 remains 4. Add a new transition (new fact in the beginning of the database) arc(s(A,B,C,0,E,F), s(B,E,C,A,F,0)).
Speed-up Learning • Before EBL (without arc(s(A,B,C,0,E,F),s(B,E,C,A,F,0))) ?- breadth_first([[s(4,5,3,0,1,2)]],s(1,2,3,4,5,0),P,N), length(P,L). P = [s(1,2,3,4,5,0),s(1,2,3,4,0,5),s(1,0,3,4,2,5), s(0,1,3,4,2,5),s(4,1,3,0,2,5),s(4,1,3,2,0,5), s(4,1,3,2,5,0), s(4,1,0,2,5,3),...] N = 1197 L = 19 • After EBL (with arc(s(A,B,C,0,E,F),s(B,E,C,A,F,0))) ?- breadth_first([[s(4,5,3,0,1,2)]],s(1,2,3,4,5,0),P,N), length(P,L). P = [s(1,2,3,4,5,0),s(1,2,3,4,0,5),s(1,0,3,4,2,5), s(0,1,3,4,2,5),s(4,1,3,0,2,5),s(4,1,3,2,0,5), s(4,1,3,2,5,0), s(4,1,0,2,5,3),...] N = 647 L = 13
Sample Student Assignments • Identify useful search heuristics and generate and verify the corresponding EBL training examples. • Perform experiments with training examples and update the state transition database. • Measure the improvement after the EBL step in terms of time and space complexity. • Evaluate the effect of learning if too many or bad examples are supplied.
Conclusion • N-puzzle project is used in an AI class in Spring-2005 www.cs.ccsu.edu/~markov/ccsu_courses/ArtificialIntelligence.html • Other projects developed in the framework of MLExAI are also tested • Student surveys show positive results • More tests and evaluations are ongoing • All projects and other material are available at MLExAI web page at http://uhaweb.hartford.edu/compsci/ccli/