Introduction to Artificial Intelligence (Fall 2007)/Assignment 4/Programming
To be done with the SHOP planner. Shop code and documentation can be downloaded here.
An expendable Martian robot plans a one-way trip to a Martian mountain 20 KM from its base station (it need not return to the based camp). The robot can travel exactly 10 KM on a pellet of fuel. It can also carry a pellet of fuel as freight. Base came is named B, and the mountain is named M, and a staging site (10 KM from Based cam and from the mountain) is named S. There are three pellets of fuel, P1, P2 and P3 at B and the robot is initially unfueled. The robot has four actions:
- goto(x,y), where x is the initial place (one of B, M or S) and y is the destination place (one of B, M or S). The robot must have a pellet of fuel in its fuel hopper to execute this action and it can only go 10 KM on one pellet of fuel.
- pickup(u,x), where u is a pellet of fuel located at place x.
- putdown(u,x), where u is a pellet of fuel deposited at place x.
- refuel(u,x), where u is a pellet of fuel at place x that is put into the robot's fuel hopper.
- Set this problem up so that it can be solved with SHOP. This means defining the predicate forms needed to represent the world and as well as the operator schemas needed to create a plan.
- Define the start state, the goal condition and show SHOP solving the problem of getting the robot to the mountain.
- Introduce a set of scientific targets, T1...T6, at which experiments need to be performed. Create a distance matrix (or distance lookup function) among all of the locations in this Martian world. We do not care precisely where you locate the targets, scattered randomly between B, M and S is fine. Make one of the robot's goals to visit "as many of the targets as possible," given its fuel constraints.
Implement these new conditions with SHOP and show how it plans the robot's agenda. Two sub-questions to address: What happens if you add extra targets? What happens if you add additional fuel?