0% ont trouvé ce document utile (0 vote)
114 vues26 pages

Théorie des Automates Finis

Transféré par

Mouad Rafik
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
114 vues26 pages

Théorie des Automates Finis

Transféré par

Mouad Rafik
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1/1

Chapitre 2 :
Automates
0

q0 1 q1 0 q2
1
0
1
q3
q4 0,1

0,1

Filière SMI Semestre 5 Théorie des langages et des automates


2/1

1. Introduction

Soit A un alphabet, et soit L un langage rationnel sur A.


Nous avons vu au chapitre 1 que le langage L est généré ou représenté par une
ou des expressions rationnelles.
L’objectif de ce chapitre est d’introduire la notion d’automate, un modèle
abstrait de machine, capable de reconnaı̂tre les mots de A∗ qui appartiennent au
langage L.
Autrement, un langage est rationnel s’il est reconnu par un automate.
Ainsi, une autre définition des langages rationnels peut être donnée en
utilisant les automates.

Présentations générales

Gertrude Stein (poétesse, écrivain, américaine) : Un automate est un automate


est un automate · · ·
Encyclopédie Universalis : Un automate (du grec Ïutomaton) est une machine
imitant les mouvements, les fonctions ou les actes d’un corps animé.
Dico Info ([Link]) : Un automate désigne une structure
qui enchaı̂ne de façon automatique des calculs logiques et arithmétiques.

Filière SMI Semestre 5 Théorie des langages et des automates


3/1

2. Généralité 2.1 Définitions et Notations : Automate, États, Transitions

Un automate est un modèle abstrait de machine qui possède


des états parcourant un ensemble,
un alphabet,
des transitions (p, a, q) indiquant l’état q atteint en partant de l’état p en
lisant la lettre a.
Ainsi, un automate A peut être spécifié par la donnée des éléments suivants :
Un ensemble Q, non vide, appelé ensemble des états de A,
Un ensemble A, non vide, appelé alphabet (d’entrée) de A,
deux sous-ensembles I et T de Q. I est l’ensemble des états initiaux et T
ensemble des états finals (ou terminaux ) de A.
δ une fonction de transition de QxA dans Q.
On notera dans la suite A = hQ, A, δ, I, T i pour désigner un automate A sur
l’alphabet A.
Exemple : Soit A = hQ, A, δ, I, T i un automate tel que :
A = {0, 1} l’alphabet d’entrée.
Q = {q0 , q1 , q2 } l’ensemble des états où q0 est l’unique état initial et q2 est
l’unique état final.
δ(q0 , 0) = q0 , δ(q0 , 1) = q0 , δ(q0 , 0) = q2 , δ(q2 , 1) = q1 , δ(q1 , 0) = q1 ,
δ(q1 , 1) = q1 .
Filière SMI Semestre 5 Théorie des langages et des automates
4/1

2. Généralité 2.2 Représentation d’automates

Soit A = hQ, A, δ, I, T i un automate sur l’alphabet A. Il est possible de représenter


l’automate A par trois façons différentes :
1 une représentation explicite utilisant la définition. Exemple :
A = h{q0 , q1 , q2 }, {0, 1}, {δ(q0 , 0) = q0 , δ(q0 , 0) = q2 , δ(q0 , 1) = q0 , δ(q1 , 0) =
q1 , δ(q1 , 1) = q1 , δ(q2 , 1) = q1 }, {q0 }, {q2 }i
2 une représentation par la table de transition : Exemple :
δ q0 q1 q2
0 {q0 , q2 } q1 .
1 q0 q1 q1
3 une représentation graphique :
Les états sont représentés de la façon suivante :
q q q
état initial état final état normal
la transition entre un état qi et elle même et entre deux états différents qi
et qj , en lisant les lettres ai , · · · aj de l’alphabet A, sont représentés de la
façon suivante :

qi ai , · · · aj qi qj
ai , · · · aj

Filière SMI Semestre 5 Théorie des langages et des automates


5/1

2. Généralité 2.2 Représentation d’automates

Exemple :

1 Soit A = hQ, A, δ, I, T i l’automate sur l’alphabet A (voir l’exemple précédent).


Le dessin suivant donne une présentation graphique de cet automate :
0,1 0,1

0 1
q0 q2 q1

2 Donner l’automate dont la représentation graphique est le dessin suivant :


0

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

3. Automates finis 3.1 Définition

Un automate A = hQ, A, δ, I, T i est fini si Q, A et δ(Q × A) sont finis.


Si l’alphabet A est considéré comme donné et est fini, l’automate A est fini si,
et seulement si, Q est fini.

Définition :
Soit A un alphabet fini. Un automate sur A est fini si, et seulement si, son ensemble
d’états est fini.

Exemple

Les deux automates représentés ci-dessous sont finis.

1 0
0,1 0,1 q0 q1 q2
1
0
1
q3
0 1
q0 q2 q1 q4 0,1

0,1

Filière SMI Semestre 5 Théorie des langages et des automates


7/1

3. Automates finis 3.2 Étiquette et Chemin

Soit A un alphabet fini et A = hQ, A, δ, I, T i un automate fini sur A.


1 Étiquette : S’il existe une transition entre deux états qi et qj de Q, en lisant
une lettre a de l’alphabet A, c-à-d δ(qi , a) = qj , on dit que a est l’étiquette de
la transition (qi , a, qj ). On dira aussi que qi est l’origine, et qj l’extrémité, de la
a
transition (qi , a, qj ). On notera également qi .a = qj ou qi −
→ qj .
2 Chemin (ou calcul) : Un chemin (ou un calcul ) c dans A est une suite d’états
q0 · · · qn de A, tel qu’il existe toujours au moins une transition entre deux états
a0 a1 an
successifs qi et qi+1 . C’est que l’on peut noter : c = q0 −→ q1 −→ · · · −→ qn
L’état q0 est l’origine du chemin c, qn son extrémité.
La longueur du chemin c est n, le nombre de transitions qui contint c.
L’étiquette du chemin est le mot construit par concaténation des
étiquettes de chacune des transitions.
3 Chemin reconnu :
Un chemin c est reconnu par l’automate A si son origine est un état
initial et son extrémité est un état final de A.
Un mot de A∗ est dit reconnu par A si c’est l’étiquette d’un chemin
reconnu de A.
Propriété : Le mot vide ε est reconnu par un automate A si, et seulement si, il existe
un état de A qui est à la fois initial et final.
Filière SMI Semestre 5 Théorie des langages et des automates
8/1

3. Automates finis 3.2 Étiquette et Chemin

Exemple :

Soit A = {0, 1} un alphabet et A = hQ, A, δ, I, T i un automate fini sur A représenté


ci-dessous.
0

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

3. Automates finis 3.3 Langage reconnu

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

Filière SMI Semestre 5 Théorie des langages et des automates


10/1

3. Automates finis 3.3 Langage reconnu

Exemple :

1 Soit A1 un automate fini sur A = {0, 1} défini par :


0,1 0,1

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

3. Automates finis 3.3 Langage reconnu

Exercice

1 Soit A1 un automate fini sur A = {a, b} défini par :


b b b

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

– Montrer que l’automate A2 est équivalent à l’automate A1 .


Filière SMI Semestre 5 Théorie des langages et des automates
12/1

3. Automates finis 3.3 Langage reconnu

Propriétés

Soit A = {a1 , a2 , · · · , am } un alphabet fini.


1 Tout mot u = a1 a2 · · · an , avec n ≤ m, de A∗ de longueur n est reconnu par un
automate Au = hQ, A, δ, I, T i où
Q = {ε, a1 , (a1 a2 ), (a1 a2 a3 ), · · · , (a1 a2 · · · an )} coı̈ncide avec l’ensemble
des préfixes de u (y compris ε et u).
I = {ε}, T = {u}.
si p, q ∈ Q et a ∈ A, δ(p, a) = q si, et seulement si, pa = q i.e. p (resp.
a) est un préfixe (resp. suffixe) de q.
Si u = abcac, l’automate Au peut se représenter de la façon suivante :
a b c a c
ε a ab abc abca abcac

2 Les automates (1), (2) et (3) reconnaissent respectivement le langage vide ∅, le


mot vide ε et le langage A∗ .
a1 , a 2 , · · · , am

(1) (2)
(3)
Filière SMI Semestre 5 Théorie des langages et des automates
13/1

3. Automates finis 3.4 Exercices

1 Soit A un automate sur l’alphabet A = {0, 1} représenté ci-dessous


0,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.

Filière SMI Semestre 5 Théorie des langages et des automates


14/1

4. Automates complets, déterministes

Définition : Automates complets


Un automate A = hQ, A, δ, I, T i est complet si, pour tout q dans Q et tout a dans A,
il existe p dans Q tel que δ(q, a) = p.

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.

Preuve : Il suffit de construire un automate Ac = hQc , A, δc , I, T i tel que :


On défini un nouvel état (appelé puit) qc ∈
/ Q, et on pose Qc = Q ∪ {qc }.
Ensuite, on défini des nouvelles transitions par la façon suivante :
Pour tous les a ∈ A, δc (qc , a) = qc .
Pour tous les couples (q, a) ∈ Q × A tels qu’il n’existe pas d’état p ∈ Q
où δ(q, a) = p, on pose δc (q, a) = p.
Filière SMI Semestre 5 Théorie des langages et des automates
15/1

4. Automates complets, déterministes

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

A1 est un automate complet, en revanche A2 est un automate non complet.


L’automate suivant est l’automate complet équivalent à A2
0,1 0,1

0 1
q0 q2 q1

0
0,1
qc

Filière SMI Semestre 5 Théorie des langages et des automates


16/1

4. Automates complets, déterministes

Définition : Automates déterministes


Un automate A = hQ, A, δ, I, T i est déterministe si les deux conditions suivantes sont
satisfaites :
i) Il y a un unique état initial, i.e. I est un singleton.
ii) pour tout q dans Q et tout a dans A, il existe au plus une transition
d’origine q et d’étiquette a.
Autrement, on ne peut avoir un automate déterministe dont la représentation
graphique contient les cas suivants :

qj
a1 an
a q0 q1 qi qn
qi qk
a

Exemple : L’automate suivant est déterministe

0
0
0,1
1 0 1
q4 q0 q1 q2 q3

1 0,1

Filière SMI Semestre 5 Théorie des langages et des automates


17/1

4. Automates complets, déterministes

Transition spontanées ou ε-transition

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.

Filière SMI Semestre 5 Théorie des langages et des automates


18/1

4. Automates complets, déterministes

Remarque

Un automate A sera non déterministe si au moins une des conditions suivantes


est vérifiée :
A possède au moins deux états initials.
A possède une ou des ε-transitions.
La transition δ peut atteindre plus de deux états en partant d’un seul
l’état en lisant une seule lettre. Exemple :
qj
a ε ε
a q0 q1 q2 qi qj qk
qi qk
a
Un automate non déterministe est souvent plus facile à construire qu’un
automate déterministe.
En revanche, il est plus facile de tester si un mot appartient à un langage dans
un automate déterministe.
Il existe des algorithmes pour rendre un automate déterministe.
C-à-d, les langages reconnus par les automates non déterministes sont les
mêmes que ceux reconnus pas les automates déterministes.
À cause du non déterminisme, un mot peut être l’étiquette de plusieurs chemins.
Filière SMI Semestre 5 Théorie des langages et des automates
19/1

4. Automates complets, déterministes

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.

Preuve : On présente ici seulement l’algorithme de déterminisation. Soit


A = hQ, A, δ, I, T i un automate.
L’algorithme suivant permet de construire AD = hQD , A, δD , {I}, TD i en posant :
1 QD = P(Q) l’ensemble des parties de Q.
2 TD = {X ⊂ Q| X ∩ T 6= ∅}.
3 La fonction de transition δD est définie par :
[
∀P ⊂ Q, ∀a ∈ A δD (P, a) = δ(p, a)
p∈P
4 Les états de AD qui ne sont pas accessibles ne seront pas utilisés.
Un état q dans automate déterministe AD = hQ, A, δ, {q0 }, T i est dit accessible
s’il existe un mot u sur A tel que δ(q0 , u) = q. q0 est accessible par la
ε-transition.
Ainsi, il est facile de déduire (par construction) que l’automate AD est déterministe.
Filière SMI Semestre 5 Théorie des langages et des automates
20/1

4. Automates complets, déterministes

Algorithme de déterminisation : Exemple

Soit A = h{q0 , q1 , q2 , q3 , q4 }, {0, 1}, δ, {q0 }, {q1 }i l’automate suivant :


q1

1 1
1
0,1
q0 q2 0,1 q4 0,1

0 0
0

q3

Construction de l’automate déterministe AD = hQD , A, δD , {I}, TD i :


QD = P(Q) =
{{q0 }, · · · , {q4 }, {q0 , q1 }, · · · , {q0 , q1 , q3 }, · · · , {q0 , q1 , q2 , q3 , q4 }}
TD = {X ⊂ Q| X ∩ T 6= ∅} =
{{q4 }, {q0 , q4 }, · · · , {q3 , q4 }, · · · , {q0 , q1 , q2 , q3 , q4 }}.
La fonction de transition δD est définie par le tableau (voir le diapo
suivant), on considère que les états accessibles.
Filière SMI Semestre 5 Théorie des langages et des automates
21/1

4. Automates complets, déterministes

Algorithme de déterminisation : Exemple (suite)

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

Filière SMI Semestre 5 Théorie des langages et des automates


22/1

5. Minimisation d’automates

La déterminisation d’un automate non déterministe construit un automate qui


peut posséder des d’états inutiles. Notons qu’un état q d’un automate A est
utile si, et seulement si, il existe un chemin reconnu de A qui passe par q.
Il existe des méthodes (algorithmes) qui permettent de construire, à partir d’un
automate déterministe, un automate déterministe complet avec un nombre
minimum d’états appelé automate minimal (ou canonique).
Pour pouvoir comparer des automates, dire q’un automate est plus petit que
l’autre, ou créer une relation d’ordre pour les automates, on définit la notion de
morphisme d’automates.

Définition : Morphisme d’automates


Soient A = hQ, A, δ, I, T i et A0 = hQ 0 , A, δ 0 , I 0 , T 0 i deux automates. Une application
ϕ : Q −→ Q 0 est un morphisme d’automates de A vers A0 si
ϕ est surjective.
ϕ(I) = I 0 .
∀q ∈ Q, ∀a ∈ A, ϕ(δ(q, a)) = δ 0 (ϕ(q), a).
∀q ∈ Q, ϕ(q) ∈ T 0 ⇐⇒ q ∈ T .
On dira que A0 est plus petit que A (ou A0 ≤ A0 ).

Filière SMI Semestre 5 Théorie des langages et des automates


23/1

5. Minimisation d’automates

Algorithme de minimisation d’automates

On présente ici un algorithme de minimisation qui permet, en deux étapes principales,


de construire à partir d’un automate déterministe un automate minimal reconnaissant
le même langage :
1 On supprime les états inutiles. Soit A = hQ, A, δ, {q0 }, T i l’automate
déterministe obtenu.
2 On définit la suite de relation d’équivalence ≡i sur Q par :
q ≡0 q 0 si, et seulement si, q ∈ T ⇐⇒ q 0 ∈ T .
q ≡i+1 q 0 si, et seulement si, q ≡i q 0 et ∀a ∈ A, δ(q, a) ≡i δ(q 0 , a).

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.

Filière SMI Semestre 5 Théorie des langages et des automates


24/1

5. Minimisation d’automates

Algorithme de minimisation d’automates

Exemple

Soit l’automate A = h{A, B, C , D, E , F }, {0, 1}, δ, {A}, {A, F }i avec


0

0
A F C 0
1

1 1
1 1
0
0
D B E
1
0

Le calcul des équivalences donne :


≡0 −→ {A, F }, {B, C , D, E }.
≡1 −→ {A, F }, {B, E }, {C , D}.
≡2 −→ {A, F }, {B, E }, {C , D}.
Ainsi, l’automate minimal contient trois états : {A, F }, {B, E }, {C , D} dont
{A, F } est l’état initial et final.
Filière SMI Semestre 5 Théorie des langages et des automates
25/1

5. Minimisation d’automates

Algorithme de minimisation d’automates

Exemple (suite)

La fonction de transition δ est définie par le tableau suivant :


δ {A, F } {B, E } {C , D}
0 {A, F } {B, E } {C , D}
1 {B, E } {C , D} {A, F }

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

Filière SMI Semestre 5 Théorie des langages et des automates


26/1

6. Théorème de Kleene

Il est possible de construire un automate à partir de n’importe quelle expression


rationnelle.
Réciproquement, il est également possible d’associer une expression rationnelle à
tout automate.
Ainsi, les notions de langages rationnels et de langages reconnaissables sont liées
par le résultat fondamental, connu sous le nom de théorème de Kleene.
Autrement, le théorème de Kleene établit l’équivalence entre les expressions
rationnelles et les automates finis dans le sens où ces deux notions définissent
les même langages.

Théorème [Kleene] (Admis)


Soit A un alphabet fini. Un langage de A∗ est rationnel si, et seulement si, il est
reconnu par un automate fini sur A.

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

Filière SMI Semestre 5 Théorie des langages et des automates

Vous aimerez peut-être aussi