Automate probabiliste

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).

Le concept d'automate probabiliste a été introduit par Michael O. Rabin en 1963[1],[2],[3]. Une extension conduit aux automates quantiques.

Définition modifier

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 :

  • un ensemble fini d'états, noté   ;
  • un état initial  , élément de   ;
  • un ensemble   d'états terminaux ou finals ;
  • un ensemble   de transitions.

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

 ,

  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 modifier

 
Un automate probabiliste. L'état 1 est initial, l'état 4 est final. Les probabilités sont indiquées à côté des étiquettes. L'absence signifie probabilité 1.

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 modifier

Seuil d'acceptation modifier

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 modifier

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é modifier

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 modifier

Propriétés d'expressivité modifier

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 modifier

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 modifier

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 modifier

  • 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.

Notes et références modifier

  1. (Rabin, 1963)
  2. (Paz, 1971) est un livre dédié.
  3. Le chapitre 2 de (Salomaa, 1969) considère les automates probabilistes.
  4. Pour ces résultats en dimension fixe, voir (Blondel & Canterini, 2008).

Bibliographie modifier

  • Michael O. Rabin, « Probabilistic Automata », Information and Control, vol. 6,‎ , p. 230-245
  • Azaria Paz, Introduction to probabilistic automata, Academic Press, coll. « Computer science and applied mathematics »,
  • Arto Salomaa, Theory of Automata, Pergamon Press,
  • 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)

Voir aussi modifier