Poly Li3242 4
Poly Li3242 4
Poly Li3242 4
Langages rationnels
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’
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
13