Background (Hybrid Systems): A hybrid system is a system that mixes up continuous mathematics - i.e., differential equations that model the real world. Imagine graphs showing a curved line for how, say, fuel consumption varies depending upon how fast you are driving your car - and discrete decision making using logic. Basically logic is very good at answering yes/no questions like "Should I turn left?" but rubbish at answering questions like "If I continue driving at this speed will I have enough fuel left to reach my destination?" conversely traditional engineering mathematics is good at answering the second question but rubbish at answering the first. Lots of people are currently working at combining the two in various ways. One of the things I intermittently work on is how you verify stuff about them once you've combined them (or, to be honest, how to get away with ignoring all the messy differential equation type stuff and just verifying the rest).

Planning in Hybrid Systems: There are lots of aspects to the hybrid system problem but this particular paper looks at how you apply traditional Artificial Intelligence style planning techniques to a planning problem which contains continuous elements. The paper contains three case studies of which the simplest involves three leaky water tanks, two hoses and a pump. The system has to plan how to keep the water within two levels in the three tanks by moving the two hoses between them while not allowing the pump to overheat. So it is using differential equations to model how the water level in the tanks varies and how the temperature in the pump changes as it works, while at the same time trying to make yes/no decisions about which tank to fill when and whether or not to increase the flow of water (which has the effect of cooling down the pump).

There's a fairly standard language for describing AI type planning problems (called PDDL) and this was extended to describe this kind of hybrid problem in 2006. The core contribution of this paper is a system which can actually derive plans from problems described in PDDL+ It does this by discretising the problem which basically involves taking a graph described by a differential equation and splitting it up into chunks (e.g. rising (for when the line is going up) and falling (for when the line is going down)) and then planning using the chunks (i.e., if I do this then the graph will be rising). The system starts with a "coarse" discretisation (possibly provided by hand). It then plans with this discretisation (actually using a verification technique called model checking but I'll leave that to one side) and then evaluates the plan in a simulation of the system, if the plan doesn't work then the discretisation is refined (i.e., the graph is split into smaller chunks) and the process is repeated.

The authors describe three case studies they ran through the planner: the simple cooling system described above; a planetary lander attempting to perform two scientific observations using limited (solar) power resources while trying not to get too cold at any point; and a batch chemical plant which is attempting to produce a saline solution using a complex pipeline involving tanks, heaters, condensers and cooling circuits. All the case studies gave promising results.