Vous êtes sur la page 1sur 58

Chapitre 1.

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

R: Diagramme incorrect car λ ∉ Σ. lettre


chiffre
3. Σ = lettre ∪ chiffre lettre
a b

R: Description incorrecte car l état initial n est pas indiqué.

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

R: Description correcte et puisque δ est une fonction


l automate est déterministe.
62
2. M2 = ({0}, Σ, δ, {0}) où
Σ = {a, b, c}
δ(0, a) = 0 δ(0, b) = 0 δ(0, c) =0

R: Ce n est pas la description d un automate car l état initial


n est pas indiqué.
3. M3 = ({a, b}, {1, 2}, ρ, a, ∅) où
ρ(a, 1) = a ρ(a, 2) = b
ρ(b, 1) = a ρ(b, 2) = b

R: C est la description d un automate fini et cet automate est


déterministe car ρ est une fonction.
63
4. M4 = ({s1, s2, s3, s4}, {a, b}, ρ, s1, {s2, s4}) où
ρ = {( s1, a, s2), ( s1, b, s2), ( s2, a, s3), ( s2, b, s4),
( s3, a, s4), ( s3, b, s2)}

R: C est la description d un automate fini non déterministe.


La relation ρ ne contient pas de triplet dont la première
composante est s4.

64
5. M5 = ({1, 2, 3, 4}, {a, b, c}, δ, 1, {2}) où

δ = {( 1, a, 2), ( 1, b, 3), ( 1, c, 3), ( 2, a, 2), ( 2, b, 4), ( 2, c, 4),


( 2, a, 3), ( 2, b, 3), ( 2, c, 3), ( 3, a, 3), ( 3, b, 3), ( 3, c, 3),
( 4, a, 3), ( 4, b, 3), ( 4, c, 3)}

R: C est la description d un automate fini. La


relation δ contient les triplets (2,a,2) et (2,a,3) donc
δ n est pas une fonction et l automate n est pas
déterministe.

65
6. M6 = ({a, b}, {1}, δ = ∅, a, {b})

R: C est la description d un automate fini. La relation


δ n est pas totale donc ce n est pas une fonction; par
conséquent l automate n est pas déterministe.

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

•  Une séquence est acceptée s il est possible, en partant de


l état initial, d atteindre un état final
en lisant la séquence; même s il y a, en plus, des chemins
qui mènent à des états non finaux, la séquence est
acceptée.
•  Notez aussi que la séquence doit être toute lue.
•  C est la même notion d acceptation que pour
les automates finis déterministes. Sauf que pour
un automate non déterministe on peut trouver
plusieurs chemins avec la même séquence (à
cause de l ambiguïté).

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}

La séquence est acceptée car il existe une suite de


transitions menant de l état initial s0 à l état final s6. Une
telle suite de transitions est s0 a s2 b s5 b s5 b s5 a s6 a s6.

Même si l automate peut atteindre l état non final s2, en


suivant un autre chemin, la séquence est acceptée.

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

Nous allons démontrer l existence d un automate


fini déterministe

M = (S , Σ, δ, ι , F )

tel que L(M ) = L(M).

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 ≠ ∅ }

En mots: Un état de M est un sous-ensemble d états de M.


L état initial est l ensemble qui contient l état initial de M.
Un état de M est final ssi il contient au moins un état
final de M.
80
La fonction δ: S × Σ → S est définie par
δ(s , x) = { s ∈ S: ∃r ∈ s :(r, x, s) ∈ ρ }.

En mots: À la lecture d un x, M passe de l état s à


l ensemble des états accessibles par M à partir
de chacun des états dans s .

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

Ceci implique 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

(i.e. faisant la lecture des mêmes symboles que M) et tel que sn


∈ s n.
83
De manière abrégée, nous écrivons P(n):
s0 = ι x1 s1 x2 s2 ... xn sn de M
⇒  ∃ s 0 = ι x1 s 1 x2 s 2 ... xn s n de M ∧ sn ∈
s n.

Note: même si on dit « il existe un chemin de M »,


ce chemin est en fait unique.

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:

Montrons que P(k) ⇒ P(k+1).


Considérons que P(k) est vrai:
s0 = ι x1 s1 x2 s2 ... xk sk de M
⇒∃ s 0 = ι x1 s 1 x2 s 2 ... xk s k de M ∧ sk ∈ s k.

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.

Montrons par induction sur n que :


Pour chaque chemin dans M de ι jusqu à s n
traversant les arcs étiquetés x1, x2, …, xn, nous avons
pour chaque sn ∈ s n, il doit exister un chemin dans M
de ι jusqu à sn traversant les arcs étiquetés x1, x2, ..., xn.
89
Base d induction: n=0. Comme lors de la première étape
de la preuve.
Étape d induction:
Supposons que le résultat est vrai pour k et considérons un chemin
dans M de ι jusqu à s k+1 traversant les arcs x1, ...xk, xk+1.
Par hypothèse d induction, pour chaque sk ∈ s k, il doit exister
un chemin dans M de ι jusqu à sk traversant les arcs étiquetés x1, x2, ..., xk.
Mais δ(s k, xk+1) = s k+1 = {s∈S:(sk, xk+1,s) ∈ ρ}.
Alors pour chaque s ∈ s k+1, il existe un chemin dans M de ι
jusqu à s = sk+1 traversant les arcs étiquetés
x1, x2, ..., xk comme demandé, y compris le ou les états de s k+1 qui sont finaux
dans M.

90
Remarque
•  On n augmente donc pas la puissance des automates finis
en permettant le non-déterminisme.

•  Par conséquent, on peut dire qu un langage régulier est un


langage reconnu par un automate fini, déterministe ou non
déterministe.

•  Cependant, le nombre d états augmente


exponentiellement lorsqu on transforme un automate non
déterministe en automate déterministe.

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

•  Construisons un automate fini déterministe qui


reconnaît les mêmes séquences que l automate non
déterministe M=(S, Σ, ρ, ι, F) où
–  S = {1, 2, 3},
–  Σ = {a, b},
–  ρ = { (1, b, 2), (1, b, 3), (3, a, 1), (3, a, 2) },
–  ι = 1,
–  F = {3}.

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

On peut maintenant voir facilement que le langage que


l automate accepte est {b(ab)n : n ∈ N}.
97
Exercice
•  Construire un automate fini déterministe qui
accepte les mêmes séquences que
l automate fini non déterministe ci-dessous.
L alphabet est {a, b}. a
b
2
a b
a
a b
1 4
b b
3
98
Solution:
Le quintuple correspondant à l automate ci-dessus est
M=(S, Σ, ρ, ι, F) où
- S = {1, 2, 3, 4},
- Σ = {a, b},
- ρ = {(1, a, 2), (1, b, 3), (2, a, 2), (2, b, 2)
(2, b, 4), (3, b, 4), (4, a, 1), (4, a, 4), (4, b, 4)},
- ι = 1,
- F = {4}.
99
Solution:
Le quintuple correspondant à l automate déterministe est le
suivant:
M =(S , Σ, δ, ι , F ) où
- S = ℘(S) = {∅,{1},{2},{3},{4}{1,2},{1,3},{1,4},
{2,3}, {2,4},{3,4},{1,2,3}, {1,2,4},
{1,3,4},{2,3,4},{1,2,3,4}}.
- Σ = {a, b},
- ι = {1},
- F = {{4},{1,4},{2,4},{3,4},{1,2,4},{1,3,4},
{2,3,4},{1,2,3,4}}.
100
δ 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, 2}, a) = {2} δ({1, 2}, b) = {2, 3,4}
δ({1, 3}, a) = {2} δ({1, 3}, b) = {3,4}
δ({1, 4}, a) = {1,2,4} δ({1, 4}, b) = {3,4}
δ({2, 3}, a) = {2} δ({2, 3}, b) = {2,4}
δ({2, 4}, a) = {1,2,4} δ({2, 4}, b) = {2, 4}
δ({3, 4}, a) = {1,4} δ({3, 4}, b) = {4}
δ({1, 2, 3}, a) = {2} δ({1, 2, 3}, b) ={2, 3,4}
δ({1, 2,4}, a) = {1,2,4} δ({1, 2,4}, b) = {2, 3,4}
δ({1, 3,4}, a) = {1,2,4} δ({1, 3,4}, b) = {3,4}
δ({2, 3,4}, a) = {1,2,4} δ({2, 3,4}, b) = {2, 4}
δ({1, 2,3,4}, a) = {1,2,4} δ({1, 2,3,4}, b) = {2, 3,4}

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.

•  Initialisation S’ = {{ι}}, ι’ = {ι}, F’ = {ι} si ι ∈ F et F’ = ∅ sinon.


•  Initialisation δ: S’ × Σ → P(S) avec δ({ι}, x) = {q ∈ S: (ι, x, q) ∈ ρ}
Tant qu’il existe p ∈ S’ et x ∈ Σ tel que δ(p,x) ∉ S’ faire
Définir R = δ(p,x).
S’ = S’ ∪ {R}
Si R ∩ F ≠ ∅ alors faire F’ = F’ ∪ {R}.
Pour tout x ∈ Σ faire
δ(R,x) = {q ∈ S: ∃ r ∈ R (r,x,q) ∈ ρ}.

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

Vous aimerez peut-être aussi