Poly Li3242 4

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 2

Université Paris Diderot – LI3242 – 10/11 Ch1.

Langages rationnels

1.4.3 Propriétés de fermeture


Comme on a défini des opérations (internes) sur les langages, on peut envisager des
opérations internes sur les automates. Voici les plus courantes.

1.4.3.1 Union

Pour réaliser une automate qui reconnaı̂t l’union de deux langages, il suffit de faire en
sorte que le nouvel automate comprenne tous les chemins du premier automate et tous
ceux du second. Un moyen simple de procéder est de créer un nouvel état initial, duquel
partent des ε-transitions vers les états initiaux des deux automates à réunir, et de créer
un nouvel état d’acceptation, qui sera la cible par une ε-transition de tous les (anciens)
états d’acceptation des deux automates. Le résultat est bien sûr non déterministe. Noter
qu’on peut aussi garder les états d’acceptation sans un créer de nouveau.
Exemple :
2
a b
b

1 a 4

2 b
a b ε a ε
b 3
2
a a
1 4
0 a,b 9
b
b a
∪ 1 a 4 = 2’
3 a ε
a,b ε
b
3 b
a,b 1’ a 4’

b a,b
3’

Formulation mathématique : cf. la section “Théorème de Kleene”.

1.4.3.2 Concaténation, étoile

Il est facile d’imaginer, sur la même base que précédemment, comment créer un automate
réalisant la concaténation de deux automates, ou l’étoile d’un automate. C’est en fait
exactement ce que l’on fait dans l’algorithme de traduction d’une expression rationnelle
en automate.

1.4.3.3 Complémentation

Le complément d’un langage L1 est l’ensemble de tous les mots du monoı̈de qui n’appar-
tiennent pas à ce langage. En terme d’automate, il s’agit donc de tous les mots qui n’ont
pas de chemin aboutissant à un état final dans l’automate reconnaissant L1 .
L’algorithme pour construire le complément d’un automate est relativement intuitif : il
suffit que tous les états d’échec de l’automate initial deviennent des états de réussite, et
réciproquement. Pratiquement, il suffit de rendre terminaux les états non terminaux et
réciproquement (on échange Q et Q \ F ). Mais attention, il est nécessaire que tous les
chemins possibles soient présent dans l’automate, et donc qu’il soit complet ; de même il
est nécessaire que l’automate initial soit déterministe.
exemple :

12
Université Paris Diderot – LI3242 – 10/11 Ch1. Langages rationnels

b
b a c
a c
b
a c 1 2 3 1 2 3
1 2 3
Complété → b
c
a c
Complémenté → c
a c c b a c
ab c
4
4 ab
b a 4
b a
ab c
b
ab c

En exercice, le lecteur est invité à se figurer ce qui se produit lorsque ces contraintes ne
sont pas vérifiées, et que l’on applique l’algorithme (échange de Q et Q \ F ).

1.4.3.4 Intersection

Théorie : on sait que L1 ∩ L2 = L1 ∪ L2 . On pourrait donc utiliser les algorithmes


précédents. Mais il y a une autre méthode, moins fastidieuse (ne pas oublier que la
complémentation nécessite d’abord une déterminisation).
Intuitivement, l’idée est de parcourir “en parallèle” les deux automates, et de ne garder que
les chemins qui existent dans les deux automates. Pour cela, les états du nouvel automate
sont des couples (qi , qj ), où qi appartient au premier automate et qj au second. Pour chaque
lettre de transition, on crée le nouvel état-couple atteint, et on continue.
a b a b a b
→1 2 4 ↔1 2 5 → (1,1) (2,2) (4,5)
2 4 3 2 5 3 (2,2) (4,5) (3,3)
←3 3 3 3 4 5 (4,5) (4,5) (4,5)
4 4 4 4 1 4 (3,3) (3,4) (3,5)
5 5 5 (3,4) (3,1) (3,4)
← (3,1) (3,2) (3,4)
(3,2) (3,4) (3,3)
(3,5) (3,5) (3,5)
Les mêmes contraintes que précédemment s’appliquent : on part de deux automates
déterministes complets. À noter aussi qu’un tel algorithme, comme l’algorithme de
déterminisation, a le mérite de ne pas conserver les états non atteint depuis l’état initial.

1.5 Théorèmes d’équivalence


1.5.1 Le théorème triangulaire
On a établi (Kleene y a contribué) une ensemble de résultats d’équivalence que l’on peut
résumer de la façon suivante2
LRec = LRat = LReg
où
– LRec est la classe des langages reconnaissables par un automate à nombre fini d’états ;
– LRat est la classe des langages que l’on peut décrire avec une expression rationnelle ;
– LReg est la classe des langages engendrés par une grammaire régulière.
On symbolise en général ce résultat sous la forme du triangle représenté à la figure 1.2.
2
Le théorème de Kleene correspond à l’équation : LRec = LRat .

13

Vous aimerez peut-être aussi