Class Tree  

Description 
A simplified version of the hydraulic system on a space shuttle consists of a directed graph, G, such that: * Nodes of this graph are labeled as tanks,jets, or junctions. * Every link between two nodes is labeled by a valve. * There are no paths in G between any two tanks. * For every jet there always is a path in G from a tank to this jet. Tanks can be full or empty. Valves can be opens or closed. Some of the valves may be leaking. A state of G is specified by the set of full tanks, the set of open valves, and the set of leaking valves. A node of G is called pressurized in state S if it is a full tank or if there exists a path from some full tank of G to this node such that all the valves on the edges of this path are open. We assume that in a state S a shuttle controller can open a valve V2 corresponding to a directed link <N1,N2> only if N1 is pressurized. (Note, a leaking valve can be opened.) Problem: Given a graph G together with a initial state of G and a jet j, a shuttle controller needs to find a shortest plan among those using the least number of leaking valves. Write a program which automates this process. We assume that your program will contain the following input and output atoms: Input atoms The graph should be described by the collection of ground atoms: * tank(t): t is a tank * jet(j): j is a jet * junction(p): p is a junction * valve(v): v is a valve * link(n1,n2,v): v is the valve on the pipe connecting node n1 and n2. * numValves(n): n is the total number of valves in the graph The state description should use atoms: * full(t) iff tank t is full. A tank is empty if it is not mentioned to be full in the input. * leaking(v) iff valve v is leaking. A valve is not leaking if it is not mentioned to be leaking in the input. The goal to achieve: * goal(j): jet j needs to be pressurized Output atoms A sequence of atoms of the form switchon(v,t). which means to open valve v at time step t. Authors: Michael Gelfond, Ricardo Morales and Yuanlin Zhang. 
Encodings 1  2 of 2 
