Théorie des Automates Finis
Théorie des Automates Finis
Chapitre 2 :
Automates
0
q0 1 q1 0 q2
1
0
1
q3
q4 0,1
0,1
1. Introduction
Présentations générales
qi ai , · · · aj qi qj
ai , · · · aj
Exemple :
0 1
q0 q2 q1
1 0
q0 q1 q2
1
0
1
q3
q4 0,1
0,1
Filière SMI Semestre 5 Théorie des langages et des automates
6/1
Définition :
Soit A un alphabet fini. Un automate sur A est fini si, et seulement si, son ensemble
d’états est fini.
Exemple
1 0
0,1 0,1 q0 q1 q2
1
0
1
q3
0 1
q0 q2 q1 q4 0,1
0,1
Exemple :
1 0
q0 q1 q2
1
0
1
0,1 q3
q4
0,1
1 0 1
1 c1 = q0 −
→ q1 −
→ q2 −
→ q3 est un chemin dont l’étiquette est le mot 101.
1 0 0 0
2 c2 = q0 −
→ q1 −
→ q2 −
→ q2 −
→ q2 est un chemin dont l’étiquette est le mot 1000.
0 0 1
3 c3 = q3 −
→ q4 − → q4 −→ q4 est un chemin dont l’étiquette est le mot 001.
4 Le chemin c1 est reconnu par l’automate A, et les chemins c2 et c3 ne sont pas
reconnus par l’automate A.
5 Les mots u1 = 100∗ 1 sont reconnus par l’automate A.
6 Les mots u2 = 104 103 , u3 = 0101, u4 = 0∗ 1∗ ne sont pas reconnus par
l’automate A.
Filière SMI Semestre 5 Théorie des langages et des automates
9/1
Définition 1 :
Soit A un alphabet fini et A = hQ, A, δ, I, T i un automate fini sur A.
Le langage sur l’alphabet A est reconnu par l’automate A, et noté L(A), est
l’ensemble des mots reconnus par A. Autrement,
u
L(A) = {u ∈ A∗ |∃p ∈ I, ∃q ∈ T p −
→ q}
Définition 2 :
Deux automates sont équivalentes s’ils reconnaissent le même langage.
Définition 3 :
Un langage L sur l’alphabet A est reconnaissable s’il existe un automate fini A qui le
reconnaı̂t, i.e. L = L(A).
La famille des langages reconnaissables de A∗ est noté Rec(A∗ ).
Exemple :
0 1
q0 q1 q2
– L(A1 ) est le langage contenant tous les mots sur A = {0, 1} de facteur 01.
En effet,
– Un mot u de facteur 01 s’écrit u = v1 01v2 , avec v1 , v2 ∈ {0, 1}, est l’étiquette
v1 0 1 v2
du chemin reconnu q0 −→ q0 − → q1 −→ q2 −→ q2 .
– Réciproquement, un chemin est reconnu dans A1 contient nécessairement la
suite d’états q0 q1 q2 et tout mot reconnu par A1 contient le facteur 01.
2 Soit A2 un automate fini sur A = {a, b} défini par :
b
a
q0 q1
b
a
– Montrer que L(A2 ) est le langage contenant tous les mots sur A ayant un
nombre pair d’occurrences de a.
Filière SMI Semestre 5 Théorie des langages et des automates
11/1
Exercice
a a
q0 q1 q2
– Vérifier que l’automate A1 reconnaı̂t le langage de tous les mots u tels que
|u|a ≡ 2[3].
2 Soit A2 un automate fini sur A = {a, b} défini par :
b b b
a a b
q0 q1 q2 q3
Propriétés
(1) (2)
(3)
Filière SMI Semestre 5 Théorie des langages et des automates
13/1
1 0
q0 q1 q2
Parmi les mots 0110, 10, 11111, 111110, 10010 , déterminer lesquels sont reconnus par A.
Décrire le langage reconnu par A.
2 Décrire le langages reconnus par les automates suivants :
a,b
a,b b b
a
a b a b
q0 q1 q2 q3 q0 q1 q2 q3
a
a
3 Construire les automates finis qui reconnaissent les langages (sur le langage A = {a, b}) suivants :
1 L1 = {an b m | n, m ∈ N}.
2 L2 = {u ∈ A∗ | |u|a ≥ 4}.
3 L3 est le langage contenant des mots de A∗ tels que chaque occurrence de b est suivie d’une
occurrence de a.
Proposition 1
Un automate A = hQ, A, δ, I, T i est complet si, et seulement si, pour tout mot u sur
A et tous état q de Q, il existe au mois un chemin d’origine q et d’étiquette u.
Preuve : Exercice
Proposition 2
Si un automate A = hQ, A, δ, I, T i n’est pas complet, alors il est possible de le
transformer en un automate complet équivalent.
Exemple
0
1 0 0,1 0,1
q0 q1 q2
1
0
1 0 1
q0 q2 q1
q3
q4 0,1
A2
0,1 A1
0 1
q0 q2 q1
0
0,1
qc
qj
a1 an
a q0 q1 qi qn
qi qk
a
0
0
0,1
1 0 1
q4 q0 q1 q2 q3
1 0,1
Définition
On appelle transition spontanée ou ε-transition dans un automate A, une transition
étiquetée par le mot vide ε.
Exemple :
a ε qj ε qk
q0 q1 q2 qi
Remarque
Une transition spontanée est une transition qui représente la possibilité dans un
automate d’un état vers un autre sans la lecture d’aucune lettre.
Autrement, un automate sur un alphabet A et qui possède des transitions
spontanées peut lire des mots de A∗ .
Proposition (Admis)
Tout automate fini avec des ε-transitions peut être transformé en un automate fini
équivalent, sans ε-transition et avec le même ensemble d’états.
Remarque
Déterminisation
Proposition
Il existe un algorithme qui permet de rendre tout automate non déterministe A en un
automate déterministe AD équivalent à A.
Si de plus A est fini avec n états, on peut construire AD avec au plus 2n états.
1 1
1
0,1
q0 q2 0,1 q4 0,1
0 0
0
q3
La fonction de transition δD est définie par le tableau suivant (on considère que
les états accessibles) :
δD {q0 } {q2 , q3 } {q1 , q2 } {q2 , q3 , q4 } {q1 , q2 , q4 }
0 {q2 , q3 } {q2 , q3 , q4 } {q2 , q3 } {q2 , q3 , q4 } {q2 , q3 , q4 }
1 {q1 , q2 } {q1 , q2 } {q1 , q2 , q4 } {q1 , q2 , q4 } {q1 , q2 , q4 }
Ainsi, on construit l’automate déterministe AD = hQD , A, δD , {I}, TD i dont la
représentation graphique suivante :
1 1
{q0 } {q1 , q2 } {q1 , q2 , q4 } 1
0
1 0 1 0
0
{q2 , q3 } {q2 , q3 , q4 }
0
5. Minimisation d’automates
5. Minimisation d’automates
Proposition : Admis
Il existe n tel que ≡n est la même que la relation ≡n+1 et l’automate
A = hQ, A, δ, {q0 }, T i avec
Q est l’ensemble des classes d’équivalence de ≡n .
q0 est la classe contenant q0 .
T est l’ensemble des classes formées d’éléments de T .
δ(q, a) = q 0 si, et seulement si, ∃q ∈ q, q 0 ∈ q 0 tels que δ(q, a) = q 0 .
est l’automate minimal reconnaissant le même langage que A = hQ, A, δ, {q0 }, T i.
5. Minimisation d’automates
Exemple
0
A F C 0
1
1 1
1 1
0
0
D B E
1
0
5. Minimisation d’automates
Exemple (suite)
Soit l’automate A = h{{A, F }, {B, E }, {C , D}}, {0, 1}, δ, {{A, F }}, {A, F }i avec
0
1
{A, F } {B, E } 0
1 1
{C , D} 0
6. Théorème de Kleene
Remarque
Les langages rationnels (ou reconnaissables) permettent de définir formellement
beaucoup de langages, mais pas tous.
Par exemple le langage {an b n | n ∈ N} n’est pas rationnel.
D’où l’intérêt d’étudier d’autres classe de langages, notamment les langages
algébriques (sujet du chapitre suivant).