AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD)...

8
AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition d'un AFD Un automate d'états finis M = ( Q, A, δ , I , T ) est dit déterministe lorsque : - I est formé d'un seul état initial pris dans Q - la fonction de transition δ : Q × A ----------------- > Q (p , c ) ---------------- > au plus un seul état q = δ (p, c) Exemple d'AFD avec sa table de transition : a b I U U U S S S b) Définition d'un AFI ou AFND Un automate d'états finis M = ( Q, A, δ , I , T ) est dit indéterministe ou non déterministe lorsque : - I est un sous-ensemble non vide de Q - la fonction de transition δ : Q × A ----------------- > P (Q) (p , c ) ---------------- > δ (p, c) = { …. } δ (p, c) est un sous-ensemble de Q Exemple : et sa table de transition : a b S {S , U} U {U , F} F Ici A = {a , b} ; Q = { S,U,F} ; I = { S} ; T = {F} et δ est définie par : δ (S, a) = {S , U} ; δ (S, b) = ; δ (U, a) = ; δ (U, b) = {U , F} Dans un AFI, on peut avoir plusieurs états initiaux et plusieurs arcs différents sortant du même état peuvent avoir la même étiquette.

Transcript of AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD)...

Page 1: AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition

AUTOMATES FINIS DETERMINISTES (AFD) ET

AUTOMATES FINIS INDETERMINISTES (AFI ou AFND)1°) Définitionsa) Définition d'un AFDUn automate d'états finis M = ( Q, A, δ , I , T ) est dit déterministe lorsque :- I est formé d'un seul état initial pris dans Q- la fonction de transition δ : Q × A ----------------- > Q (p , c ) ---------------- > au plus un seul état q = δ (p, c) Exemple d'AFD

avec sa table de transition :

a bI UU U SS S

b) Définition d'un AFI ou AFNDUn automate d'états finis M = ( Q, A, δ , I , T ) est dit indéterministe ou non déterministelorsque :- I est un sous-ensemble non vide de Q - la fonction de transition δ : Q × A ----------------- > P (Q) (p , c ) ---------------- > δ (p, c) = { …. } δ (p, c) est un sous-ensemble de QExemple :

et sa table de transition :

a bS {S , U}U {U , F}F

Ici A = {a , b} ; Q = { S,U,F} ; I = { S} ; T = {F} et δ est définie par :δ (S, a) = {S , U} ; δ (S, b) = ∅ ; δ (U, a) = ∅ ; δ (U, b) = {U , F}

Dans un AFI, on peut avoir plusieurs états initiaux et plusieurs arcs différents sortant du mêmeétat peuvent avoir la même étiquette.

Page 2: AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition

c) Langage reconnu par un automateSoit un automate M = ( Q, A, δ , I , T ) ou M = ( Q, A, E , I , T ).- Tout élément e de E s'appelle une transition : par exemple e = (p , a , q ) veut dire que lorsque M est dans l'état p par l'action a , il passe dans l'état q.- a s'appelle une action ou un événement ou l'étiquette de e, p s'appelle l'origine de l'étiquette e, q s'appelle l'extrémité de l'étiquette e- on appelle calcul c une suite finie de transitions :

l'étiquette de c = la concaténation des étiquettes des transitions de c

- Le calcul c sera dit réussi par l'automate M lorsque po est un état initial etque pn est un état final :

-

Un mot de A* sera reconnu ou accepté par l'automate M s'il est l'étiquette d'un calcul réussi de M

Le langage reconnu par un automate M qu'on note L(M) est l'ensemble des mots reconnus par M. L(M) = { f ∈ A* / ∃ p ∈ I ∃ q ∈ T p ----f ---- > q }

2 automates M et M' sont dits équivalents lorsqu'ils reconnaissent le même langage.

S'il existe une bijection entre l'ensemble Q et l'ensemble Q' alors M = ( Q, A, E , I , T ) est équivalent à M' = M = ( Q', A, E , I , T ).

Donc le nom des états n'a pas d'importance car comme l'ensemble des états Q est

fini , alors on peut noter les états 1, 2, ….., n et prendre donc Q ⊂ V

Page 3: AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition

d) Exemple :Soit l'AFI M représenté par :

Voici 4 calculs : - c1 = p -- a -- > p -- b -- > p -- a -- > p -- b -- > p- c2 = r -- a -- > r -- b -- > r -- a -- > r -- b -- > r- c3 = p -- a -- > p -- b -- > p -- a -- > q -- b -- > r- c4 = p -- a -- > q -- b -- > r -- a -- > r -- b -- > r

c1 et c2 ne sont pas réussis par M, par contre c3 et c4 le sont.Dans un AFI, le mot w = abab est l'étiquette de plusieurs calculs. Comme l'un au moins descalculs est réussi par M alors le mot w =abab est accepté par M.En fait, un aclcul réussi par M doit forcément contenir à un moment donné la séquence ab Donc L(M) = {mots contenant ab } = {a,b}* ab {a,b}*

e) PropriétésThéorèmeLe mot vide ε ∈ L(M) ⇔ il existe un état qui est à la fois initial et terminal ⇔ I ∩ T ≠ ∅

Exemple :

M = alors L(M) = {ε}

DéfinitionSi un langage L est reconnu par un automate fini M c'est-à-dire ∃ M tel que L = L(M) alors on dira que L est un langage reconnaissableL'ensemble de tous les langages reconnaissables créés à partir d'un alphabet A se noteRec(A*)

Attention ! un automate reconnaît un seul langage mais un langage peut être reconnu parplusieurs automates. Comme A est fini , alors pour tout entier naturel n, le nombre d'automatesfinis définis à partir de A et ayant n états est fini.On peut donc énumérer tous les automates finis M sur A donc on peut énumérer tous leslangages L(M) reconnaissables donc Rec(A*) est fini dénombrable Par contre, A* l'ensemble des mots définis sur A est infini dénombrable donc son ensemble departies P (A*) est aussi infini dénombrable.

Page 4: AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition

Donc il reste une infinité de langages non reconnaissables par des automates.f) Exemples : Ex 1 : {ε} est reconnaissable

M = alors L(M) = {ε} = { 1A*} Ex 2 : le langage vide est reconnaissable

M1 : M2 : alors L(M1) = L(M2)= ∅Ex 3 :

M = alors L(M) = {a , b }*Ex 4 :

M = alors L(M) = a* b b* = { mots ayant b comme facteur }Ex 5 : M =

alors L(M) = { f ∈ A* / | f |a = 0 modulo 2 } = l'ensemble des mots de A*ayant un nombre pair de a comme facteursEx 6 : M =

L(M) = { f ∈ A* / f = ab g où g ∈ A* } = ab {a;b}* =abA* = l'ensemble des mots de A* ayant ab comme préfixeEx 7 : M =

Page 5: AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition

Alors L(M) = {a;b}* aba = A*aba = l'ensembledes mots de A* ayant pour suffixe aba

Ex 8 : M =

Alors L(M) = { f ∈ A* / f = gab h où g ∈ A* et h ∈ A* et | h |= 2 } = l'ensemble des mots de A*dont l'antépénultième lettre est un a

Ex 9 :Soit le mot f = abaab. Alors on peut construire un automate M = qui reconnaît le langage L = {abaab}

Ex 10 Tout mot f = a1a2a3…an de A* est reconnu par l'automate suivant :

M = ( Q = Pref(f) = l'ensemble des préfixes du mot f ; A ; E ; I = {ε} ; T = {f} )où E = l'ensemble des transitions de la forme ( g , a , ga ) où g est un préfixe propre (c'est-à-dire un préfixe différent du mot f) et ga est un préfixe du mot f

En conclusion, • Un automate M reconnaît un seul langage L qui se note alors L = L(M)• Mais un même langage L peut être reconnu par plusieurs automates M1, M2 ,…. On dit

alors que ces automates M1, M2 ,… sont équivalents. L = L(M1) = L(M2) = …• On crée ainsi une application L non injective et non surjective entre l'ensemble fini Aut(A) des automates finis basés sur l'alphabet A et l'ensemble infini dénombrable P (A*)L'ensemble image L<Aut(A)> est le sous-ensemble Rec(A*) des langages reconnaissables

Page 6: AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition

g) Déterminisation d'un AFIA tout AFI, on peut faire correspondre un AFD reconnaissant le même langage.

Comment déterminer un AFI ?Idée : A partir d'un AFI, on crée un AFD simulant toutes les possibilités parallèles.Travaillons d'abord sur un exemple Soit l'AFI M = (Q,A,E ,I,T) = (Q,A,δ,I,T)

Q = {S,U,F} ; A = {a ; b} ; E = {(S,a,S),(S,a,U),(U,b,U),(U,bF) } I = {S} , T = {F}Donc δ : Q × A ------------- > P(Q) (S,a) -------------- > { S, U } (S,b) -------------- > ∅ (U,a) -------------- > ∅ (U,b) -------------- > { U,F }

Créons un AFD M' = (Q',A',E',I',T') oùQ' = Q ; A' = A = {a ; b } ; I' = I = {S}

On crée la fonction δ' de transition de l'AFD à partir de δ la fonction de transition de l'AFI :δ' (I,a) = δ(S,a) = {S,U}δ' (I,b) = δ(S,b) = ∅

On pose V = {S,U}δ' (V,a) = δ(S,a) ∪ δ(U,a) = {S,U} ∪ ∅ = {S,U}δ' (V,b) = δ(S,b) ∪ δ(U,b) = ∅ ∪ {U,F} = {U,F}

On pose W = {U,F}δ' (W,a) = δ(U,a) ∪ δ(Fa) = ∅ ∪ ∅ = ∅δ' (W,b) = δ(U,b) ∪ δ(F,b) = {U,F} ∪ ∅ = {U,F}

Page 7: AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition

Voilà l'AFD M' déterminisant l'AFI M : M' =

Théorème :L'AFD M' = (Q',A, E' , I', T') construit par cet algorithme de déterminisation à partir del'AFI M = (Q, A, E, I, T) reconnaît les mêmes mots que l'AFI MDonc la famille des langage reconnus par un AFD est identique à la famille des langagesreconnus par un AFI.

Page 8: AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS ... · AUTOMATES FINIS DETERMINISTES (AFD) ET AUTOMATES FINIS INDETERMINISTES (AFI ou AFND) 1°) Définitions a) Définition

Algorithme de déterminisation de l'AFI M = (Q,A,δ,I,T) en l'AFD M' = (Q,'A',δ',I',T')

Début(* entrée des données *)

lire l'AFI M = (Q,A,δ,I,T) (* traitement : M' simule en parallèle toutes les transitions de M. Les états de M

sont construits progressivement *) ETATSTRAITES := ∅ ; Ensemble I' des états initiaux de M' := Ensemble I des états initiaux de M; Inclure I' dans E' l'ensemble des états de M' ; (* pour l'instant I' n'a pas été traité *)

tant qu'il y a un état non traité U = {q1,q2, …..qn} de E' faire ETATSTRAITES := ETATSTRAITES ∪ {U} ; Pour chaque lettre d'entrée a de A

faire V := δ( q1,a) ∪ δ (q2,a) ∪ δ (q3,a) ∪ ….∪ δ (qn,a) ; Si V n'appartient pas déjà à E'

Alors ajouter V comme état non traité à E' finsi;

Ajouter une transition de U à V étiquetée a c'est-à-dire V = d'(U,a) fin pour :

fin du tant que;(* affichage des résultats *)

afficher l'AFD M' = (Q,'A',δ',I',T')Fin.Exercices de déterminisationDéterminiser les AFI suivants :M1 =

M2 =