Chap2 AEF Copie
Chap2 AEF Copie
Automates finis
Automates finis non déterministe
Propriétés des langages acceptés par un automate fini
Automate déterministe minimal
Automates finis et langages réguliers
Transformation d’un DFA en ER
Lemme de pompage
Push
début Off On
Push
début t h e n
t th the then
: Q Q
q ,a q
i j
M Q, , , q0 , F
a, b
a, b
Diagramme de
transition
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Q
Q q0 , q1, q2 , q3 , q4 , q5
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
F q4
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a b
q0 q1 q5
q1 q5 q2
Mécanisme de calcul
q2 q5 q3 sans mémoire
q3 q4 q5 a, b
q4 q5 q5
q5 q5 q5 q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Chap2 : Automates finis
Mot accepté par un automate 13
Exemple
q5
abbbaa
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Chap2 : Automates finis
Extension de la fonction de 14
transition
* q, w q
Elle nous dit dans quel état on arrive en partant de l’état qi
et en analysant la chaîne w
* : Q * Q
q w q
w 1 2 k
1 2 k
q q
Chap2 : Automates finis
Extension de la fonction de 15
transition
Exemple : Il y a un chemin de q0 à q5
libellé abbbaa
* q0 , abbbaa q5
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
q w q1 q
Considérons DFA M
Définition:
Le langage L(M)contient toutes les chaînes acceptés par
M
M Q, , , q0 , F
L M w * : * q0 , w F
Chap2 : Automates finis
Langage rejeté par M 18
L M w * : * q0 , w F
q0 w q q F
n
L M {a b : n 0}
a a, b
q0 b q1 a, b q2
q0 a q1 b q2
b a accepté
q3 a, b
Chap2 : Automates finis
Exemples 21
1 0 0,1
1
0 1
0 00 001
0
Chap2 : Automates finis
Exemples 22
a a
q0 q1
b
q0 : Est à la fois état initial et final
* a,b
q0
L = {w {a,b}* | | w |b =3k+1;k>=0}
*
Notation : Fermeture réflexive et transitive
M
Chap2 : Automates finis
Configuration 26
Exemple : M Q,,,q0,F a b
a,b q0 q0 q1
q1 q1 q0
Q q0,q1
F q0
• (q0,ababa)
• (q0,aba)
Exemple
1 0,1
0 0,1
q0 q1 q2
Alphabet = {a}
q1 a q2
a
q0
a
q3
a a
Tous les entrées sont consommées
q1 a q2 “accepté”
a
q0
a
q3
a a
q1 a q2
a
q0
a
Pas de transition:
q3
L’automate se bloque
Rejet
Chap2 : Automates finis
32
Acceptation par un NFA
ET
Toutes les entrées sont consommées et
l’automate est dans un état d’acceptation
a a
q0 a q1
q2 a q3
a a
q0 a q1
q2 a q3
Chap2 : Automates finis
Transition étiqueté par 35
NFA M1 DFA M2 a
q2
q0 a q1
a
q0 a q1
L( M1 ) = {a} L( M 2 ) = {a}
Chap2 : Automates finis
36
Automates fini non déterministe
Définition formelle
M Q, , , q0 , F
q0 : Etat initial
(q1,0){q0,q2}
0
q0 q1 0, 1 q
2
1
(q0,){q0,q2}
* q0 , ab q2 , q3 , q0
q4 q5
a a
q0 a q1 b q2
q3
w L M * (q0 , w)
qi
w
qk qk F
q0 w
w qj
Language((a b)*abb)
q0 a q1 b q2 b q3
'(K,) Possible
M a
NFA
q0 a q1
q2
b
'(K,) Possible
M a
NFA
q0 a q1
q2
b
M a
NFA
q0 a q1
q2 q1 F
b
a
DFA M b
q0 a
q1, q2
b q1, q2 F
a, b
Chap2 : Automates finis
Exemple 47
a
q2 q3
a b
q0
q1 q6
q7 q8 b
q9 q10
b
q4 q5
• A = {q0,q1,q2,q4,q7} ' a b
• B = {q1,q2,q3,q4,q6 ,q7,q8} A B C
• C = {q1,q2,q4,q5 ,q6,q7} B B D
• D = {q1,q2,q4,q5,q6 ,q7,q9} C B C
• E = {q1,q2,q4,q5,q6 ,q7,q10} D B E
E B C
'(A,a)E(q3)E(q8)
'(A,a) q1,q2,q3,q4,q6 ,q7 , q8
F1 F2
M
q0
q01 q02
Définition (séparation)
Soit (q1,q2) Q2 : on dit que q1,q2 sont séparé par w * si
*(q1,w) F ou bien *(q2,w) F mais pas les deux en même
temps.
Définition
q1,q2 sont inséparables si aucun mot de * ne les sépare
*(q1,w) F ssi *(q2,w) F
Définition (équivalence de nerode)
q1 est équivalent à q2 si q1,q2 sont inséparables (noté q1q2)
L(A)=Lq0(A)
Problème :
Soit A un automate fini déterministe complet dont chaque état
accessible depuis l’état initial. Construire un DFA minimal qui
reconnaisse le même langage que A.
Idée : fusionner les états équivalents
Définition
Soit le DFA A=(,Q,,q0,F), l’automate minimal associé à A est
Amin =(,Q’,’,[q0],F’)
• Q’={[q] : qQ}
• F’ ={[f] : fF}
• ’ ={([p],a,[q]) tels que p’ [p] et q’[q] et (p’,a,q’)}
Propriété
• Amin reconnaît le même langage que A.
• Pour tout DFA B tel que L(B)=L(A), le nombre d’états de B est
supérieur ou égal à celui de A.
• Bmin est le meme que Amin, On peut parler d’unicité à un
renommage près.
Algorithme de minimisation
• Itération i = 0 (construire deux classes d’équivalence : les états
d’acceptation F et les états de non acceptation Q-F).
p 0 q (pF, qF) ou (pF, q F)
• Itération i >0
p i q si :
• p i-1 q Et
• pour tout a : (p,a) i-1 (q,a)
Arrêt de l’algorithme quand i est identique à i-1
Supprimer tous les états morts et ceux non accessible depuis l’état
de :départ
Chap2 Automates finis
Chapitre 2 62
Transformation d’un DFA en ER
Théorème :
Un langage est régulier si et seulement si il est accepté par un
automate fini
Preuve :
if : Soit M Q,,,q0,F un automate, on doit trouver un
langage régulier R tel que R =L(M).
M Q, , , q0 , F
Construction d’une expression régulière pour le langage accepté par le DFA suivant.
b
2 4
a
c a
1
b
c
a 5
3
L1 aL 2 bL 3
L bL cL
2 4 5
L 3 aL5
L aL
4 5
L 5 cL5
Théorème:
Soit (L1,L2,….Ln) un système d’équations associé a un automate M. Ce système admet une
solution unique et L(M)=L1
Lemme d’arden
Soient A, B * tq B alors l’équation L=ABL admet une solution
unique : L=B*A
Et L=ALB admet une solution unique : L=AB*.
Preuve:
B*A solution,
L= A BL , B*A= A BB*A= A B+A=(εB+)A= B*A
Preuve
K BK
BK B2 K K B n K n 0
Bn -1K Bn K
Soit u K avec |u|=p, u K alors u Bp+1K , donc w1, w2, tq u=w1w2 avec w1Bp+1.
w2 K, donc |w1|p+1 car εB. Contradiction avec |u|=p.
Donc L=B*A
b 2
c
c
3
L2=b*aL1
L1=aL1+b+aL1+cc*
= b*aL1+c+
L1=(b*a)*c+
w=xuy (1)
|xu| |Q| (2)
|u| 0 (3)
xuny L n 0. (4)
Soit le DFA ayant m états. Soit |w| > m. Considérons le chemin de l’état initial à
l’état final. L’exécution de l’automate sur w doit passer par un même état au moins
deux fois avec une partie non vide du mot séparant ces deux passages.
On peut écrire w=opqr, avec p correspond à une boucle , et |opq| = m (le préfixe de taille
m). Soit x=o, u = p, et y = qr.
3) xuiy L car si p est une boucle elle commence de l’état si et (si,p) = si, et (si,qr)
= sfinal.. (sstart,x) = si, et pour tout i (si,ui) = si c.q.f.d.
u = q
x = p y = rs
start qi final
r | s
m étapes
Exemple
Soit L={anbn | n0 }, L est non régulier.
Il n’existe pas x,u,y avec uε, tel que xuny L donc L n’est pas régulier.
De même on peut montrer que les langages suivants ne sont pas reguliers.
L={w {0,1}* | w contient le même nombre de 0s et de 1s}
L={ w {a,b,c}* | |w|= k2}
L = { uu | u{a,b}* }