Système de transition d'états
En informatique théorique, un système de transition d'états est une forme de machine abstraite utilisée pour modéliser un ou des calcul(s).
Un système de transition d'états est constitué d'un ensemble d'états et d'un ensemble de transitions d'un état à un autre, qui peuvent être étiquetées ; une même étiquette peut apparaître sur plusieurs transitions. Si l'ensemble des étiquettes est un singleton, on peut omettre l'étiquetage.
Les systèmes d'états-transitions sont des graphes orientés.
Définitions formelles
Système de transition d'états non étiqueté
Un système de transition d'états non étiqueté est un couple <math>(S, \rightarrow)</math>, où <math>S</math> est l'ensemble des états et <math>\rightarrow \subseteq S \times S</math> est la relation de transition. Si <math>p</math> et <math>q</math> sont deux états, <math>(p, q) \in \rightarrow</math> signifie qu'il existe une transition de <math>p</math> à <math>q</math>, et on l'écrit <math>p \rightarrow q</math>.
On ne fait aucune hypothèse a priori sur <math>S</math> et <math>\rightarrow</math>, et ils peuvent être infinis, voire indénombrables.
Système de transition d'états étiqueté
Un système de transition d'états étiqueté est un triplet <math>(S, \Lambda, \rightarrow)</math>, avec <math>S</math> l'ensemble des états, <math>\Lambda</math> un ensemble d'étiquettes et <math>\rightarrow \subseteq S \times \Lambda \times S</math> la relation de transition. S'il existe une transition étiquetée par <math>\lambda \in \Lambda</math> entre deux états <math>p</math> et <math>q</math>, on écrit alors <math>p \xrightarrow{\lambda} q</math>.
Il est à noter que la définition de la relation de transition ne précise pas s'il s'agit d'une relation binaire :
- de <math>S</math> dans <math>\Lambda \times S</math> (cas non pertinent dans le cadre des systèmes de transition d'états) ;
- de <math>S \times \Lambda</math> dans <math>S</math> (cas des automates finis) ;
- de <math>S \times \Lambda_1</math> dans <math>\Lambda_2 \times S</math> avec <math>\Lambda = \Lambda_1 \times \Lambda_2</math> (cas des transducteurs finis).
Automate fini
Dans le cas où <math>S</math> et <math>\Lambda</math> sont finis, on parle d'automate fini (ou machine à états finie). Modèle:Pas clair
Système déterministe
Le système de transition est dit déterministe si par définition <math>\rightarrow</math> est une fonction. L'expression système de transition non déterministe qualifie tous les systèmes de transition d'états quand on a besoin de préciser qu'on ne se retreint pas aux systèmes déterministes.
Applications et variantes
Applications courantes
Les systèmes de transitions jouent un rôle importantModèle:Lequel dans la reconnaissance des langages formels, notamment dans leur classification.
En vérification de modèles (Modèle:En anglais), les systèmes de transitions d'états possèdent en plus une fonction d'étiquetage pour les états (voir par exemple structure de Kripke<ref name="BaierKatoen2008">Modèle:Ouvrage.</ref>).
Comparaison avec les systèmes abstraits de réécriture
Un système d'états-transitions non étiqueté est un Modèle:Lien<ref> Modèle:Ouvrage.</ref>.
Notes et références
Modèle:Références Modèle:Traduction/Référence
Voir aussi
- Automate d'états finis
- Réseau de Petri
- Graphe orienté
- Machines abstraites comme les machines de Turing, la machine de Krivine ou la machine SECD
- Système de transition associé à une sémantique opérationnelle