Système de transition d'états

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Cet article ne cite pas suffisamment ses sources (juillet 2012).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » (modifier l'article, comment ajouter mes sources ?).

En informatique théorique, un système de transition d'états, ou automate au sens large, est un modèle de machine abstraite (en), utilisé en informatique théorique pour simuler le déroulement d'un calcul.

Il consiste en la donnée d'un ensemble d'états, et d'un ensemble de transitions d'un état à un autre, qui peuvent être étiquetées à partir d'un ensemble d'étiquettes, une même étiquette pouvant apparaître sur plusieurs transitions. Si cet ensemble est un singleton, on peut omettre l'étiquetage.

Les systèmes de transitions d'états coïncident mathématiquement avec les systèmes abstraits de réécriture (en) (voir plus loin). Ils diffèrent néanmoins des systèmes de réécritures :

Les systèmes d'états-transitions peuvent être représentés comme des graphes orientés.

Définitions formelles[modifier | modifier le code]

Système de transition d'états non étiqueté[modifier | modifier le code]

Un système de transition d'états non étiqueté est un couple (S, \rightarrow), avec S l'ensemble des états et \rightarrow \subseteq S \times S la relation de transition. Si p et q sont deux états, (p, q) \in \rightarrow signifie qu'il existe une transition de p à q, et se note aussi p \rightarrow q.

On ne fait aucune hypothèse a priori sur S et \rightarrow, et ils peuvent être infinis, voire indénombrables. Cependant, si S est fini (et donc \rightarrow aussi), le système de transition est un graphe orienté.

Système de transition d'états étiqueté[modifier | modifier le code]

Un système de transition d'états étiqueté est un triplet (S, \Lambda, \rightarrow), avec S l'ensemble des états, Λ un ensemble d'étiquettes et \rightarrow \subseteq S \times \Lambda \times S la relation de transition. S'il existe une transition étiquetée par \lambda \in \Lambda entre deux états p et q, on note alors p \xrightarrow{\lambda} q.

Il est à noter que la définition de la relation de transition ne précise pas s'il s'agit d'une relation binaire :

Automate fini[modifier | modifier le code]

Dans le cas où S et Λ sont finis, on parlera d'automate fini (ou machine à états finis). En général, on se donnera aussi une condition d'acceptation de mot d'entrée, qui sera souvent la donnée de deux parties de S qui seront les états initiaux et les états accepteurs.

Système déterministe[modifier | modifier le code]

Le système de transitions est dit déterministe si et seulement si \rightarrow est une fonction, et non-déterministe sinon.

Applications et variantes[modifier | modifier le code]

Applications courantes[modifier | modifier le code]

Les systèmes de transitions jouent un rôle important dans la reconnaissance des langages formels, notamment dans leur classification.

En model checking, les systèmes d'états transitions sont définis munis une fonction additionnelle d'étiquetage pour des états, le résultat englobant alors une structure de Kripke[1]

Exemples courants de systèmes d'états transition

Comparaison avec les systèmes abstraits de réécriture (SAB)[modifier | modifier le code]

En tant qu'objet mathématique, un système d'états transition (SET) non étiqueté est identique à un SAB non indexé. Si nous considérons la relation de réécriture comme un ensemble indexé de relations, comme on le fait parfois, alors un SET étiqueté et un SAB indexé par les étiquettes sont structurellement équivalents. Les différences de domaine tiennent à sur quoi est mis l'accent de l'étude et à la terminologie. Dans un SET on s'intéresse à interpréter les étiquettes comme des actions, tandis qu'à travers un ABS on s'intéresse plutôt à la manière dont un objet est transformé (réécrit) en un autre[2].

Notes et références[modifier | modifier le code]

  1. (en) Christel Baier et Joost-Pieter Katoen, Principles of model checking, The MIT Press (ISBN 978-0-262-02649-9), p. 20
  2. (en) Marc Bezem, J. W. Klop et Roel de Vrijer, Term rewriting systems, Cambridge University Press,‎ (ISBN 0-521-39115-6), p. 7-8