En mathématiques et en informatique théorique, et notamment en théorie des automates, un automate probabiliste est une généralisation des automates finis non déterministes; chaque transition de l'automate est équipée d'une probabilité (un nombre réel entre 0 et 1). Les transitions sont représentées de manière compacte par des matrices qui sont des matrices stochastiques. Les langages reconnus par les automates probabilistes sont appelés langages stochastiques; ils comprennent, et étendent, la famille des langages rationnels. En particulier, le nombre de langages stochastiques est non dénombrable (alors que celui des langages rationnels est dénombrables).
Un automate probabiliste est formé d'un automate fini non déterministe, où de plus chaque transition est équipée d'une probabilité, c'est-à-dire d'un nombre réel entre 0 et 1 vérifiant une certaine condition de cohérence.
Comme pour une automate fini (non déterministe) usuel, une automate probabiliste sur un alphabet est composé des données suivantes :
De plus, chaque transition de porte un nombre réel positif , appelé sa probabilité, avec la condition que, pour chaque état et chaque lettre , la somme des , pour dans , est égal à 1.
Cette condition s'exprime plus simplement en posant si n'est pas une transition. Alors elle revient à :
,
pour tout état et toute lettre .
On définit une -matrice pour chaque lettre , par
La condition sur la distribution des probabilités s'exprime alors par la condition que les matrices P(a) sont de matrices stochastiques.
On étend la fonction aux mots comme suit: Soit un mot, et soit un chemin de à d'étiquette . La probabilité de ce chemin est le produit des probabilités des transitions qui le composent. La probabilité est défini comme la somme des probabilités des chemins de à d'étiquette . Cette définition s'exprime matriciellement comme suit: on pose , et on définit la -matrice comme le produit des matrices :
.
Alors on a
.
La probabilité d’acceptation d'un mot dans l'automate probabiliste est la somme des probabilités , où est l'état initial et où parcourt les états terminaux. On la note . Cette valeur aussi s'exprime matriciellement. C'est le nombre
,
où est le -vecteur ligne dont toutes les coordonnées sont nulles sauf celle d'indice qui vaut 1, et où est le -vecteur colonne dont les coordonnées sont nulles sauf celles dont l'indice est dans , et qui valent 1.
Exemple
Pour l'exemple de droite d'un automate à quatre états, les matrices et et les vecteurs et sont:
On a par exemple :
, et la probabilité d'acceptation de est donc .
Langage stochastique
Seuil d'acceptation
Soit un nombre avec . Le langage accepté par l'automate probabiliste avec seuil est l'ensemble des mots dont la probabilité d'acceptation est supérieure à . C'est l'ensemble défini par
Le nombre est aussi appelé point de coupure (cut point en anglais).
Langage stochastique
Un langage stochastique est un langage de la forme , pour un automate probabiliste et une valeur de seuil . Dans l'exemple ci-dessus, les mots du langage ont tous probabilité , les mots du langage ont tous probabilité . Le langage accepté avec seuil est la réunion de ces langages. Les langages rationnels sont tous des langages stochastiques.
Seuil isolé
Un seuil ou point de coupure est isolé s'il existe un nombre réel tel que
pour tout mot . Dans l'exemple ci-contre, il n'existe pas de mot accepté avec une probabilité comprise strictement plus grande que 1/2, donc tout nombre strictement plus grand est isolé. Un langage stochastique est isolé si son point de coupure est isolé.
Propriétés
Propriétés d'expressivité
Tous les langages rationnels sont stochastiques et certaines restrictions des langages stochastiques sont rationnelles :
Tout langage stochastique dont le seuil est 0 est rationnel.
Tout langage stochastique isolé est rationnel.
Mais on n'a pas l'égalité comme le montre l'exemple suivant.
Exemple d'un langage stochastique qui n'est pas rationnel
Considérons l'automate à deux états sur l'alphabet binaire donné par les matrices :
Pour un mot binaire , le coefficient de la matrice est égal à
;
c'est le nombre rationnel dont est l'écriture binaire. Pour une valeur de seuil , le langage accepté par cet automate est donc l'ensemble des mots représentant l'écriture binaire retournée de nombre plus grand que . Il est clair que si , alors et que l'inclusion est stricte. Il en résulte qu'il existe un nombre non dénombrable de langages de la forme pour cet automate; comme le nombre de langages rationnels est dénombrable, cela implique l'existence de langages stochastiques non rationnels (même s'ils ne sont pas montrés constructivement par cet argument.
Questions décidables et indécidables
La plupart des questions sont indécidables[4]. Ces questions peuvent également se formuler au moyen de l'image d'un automate probabiliste, défini comme l'ensemble .
Le problème du vide, c'est-à-dire de savoir si le langage accepté est vide ou non, est indécidable pour . C'est le problème de savoir si contient une valeur supérieur à .
Le problème du seuil isolé, c'est-à-dire de savoir si un nombre est un seuil isolé pour une automate , est indécidable. C'est le problème de savoir s'il existe un intervalle ouvert centré autour de qui est disjoint de .
Le problème de l'existence d'un seuil isolé, c'est-à-dire de savoir s'il existe un nombre qui est un seuil isolé pour , est indécidable. C'est le problème de savoir si est dense dans l'intervalle .
Généralisations
On peut étendre la définition sans augmenter la puissance d'acceptation des automates probabilistes en remplaçant l'état initial par une distribution initiale, c'est-à-dire une valeur positive ou nulle pour chaque état , telle que . De même, on peut doter l'automate d'une distribution terminale, donc remplacer l'ensemble des états terminaux par une fonction , avec .
Un automate probabiliste est une forme particulière de représentation linéaire d'une série formelle rationnelle en variables non commutatives : c'est le cas particulier où les matrices sont stochastiques.
Vincent Blondel et Vincent Canterini, « Undecidable Problems for Probabilistic Automata of Fixed Dimension », Theory of Computing Systems, vol. 36, no 3, , p. 231-245 (lire en ligne)