Vous êtes sur la page 1sur 15

Chapitre 3 : Automate d’Etats Finis AEF

1. Définition
2. Représentation d’un AEF
2.1 Graphe
2.2 Matrice
2.3 Exemple
3. Fonctionnement d’un AEF
3.1 Exemple
4. Mot et langage reconnus par un AEF
4.1 Mot reconnu
4.1.1 Exemple
4.2 Langage reconnu
4.2.1 Exemple
4.3 Automates équivalents
5. AEF non déterministe et AEF déterministe

5.1 AEF Indéterministe (non déterministe) (AEFI)


5.2 AEF Déterministe (AEFD)
5.3 Théorème
5.4 Passage d'un AEF non déterministe vers un AEF déterministe
5.4.1 Définition
5.4.2 Algorithme de transformation d’un AEDI en un AEFD
5.4.3. Exemple
5.5 Automate déterministe complet (complètement spécifié)
5.5.1 Obtention d’un AEF déterministe complet
6. Minimisation d’un AEF déterministe complet
6.1 Etat accessible et inaccessible
6.2 Les états β-équivalents
6.3 Relation de congruence
6.4 Construction d’un automate AEFD minimal
6.5 Exemple de minimisation
7. Exercice
1. Définition

Un automate d’états fini AEF est définis par un quintuplet A= (Σ, Q, q0, δ, F), tel que:

Σ : Ensemble fini de symboles (Alphabet)

Q : Ensemble fini d’états

q0 : état initial (q0 ∈ Q)

F : Ensemble des états finaux ou états accepteurs (F ⊆ Q )

δ : Fonction définie de Q× (Σ ∪{ε} ) dans Q, appelée fonction de transition

 δ (qi, a) = qj Si l'automate est dans l'état qi, il lit le symbole a et passe à l'état qj
 ∀q∈Q: δ (qi, ε) = qi

2. Représentation d’un AEF

2.1 Graphe

On représente généralement un automate d’états finis par un graphe orienté dont les arcs
sont étiquetés. L’état initial q0 est distingué par un arc sans origine et les états finaux par
double cercles. Les autres états simples sont présentés par un cercle, comme le montre
l’exemple suivant:

b
q0 q1
a
b b
q2

A travers ce graphe, on peut lire des transitions, par exemple : δ (q0, b) = q1 , δ (q1, b) = q1,
δ (q2, b) = q1

2.2 Matrice

La fonction de transition correspondant à un automate peut se donner par un tableau. Pour


l’exemple précédent, on aura la matrice qui suit :

δ a b
Etat initial q0 - q1
q1 q2 q1
Etat final q2 - q1
2.3 Exemple

Soit l’automate d’états finis A= (Σ, Q, q0, δ, F) défini par : Q ={q0,q1,q2}, Σ={0,1},
F={q0,q2} ( l’état q0 est à la fois initial et final).

La fonction δ : δ(q0,0) = q1 , δ(q1,1) = q0, δ(q1,0) = q2, δ(q1,1) = q2, δ(q2,0) = q1

Graphe :
0 0/1
q0 q1 q2
1 0
Matrice :

δ 0 1
q0 q1 -
q1 q2 {q0,q2}
q2 q1 -

3. Fonctionnement d’un AEF

Afin de pouvoir lire des mots quelconques de Σ*. Il est possible d’étendre récursivement la
fonction de transition δ en une fonction δ* définie comme suit :

δ* : Q×Σ*  Q
(q , x)  q`
Nous avons trois cas :

Si | x |= 0 δ* (q,x) = δ(q, ε) = q
Si | x |= 1 δ* (q,x) = δ (q,x)
Si | x |> 1 δ* (q,x) = δ* (δ (q, x1), x2) avec : x= x1x2 x1 ∈ Σ et x2∈ Σ*

3.1 Exemple

En reprenant l’automate de l’exemple 2.3

0 0/1
q0 q1 q2
1 0

On peut lire des mots 0, ε, 00, 010, comme suit :

δ* (q0,0) = δ (q0,0) =q1

δ* (q0, ε) = δ (q0, ε) =q0

δ* (q0,00) = δ* (δ (q0,0), 0) = δ* (q1,0) = δ (q1,0)= q2

δ* (q0,010) = δ* (δ(q0,0),10) = δ* (q1,10) = δ* (δ (q1, 1), 0) = δ* (q2, 0) = δ (q2, 0)=q1


4. Mot et langage reconnus par un AEF
4.1 Mot reconnu

On dit qu’un mot w est accepté par un AEF s’il existe un chemin partant d’une
configuration initial (q0, w) //q0 est l’état initial// et arrivant à une configuration finale
(qF, ε) //qF est un état accepteur ∈ F//
3 cas peuvent se présenter:

(q0, w) * (qF, ε) (qF ∈ F) w est reconnu par l’automate

(q0, w) * (q`, ε) (q` ∉ F) w n’est pas reconnu par l’automate

(q0, w) * (q`, w`) (q` ∈ Q et w`∈ Σ* ) Blocage, donc w n’est pas reconnu

4.1.1 Exemple

Soit l’AEF donné par le graphe suivant :


1
0 1
q0 q1 q2
0

Les mots suivants sont-ils reconnus par cet automate : 01, 0111, 11, 010, ε

w=01 : (q0, 01) (q1, 1) (q2,ε) mot reconnu

w= 0111 : (q0, 0111) (q1, 111) (q1, 11) (q1, 1) (q2,ε) mot reconnu

w= 11 : (q0, 11) blocage car (q0, 1) n’existe pas, mot non reconnu

w=010 : (q0, 010) (q1, 10) (q2, 0)  (q1, ε) mot non reconnu car q1 ∉ F

w= ε: (q0, ε)  (q0, ε) mot non reconnu car q0 ∉ F

4.2 Langage reconnu

Le langage reconnu (ou accepté) par un automate d’états finis A, noté L(A), est l’ensemble
des mots acceptés par cet automate.

L(A)= { w ∈ Σ* / (q0, w) * (qF, ε) }

Dans l’exemple 4.1.1, on peut noter que les mots : 01 et 0111 ∈ L(A) et les mots : 11, 010,
ε ∉ L(A).
4.2.1 Exemple

Soit l’automate A donné par la représentation matricielle qui suit :

A:
δ 0 1
q0 {q0,q1} q0
q1 - q2
q2 - -

La représentation graphique de A sera donc :

0/1
0 1
q0 q1 q2

Les transitions correspondent à la concaténation. On suit les arcs pour voir quel mots sont
acceptés par l’automate A, en parcourant les chemins allant de l’état initial q0 à l’état final
q2 : 01, 001, 101, 00001, 011001

01 : (q0, 01) (q1, 1) (q2,ε)


001 : (q0, 001) (q0, 01) (q1, 1) (q2,ε)
101 : (q0, 101) (q0, 01) (q1, 1) (q2,ε)
00001 : (q0, 00001) (q0, 0001) (q0, 001) (q0, 01) (q1, 1) (q2,ε)
011001 : (q0, 011001) (q0, 11001) (q0, 1001) (q0, 001) (q0, 01)
(q1, 1) (q2,ε)
 Remarquons que tous ces mots reconnus se terminent par 01 en passant, n fois
(n>=0), par l’arc de boucle sur q0.
 On peut ainsi, décrire L(A) par une expression régulière :

L(A) = {w ∈ Σ* / w= (0/1)*01}

4.3 Automates équivalents

Deux automates A et A` sont dits équivalents si et seulement s’ils acceptent le même


langage : L(A) = L(A`).
5. AEF non déterministe et AEF déterministe

5.1 AEF Indéterministe (non déterministe) (AEFI)

Un automate d’états finis non-déterministe est un automate tel que sa fonction de transition
se caractérise par les trois cas suivants :

a) Il existe des transitions sur des mots de longueur supérieure à 1

0 101
q0 q1 q2

b) Il existe des transitions sur le mot vide

0 ε
q0 q1 q2

c) Dans un état donné, il peut y avoir plusieurs transitions avec la même lettre de
Σ, ce qu’on appelle le choix multiple

0 1
δ (q1,1) = q2 et q3 q0 q1 q2

δ (q3,0) = q0 et q2 1
0 0
q3

5.2 AEF Déterministe (AEFD)

Un automate d’états finis déterministe est un automate tel que sa fonction de transition δ
se caractérise par :
a) pas de transitions sur le mot vide ε
b) pas de transitions sur des mots de longueur supérieure à 1
c) pas de choix multiples dans les transitions

Si on a δ (q, x) alors : a) x ≠ ε
b) | x |=1
c) δ (q, x) est unique

5.3 Théorème
Pour tout automate indéterministe A, il existe un automate déterministe A` équivalent, c’est
à dire L(A) = L(A`).
5.4 Passage d'un AEF non déterministe vers un AEF déterministe
5.4.1 Définition
Pour un état q d’un automate A, E(q) est l’ensemble des états qui peuvent être atteints à
partir de q par le mot vide ε, par une suite de transitions.

E(q) ={ q` / δ *(q, ε)= q` }


Exemple
a
q2
q0
a
ε b
q1

E(q0) = { q0}
E(q1) = { q0, q1}
E(q2) = { q2}

Remarque : E(qi) n’est jamais égal à l’ensemble vide et contient au moins l’état lui-
même qi puisque on a : δ(qi, ε)= qi pour tout qi appartenant à Q

5.4.2 Algorithme de transformation d’un AEDI en un AEFD


Entrée : AEFI A= ( Σ, Q, q0, δ, F )
Sortie : AEFD A`= ( Σ, Q`, q`0, δ`, F` )

Etape 1 : Eliminer les transitions sur les mots de longueurs supérieur à 1 en


ajoutant des états intermédiaires.

01 0 1

Etape 2 : Eliminer les transitions sur le mot vide et les choix multiples de
transitions par l’algorithme qui suit :

Algorithme :
• q`0 = E(q0)
• Les opérations suivantes sont répétés jusqu’à ce qu’elles ne modifient
plus l’ensemble Q`
1) On choisit un état p auquel l’opération (2) n’a pas été appliquée
2) Pour tout symbole x ∈ Σ, on détermine l’état p`= δ`( p,x)
Q` = Q` ∪ { p`}

• F` ={ f ∈ Q` / f ∩ F ≠ ∅ }
5.4.3. Exemple
Donner l’automate déterministe équivalent à l’automate indéterministe suivant
A= ( Σ, Q, q0, δ, F )

a
q1 ab

q0 q3
ε a
a a
q2

D’après le graphe on peut facilement déduire que : Σ={a,b}, Q={ q0, q1 ,q2 ,q3 } F={ q3 }
L’automate choisit est un automate comprenant les trois cas du non déterminisme :
 on a une transition sur un mot de longueur >1 : ab de q1 vers q3
 on a une transition sur le mot vide
 on a aussi un choix multiple sur l’état q0 : δ(q0,a)={q0 , q1}

Etape 1 : Eliminer les transitions de longueur supérieure à 1

a q4
q1 b
a

q0 q3
a a
ε q2

Etape 2 : Eliminer les transitions sur ε et les choix multiples


E(q0) = {q0,q2} Etat initial du nouvel automate déterministe
E(q1) ={q1} E(q2) ={q2} E(q3) ={q3} E(q4) ={q4}

Calcul de la nouvelle fonction de transition δ` :

• δ` ({q0,q2,}, a) = ∪E [ δ(q0,a), δ(q2,a) ] = E(q0)∪E(q1)∪ E(q3)


= {q0, q2, q1, q3}

δ` ({q0,q2,},b) = ∅
• δ` ({q0, q2,q3,, q1}, a) = ∪E [δ(q0,a), δ(q2,a), δ(q3,a), δ(q1,a) ]
= E(q0) ∪E(q1) ∪ E(q3) ∪ E(q4)
= {q0, q2, q1, q3, q4}
δ` ({q0, q2,q3,, q1},b) = ∪E [δ(q0,b), δ(q2,b), δ(q3,b), δ(q1,b) ]
=∅
• δ` ({q0, q2, q1, q3, q4}, a) = ∪E [δ(q0,a), δ(q2,a), δ(q1,a), δ(q3,a), δ(q4,a) ]
= E(q0) ∪E(q1) ∪ E(q3) ∪ E(q4)
= {q0, q2, q3, q1, q4}
δ` ({q0, q2, q1, q3, q4}, b) = ∪E [δ(q0,b), δ(q2,b), δ(q1,b), δ(q3,b), δ(q4,b) ]
= E(q3) = { q3}
• δ` ({q3}, a) = ∅
δ` ({q3}, b) = ∅

a
{q0,q2,} {q0, q2, q3,, q1}

a a
{q3} b
{q0, q2, q1, q3, q4}

A`= ( Σ, Q`, q`0, δ`, F` )

Σ={a,b}, Q={ {q0,q2,}, {q0, q2,q3,, q1}, {q0, q2, q1, q3, q4}, {q3}}

F={ {q0, q2,q3,, q1}, {q0, q2, q1, q3, q4}, {q3} } // les états finaux sont ceux
// contenant l’état final q3

Après avoir renommé les états, on obtient l’AEFD ci-contre :

a
e0 e1
a
a
b
e3 e2

5.5 Automate déterministe complet (complètement spécifié)

Un automate déterministe est dit complètement spécifié si sa fonction de transition δ est


définie sur tous les éléments de l’alphabet Σ plus précisément chaque transition δ (q,x) a
exactement un seul état. a

a e1 Remarquons que cet automate


déterministe est complet car
b
ee00 pour tout symbole x dans
a
l’alphabet, δ (q,x) existe.
b
e2

b
5.5.1 Obtention d’un AEF déterministe complet

Le principe consiste à ajouter un état puits p (qui n’est jamais final) et de compléter la
fonction de transition δ sur les états où elle n’est pas définie.

Exemple :
a a

a e1 e1 b
a a/b
e0 b e0 p
b
b b a
e2 e2

AEF incomplet AEF complet équivalent

6. Minimisation d’un AEF déterministe complet

Soit un AEF déterministe et compétemment spécifié. La construction d’un automate


minimal équivalent s’effectue en éliminant les états dits inaccessibles et en fusionnant les
états reconnaissant le même langage.

6.1 Etat accessible et inaccessible

On dit qu’un état q est accessible s’il existe un chemin menant à cet état q, à partir de
l’état initial q0

q est accessible ⇔ ∃ w ∈ Σ* / δ* (q0, w) = q


Un état est donc dit inaccessible si aucun arc n’arrive sur lui, comme le montre l’exemple
suivant où l’état q2 est inaccessible et les deux états q1, q3 sont accessibles à q0

a
q1 b q3
b
a
q0 a
q2

6.2 Les états β-équivalents

Deux états p et q sont dits β-équivalents s’ils permettent d’atteindre des états finaux en
utilisant les mêmes mots. On écrit alors : p β q

pβq ⇔ ( ∀ w ∈ Σ* : δ* (p, w) ∈ F ⇔ δ* (q, w) ∈ F )


La relation β-équivalence est une relation d’équivalence.

6.3 Relation de congruence

Soit une relation R sur Q. On définit une congruence d’automate sur R par translation
de la relation sur les nouveaux états obtenus à travers δ sur les éléments de l’alphabet
Σ.

pRq ⇒ ( ∀ x∈Σ: δ (p, x) R δ (q, x) )

Théorème : La relation β-équivalents est une congruence d’automate.

Démonstration : soit p et q deux états β-équivalents : p β q

Il faut montrer que ∀ x ∈ Σ : δ (p, x) β δ (q, x)

Soit w un mot ∈ Σ*,

On peut écrire : w=x.u / x ∈ Σ et u ∈ Σ*

p β q ⇔ ( δ* (p, w) ∈ F ⇔ δ* (q, w) ∈ F )

⇔ ( δ* (p, x.u) ∈ F ⇔ δ* (q, x.u) ∈ F )

⇔ ( δ* (δ (p, x), u) ∈ F ⇔ δ* (δ (q, x), u) ∈ F )


⇒ δ (p, x) β δ (q, x)

6.4 Construction d’un automate AEFD minimal

Entrée : AEFD A= ( Σ, Q, q0, δ, F )

Sortie : AEFD Minimal A`= ( Σ, Q`, q`0, δ`, F` )

La méthode de réduction d’un AEF comporte deux étapes:

Etape 1 : Elimination des états inaccessibles ;

Etape 2 : Regrouper les états congruents selon les classes d’états à travers la relation β

Algorithme : Regroupement des états congruents

1) p β0 q ⇔ ( p ∈ F et q ∈ F ) ou ( p ∉ F et q ∉ F )
2) Si p βk q et ∀ x ∈ Σ δ (p, x) βk δ (q, x) Alors p βk+1 q
3) Arrêt si : βk = βk+1
Explication :
1) Construire deux classes : une contenant les états finaux et l’autre les
états non finaux ;
2) S’il existe un symbole x de l’alphabet et deux états p et q d’une
même classe tel que (p, x) et (q, x) n’appartiennent pas à la même
classe, alors créer une nouvelle classe et séparer p et q.
3) On laisse dans la même classe tous les états qui donnent un état
d’arrivée dans la même classe ;
4) Recommencer l’étape 2 jusqu’à ce qu’il n’y ait plus de classes à
séparer ;

Q` : C’est les classes obtenus


q`0 : Le nouvel état initial est la classe contenant l’état initial q0
F` : C’est les classes contenant les états finaux de F

δ` : La nouvelle fonction de transition sera obtenu en définissant chaque nouvel état


(classe) sur les éléments de l’alphabet.
6.5 Exemple de minimisation

Soit à minimiser l’automate suivant

b a
q0 q1

a b
a
a/b
q2 q3
b

L’automate donnée est déterministe et complètement spécifié donc on peut le


minimiser.

Etape 1 : Eliminer les états inaccessibles : pas d’états inaccessibles

Etape 2 : Regrouper les états en classes β-équivalents

β0 : { q 0, q 1, q 2} { q 3} // classe des états finaux et classe des états non finaux

β1 : { q0 } {q1, q2} { q3} // les classes { q0 } {q1, q2} sont éclatées pas b car

//δ (q0, b) = q1 et δ (q1, b) = q3 , δ (q2, b) = q3

// sachant que q1 et q3 ne sont pas dans la même classe β0

β2 : { q0 } {q1, q2} { q3} // pas d’éclatement de la classe {q1, q2}

Arrêt car β1 = β2
On obient l’automate minimal :
a a/b

a/b a b
{q0} {q1 q2} {q3}

On renomme les états du nouvel AEF minimisé

a a/b

a/b b
e0 e1 e2

Remarque :

• L’automate obtenu est minimal et est unique, il ne peut plus être réduit.
• Si après minimisation d’un automate on obtient le même automate, alors cela
signifie qu’il est déjà minimal.

7. Exercice
Soit l’automate d’états finis A= ( Σ, Q, q0, δ, F ) tel que : Q = { q0, q1}, F={ q1}
δ: δ(q0, a) = q0, δ(q0, b) = q0, δ(q0, bb) = q1 , δ(q1, a) = q1 , δ(q1, b) = q1
1. Dessiner l’AEF A
2. Dire pourquoi A est indéterministe
3. Trouver l’AEFD A` équivalent à A
4. Trouver l’automate A`` minimal équivalent à A`

Solution

1.
a/b a/b

bb
q0 {q1}

L’automate A accepte des mots tels que : bb, abb, bbb, baabb, bba, bbbaaab,
abbbabbbaba, aaabbbbbbba, on peut en décrire ces mots l’expression régulière :

(a/b)*(bb) (a/b)*

2. A est une AEF indéterministe car on a une transition sur un mot de longueur > 1
3. Calcul de l’AEFI A`

Etape 1 : suppression des transitons sur des mots de longueur > 1


a/b a/b

b b
q0 q2 q1
q}

Etape 2 : suppression des transitons de choix multiples


Remarquons que δ(q0, a) = { q0, q1 }
E(q0) = { q0 } E(q1) = { q1 } E(q2) = { q2 }
Calcul de δ`
• δ`({ q0 }, a) = ∪E [ δ(q0, a) ] = E(q0) ={ q0 }
δ`({ q0 }, b) = ∪E [ δ(q0, b) ] = E(q0) ∪E(q2) = { q0 , q2}
• δ`({ q0 , q2}, a) = ∪E [ δ(q0, a), δ(q2, a) ] = E(q0) = { q0 }
δ`({ q0 , q2}, b) = ∪E [ δ(q0, b), δ(q2, b) ] = E(q0)∪E(q2)∪E(q1)
= {q0 , q2, , q1}
• δ`({q0 , q2, , q1}, a) = ∪E [ δ(q0, a), δ(q2, a), δ(q1, a) ] = E(q0)∪E(q1)
= {q0 , q1}
δ`({q0 , q2, , q1}, b) = ∪E [ δ(q0, b), δ(q2, b), δ(q1, b) ]
= E(q0)∪E(q2)∪E(q1) = {q0 , q2, , q1}
• δ`({q0 , q1}, a) = {q0 , q1}
δ`({q0 , q1}, b) = {q0 , q2, , q1}

a
{q0} {q0 , q2}
b
a b

a {q0 , q2, , q1}


{q0 , q1}
b

a b

On obtient l’AEFD A`

a
e0 e1
b
a b
a
e3 e2
b

a b
4. Minimisation de A` : A`est déterministe et complètement spécifié, donc on peut le
minimiser.
Etape 1 : Eliminer les états inaccessibles : pas d’états inaccessibles

Etapes 2 : Regrouper les états en classes β-équivalents

β0 : { e0, e1 } { e2, e3}


β1 : { e0 } { e1 }{ e2, e3} // les états e0, e1 sont séparés car δ(e0, b)= e1 et δ(e1, b)= e2
//sachant que : e1 et e2 ne sont pas dans la même classe β0
β2 : { e0 } { e1 }{ e2, e3}
Arrêt car β1 = β2

a
b
{ e0 } { e1 }
a
b
a/b
{ e 2, e 3}

On obtient l’AEFD A`` minimisé :

a
b
s0 s1
a
b
a/
b s3

Vous aimerez peut-être aussi