Project II CS475 --------------------------------------------------------------- GOAL: Implement a planner that employs search techniques to find plan(s). DUE DATE: 5/3/2001 GRADE: 10 points (10% of the final grade) --------------------------------------------------------------- DESCRIPTION: You are asked to select a search algorithm and implement a planner which - when given a planning problem as input - returns the solutions to the problem if one exists and return NO otherwise. A planning problem consists of: - an action theory consisting of the set of fluents, the set of actions with their effects, and the initial state - a goal A solution is a sequence of actions, which transforms the initial state to the goal state The format of the input files will be as follows. ;Fluent fluent_name_1 fluent_name_2 ..... ;Action name: action_name_1 condition: preconditions of action_name_1 add: positive effects of action_name_1 delete: negative effects of action_name_1 ;Action name: action_name_2 condition: preconditions of action_name_2 add: positive effects of action_name_2 delete: negative effects of action_name_2 .... ;Initial fluent_name_i1 fluent_name_i2 ..... ;Goal fluent_name_g1 fluent_name_g2 ..... A sample data file is given at http://www.cs.nmsu.edu/~tson/classes/data_project2 NOTES: 1. You can use any algorithm in the text book. 2. My recommendations: - It is good to have a procedure/function that reads the input file and stores the information about fluents/actions in a data structure. Since the search process will access this structure a lot, you might think about a hash table. - Forward-chaining seems to be the simplest algorithm for finding a plan. But it is known that it is complete. To have the completeness, you might think about using the A* algorithm. 3. Grading: - Program that has compiler errors gets 0 - The planner will be tested with 3-5 domains (that will be posted in the class web-site). At the grading time, the TA will generate the initial and goal states. Planner, that returns correct answers will get 2-3 points for each domain.