CH 2 - Automates Finis Et Expressions Regulieres
CH 2 - Automates Finis Et Expressions Regulieres
CH 2 - Automates Finis Et Expressions Regulieres
automates
Olfa MOUELHI
[email protected]
© Olfa MOUELHI 2
Expressions régulières – Principe
L’ensemble ∅ représente le langage vide.
Le mot vide représente le langage {}
Un caractère c de représente le langage {c}
L’alternative p1 | p2 représente l’union des langages représentés par p1 et p2.
La concaténationp1.p2 représente la concaténation des langages représentés par
p1 et p2.
La répétition p* représente l’itération du langage représenté par p.
© Olfa MOUELHI 3
Expressions régulières – la syntaxe
© Olfa MOUELHI 4
Expressions régulières – Priorités
© Olfa MOUELHI 5
Les expressions régulières
© Olfa MOUELHI 6
Les expressions régulières
Exemple
Soit l’alphabet = {a, b}
© Olfa MOUELHI 7
Les langages réguliers
Un langage L est dit régulier s'il existe une expression régulière qui le génère.
Une expression régulière r dénote un langage régulier L(r)
Tout langage fini est régulier.
∅ est un langage régulier ;
{} est un langage régulier ;
Pour tout a ∈ , {a} est un langage régulier ;
Si L1 et L2 sont réguliers, alors L1 · L2 = {w1w2 | w1 ∈ L1 et w2 ∈ L2} est régulier.
Si L est régulier, alors :
L* = {} ∪ {w1w2w3 · · ·wn | wi ∈ L} est régulier ;
Si L1 et L2 sont réguliers, alors L1 ∪ L2 est régulier.
Si L est un langage régulier, Lc = ∑* \ L est un langage régulier
© Olfa MOUELHI 8
Les automates finis
© Olfa MOUELHI 9
Les automates finis
© Olfa MOUELHI 10
Les automates finis non déterministes
AFN - Exemple
© Olfa MOUELHI 11
Représentation des AFN
begin a b b
0 1 2 3
Symbole d’entrée
État
a b
0 {0, 1} {0}
1 – {2}
2 – {3}
© Olfa MOUELHI 12
Automates finis non déterministes
Exemple
L’AFN suivant reconnaît aa* | bb*. La chaîne aaa est acceptée en se déplaçant via les
états 0, 1, 2, 2 et 2. Les étiquettes de ces arcs sont , a, a et a dont la concaténation
est aaa ( disparaît dans la concaténation).
a
a
1 2
b
3 4
b
AFN avec -transitions
© Olfa MOUELHI 13
Automates finis déterministes
Un automate fini déterministe (AFD) est un cas particulier de l’AFN dans lequel
© Olfa MOUELHI 14
Automates finis déterministes
Exemple
L’AFD suivant accepte le même langage (a | b)*abb que celui accepté par l’AFN (page
18)
b
begin a b b
0 1 2 3
a
a
© Olfa MOUELHI 15
Automates finis complets
a
b
e0 e1 b
© Olfa MOUELHI 16
Automates finis complets
Tout AFD non complet peut être transformé en AFD complet par l’ajout d’un état que
nous qualifions de « mort » ou « poubelle » ed vers lequel arrivent des transitions que
nous ajoutons de telle sorte que de chaque état de l’automate parte exactement une
transitions sur chaque symbole de l’alphabet.
e0 a e1
a
b
ed
b
a
© Olfa MOUELHI 17
Langage accepté par un AFN
© Olfa MOUELHI 18
Équivalence d’automates finis
Cette relation est bien une équivalence, car elle est définie à partir de l'égalité des
ensembles qui est une équivalence.
© Olfa MOUELHI 19
Construction d’un AFD à partir d’un AFN sans
transitions
Pour un AFN sans transitions, construire à partir de A un nouveau automate B qui
lui est équivalent non ambigu en faisant la fusion de quelques états pour enlever
l’ambigüité. L’état initial est le même et les états finaux sont toutes sommes d’états
contenant un ancien état final.
Soit L’AFN M:
a b
q0 q0/q1 q1
AFD M’:
q1 Q1 q1
a b
Etat/alphabet a B
{q0} /A {q0,q1} /B {q1} /C A B C
B B C
{q0,q1} /B {q0,q1} /B {q1} /C
C C C
© Olfa MOUELHI 21
Construction d’un AFD à partir d’un AFN
Exemple
a
begin a b b
0 1 2 3
a
2 3
begin a b b
0 1 6 7 8 9 10
b
4 5
© Olfa MOUELHI 22
Construction d’un AFD à partir d’un AFN
a a
4 a
1
6
a 2 b
7
1 3 5 5
8 1 1
2 6 6
0 2
b 2
4 a 7 7
4 4 4
7 9 10
b 1 5
2 6
b
b
© Olfa MOUELHI 23
Construction d’un AFD à partir d’un AFN
C
b b
begin a b b
A B D E
a
a
a
© Olfa MOUELHI 24
Construction d’un AFD à partir d’un AFN
a b
A B C
B B D
C B C
D B E
E B C
© Olfa MOUELHI 25
Algorithme de Minimisation d’un AFD
© Olfa MOUELHI 26
Algorithme de Minimisation d’un AFD
Exemple
b
C
b b
begin a b b
A B D E
a
a
a
© Olfa MOUELHI 27
Algorithme de Minimisation d’un AFD
Construction de Pn :
Considérons E constitué d’un seul état et ne peut être découpé, on l’ajoute à Pn.
Considérons le groupe constitué de A, B, C et D.
Sur le symbole a, chacun de ces états a une transition vers B, ce qui ne les distingue pas.
Sur le symbole b, A, B et C ont des transitions vers le groupe (A B C D) tandis que D a une
ransitions vers E.
Dans Pn, le groupe (A B C D) doit être découpé en (A B C) et (D). Pn = (A B C) (D) (E).
Dans la phase suivante nous n’avons aucun découpage de (A B C) sur le symbole a
par contre il doit être découpé en (A C) et (B) sur le symbole b. Pn = (A C) (B) (D) (E).
Dans la passe suivante on ne peut plus découper aucun groupe ni sur a ni sur b.
Pf = (AC) (B) (D) (E).
© Olfa MOUELHI 28
Algorithme de Minimisation d’un AFD
b
Exemple
C
b b
begin a b b
A B D E
a
a
a
A B C D E
© Olfa MOUELHI 29
Algorithme de Minimisation d’un AFD
Symbole d’entrée
État
a b
A,C B A,C
B B D
D B E
E B A,C
© Olfa MOUELHI 30
Algorithme de Minimisation d’un AFD
a
b
0 a 1 b
2
a a
b a b
3 b 4 b 5 a 6
b
a
© Olfa MOUELHI 31
Algorithme de Minimisation d’un AFD
1, 6 b 2 b
a
a
0, 3
a
b
4 b 5 a
© Olfa MOUELHI 32
Algorithme de Minimisation d’un AFD
a b
0 a 1 b
2
a a
b a b
3 b 4 b 5 a 6
b
a
0 1 3 4 5 6 4 2
© Olfa MOUELHI 33
Algorithme de Minimisation d’un AFD
a b
0 a 1 b
2
a a
b a b
3 b 4 b 5 a 6
b
a
0 1
3 3 5 6 1 4 2
© Olfa MOUELHI 34
Algorithme de Minimisation d’un AFD
a b a
b
0 a 1 b
2 b
1,6 2
a a a a
b a b
0,3
a
3 b 4 b 5 a 6 b b
4 5
b a
b
a
© Olfa MOUELHI 35
Limite des automates
Les automates ont une limite théorique connue. Par exemple, un automate ne peut pas
vérifier qu’un parenthésage est correct jusqu’à une profondeur arbitraire.
( ( (
0 1 2 3
) ) )
abba(aba)ba(aa(babab))aababa((a)(b()aa(aba)a)b)baba
© Olfa MOUELHI 36
Limite des automates
© Olfa MOUELHI 37