Vous êtes sur la page 1sur 89

Automates finis non-déterministes

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 1 / 51


Abandonner le déterminisme

Les diagrammes de transitions déterministes représentent des automates


finis déterministes. Ces derniers ont des limites ce calcul importantes.

Peut-on reconnaître de nouveaux langages si on lève les restrictions


(non-ambigu et complètement défini) qu’on avait imposées aux
diagrammes déterministes ?

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 2 / 51


Exemple

1 0

1 1
0 1 2

1 0
0
3

1 0 1

Ce diagramme n’est ni complètement défini (états 1 et 4), ni inambigu


(états 1 et 2).

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 3 / 51


Diagrammes non-déterministes

Ces diagrammes non-déterministes correspondent aux automates finis


non-déterministes, une généralisation des automates finis déterministes.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 4 / 51


Diagrammes non-déterministes

Ces diagrammes non-déterministes correspondent aux automates finis


non-déterministes, une généralisation des automates finis déterministes.

Dans un diagramme non-déterministe,


un même mot peut correspondre à plusieurs chemins à cause de
l’ambiguïté.
un mot peut ne correspondre à aucun chemin dans le diagramme si ce
dernier n’est pas complètement défini.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 4 / 51


Diagrammes non-déterministes

Ces diagrammes non-déterministes correspondent aux automates finis


non-déterministes, une généralisation des automates finis déterministes.

Dans un diagramme non-déterministe,


un même mot peut correspondre à plusieurs chemins à cause de
l’ambiguïté.
un mot peut ne correspondre à aucun chemin dans le diagramme si ce
dernier n’est pas complètement défini.

Il va falloir revoir la notion d’acceptation d’un mot par un automate


non-déterministe.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 4 / 51


Automates finis non-déterministes

Définition
Un automate fini non-déterministe M (abrégé AFN) est défini par un
quintuplet (Q, Σ, ρ, q0 , F ) où

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 5 / 51


Automates finis non-déterministes

Définition
Un automate fini non-déterministe M (abrégé AFN) est défini par un
quintuplet (Q, Σ, ρ, q0 , F ) où
Q est un ensemble fini d’états ;

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 5 / 51


Automates finis non-déterministes

Définition
Un automate fini non-déterministe M (abrégé AFN) est défini par un
quintuplet (Q, Σ, ρ, q0 , F ) où
Q est un ensemble fini d’états ;
Σ est l’alphabet de l’automate ;

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 5 / 51


Automates finis non-déterministes

Définition
Un automate fini non-déterministe M (abrégé AFN) est défini par un
quintuplet (Q, Σ, ρ, q0 , F ) où
Q est un ensemble fini d’états ;
Σ est l’alphabet de l’automate ;
ρ ⊆ Q × Σ × Q est une relation de transition

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 5 / 51


Automates finis non-déterministes

Définition
Un automate fini non-déterministe M (abrégé AFN) est défini par un
quintuplet (Q, Σ, ρ, q0 , F ) où
Q est un ensemble fini d’états ;
Σ est l’alphabet de l’automate ;
ρ ⊆ Q × Σ × Q est une relation de transition
q0 ∈ Q est l’état initial ;

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 5 / 51


Automates finis non-déterministes

Définition
Un automate fini non-déterministe M (abrégé AFN) est défini par un
quintuplet (Q, Σ, ρ, q0 , F ) où
Q est un ensemble fini d’états ;
Σ est l’alphabet de l’automate ;
ρ ⊆ Q × Σ × Q est une relation de transition
q0 ∈ Q est l’état initial ;
F ⊆ Q est l’ensemble des états acceptants, aussi appelés états finaux.

La seule distinction par rapport aux automates finis déterministes est la


relation de transition ρ qui vient remplacer la fonction de transition δ.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 5 / 51


Automates et diagrammes

Chaque automate fini non-déterministe peut être représenté par un


diagramme de transitions non-déterministe. Les transitions du diagramme
représentent la relation de transition ρ : pour chaque (p, a, q) ∈ ρ on a
dans le diagramme une transition étiquetée a de p vers q.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 6 / 51


Automates et diagrammes

Chaque automate fini non-déterministe peut être représenté par un


diagramme de transitions non-déterministe. Les transitions du diagramme
représentent la relation de transition ρ : pour chaque (p, a, q) ∈ ρ on a
dans le diagramme une transition étiquetée a de p vers q.

Inversement, chaque diagramme de transitions non-déterministe décrit un


automate fini non-déterministe. Chaque transition du diagramme étiquetée
a de l’état p vers l’état q donne naissance à un triplet (p, a, q) dans ρ.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 6 / 51


Exemple

1 0
Q = {A, B, C , D, E }
1 1 Σ = {0, 1}
A B C
ρ = {(A, 0, D), (A, 1, B),
1 0 (B, 1, B), (B, 1, C ), (C , 0, C ),
0
(C , 0, D), (C , 1, E ), (D, 0, E ),
D
(D, 1, A), (E , 1, D)}
1 0 1 q0 = A
F = {B}
E

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 7 / 51


Définition de l’acceptation
Définition
Soit M = (Q, Σ, ρ, q0 , F ) un automate fini non-déterministe. On dit que M
accepte le mot w = a1 . . . an (où ai ∈ Σ) s’il existe une séquence d’états
p0 , p1 , . . . , pn telle que
1 p0 = q0
2 (pi , ai+1 , pi+1 ) ∈ ρ pour tout i = 0, . . . , n − 1
3 pn ∈ F

a1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn ∈ F

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 8 / 51


Définition de l’acceptation
Définition
Soit M = (Q, Σ, ρ, q0 , F ) un automate fini non-déterministe. On dit que M
accepte le mot w = a1 . . . an (où ai ∈ Σ) s’il existe une séquence d’états
p0 , p1 , . . . , pn telle que
1 p0 = q0
2 (pi , ai+1 , pi+1 ) ∈ ρ pour tout i = 0, . . . , n − 1
3 pn ∈ F

a1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn ∈ F

La séquence d’états p0 , p1 , . . . , pn correspond à un chemin tracé par le mot


w dans le diagramme de transitions correspondant à M à partir de l’état
initial q0 .

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 8 / 51


Définition de l’acceptation
Définition
Soit M = (Q, Σ, ρ, q0 , F ) un automate fini non-déterministe. On dit que M
accepte le mot w = a1 . . . an (où ai ∈ Σ) s’il existe une séquence d’états
p0 , p1 , . . . , pn telle que
1 p0 = q0
2 (pi , ai+1 , pi+1 ) ∈ ρ pour tout i = 0, . . . , n − 1
3 pn ∈ F

a1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn ∈ F

La séquence d’états p0 , p1 , . . . , pn correspond à un chemin tracé par le mot


w dans le diagramme de transitions correspondant à M à partir de l’état
initial q0 .
La définition dit donc que w est accepté s’il existe un chemin étiqueté w
qui, à partir de l’état initial, aboutit dans un état acceptant.
IFT-2002: Chapitre 2.3 Automates finis non-déterministes 8 / 51
Langage accepté par M

Définition
Le langage accepté (aussi appelé langage reconnu) par un automate fini
non-déterministe M, dénoté L(M) est l’ensemble {w : M accepte w }.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 9 / 51


Exemple

Soit K le langage sur l’alphabet {a, b} formé des mots qui contiennent la
sous-séquence aba. Trouvons un automate fini non-déterministe qui
accepte K .

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 10 / 51


Exemple

Soit K le langage sur l’alphabet {a, b} formé des mots qui contiennent la
sous-séquence aba. Trouvons un automate fini non-déterministe qui
accepte K .

a, b

a b a
A B C D a, b

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 10 / 51


Exemple : séquences acceptées/rejetées par un AFN

b a

a, b Le mot aab est-il accepté par cet


1 2
automate non-déterministe ?

b
a a

b 4 a 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 11 / 51


Exemple : séquences acceptées/rejetées par un AFN

b a

a, b Le mot aab est-il accepté par cet


1 2
automate non-déterministe ?
Non. Notez par exemple que pour
b se rendre à l’état acceptant 3, il
a a
faut terminer par un a.

b 4 a 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 11 / 51


Exemple : séquences acceptées/rejetées par un AFN

b a

a, b Le mot baa est-il accepté par cet


1 2 automate non-déterministe ?

b
a a

b 4 a 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 12 / 51


Exemple : séquences acceptées/rejetées par un AFN

b a

a, b Le mot baa est-il accepté par cet


1 2 automate non-déterministe ?
Oui mais notez qu’il faut choisir le
b bon chemin. Ici
a a
b a a
1−
→1→
− 2→
− 3
b 4 a 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 12 / 51


Exemple : séquences acceptées/rejetées par un AFN

b a

a, b Le mot baaba est-il accepté par cet


1 2 automate non-déterministe ?

b
a a

b 4 a 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 13 / 51


Exemple : séquences acceptées/rejetées par un AFN

b a

a, b Le mot baaba est-il accepté par cet


1 2 automate non-déterministe ?
Oui.
b
a a
b a a b a
1−
→2→
− 3→
− 4−
→2→
− 3
b 4 a 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 13 / 51


Exemple : séquences acceptées/rejetées par un AFN

b a Comment être systématique pour


déterminer si un mot donné estr
a, b accepté ou rejeté par un automate
1 2 non-déterministe ?
On peut par exemple calculer tous
b les chemins possibles.
a a
Cela nous mène à construire un
arbre qui représente toutes les pos-
b 4 3 sibilités d’exécution de l’automate
a sur un mot donné.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 14 / 51


Exemple : séquences acceptées/rejetées par un AFN

départ 1

b a
b 1 2
a, b
1 2 a 2 4 2 3
b
a a a 2 3 2 3 4

b 4 a 3 b 2 4

a 2 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 15 / 51


Exemple : séquences acceptées/rejetées par un AFN

b a
Comment être systématique ?
a, b Par exemple en calculant tous les
1 2 chemins possibles.
Mais le nombre de chemins peut
b être gigantesque. Il est plus efficace
a a
de conserver une liste des états
atteignables après la lecture d’un
b 4 3 mot.
a

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 16 / 51


Exemple : séquences acceptées/rejetées par un AFN

départ {1}

b a
b 1 2
a, b
1 2 a 2 4 2 3
b
a a a 2 3 2 3 4

b 4 a 3 b 2 4

a 2 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 17 / 51


Suivre l’ensemble d’états atteignables au fur et à mesure

départ {1}

b a
b {1, 2}
a, b
1 2 a 2 4 2 3
b
a a a 2 3 2 3 4

b 4 a 3 b 2 4

a 2 3

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 18 / 51


Suivre l’ensemble d’états atteignables au fur et à mesure

départ {1}

b a
b {1, 2}
a, b
1 2 a {2, 3, 4}

b
a a a {2, 3, 4}

b 4 a 3 b {2, 4}

a {2, 3}

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 19 / 51


Conserver les états atteignables : exemple 1

Soit l’automate non-déterministe ci-dessous.

s1 s4
a
a b
a b
s0 s2 s3
a
b
a
b s5 s6

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 20 / 51


Conserver les états atteignables : exemple 1
Montrons que la séquence abbbaa est acceptée en suivant l’ensemble des
états atteignables après chaque étape du calcul

s1 s4
abbbaa {s0 }
a abbbaa {s1 , s2 }
a b
abbbaa {s3 , s5 }
a b
s0 s2 s3 abbbaa {s4 , s5 }
a abbbaa {s5 }
b
abbbaa {s6 }
a
b s5 s6 abbbaa_ {s2 , s6 }

La séquence est acceptée car s6


a est atteignable.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 21 / 51


Conserver les états atteignables : exemple 1

Un chemin acceptant abbbaa est


a b b b a a
s0 →
− s2 −
→ s5 −
→ s5 −
→ s5 →
− s6 →
− s6
Si on garde la trace des états atteignables au fur et à mesure par
l’automate non-déterministe, on peut écrire
a b b b a a
{s0 } →
− {s1 , s2 } −
→ {s3 , s5 } −
→ {s4 , s5 } −
→ {s5 } →
− {s6 } →
− {s2 , s6 }
Notez que s2 est atteignable mais n’est pas acceptant. Mais il suffit qu’un
état atteignable (ici s6 ) soit acceptant pour que la séquence soit acceptée.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 22 / 51


Conserver les états atteignables : exemple 1

Montrons que la séquence abbbb est rejetée en suivant l’ensemble des états
atteignables après chaque étape du calcul

s1 s4
abbbb {s0 }
a abbbb {s1 , s2 }
a b
a b abbbb {s3 , s5 }
s0 s2 s3
abbbb {s4 , s5 }
a abbbb {s5 }
b
a abbbb_ {s5 }
b s5 s6
La séquence est rejetée car seul
s5 est atteignable et s5 est reje-
a tant.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 23 / 51


Conserver les états atteignables : exemple 2
Le mot abaabb est-il accepté ou rejeté ?

départ {1}
b a
a {2, 4}
a, b
1 2 b {2, 4}

a {2, 3}
b
a a
a {2, 3, 4}

b {2, 4}
b 4 a 3
b {2, 4}

La séquence est rejetée parce que tous les états atteignables sont rejetants.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 24 / 51


Déterminisation des AFN

Théorème
Pour tout automate fini non-déterministe N, il existe un automate fini
déterministe D tel que L(N) = L(D)

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 25 / 51


Démonstration

Soit N = (Q, Σ, ρ, q0 , F ) l’automate non-déterministe. On choisit


D = (P(Q), Σ, δ, {q0 }, H) où

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 26 / 51


Démonstration

Soit N = (Q, Σ, ρ, q0 , F ) l’automate non-déterministe. On choisit


D = (P(Q), Σ, δ, {q0 }, H) où
P(Q) est l’ensemble des sous-ensembles de Q.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 26 / 51


Démonstration

Soit N = (Q, Σ, ρ, q0 , F ) l’automate non-déterministe. On choisit


D = (P(Q), Σ, δ, {q0 }, H) où
P(Q) est l’ensemble des sous-ensembles de Q.
δ : P(Q) × Σ → P(Q) est définie par

δ(S, a) = {q : ∃p ∈ S; (p, a, q) ∈ ρ}

Concrètement δ(S, a) est le sous ensemble des états qui sont


accessibles à partir d’un des états de S en lisant un a.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 26 / 51


Démonstration

Soit N = (Q, Σ, ρ, q0 , F ) l’automate non-déterministe. On choisit


D = (P(Q), Σ, δ, {q0 }, H) où
P(Q) est l’ensemble des sous-ensembles de Q.
δ : P(Q) × Σ → P(Q) est définie par

δ(S, a) = {q : ∃p ∈ S; (p, a, q) ∈ ρ}

Concrètement δ(S, a) est le sous ensemble des états qui sont


accessibles à partir d’un des états de S en lisant un a.
H = {T ∈ P(Q) : T ∩ F 6= ∅}. En d’autres mots, T est un état
acceptant de D s’il correspond à un sous-ensemble de Q qui contient
au moins un état de F .

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 26 / 51


Démonstration

Dans l’automate non-déterministe N, on dit que l’état pn est accessible à


partir de q0 en lisant w = a1 a2 . . . an s’il existe une séquence d’états
p0 , . . . pn
a
1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn
où (pi , ai+1 , pi+1 ) ∈ ρ pour tout i = 0, . . . , n − 1. (Rappel : w est accepté
par N si un des états acceptants est accessible à la lecture de w )

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 27 / 51


Démonstration

Dans l’automate non-déterministe N, on dit que l’état pn est accessible à


partir de q0 en lisant w = a1 a2 . . . an s’il existe une séquence d’états
p0 , . . . pn
a
1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn
où (pi , ai+1 , pi+1 ) ∈ ρ pour tout i = 0, . . . , n − 1. (Rappel : w est accepté
par N si un des états acceptants est accessible à la lecture de w )

Soit w = a1 a2 . . . an un mot quelconque. On va démontrer par induction


sur n = |w | l’énoncé suivant :
Énoncé R(n) : Soit S l’ensemble des états accessibles à partir de q0 en
lisant w dans N. Alors δ ∗ ({q0 }, w ) = S.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 27 / 51


Démonstration

Base de l’induction : R(0) Pour n = 0 le mot w est  et le seul état


atteignable dans N est l’état initial q0 . Par ailleurs δ ∗ ({q0 }, ) = {q0 } tel
que requis.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 28 / 51


Démonstration

Étape d’induction : R(k) → R(k + 1)


Soit w = a1 . . . ak+1 . Par hypothèse d’induction, δ ∗ ({q0 }, a1 a2 . . . ak ) = Sk
où Sk est l’ensemble des états accessibles dans N en lisant a1 a2 . . . ak .

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 29 / 51


Démonstration

Étape d’induction : R(k) → R(k + 1)


Soit w = a1 . . . ak+1 . Par hypothèse d’induction, δ ∗ ({q0 }, a1 a2 . . . ak ) = Sk
où Sk est l’ensemble des états accessibles dans N en lisant a1 a2 . . . ak .
On a

δ ∗ ({q0 }, a1 a2 . . . ak ak+1 ) = δ(δ ∗ ({q0 }, a1 a2 . . . ak ), ak+1 ) = δ(Sk , ak+1 )

Par définition, δ(Sk , ak+1 ) est l’ensemble des états accessibles à partir d’un
des états de Sk en lisant la lettre ak+1 . Cet ensemble est clairement le
même que celui des états atteignables à la lecture de w = a1 . . . ak+1 dans
N.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 29 / 51


Démonstration

On a démontré
Énoncé R(n) : Soit S l’ensemble des états accessibles à partir de q0 en
lisant w dans N. Alors δ ∗ ({q0 }, w ) = S

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 30 / 51


Démonstration

On a démontré
Énoncé R(n) : Soit S l’ensemble des états accessibles à partir de q0 en
lisant w dans N. Alors δ ∗ ({q0 }, w ) = S

Pour terminer la démonstration, prenons un mot w et considérons


l’ensemble S des états accessibles dans N en lisant w . Par définition w est
accepté si et seulement si S contient un état de F . Par ailleurs, l’énoncé R
garantit que δ ∗ ({q0 }, w ) = S et l’ensemble S est un état acceptant de D si
et seulement si S contient un état de F .

On voit donc que N et D acceptent les mêmes séquences, ce qui conclut la


preuve.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 30 / 51


Automates déterministes vs non-déterministes

Le théorème montre donc que les automates finis non-déterministes ne


permettent pas de reconnaître plus de langages que les automates finis
déterministes.

Les automates non-déterministes restent très utiles. En particulier, pour


démontrer qu’un langage est régulier on peut se contenter de fournir un
automate non-déterministe qui le reconnaît.

De plus pour un même langage, un automate non-déterministe peut être


significativement plus petit que son équivalent déterministe. Dans la preuve
précédente, un automate non-déterministe à n états est transformé en
automate déterministe avec 2n états.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 31 / 51


Automates déterministes vs non-déterministes

Si l’on veut écrire un programme permettant de savoir si un mot w est


accepté par un automate non-déterministe donné, on peut
Suivre tous les chemins possibles (ce qui pourrait être très long)
Construire d’abord l’automate déterministe équivalent (ce qui peut
être également très long et consommer beaucoup d’espace)
Ne construire l’automate déterministe qu’en partie (remarque à venir
plus tard dans ce chapitre)

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 32 / 51


Exemple concret
Construisons un automate fini déterministe qui accepte le même langage
que l’automate non-déterministe M = (Q, Σ, ρ, q0 , F ) où
Q = {A, B, C }
Σ = {0, 1}
ρ = {(A, 0, B), (A, 0, C ), (B, 0, A), (C , 1, A), (C , 1, B)}
q0 = A
F = {B}

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 33 / 51


Exemple concret
Construisons un automate fini déterministe qui accepte le même langage
que l’automate non-déterministe M = (Q, Σ, ρ, q0 , F ) où
Q = {A, B, C }
Σ = {0, 1}
ρ = {(A, 0, B), (A, 0, C ), (B, 0, A), (C , 1, A), (C , 1, B)}
q0 = A
F = {B}
Le diagramme correspondant est
0
A 0 B

0 1
1
C

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 33 / 51


Exemple concret
0
A 0 B L’automate déterministe correspondant est le
quintuplet D = (P({A, B, C }, {0, 1}, δ, {A}, R)
0 1 où R = {{B}, {A, B}, {B, C }, {A, B, C }} et δ
1
est définie par :
C

δ(∅, 0) = ∅ δ(∅, 1) = ∅
δ({A}, 0) = {B, C } δ({A}, 1) = ∅
δ({B}, 0) = {A} δ({B}, 1) = ∅
δ({C }, 0) = ∅ δ({C }, 1) = {A, B}
δ({A, B}, 0) = {A, B, C } δ({A, B}, 1) = ∅
δ({A, C }, 0) = {B, C } δ({A, C }, 1) = {A, B}
δ({B, C }, 0) = {A} δ({B, C }, 1) = {A, B}
δ({A, B, C }, 0) = {A, B, C } δ({A, B, C }, 1) = {A, B}
IFT-2002: Chapitre 2.3 Automates finis non-déterministes 34 / 51
Exemple concret

0
0
B A BC AC
0
1 0 1
1 1
1
0, 1 ∅ AB ABC 0
1
0
0
1
C

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 35 / 51


Exemple concret

0
0
B A BC AC
0
1 0 1
1 1
1
0, 1 ∅ AB ABC 0
1
0
0
1
C

Notons que certains états sont inatteignables à partir de l’état initial et


peuvent donc être éliminés.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 35 / 51


Exemple concret

0
A BC
0
1 1
1
0, 1 ∅ AB ABC 0
1
0

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 36 / 51


Exemple concret

0
A BC
0
1 1
1
0, 1 ∅ AB ABC 0
1
0 Notons que certains états
sont inatteignables à partir de l’état initial et peuvent donc être éliminés.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 36 / 51


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

18
Diagramme de transition:

3
b
a
1 a

b
2

19
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) = ∅
3 δ({1}, a) = ∅ δ({1}, b) = {2, 3}
b δ({2}, a) = ∅ δ({2}, b) = ∅
δ({3}, a) = {1, 2} δ({3}, b) = ∅
a δ({1, 2}, a) = ∅ δ({1, 2}, b) = {2, 3}
1 a
δ({1, 3}, a) = {1, 2} δ({1, 3}, b) = {2, 3}
b δ({2, 3}, a) = {1, 2} δ({2, 3}, b) = ∅
2 δ({1, 2, 3}, a) = {1, 2} δ({1, 2, 3}, b) ={2, 3}
20
3
ι’ = {ι} = {1} b
F’ = {{3}, {1, 3}, {2, 3}, {1, 2, 3}} a
1 a

b
2
{2} {} {3}

{1} {2,3} {1,2}

{1,3} {1,2,3}
21
3
ι’ = {ι} = {1} b
F’ = {{3}, {1, 3}, {2, 3}, {1, 2, 3}} a
1 a

b
2
{2} {} {3}

{1}
b {2,3} {1,2}

{1,3} {1,2,3}
22
3
ι’ = {ι} = {1} b
F’ = {{3}, {1, 3}, {2, 3}, {1, 2, 3}} a
1 a

a, b b
2
{2} {} {3}

{1}
b {2,3} {1,2}

{1,3} {1,2,3}
23
ι’ = {ι} = {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}
24
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}.
25
Plus efficace : ne construire que les états atteignables

Idée : on conserve une liste A d’états qui sont atteignables dans l’automate
déterministe D et une liste T d’états déjà traités. Initialement A contient
{q0 } qui est atteignable puisque c’est l’état initial de l’automate
déterministe et T est vide.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 37 / 51


Plus efficace : ne construire que les états atteignables

Idée : on conserve une liste A d’états qui sont atteignables dans l’automate
déterministe D et une liste T d’états déjà traités. Initialement A contient
{q0 } qui est atteignable puisque c’est l’état initial de l’automate
déterministe et T est vide.

On répète maintenant le processus suivant jusqu’à ce que A = T . On


choisit un état S de A − T et on calcule la fonction δ pour cet état. Si
δ(S, a) = S 0 , on rajoute S 0 à A. Une fois δ calculée pour S, on ajoute S à
la liste d’états traités T .

Ce processus ne va créer que des états atteignables dans D.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 37 / 51


Exemple de déterminisation avec la seconde méthode

a
1 2
b
a b
a
3 4 a
b

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 38 / 51


Exemple de déterminisation avec la seconde méthode

a
1 2
b
a b {1}
a
3 4 a
b

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 39 / 51


Exemple de déterminisation avec la seconde méthode

b
a {1} ∅
1 2
b
a b a
a
3 4 a
b {2, 3}

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 40 / 51


Exemple de déterminisation avec la seconde méthode

b
a {1} ∅ a, b
1 2
b
a b a
a
3 4 a
b {2, 3}

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 41 / 51


Exemple de déterminisation avec la seconde méthode
b
{1} ∅ a, b

a
a
a
1 2
b
a b {2, 3}
a
3 4 a
b b

{3, 4}

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 42 / 51


Exemple de déterminisation avec la seconde méthode
b
{1} ∅ a, b

a
a
a
1 2
b
a b {2, 3} {2, 4}
a
3 4 a
b b
b

{3, 4} a

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 43 / 51


Exemple de déterminisation avec la seconde méthode
b
{1} ∅ a, b

a
a
a
1 2
b b
a b {2, 3} {2, 4}
a a
3 4 a
b b
b

{3, 4} a

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 44 / 51


Automates non-déterministes avec transitions 

Définition
Un automate fini non-déterministe avec transitions  (abrégé -AFN) est un
automate fini non-déterministe auquel on rajoute des transitions de la
forme (p, , q). Ces transitions peuvent être utilisées à volonté et
permettent de “sauter” d’un état p à un état q.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 45 / 51


Exemples d’-AFN

a b
b
a, 
A B C
a
b a

D a, b

Le mot bb est accepté car on peut passer de l’état initial A à l’état B en


utilisant la -transition.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 46 / 51


Déterminisation des -AFN

Théorème
Pour tout -AFN N, il existe un automate fini déterministe D tel que
L(N) = L(D).

Le principe est le même que celui permettant de déterminiser un AFN.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 47 / 51


Démonstration (déterminisation des -AFN)

La preuve est quasi-identique à celle du théorème de déterminisation des


AFN.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 48 / 51


Démonstration (déterminisation des -AFN)

La preuve est quasi-identique à celle du théorème de déterminisation des


AFN.
Soit p et q deux états de l’ -AFN N. On dira que q est -rejoignable à
partir de p s’il existe une série de transitions  qui part de p et aboutit à q.
On construit maintenant D = (P(Q), Σ, S0 , δ, H) où
S0 = {q0 } ∪ {q|q est -rejoignable à partir de q0 }
δ est définie par δ(S, a) = {q : il existe p ∈ S et p 0 ∈ Q tel que
(p, a, p 0 ) ∈ ρ et q est -rejoignable à partir de p 0 }
H = {T ∈ P(Q)|T ∩ F 6= ∅}.
Le reste de la preuve est maintenant identique à celle du théorème de
déterminisation des AFN .

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 48 / 51


Exemple 1 de déterminisation avec -transitions.

b, 
q0 q1

a a


q3 q2
a

a, b

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 49 / 51


Exemple 1 de déterminisation avec -transitions.

b, 
q0 q1
Ici on peut simplifier le calcul en
notant que q3 est un état poubelle
a a et que sa suppression ne changera

en rien le langage accepté par cet
q3 q2 automate.
a

a, b

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 49 / 51


Exemple 1 de déterminisation avec -transitions.

b, 
q0 q1

a


q2

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 50 / 51


Exemple 1 de déterminisation avec -transitions.
a

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

b a
a
 b

q2 ∅ {q1 }
b

a, b

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 50 / 51


Exemple 1 de déterminisation avec -transitions.
a

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

b a
a
 b

q2 ∅ {q1 }
b

a, b
Il est maintenant plus facile de voir que le langage accepté est l’ensemble
des mots non-vides dans lesquels chaque b (s’il y en a) est suivi d’un a.

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 50 / 51


Exemple 2 de déterminisation avec -transitions.

a
A B


a 
b
a
D C
a

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 51 / 51


Exemple 2 de déterminisation avec -transitions.

a
AB ABD

a
A B b a
 b

a  D ABCD a
b b
a a
D C b
a a
b
a, b ∅ BC

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 51 / 51


Exemple 2 de déterminisation avec -transitions.

a
AB ABD

a
A B b a
 b

a  D ABCD a
b b
a a
D C b
a a
b
a, b ∅ BC

IFT-2002: Chapitre 2.3 Automates finis non-déterministes 51 / 51

Vous aimerez peut-être aussi