Tuesday, April 24, 2012

Conceptual game theoretic model for an example robotic lawnmower or general controller aimed at wide audience.

Nowadays, more and more aspects of our society depend on critical reactive systems, i.e., systems that  continuously interact with their uncontrollable environment. Think about control programs of power plants,  ABS for cars or airplane and railway traffic managing. Therefore, we are in dire need of systems capable of  sustaining a safe behavior despite the nefarious effects of their environment.  
Good developers know that testing do not capture the whole picture: never will it proves that no bug or  flaw is present in the considered system. So for critical systems, it is useful to apply formal verification.  That means using mathematical tools to prove that the system follows a given specification which models  desired behaviors. 
While verification applies a posteriori, checking that the formal model of a system satisfies  the needed specification, it is most of the time desirable to start from the specification and automatically  build a system from it, in such a way that desired properties are proved to be maintained in the process.  This a priori process is known as synthesis.  The mathematical framework we use is game theory. It is a wide field with extensive formal bases and applications in numerous disciplines as diverse as economics, biology, operations research and, of course, computer science. Games model interactions between cooperating and/or competiting players who play to the best of their abilities in order to satisfy individual or common objectives. While interesting works of  Borel [4] and even Cournot [12] precede them, von Neumann and Morgenstern are generally considered as  the “Founding Fathers of (Modern) Game Theory” through their 1944 book titled Theory of Games and  Economic Behavior [20].  Roughly speaking, we consider a reactive system as a player (player 1), and his uncontrollable environment  as its adversary (player 2). 
We model their interactions in a game on a graph, where vertices model states  of the system and its environment, and edges model their possible actions. Constructing a correct system  controller then means devising a strategy (i.e., a succession of choices of actions) for player 1 such that,  whatever the strategy of player 2, the outcome of the play satisfies the specification. Such game-theoretic  formulations have proved useful for synthesis [11,17,18], verification [1], refinement [15], and compatibility  checking [13] of reactive systems, as well as in analysis of emptiness of automata [19]. 
In this paper, we do not address the full theoretical deepness of such an approach but rather try to motivate and illustrate its usefulness towards an audience who may not be familiar with it. To that end,  we discuss a motivating toy example. First, we present the informal description of a reactive system and  the behavior it should enforce. Second, we show how to use the game-theoretic framework to model its  relationship with its environment and formalize the desired specification. Third, we use the sound theory  of synthesis and exhibit a suitable controller that ensures satisfaction of the specification. Our discussion is  mostly high level and intuitive.
http://arxiv.org/abs/1204.3283

Reactive computer systems bear inherent complexity due to continuous interactions with their environment. While this environment often proves to be uncontrollable, we still want to ensure that critical computer systems will not fail, no matter what they face. Examples are legion: railway traffic, power plants, plane navigation systems, etc. Formal verification of a system may ensure that it satisfies a given specification, but only applies to an already existing model of a system. In this work, we address the problem of synthesis: starting from a specification of the desired behavior, we show how to build a suitable system controller that will enforce this specification. In particular, we discuss recent developments of that approach for systems that must ensure Boolean behaviors (e.g., reachability, liveness) along with quantitative requirements over their execution (e.g., never drop out of fuel, ensure a suitable mean response time). We notably illustrate a powerful, practically useable algorithm for the automated synthesis of provably safe reactive systems.