Académique Documents
Professionnel Documents
Culture Documents
1 0
1 1
0 1 2
1 0
0
3
1 0 1
Définition
Un automate fini non-déterministe M (abrégé AFN) est défini par un
quintuplet (Q, Σ, ρ, q0 , F ) où
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 ;
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 ;
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
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 ;
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.
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
a1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn ∈ F
a1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn ∈ F
a1 2 a n a
q0 = p0 −→ p1 −→ p2 . . . pn−1 −→ pn ∈ F
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 }.
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 .
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
b a
b
a a
b 4 a 3
b a
b 4 a 3
b a
b
a a
b 4 a 3
b a
b a
b
a a
b 4 a 3
b a
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
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
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
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
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}
s1 s4
a
a b
a b
s0 s2 s3
a
b
a
b s5 s6
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 }
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.
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.
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)
δ(S, a) = {q : ∃p ∈ S; (p, a, q) ∈ ρ}
δ(S, a) = {q : ∃p ∈ S; (p, a, q) ∈ ρ}
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.
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
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
0 1
1
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
0
0
B A BC AC
0
1 0 1
1 1
1
0, 1 ∅ AB ABC 0
1
0
0
1
C
0
A BC
0
1 1
1
0, 1 ∅ AB ABC 0
1
0
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.
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,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
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.
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.
a
1 2
b
a b
a
3 4 a
b
a
1 2
b
a b {1}
a
3 4 a
b
b
a {1} ∅
1 2
b
a b a
a
3 4 a
b {2, 3}
b
a {1} ∅ a, b
1 2
b
a b a
a
3 4 a
b {2, 3}
a
a
a
1 2
b
a b {2, 3}
a
3 4 a
b b
{3, 4}
a
a
a
1 2
b
a b {2, 3} {2, 4}
a
3 4 a
b b
b
{3, 4} a
a
a
a
1 2
b b
a b {2, 3} {2, 4}
a a
3 4 a
b b
b
{3, 4} a
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.
a b
b
a,
A B C
a
b a
D a, b
Théorème
Pour tout -AFN N, il existe un automate fini déterministe D tel que
L(N) = L(D).
b,
q0 q1
a a
q3 q2
a
a, b
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
b,
q0 q1
a
q2
b, a
q0 q1 {q0 ,q1 } {q0 ,q1 ,q2 }
b a
a
b
q2 ∅ {q1 }
b
a, b
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.
a
A B
a
b
a
D C
a
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
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