Telechargé par مسلسلات آسيوية

03-automates

publicité
Chapitre 3
Évaluation des expressions régulières
et automates finis
Jean Privat
Université du Québec à Montréal
INF5000 — Théorie et construction des compilateurs
Automne 2013
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
1 / 25
Évaluation d’une expression régulière
Soit une expression régulière définissant un langage
Une chaı̂ne appartient-elle au langage ?
Rechercher les sous-chaı̂nes appartenant au langage ?
Questions non triviales
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
2 / 25
Évaluation d’une expression régulière
Soit une expression régulière définissant un langage
Une chaı̂ne appartient-elle au langage ?
Rechercher les sous-chaı̂nes appartenant au langage ?
Questions non triviales
Même pour un ordinateur
a?b*c+
Jean Privat (UQAM)
0110010 ?
03—Automate fini
INF5000 — Automne 2013
2 / 25
Approche naı̈ve
Comment évaluer ?
a*ba*ba*
(ab|b)*a?
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
3 / 25
Approche naı̈ve
Comment évaluer ?
a*ba*ba*
(ab|b)*a?
Les langages sont-ils les mêmes ?
a+ba*|a*ba+
a+ba+|a+b|ba+
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
3 / 25
Approche naı̈ve
Comment évaluer ?
a*ba*ba*
(ab|b)*a?
Les langages sont-ils les mêmes ?
a+ba*|a*ba+
a+ba+|a+b|ba+
Quel est l’expression régulière la plus rapide à évaluer ?
Qu’est-ce qui impacte les performances ?
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
3 / 25
Outils nécessaires
Structures de données
Automates finis
Algorithmes
Transformation d’automates
Évaluation d’automates
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
4 / 25
Automate = Graphe
Transitions = arcs
Orientés
Étiquetés par un caractère de l’alphabet ou par ε (epsilon)
États = nœuds
Un état de départ
Un ensemble d’états d’acceptation (éventuellement vide)
Automate fini
Nombre fini d’états (et de transitions)
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
5 / 25
Automate fini non déterministe (NFA)
Règle : pas de règle
Pas de restriction sur les étiquettes des arcs
a
b
1
Jean Privat (UQAM)
a
ε
2
03—Automate fini
a
3
INF5000 — Automne 2013
6 / 25
Automate fini déterministe (DFA)
Règles
Au plus un arc sortant pour une étiquette
Pas d’étiquette ε
b
b
1
Jean Privat (UQAM)
a
c
2
03—Automate fini
a
3
INF5000 — Automne 2013
7 / 25
Langages réguliers
NFA et DFA définissent un langage
L’ensemble des chemins partant d’un état de départ vers un état
d’acceptation
NFA, DFA et expression régulières
Reconnaissent la même classe de langages :
⇒ les langages réguliers
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
8 / 25
Évaluation d’automates
Soit un automate fini définissant un langage
Une chaı̂ne appartient-elle au langage ?
Facile
Il suffit de trouver un chemin
Encore plus facile avec un DFA (algorithme linéaire)
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
9 / 25
Évaluation d’automates : Exercice
Soit le DFA
b
b
1
a
c
2
a
3
Quelles chaı̂nes sont reconnues parmi
aa
acabcb
acc
abbc
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
10 / 25
Évaluation d’automates : Exercice
Soit le DFA
b
b
1
a
c
2
a
3
Quelles chaı̂nes sont reconnues parmi
a
a
$
aa : 1 → 2 → 3 → OK
a
c
a
b
c
b
$
acabcb : 1 → 2 → 1 → 2 → 2 → 1 → 3 → OK
a
c
c
acc : 1 → 2 → 1 → PAS OK
a
b
b
c
$
abbc : 1 → 2 → 2 → 2 → 1 → PAS OK
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
10 / 25
Évaluation d’expression régulières
Trois étapes
Transformation RE → NFA
Transformation NFA → DFA
Évaluation du DFA
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
11 / 25
Transformation d’expression régulières →
NFA
Atome (caractère ou ε)
a
1
a
2
Concaténation
ab
1
Jean Privat (UQAM)
a
2
03—Automate fini
b
3
INF5000 — Automne 2013
12 / 25
Transformation d’expression régulières →
NFA
Alternation
a|b
ε
0
1
ε
3
Étoile
a*
a
b
2
ε
ε
5
4
ε
1
a
2
ε
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
13 / 25
RE → NFA : Exercice 1
Écrire le NFA de l’expression régulière
b*ab*ab*
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
14 / 25
RE → NFA : Exercice 1
Écrire le NFA de l’expression régulière
b*ab*ab*
Solution
ε
1
b
ε
Jean Privat (UQAM)
ε
2
a
3
b
ε
03—Automate fini
4
a
5
ε
b
ε
INF5000 — Automne 2013
6
14 / 25
RE → NFA : Exercice 2
Écrire le NFA de l’expression régulière
((a*|b*)c)*
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
15 / 25
RE → NFA : Exercice 2
Écrire le NFA de l’expression régulière
((a*|b*)c)*
Solution
ε
ε
1
2
ε
4
ε
a
ε
ε
b
ε
3
ε
ε
6
c
7
5
ε
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
15 / 25
RE → NFA : Exercice 3
Écrire le NFA de l’expression régulière
a(bc)?d
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
16 / 25
RE → NFA : Exercice 3
Écrire le NFA de l’expression régulière
a(bc)?d ≡ a(bc|)d
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
16 / 25
RE → NFA : Exercice 3
Écrire le NFA de l’expression régulière
a(bc)?d ≡ a(bc|)d
Solution
ε
1
a
2
3
b
c
ε
5
ε
6
Jean Privat (UQAM)
4
ε
03—Automate fini
ε
8
d
9
7
INF5000 — Automne 2013
16 / 25
Transformation NFA → DFA
Idée
Simuler en parallèle tous les chemins
⇒ un état du DFA ≈ n états du NFA.
Risque
Au pire, DFA exponentiellement plus grand que NFA
Mais suffisamment rare en pratique
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
17 / 25
Outils sur les NFA
εfermeture(E )
L’ensemble des états atteignable par 0, 1, ou plusieurs
transitions ε à partir d’un état de E .
trans(E , c)
L’ensemble des états atteignable par une seule transition c à
partir d’un état de E .
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
18 / 25
Outils sur les NFA : Exercice
Soit le NFA
4
ε
a
1
ε
a
a
2
a
a
ε
3
Déterminer F = εfermeture(E ) et T = trans(E , a) pour les
ensembles E suivants
E = {1}
E = {1, 2}
E = {3}
E = {4}
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
19 / 25
Outils sur les NFA : Exercice
Soit le NFA
4
ε
a
1
ε
a
a
2
a
a
ε
3
Déterminer F = εfermeture(E ) et T = trans(E , a) pour les
ensembles E suivants
E = {1} : F = {1, 2, 3} ; T = {4}
E = {1, 2} : F = {1, 2, 3} ; T = {1, 3, 4}
E = {3} : F = {3} ; T = {3, 4}
E = {4} : F = {2, 3, 4} ; T = ∅
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
19 / 25
NFA → DFA : Algorithme
Données : Un NFA N
Résultat : Un DFA D définissant le même langage que N
E = εfermeture(depart(N));
ajouter E comme état de départ de D (sans le marquer);
tant que un état E de D est non marqué faire
marquer E ;
pour chaque caractère c de l’alphabet faire
F = εfermeture(trans(E , c));
si F n’est pas un état de D alors
ajouter l’état F à D (sans le marquer);
si un élément de F est un état d’acceptation de N alors
F est un état d’acceptation de D
fin
c
ajouter la transition E → F à D;
fin
fin
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
20 / 25
NFA → DFA : Exercice 1
Transformer en DFA le NFA
ε
1
b
ε
Jean Privat (UQAM)
ε
2
a
3
b
ε
03—Automate fini
4
a
5
ε
b
ε
INF5000 — Automne 2013
6
21 / 25
NFA → DFA : Exercice 1
Transformer en DFA le NFA
ε
1
b
ε
a
2
3
b
a
4
5
ε
ε
ε
b
ε
6
Solution
b
1,2
Jean Privat (UQAM)
b
b
a
3,4
03—Automate fini
a
5,6
INF5000 — Automne 2013
21 / 25
NFA → DFA : Exercice 2
Transformer en DFA le NFA
ε
ε
1
2
ε
4
ε
a
ε
ε
b
ε
3
ε
ε
6
c
7
5
ε
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
22 / 25
NFA → DFA : Exercice 2
Solution
a
c
a
1,2,
3,4,5,
6,7
c
b
c
Jean Privat (UQAM)
03—Automate fini
2,3,6
b
4,5,6
INF5000 — Automne 2013
23 / 25
NFA → DFA : Exercice 3
Transformer en DFA le NFA
ε
1
a
2
3
b
c
ε
5
ε
6
Jean Privat (UQAM)
4
ε
03—Automate fini
ε
8
d
9
7
INF5000 — Automne 2013
24 / 25
NFA → DFA : Exercice 3
Transformer en DFA le NFA
ε
a
1
2
3
b
c
4
5
ε
ε
ε
6
d
8
ε
9
7
Solution
1
a
2,3,6,
7,8
d
b
4
Jean Privat (UQAM)
03—Automate fini
c
d
9
5,8
INF5000 — Automne 2013
24 / 25
Autres algorithmes pratiques
Minimisation DFA
La même chose avec moins d’états
Théorème : DFA minimum unique
Corollaire : Permet de déterminer l’équivalence d’expressions
régulières
DFAisation paresseuse
Construire et évaluer le DFA en même temps
Transformation DFA → Expression régulière
Prouve l’égalité de la classe de langages
Pas forcément utile en pratique
Jean Privat (UQAM)
03—Automate fini
INF5000 — Automne 2013
25 / 25
Téléchargement