My research interests

My main research topic is the diagnosis of discrete-event systems. The basic idea is the following. Consider a system (for instance a machine, such as a computer, a car, a space robot, or machine in a factory, etc.) which performs some actions. The system is subject to faults (such as short-circuit, leaking, break of a component, etc.) which leads to an uncorrect behaviour of the system. The goal is to use the observations (alarms generated by the system, informations provided by sensors, etc.) on the system find out what happened on the system.
More precisely, I am interested in discrete-event systems. Such systems are so that their behaviour is not continuous but can be modeled as a discrete evolution (by events). A set of behaviours on such a system can be represented by an automaton. For instance, the model is often an automaton (or an equivalent representation). I often define the diagnosis as the computation of all the possible behaviours on the system consistent with the observations. This can also be represented by an automaton. The problem is quite well defined, and the main issue is the complexity which is exponential in the number components in the system.

Using independency

The computation of all the behaviours on the system in particularly interesting for several reasons. First, this algorithm is general: the goal of the diagnosis is sometimes to get the current state of the system, or the number of faults that occurred; a unique algorithm is able to answer these questions. Second, in case a lot of queries are asked on the system, the computation of all the behaviours needs to be done only once, and the computation of the diagnosis is then simple.
However, the automaton that represents these behaviour is of size exponential in the number of component which is often impractically tracktable. Thus, Marie-Odile Cordier and I proposed the use of decentralised automata chain. The goal is to benefit from independent (concurrent) behaviours to build the diagnosis of subsystems of the system. Since all the subsystems eventually interact, we proposed to \emph{slice} the diagnosis period into small period to benefit from short-duration independences.
An interesting issue is this slicing, since the efficiency rely on the slicing. Another interesting point is the generalisation of this slicing: how to manipulate diagnoses of different subsystems on different (possibly overlaping) periods.

SAT techniques

Diagnosis can be seen as the computation of paths on the model of the system. SAT (satisfiability of classical propositionnal formulae) techniques already have been successfully used for similar AI problem such as planning or model-checking. Thus, using SAT for diagnosing discrete-event systems.
The reduction of the diagnosis to a satsifiability problem looks pretty simple, but issues are how to incrementally compute the diagnosis or use a decentralised computation.

Provide a unified modelling

Most of the people working on diagnosis of discrete-event systems use different modelling and hypotheses on the system. We have proposed, in the SuperCom project, to give a unified representation that can handle reconfiguration. This model should be available soon and so will be Java files.

Joint tree

In case the system is a tree, then the diagnosis of the whole system does not need to be computed: it is sufficient to check consistency bottom-up and then top-down to get all the local behaviours. Most of the systems are not tree-shaped, but it is possible to translate the system in a joint tree to get this shape.
This solution needs to be investigated, and the building of the tree might be dynamic to be as efficient as possible.

Extract useful information

Most of the systems are not theoretically diagnosable but can be easily diagnosed in most of the cases. However, there is no general simple method to find the diagnosis solution.
An issue is to extract from the model of the system and the observations the relevant information that is sufficient to find the solution. For instance, when diagnosing a component, it is sometimes required to compute what happenned in the components connected to this component.

Parallel diagnosis agents

The previous point is interesting in case of a unique (or a few) diagnosis query(ies). Considering that several diagnosis agent are working in parallel, one might expect that the agents reuse what has already been computed by the other agents. For instance, consider that an agent is diagnosing the behaviour of one component, and that information on the behaviour of another agent is required. If that component is diagnosed by another agent, it would be interesting to reuse what that agent has already computed.

Uncertain observations

In big systems (such as telecommunication systems), the delay of transmission of an observation is not null. Thus, the order of reception of the observations is not the same as the order of emission (a partial order is known). In case of on-line computation, an issue is that some buffered observations may be important to understand the last observations received. In some systems, some observations can be lost, sensors can fail, observations can be noisy, etc. I propose to represent the observations as an automaton (called observation automaton) rather than a sequence: each trajectory on the automaton is one possible sequence of emitted observations.
An interesting point with this vision is that the observation automaton can be seen as the diagnosis of the sensors and the communication channel of the observations (whose model is not necessarly in the same formalism than the one of the system). A question is then to unify this two tasks and to consider diagnosis in sequence for heterogeneous systems.

Back to index

Alban Grastien
Last modified: Mon Nov 20 12:34:17 EST 2006