Sequential decision making under uncertainty using belief-state MDP for decision-making: the Canadian traveller problem.
The domain description is as described in previous assignments, except that now the agent has to traverese the path not knowing whether edges are flooded unless they have been observed from an ajacent vertex.
Thus, in the current problem to be solved, we are given a weighted undirected graph, where each edge has a known probability that an edge is flooded (blocked). The probabiliies of flood are mutually independent. Whether an edge is flooded becomes known with certainty when the agent reaches one of the two vertices incident on that edge. The agent's only actions are to traverese an edge, at a cost equal to the weight of the edge divided by the speed of the car, or trasfer to another car, in the same vertex, at cost 1. Given a start vertex s and a goal vertex t, the problem is to find a policy that navigates from s to t with minimal expected cost.
The graph can be provided as in previous assignments, for example:
#V 4 ; number of vertices n in graph (from 1 to n) #C 1 100 50 ; Car at vertex 1, speed 100, speed on flooded road 50 #C 2 200 0 ; Car at vertex 2, speed 200, speed on flooded road 0 (cannot traverse flooded roads) #E 1 2 W300 F0.1 ; Edge from vertex 1 to vertex 2, weight 300, flood probability 0.1 #E 2 3 W200 F0.8 ; Edge from vertex 2 to vertex 3, weight 200, flood probability 0.8 #E 3 4 W300 F0.3 ; Edge from vertex 3 to vertex 4, weight 300, flood probability 0.3 #E 2 4 W400 F0.3 ; Edge from vertex 2 to vertex 4, weight 400, flood probability 0.3 #E 1 4 W1000 F0 ; Edge from vertex 1 to vertex 4, weight 1000, flood prob. 0
The start and goal vertices should be determined via some form of user input (a file or querying the user). For example, in the above graph the start vertex could be 1, and the goal vertex could be 4.
The Canadian traveller problem is known to be PSPACE-complete, so you will be required to solve only very small instances. We will require that the entire belief space be stored in memory explicitly, and thus impose a limit of at most 8 unknown edges in the graph and at most 2 cars. Your program should initialize belief space value functions and use a form of value iteration (discussed in class) to compute the value function for the belief states. Maintain the optimal action during the value iteration for each belief state, so that you have the optimal policy at convergence.
Your program should read the data, including the parameters (start and goal vertices). You should construct the policy, and present it in some way. Provide at least the following types of output:
To get the bonus, you must extend the CTP assignment, as follows:
#C (1, 2, 4) 100 50
#SE 1 2 4 ; Sensing the edge from vertex 1 to vertex 2 takes 4 hours