1 CSC 8520 Spring Paula Matuszek CS 8520: Artificial Intelligence Final Notes Paula Matuszek Spring, 2013
2 CSC 8520 Spring Paula Matuszek Final Overview The final will cover primarily the material we have covered since the midterm: –machine learning –planning, incl one like the homework –natural language processing –robotics There will also probably be at least one question about logic/knowledge representation The questions will be similar to the midterm. It will not include Weka.
3 CSC 8520 Spring Paula Matuszek Comment from Logic Homework Most people seem to get resolution Grounding, on the other hand... No birds, except ostriches, are 9 feet high Does a 7-foot ostrich contradict this? The sentence actually says that birds which are not ostriches are not nine feet high. not(ostrich(X) ==> not(9 feet(X)). ostrich(X) or not(9 feet(X)). A ==> B is not the same as B ==> A.
4 CSC 8520 Spring Paula Matuszek Comment from Planning Homework Since you are given the planner, the homework was basically a knowledge representation problem. Goal: get box 2 to room 2. –What do you need to do? get Shakey to box 2 push box 2 to room 2 –What do you know? position of Shakey, position of boxes, layout of rooms. –What actions are possible? move Shakey push a box
5 CSC 8520 Spring Paula Matuszek Actions Move Shakey from location 1 to location 2 –Preconditions: Shakey is at location 1, There is a path from location 1 to location 2 –Changes: Shakey is at location 2, Shakey is not at location 1 Push a box from location 1 to location 2 –Preconditions: Shakey and box are at location 1, There is a path from location 1 to location 2 –Changes: Shakey and box are at location 2, Shakey and box are not at location 1.
6 CSC 8520 Spring Paula Matuszek /* Shakey can move alone between adjacent locations */move(travel(Loc1,Loc2), /* move name */ [shakeyAt(Loc1),adjacent(Loc1,Loc2)], /* preconds */ [del(shakeyAt(Loc1)), /* changes */ add(shakeyAt(Loc2))]). /* Shakey can push the box between adjacent locations */ move(push(Loc1,Loc2,Box), /* move name */ [shakeyAt(Loc1),boxAt(Box,Loc1), /* preconds */ adjacent(Loc1,Loc2)], [del(shakeyAt(Loc1)), /* changes */ del(boxAt(Box,Loc1)), add(shakeyAt(Loc2)), add(boxAt(Box,Loc2))]). Textbook took a slightly different approach, requiring that Shakey only move to things in the same room, but considering a door to be in two rooms.
7 CSC 8520 Spring Paula Matuszek Start Conditions and Goal Start conditions are: –Shakey is in room 3 –Boxes 1, 2, 3 and 4 are in room 1 –Rooms 1, 2, 3 and 4 are all connected to the corridor. Goal is: –Box 2 is in room 2.
8 CSC 8520 Spring Paula Matuszek test :- go( [shakeyAt(room3), /* start state */ boxAt(box2,room1), adjacent(room1,corridor), adjacent(room2,corridor), adjacent(room3,corridor), adjacent(corridor,room1), adjacent(corridor,room2), adjacent(corridor,room3)], [shakeyAt(room2), /* goal state */ boxAt(box2,room2), adjacent(room1,corridor), adjacent(room2,corridor), adjacent(room3,corridor), adjacent(corridor,room1), adjacent(corridor,room2), adjacent(corridor,room3)]).
9 CSC 8520 Spring Paula Matuszek ?- start. File with the moves, start state and goal? paulamoves. % paulamoves compiled 0.00 sec, 4 clauses moves are travel(room3,corridor) travel(corridor,room1) push(room1,corridor,box2) push(corridor,room2,box2) true.
10 CSC 8520 Spring Paula Matuszek On the final You can definitely expect a similar task of defining moves, initial state and goal state on the final. The problem will be smaller than Shakey, though, more like the spare tire problem from lab.