= Hydraulic System Planning - 2 (Hydraulic Leaking) = <> == Problem 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 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 set of jets j1...jn, 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. 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 uses 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(s) to achieve: * {{{goal(j)}}}: jet j needs to be pressurized In output, a sequence of atoms of the form * {{{switchon(v, t)}}}. means to open valve v at time step t. The switches should occur at onsecutive time steps beginning from 0. == Predicates == * '''Input''': {{{tank/1, jet/1, junction/1, valve/1, link/3, numValves/1, full/1, leaking/1, goal/1}}} * '''Output''': {{{switchon/2}}} == Input format == == Output format == == Example(s) == == Note == With respect to the version of this problem as of the 2nd ASP Competition, there can be more than one goal per instance. == Author(s) == * Author: Francesco Calimeri * Affiliation: University of Calabria, Italy * Author: Maria Carmela Santoro * Affiliation: University of Calabria, Italy