Académique Documents
Professionnel Documents
Culture Documents
4
Automates finis non déterministes
51
Introduction
• Nous avons vu que les automates finis
déterministes nous limitent dans
l évaluation syntaxique.
• Nous allons essayer d élargir la classe de
langages que l on peut analyser en levant
deux restrictions que nous avons imposées
aux automates déterministes: celle d être
complètement définis et celle d être non
ambigus.
52
Introduction
• Nous obtenons ainsi des automates finis non
déterministes.
• Ceux-ci déterminent une classe de langages
qui englobe la classe de langages des
automates finis déterministes.
• Points à réexaminer:
– Notion d acceptation,
– Classes de langages reconnaissables.
53
Définition
• Un automate fini non déterministe consiste
en un quintuple de la forme (S, Σ, ρ, ι, F).
– S est un ensemble fini d états.
– Σ est l alphabet de la machine.
– ρ est un sous-ensemble de S× Σ ×S.
– ι ∈S est l état initial.
– F ⊆ S est l ensemble des états finaux.
54
Composante ρ
• La seule composante différente de celle
d un automate déterministe est ρ,
l ensemble des transitions de l automate.
• Un élément de ρ est un triplet (s, a, t) où t
est un état accessible à partir de l état s à la
lecture d un a.
55
Composante ρ
• On peut écrire un triplet de ρ comme
((s,a),t). On voit bien que ρ est une relation
entre S × Σ et S , i.e. que ρ ⊆ (S × Σ) ×S.
• La différence entre les automates finis non
déterministes et les automates finis
déterministes est la définition des transitions
au moyen d une relation plutôt que d une
fonction.
56
Exemple
– Voici le diagramme de transitions d un
automate non déterministe ({s0,s1,s2,s3,s4,s5,s6},
{a, b}, ρ, s0,{s1,s4,s6}).
ρ = {(s0,a,s1), (s0,a,s2),
s1
(s2,a,s1), (s2,b,s3),
a a b
a (s2,b,s5), (s3,b,s4),
b
s0 s2 s3 s4
(s5,a,s6), (s5,b,s5),
b a (s6,a,s6)}
a
s5 s6
b
57
Exercice
• Donner le diagramme de transitions de l automate
{(A, B, C, D, E, F, G, H, I}, {0,1}, ρ, A, {G, I})
où ρ = {(A,1,B), (A,1,C), (B,0,E), (C,0,B), (C,0,D), (C,1,F), (D,
0,A), (D,0,G), (D,1,C), (D,1,D), (E,0,H), (E,1,I), (F,1,G), (F,1,I), (G,
0,F), (G,1,G), (H,0,H), (I,1,H)}
0 0 0
B E H
1 1
0 1
1 1 1
A C F I
0 1 1
0
D
0
1
0
G
1 58
Exercices
• Classifier les automates finis suivants
décrits par des diagrammes de transitions
sur l alphabet Σ. Dire tout d abord si la
description est correcte. Si oui, dire si
l automate est déterministe.
a
1. Σ = {a, b} a b b
0 1 2 3
b
R: Description correcte. Automate non déterministe car pas
complètement défini et ambigu.
59
a
2. Σ = {a, b} 1 2
λ
0 b
b
λ 3 4
60
a
4. Σ = {a, b}
1 2
b
R: Description correcte. L automate n est pas
déterministe parce qu il n est pas complètement défini.
61
Exercices
• Classifier les descriptions formelles
d automates finis suivantes. Dire si la
description est correcte et si oui, dire si
l automate est déterministe.
1. M1 = ({s0, s1, s2}, {a, b}, δ, s0, {s1}), où
δ(s0, a) = s1 δ(s1, a) = s1 δ(s2, a) = s2
δ(s0, b) = s2 δ(s1, b) = s2 δ(s2, b) = s2
64
5. M5 = ({1, 2, 3, 4}, {a, b, c}, δ, 1, {2}) où
65
6. M6 = ({a, b}, {1}, δ = ∅, a, {b})
66
Définition
• Un automate fini non déterministe
M = (S, Σ, ρ, ι, F) accepte (ou reconnaît) la
séquence x1x2x3...xn (n≥0) ssi il existe une
séquence d états s0, s1, ..., sn tels que s0 = ι,
sn ∈ F, et pour tout j = 1, ..., n (sj-1, xj, sj) ∈
ρ.
• Dans le cas contraire, on dit que l automate
refuse ou rejette la séquence.
67
Définition
• On dénote par L(M) l ensemble des
séquences acceptées par M.
• On dit que L(M) est le langage reconnu
(ou accepté) par M.
68
Notes
69
Exemple
• Soit l automate non déterministe M décrit
par le diagramme de transitions suivant:
s1
a a
a b b
s0 s2 s3 s4
b a a
a
s5 s3
b 70
Voici une suite de configurations du ruban et
d ensembles d états de l automate décrivant
l acceptation de la séquence abbbaa par M. Les
ensembles d états contiennent tous les états
accessibles à une étape donnée.
abbbaa {s0} s1
abbbaa {s1, s2} a a
abbbaa {s3, s5}
a b b
abbbaa {s4, s5} s0 s2 s3 s4
abbbaa {s5} a
b a
abbbaa {s6}
a
abbbaa_ {s2, s6} s5 s6
b
71
On peut aussi décrire l acceptation de cette séquence
comme suit:
{s0} a {s1, s2} b {s3, s5} b {s4, s5} b {s5} a {s6} a {s2, s6}
72
Une transition peut être vue comme le passage d un ensemble
d états atteignables vers un autre ensemble d états atteignables.
{s0} a {s1, s2} b {s3, s5} b {s4, s5} b {s5} a {s6} a {s2, s6}
Ensemble d’états
atteignables après États atteignables
lecture du premier a. après la lecture de
abbbaa.
Ensemble d’états
atteignables au départ
73
La suite ci-dessous décrit le rejet de la séquence abbbb par le
même automate. Cette séquence est rejetée car il n y a pas
de suite de transitions correspondant à la séquence et menant
de l état initial à un état final.
abbbb {s0} s1
abbbb {s1, s2} a a
abbbb {s3, s5} a b b
s0 s2 s3 s4
abbbb {s4, s5} a
b a
abbbb {s5} a
s5 s3
abbbb {s5}
b
74
Exercice
• Soit un automate M décrit par le
diagramme de transitions suivant:
0
0 0
B E H
1 1
0 1
1 1 1
A C F I
1 0 0 1
0 0
D G
1 1
75
Démontrer le fonctionnement de M (en énumérant les
configurations du ruban d entrée et les ensembles d états
possibles de l automate) lorsqu on lui soumet les séquences
suivantes.
1. 10000 0
0 0
B E H
10000 {A} 1 1
0 1
10000 {B, C} 1 1 1
A C F I
10000 {B, D, E}
1 0 0 1
0
10000 {A, E, G, H} 0
D G
10000 {F, H}
1 1
10000_ {H}
76
2. 10011
0
10011 {A} 0 0
B E H
10011 {B, C} 1 1
0 1
10011 {B, D, E} 1 1 1
A C F I
10011 {A, E, G, H} 1 0 0 1
0
10011 {B, C, G, I} 0
D G
10011_ {F, G, H} 1 1
77
Théorème
• Pour tout automate fini non déterministe, il
existe un automate fini déterministe qui
accepte exactement le même langage.
78
Démonstration
• Soit un automate fini non déterministe
M = (S, Σ, ρ, ι, F).
M = (S , Σ, δ, ι , F )
79
L idée de la preuve est de suivre toutes les options possibles
en parallèle; chaque transition passe d un sous-ensemble de S
à un sous-ensemble de S.
Posons S = ℘(S)
ι = {ι}
F = {T⊆ S: T ∩ F ≠ ∅ }
δ est bien une fonction. Elle est définie pour tout s ∈℘(S)
et pour tout x ∈ Σ. De plus, le résultat est unique (non ambigu)
81
Maintenant que M est défini, il faut montrer que L(M) = L(M ).
Nous procédons en deux étapes:
1) Montrer que L(M) ⊆ L(M ),
2) Montrer que L(M) ⊆ L(M ).
82
1) L(M) ⊆ L(M ):
Montrons par induction sur n que le prédicat P(n)
suivant
est vrai pour tout n ∈ N:
Si
s0 = ι x1 s1 x2 s2 ... xn sn
est un chemin de M, alors il existe un chemin de M de la
forme
s 0 = ι x1 s 1 x2 s 2 ... xn s n
84
Base d induction: n=0.
Le chemin de M est de longueur 0
( M reste dans l état initial s0 = ι ).
Il existe un chemin correspondant pour M :
le chemin de longueur 0,
M reste dans l état initial s 0 = ι ={ι}.
On a bien s0 ∈ s 0, par définition de ι .
85
Étape d induction:
86
s0 = ι x1 s1 x2 s2 ... xk sk xk+1 sk+1 de M
⇔ 〈 Signification de chemin.〉
s0 = ι x1 s1 x2 s2 ... xk sk de M ∧ (sk, xk+1, sk+1) ∈ ρ
⇒ 〈 Par hypothèse d induction.〉
∃ s 0 = ι x1 s 1 x2 s 2 ... xk s k de M ∧ sk ∈ s k
∧ (sk, xk+1, sk+1) ∈ ρ
⇔ 〈 Définition de δ.〉
∃s 0 = ι x1 s 1 x2 s 2 ... xk s k de M ∧ sk+1∈ δ(s k, xk+1)
⇔ 〈 Posons s k+1 = δ(s k, xk+1).〉
∃ s 0 = ι x1 s 1 x2 s 2 ... xk s k xk+1 s k+1 de M
sk+1 ∈ s k+1.
87
Par conséquent,
M accepte x1x2...xn
⇔ 〈 Définition d acceptation pour un automate
non déterministe.〉
∃ un état final sn et un chemin s0 = ιx1 s1 x2 s2 ... xnsn de M
⇒ 〈 Preuve précédente et définition de F .〉
∃ un état final s n et un chemin
s 0 = ι x1 s 1 x2 s 2 ... xn s n de M
⇒ 〈 Définition d acceptation pour un automate
déterministe.〉
M accepte x1x2...xn.
88
2) L(M) ⊆ L(M ):
Nous voulons montrer que :
pour chaque chemin de l automate M partant de l état
initial ι jusqu à l état s n ∈ F avec sn ∈ s n. il existe un
chemin dans l automate M partant de l état ι et se rendant
jusqu à l état final sn ∈ F en traversant les arcs étiquetés
x1, x2, ..., xn. Notons que si s n est un état accepteur, alors tous
Les s i, i = 0,...n, sont des ensembles non vides.
90
Remarque
• On n augmente donc pas la puissance des automates finis
en permettant le non-déterminisme.
91
Remarque
• Un programme simulant un automate non
déterministe doit
– ou bien explorer les chemins possibles un à un
en faisant des retours en arrière (peut être long).
– ou bien construire l automate déterministe
correspondant (peut prendre beaucoup
d espace).
92
Exemple
93
Diagramme de transition:
3
b
a
1 a
b
2
94
La construction de l automate fini déterministe se fait à partir
des résultats suivants:
S = ℘(S) = {∅,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}}.
Σ ne change pas.
δ est la fonction suivante, sachant que
ρ = { (1, b, 2), (1, b, 3), (3, a, 1), (3, a, 2) }:
δ(∅, a) = ∅ δ(∅, b) = ∅
δ({1}, a) = ∅ δ({1}, b) = {2, 3}
δ({2}, a) = ∅ δ({2}, b) = ∅
δ({3}, a) = {1, 2} δ({3}, b) = ∅
δ({1, 2}, a) = ∅ δ({1, 2}, b) = {2, 3}
δ({1, 3}, a) = {1, 2} δ({1, 3}, b) = {2, 3}
δ({2, 3}, a) = {1, 2} δ({2, 3}, b) = ∅
δ({1, 2, 3}, a) = {1, 2} δ({1, 2, 3}, b) ={2, 3}
95
ι = {ι} = {1}
F = {{3}, {1, 3}, {2, 3}, {1, 2, 3}}
a
b
a b Note: certains états sont
{2} {} {3}
b inatteignables et donc
a inutiles pour le
a b a fonctionnement de
l automate car ils ne sont
{1}
b {2,3}
a {1,2} jamais traversés lors
b d une exécution.
b a
a b
{1,3} {1,2,3}
96
On obtient donc:
a
b
{}
a a
b
{1}
b {2,3}
a {1,2}
b
101
• Un peu plus rusé: ne construire que les états atteignables.
L’algorithme ci-dessous prend en entrée un automate fini
non-déterministe M = (S, Σ, ρ, ι, F) et retourne un automate
fini déterministe M’ = (S’, Σ, δ, ι’, F’) tel que L(M) = L(M’)
et tous les états de M’ sont atteignables.
102
Exercice
• En utilisant l algorithme qui vient d être
décrit, trouver une solution simplifiée (ne
considérant que les états atteignables depuis
l état initial) à l exercice précédent.
• Solution:
– S = {∅,{1},{2},{3},{4},{1,4}, {2,4}, {3,4}, {1,2,4}, {2,3,4}}.
– Σ = {a, b},
– ι = {1},
– F = {{4},{1,4},{2,4},{3,4},{1,2,4},{2,3,4}}.
103
- δ est la fonction suivante:
δ(∅, a) = ∅ δ(∅, b) = ∅
δ({1}, a) = {2} δ({1}, b) = {3}
δ({2}, a) = {2} δ({2}, b) = {2,4}
δ({3}, a) = ∅ δ({3}, b) = {4}
δ({4}, a) = {1, 4} δ({4}, b) = {4}
δ({1, 4}, a) = {1,2,4} δ({1, 4}, b) = {3,4}
δ({2, 4}, a) = {1,2,4} δ({2, 4}, b) = {2, 4}
δ({3, 4}, a) = {1,4} δ({3, 4}, b) = {4}
δ({1, 2,4}, a) = {1,2,4} δ({1, 2,4}, b) = {2, 3,4}
δ({2, 3,4}, a) = {1,2,4} δ({2, 3,4}, b) = {2, 4}
104
Théorème
Le renversé d un mot w = a1a2 … an est le mot
wr = an an-1 … a1.
Si L est un langage régulier alors le langage
Lr = {wr : w ∈ L} est aussi régulier.
105
Démonstration
Soit M = (S, Σ, δ, ι, F) un automate
déterministe qui accepte L. Nous allons
construire à partir de M un automate non-
déterministe M = (S , Σ, ρ, ι , F ) qui
accepte Lr.
Idée: un mot w est accepté par M s il trace un
chemin de ι vers un état de F. Donc son
renversé wr trace un chemin d un état de F
vers ι. Il suffit d inverser les flèches dans le
diagramme de transition.
106
On choisit
• S = S ∪ {ι }.
• (q,a,p) ∈ ρ si δ(p,a) = q.
• (ι ,a,p) ∈ ρ s il existe un état final q de M
avec δ(p,a) = q.
• F = {ι} si ι ∉ F et F = {ι, ι } si ι ∈ F.
Il reste à montrer que cet automate accepte un
mot w ssi w ∈ Lr ou, ce qui est équivalent
ssi wr ∈ L.
107
Soit w = a1 … an.
Si w ∈ Lr alors wr ∈ L donc M accepte wr. Il existe
donc une suite d états qn, …, q0 avec qn = ι, q0 ∈
F et δ(qi,ai) = qi.
Dans M , on a donc un chemin ι , q1, …, qn = ι qui
est étiqueté par a1 … an. Ce chemin va de l état
initial vers un état final.
⇒ M accepte w.
À l inverse, si w est accepté par M , il existe un
chemin ι , q1, …, qn étiqueté par a1, …, an qui
aboutit à l unique état final qn = ι. Cela montre
que wr est accepté par M et donc que wr ∈ L.
⇒ w ∈ Lr.
108