Beruflich Dokumente
Kultur Dokumente
Jean Privat
Université du Québec à Montréal
a?b*c+ 0110010 ?
Comment évaluer ?
a*ba*ba*
(ab|b)*a?
Comment évaluer ?
a*ba*ba*
(ab|b)*a?
Comment évaluer ?
a*ba*ba*
(ab|b)*a?
Structures de données
Automates finis
Algorithmes
Transformation d’automates
Évaluation d’automates
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)
a a
1 2 3
ε
Règles
Au plus un arc sortant pour une étiquette
Pas d’étiquette ε
a a
1 2 3
c
Facile
Il suffit de trouver un chemin
Encore plus facile avec un DFA (algorithme linéaire)
a a
1 2 3
c
a a
1 2 3
c
Trois étapes
Transformation RE → NFA
Transformation NFA → DFA
Évaluation du DFA
Atome (caractère ou ε)
a
a
1 2
Concaténation
ab
a b
1 2 3
Étoile
a*
ε
1 a 2
ε
Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 13 / 25
RE → NFA : Exercice 1
Solution
ε ε ε
b a b a b
1 2 3 4 5 6
ε ε
ε
Solution
ε
ε
2 a 3
ε ε ε
c
1 6 7
ε ε ε
4 b 5
ε
ε
Solution
b c
3 4 5
ε ε
a d
1 2 ε 8 9
ε
ε
6 7
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
ε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 .
4 a
ε a
a
ε a
1 2 3
a ε
4 a
ε a
a
ε a
1 2 3
a ε
Solution
b b b
a a
1,2 3,4 5,6
4 b 5
ε
ε
Solution
a
c
a 2,3,6
1,2, c
3,4,5, b
6,7 b
c 4,5,6
Solution
d
a 2,3,6,
1 b d 9
7,8
c
4 5,8
DFAisation paresseuse
Construire et évaluer le DFA en même temps