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.

Upload: others

Post on 18-Jun-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

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 =