Théorie des Langages Formels Chapitre 2 : Automates
Florence Levé
Florence.Leve@u-picardie.fr
Année 2014-2015
Un exemple déjà vu
Texte en entrée :
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une_histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire_de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de_toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Un exemple déjà vu
Texte en entrée : Une histoire de toto de plus
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Éléments d’un automate : états
de t
t o t o
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente
Les ronds = les états Nommons-les !
L’ensemble d’états = {1, 2, 3, 4, 5}
Éléments d’un automate : états
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
Les ronds = les états Nommons-les !
L’ensemble d’états = {1, 2, 3, 4, 5}
Éléments d’un automate : états
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
Les ronds = les états Nommons-les !
L’ensemble d’états = {1, 2, 3, 4, 5}
Éléments d’un automate : transitions
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
Flèche entre deux états : une transition
Ensemble de transitions = {(1, t, 2), (1, o, 1), (2, o, 3), (2, t, 2), (3, t, 4), (3, o, 1), (4, o, 5), (4, t, 2), (5, t, 3),
(5, o, 1)} ∪{(q, a, 1) | q ∈ {1, 2, 3, 4, 5}, a 6∈ {t, o}}
Éléments d’un automate : transitions
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
Flèche entre deux états : une transition
Ensemble de transitions = {(1, t, 2), (1, o, 1), (2, o, 3), (2, t, 2), (3, t, 4), (3, o, 1), (4, o, 5), (4, t, 2), (5, t, 3),
(5, o, 1)} ∪{(q, a, 1) | q ∈ {1, 2, 3, 4, 5}, a 6∈ {t, o}}
Éléments d’un automate : état initial
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
Rond précédé d’une flèche : état initial
Il peut y en avoir plusieurs (ou aucun)
Ensemble d’états initial = {1}
Éléments d’un automate : état initial
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
Rond précédé d’une flèche : état initial
Il peut y en avoir plusieurs (ou aucun)
Ensemble d’états initial = {1}
Éléments d’un automate : état terminal
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
Rond suivi d’une flèche : état terminal (final/acceptation) Il peut y en avoir plusieurs (ou aucun)
Ensemble d’états terminaux = {5}
Éléments d’un automate : état terminal
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
Rond suivi d’une flèche : état terminal (final/acceptation) Il peut y en avoir plusieurs (ou aucun)
Ensemble d’états terminaux = {5}
Automates
5-uplet < A, Q, D, F , δ > où A : alphabet d’entrée ;
Q : ensemble d’états de l’automate ;
D ⊆ Q : ensemble des états de départ (ou initiaux) ;
F ⊆ Q ensemble des états d’acceptation (ou états finaux ou terminaux ou acceptants) ;
δ ⊆ Q × A × Q ensemble de transitions.
Si (p, a, q) transition, alors a = étiquette de la transition.
Un automate est dit fini quand son ensemble d’états Q est fini.
Automates
5-uplet < A, Q, D, F , δ > où A : alphabet d’entrée ;
Q : ensemble d’états de l’automate ;
D ⊆ Q : ensemble des états de départ (ou initiaux) ;
F ⊆ Q ensemble des états d’acceptation (ou états finaux ou terminaux ou acceptants) ;
δ ⊆ Q × A × Q ensemble de transitions.
Si (p, a, q) transition, alors a = étiquette de la transition.
Un automate est dit fini quand son ensemble d’états Q est fini.
Automates
5-uplet < A, Q, D, F , δ > où A : alphabet d’entrée ;
Q : ensemble d’états de l’automate ;
D ⊆ Q : ensemble des états de départ (ou initiaux) ;
F ⊆ Q ensemble des états d’acceptation (ou états finaux ou terminaux ou acceptants) ;
δ ⊆ Q × A × Q ensemble de transitions.
Si (p, a, q) transition, alors a = étiquette de la transition.
Un automate est dit fini quand son ensemble d’états Q est fini.
Automates
5-uplet < A, Q, D, F , δ > où A : alphabet d’entrée ;
Q : ensemble d’états de l’automate ;
D ⊆ Q : ensemble des états de départ (ou initiaux) ;
F ⊆ Q ensemble des états d’acceptation (ou états finaux ou terminaux ou acceptants) ;
δ ⊆ Q × A × Q ensemble de transitions.
Si (p, a, q) transition, alors a = étiquette de la transition.
Un automate est dit fini quand son ensemble d’états Q est fini.
Automates
5-uplet < A, Q, D, F , δ > où A : alphabet d’entrée ;
Q : ensemble d’états de l’automate ;
D ⊆ Q : ensemble des états de départ (ou initiaux) ;
F ⊆ Q ensemble des états d’acceptation (ou états finaux ou terminaux ou acceptants) ;
δ ⊆ Q × A × Q ensemble de transitions.
Si (p, a, q) transition, alors a = étiquette de la transition.
Un automate est dit fini quand son ensemble d’états Q est fini.
Automates
5-uplet < A, Q, D, F , δ > où A : alphabet d’entrée ;
Q : ensemble d’états de l’automate ;
D ⊆ Q : ensemble des états de départ (ou initiaux) ;
F ⊆ Q ensemble des états d’acceptation (ou états finaux ou terminaux ou acceptants) ;
δ ⊆ Q × A × Q ensemble de transitions.
Si (p, a, q) transition, alors a = étiquette de la transition.
Un automate est dit fini quand son ensemble d’états Q est fini.
Automates
5-uplet < A, Q, D, F , δ > où A : alphabet d’entrée ;
Q : ensemble d’états de l’automate ;
D ⊆ Q : ensemble des états de départ (ou initiaux) ;
F ⊆ Q ensemble des états d’acceptation (ou états finaux ou terminaux ou acceptants) ;
δ ⊆ Q × A × Q ensemble de transitions.
Si (p, a, q) transition, alors a = étiquette de la transition.
Un automate est dit fini quand son ensemble d’états Q est fini.
Représentation graphique
les états = rond contenant le “nom” de l’état.
transition = flèche partant d’un état vers un autre état avec la lettre comme étiquette.
état de départ = flèche entrante.
état d’acceptation = flèche sortante.
Autre notation parfois :
double rond ou croix
Représentation graphique
les états = rond contenant le “nom” de l’état.
transition = flèche partant d’un état vers un autre état avec la lettre comme étiquette.
état de départ = flèche entrante.
état d’acceptation = flèche sortante.
Autre notation parfois :
double rond ou croix
Représentation graphique
les états = rond contenant le “nom” de l’état.
transition = flèche partant d’un état vers un autre état avec la lettre comme étiquette.
état de départ = flèche entrante.
état d’acceptation = flèche sortante.
Autre notation parfois :
double rond ou croix
Représentation graphique
les états = rond contenant le “nom” de l’état.
transition = flèche partant d’un état vers un autre état avec la lettre comme étiquette.
état de départ = flèche entrante.
état d’acceptation = flèche sortante.
Autre notation parfois :
double rond ou croix
Graphe
Remarque. Un automate sans les étiquettes, les états de départ et d’acceptation = un graphe (orienté) :
sommets = états, arcs = transitions
t o t o 5
t lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre différente
de t
1 2 3 4
1 2 3 4 5
Graphe
Remarque. Un automate sans les étiquettes, les états de départ et d’acceptation = un graphe (orienté) :
sommets = états, arcs = transitions
t o t o 5
t lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre différente
de t
1 2 3 4
1 2 3 4 5
Autre exemple d’automate
Soit l’automate < A, Q, D, F , δ > avec A = {a, b, c },
Q = {1, 2, 3, 4, 5, 6, 7}
D = {1, 2}
F = {2, 3, 4}
δ = {(1, a, 1), (1, a, 5), (3, c, 7), (3, b, 1), (2, b, 4), (5, b, 3)}
Dessinez l’automate !
Autre exemple d’automate : solution
Exemple : <A, Q, D, F , δ > avec A = {a, b, c },
Q = {1, 2, 3, 4, 5, 6, 7}
D = {1, 2}
F = {2, 3, 4}
δ = {(1, a, 1), (1, a, 5), (3, c, 7), (3, b, 1), (2, b, 4), (5, b, 3)}
b 1
2 4
5
b a a
6
3 7
b c
A quoi sert un automate ?
. . . à reconnaître des mots.
Reconnaissance de mots
1 - chemins et étiquettes
Chemin (non vide) d’un état p à un état q
= suite de transitions (q 0 , a 1 , q 1 )(q 1 , a 2 , q 2 ) . . . (q n−1 , a n , q n ) avec q 0 = p, q n = q (et (n ≥ 1))
Exemples :
b 1
2 4
5
b a a
6
3 7
b c
a 1 . . . a n = étiquette du chemin.
I
(1, a, 5), (5, b, 3), (3, c, 7) : étiquette abc
I
(5, b, 3), (3, c, 7) : étiquette bc
I
(5, b, 3) : étiquette b
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1),
(1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) étiquette aabbabbaaab.
13/38Reconnaissance de mots
1 - chemins et étiquettes
Chemin (non vide) d’un état p à un état q
= suite de transitions (q 0 , a 1 , q 1 )(q 1 , a 2 , q 2 ) . . . (q n−1 , a n , q n ) avec q 0 = p, q n = q (et (n ≥ 1))
Exemples :
b 1
2 4
5
b a a
6
3 7
b c
I
(1, a, 5), (5, b, 3), (3, c, 7)
I
(5, b, 3), (3, c, 7)
I
(5, b, 3)
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3).
a 1 . . . a n = étiquette du chemin.
I
(1, a, 5), (5, b, 3), (3, c, 7) : étiquette abc
I
(5, b, 3), (3, c, 7) : étiquette bc
I
(5, b, 3) : étiquette b
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) étiquette aabbabbaaab.
13/38
Reconnaissance de mots
1 - chemins et étiquettes
Chemin (non vide) d’un état p à un état q
= suite de transitions (q 0 , a 1 , q 1 )(q 1 , a 2 , q 2 ) . . . (q n−1 , a n , q n ) avec q 0 = p, q n = q (et (n ≥ 1))
Exemples :
b 1
2 4
5
b a a
6
3 7
b c
I
(1, a, 5), (5, b, 3), (3, c, 7)
I
(5, b, 3), (3, c, 7)
I
(5, b, 3)
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3).
a 1 . . . a n = étiquette du chemin.
I
(1, a, 5), (5, b, 3), (3, c, 7) : étiquette abc
I
(5, b, 3), (3, c, 7) : étiquette bc
I
(5, b, 3) : étiquette b
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) étiquette aabbabbaaab.
13/38
Reconnaissance de mots
1 - chemins et étiquettes
Chemin (non vide) d’un état p à un état q
= suite de transitions (q 0 , a 1 , q 1 )(q 1 , a 2 , q 2 ) . . . (q n−1 , a n , q n ) avec q 0 = p, q n = q (et (n ≥ 1))
Exemples :
b 1
2 4
5
b a a
6
3 7
b c
I
(1, a, 5), (5, b, 3), (3, c, 7)
I
(5, b, 3), (3, c, 7)
I
(5, b, 3)
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3).
a 1 . . . a n = étiquette du chemin.
I
(1, a, 5), (5, b, 3), (3, c, 7) : étiquette abc
I
(5, b, 3), (3, c, 7) : étiquette bc
I
(5, b, 3) : étiquette b
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) étiquette aabbabbaaab.
13/38
Reconnaissance de mots
1 - chemins et étiquettes
Chemin (non vide) d’un état p à un état q
= suite de transitions (q 0 , a 1 , q 1 )(q 1 , a 2 , q 2 ) . . . (q n−1 , a n , q n ) avec q 0 = p, q n = q (et (n ≥ 1))
Exemples :
b 1
2 4
5
b a a
6
3 7
b c
I
(1, a, 5), (5, b, 3), (3, c, 7)
I
(5, b, 3), (3, c, 7)
I
(5, b, 3)
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3).
a 1 . . . a n = étiquette du chemin.
I
(1, a, 5), (5, b, 3), (3, c, 7) : étiquette abc
I
(5, b, 3), (3, c, 7) : étiquette bc
I
(5, b, 3) : étiquette b
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) étiquette aabbabbaaab.
13/38
Reconnaissance de mots
1 - chemins et étiquettes
Chemin (non vide) d’un état p à un état q
= suite de transitions (q 0 , a 1 , q 1 )(q 1 , a 2 , q 2 ) . . . (q n−1 , a n , q n ) avec q 0 = p, q n = q (et (n ≥ 1))
Contre-exemples :
b 1
2 4
5
b a a
6
3 7
b c
I
(1, a, 1), (5, b, 3)
I
(1, b, 5)
I
(3, b, 5)
I
(8, a, 3)
a 1 . . . a n = étiquette du chemin.
I
(1, a, 5), (5, b, 3), (3, c, 7) : étiquette abc
I
(5, b, 3), (3, c, 7) : étiquette bc
I
(5, b, 3) : étiquette b
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) étiquette aabbabbaaab.
13/38
Reconnaissance de mots
1 - chemins et étiquettes
Chemin (non vide) d’un état p à un état q
= suite de transitions (q 0 , a 1 , q 1 )(q 1 , a 2 , q 2 ) . . . (q n−1 , a n , q n ) avec q 0 = p, q n = q (et (n ≥ 1))
b 1
2 4
5
b a a
6
3 7
b c
a 1 . . . a n = étiquette du chemin.
I
(1, a, 5), (5, b, 3), (3, c, 7) : étiquette abc
I
(5, b, 3), (3, c, 7) : étiquette bc
I
(5, b, 3) : étiquette b
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1),
(1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) étiquette aabbabbaaab.
Reconnaissance de mots
1 - chemins et étiquettes
Chemin (non vide) d’un état p à un état q
= suite de transitions (q 0 , a 1 , q 1 )(q 1 , a 2 , q 2 ) . . . (q n−1 , a n , q n ) avec q 0 = p, q n = q (et (n ≥ 1))
b 1
2 4
5
b a a
6
3 7
b c
a 1 . . . a n = étiquette du chemin.
I
(1, a, 5), (5, b, 3), (3, c, 7) : étiquette abc
I
(5, b, 3), (3, c, 7) : étiquette bc
I
(5, b, 3) : étiquette b
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1),
(1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) étiquette aabbabbaaab.
Reconnaissance de mots
2 - chemin vide
Pour tout état q,
le chemin vide d’étiquette le mot vide mène de q à q.
Reconnaissance de mots
3 - mots reconnus
Mot reconnu. Un mot u est reconnu par un automate s’il existe un chemin dans cet automate d’étiquette u menant d’un état initial à un état d’acceptation.
Exemples :
b 1
2 4
5
b a a
6
3 7
b c
Reconnaissance de mots
3 - mots reconnus
Mot reconnu. Un mot u est reconnu par un automate s’il existe un chemin dans cet automate d’étiquette u menant d’un état initial à un état d’acceptation.
Exemples :
b 1
2 4
5
b a a
6
3 7
b c
I
(1, a, 5), (5, b, 3), (3, c, 7) : abc non reconnu !
I
(5, b, 3), (3, c, 7) : bc non reconnu !
I
(5, b, 3) : b non reconnu par ce chemin ! Mais il l’est par le chemin (2, b, 4)
I
(1, a, 1), (1, a, 5), (5, b, 3), (3, b, 1), (1, a, 5), (5, b, 3), (3, b, 1),
(1, a, 1), (1, a, 1), (1, a, 5), (5, b, 3) : aabbabbaaab reconnu.
Reconnaissance de mots
3 - mots reconnus
Mot reconnu. Un mot u est reconnu par un automate s’il existe un chemin dans cet automate d’étiquette u menant d’un état initial à un état d’acceptation.
Exemples :
b 1
2 4
5
b a a
6
3 7
b c
I
mot vide : reconnu (chemin vide de l’état 2 à l’état 2).
Langages reconnaissables (langage reconnu)
Langage. Ensemble de mots.
Langage reconnu par un automate = ensemble des mots reconnus par l’automate.
I
Formellement : {u ∈ A ∗ | ∃p ∈ D, ∃q ∈ F,
∃ un chemin d’étiquette u débutant en p et terminant en q}.
I
Attention ! Des automates finis. . . Des langages reconnus
éventuellement infinis.
Langages reconnaissables (langage reconnu)
Langage. Ensemble de mots.
Langage reconnu par un automate = ensemble des mots reconnus par l’automate.
I
Formellement : {u ∈ A ∗ | ∃p ∈ D, ∃q ∈ F,
∃ un chemin d’étiquette u débutant en p et terminant en q}.
I
Attention ! Des automates finis. . . Des langages reconnus
éventuellement infinis.
Langages reconnaissables (langage reconnu)
Langage. Ensemble de mots.
Langage reconnu par un automate = ensemble des mots reconnus par l’automate.
I
Formellement : {u ∈ A ∗ | ∃p ∈ D, ∃q ∈ F,
∃ un chemin d’étiquette u débutant en p et terminant en q}.
I
Attention ! Des automates finis. . . Des langages reconnus
éventuellement infinis.
Langages reconnaissables (langage reconnu)
Langage. Ensemble de mots.
Langage reconnu par un automate = ensemble des mots reconnus par l’automate.
I
Formellement : {u ∈ A ∗ | ∃p ∈ D, ∃q ∈ F,
∃ un chemin d’étiquette u débutant en p et terminant en q}.
I
Attention ! Des automates finis. . . Des langages reconnus
éventuellement infinis.
Langages reconnaissables (exemple)
Langage reconnu par un automate = ensemble des mots reconnus par l’automate.
Exemple :
b 1
2 4
5
b a a
6
3 7
b c
I
Les mots a n ab (avec n ≥ 0} sont reconnus
I
En fait, LE langage reconnu =
{ε, b} ∪ {a i
1abb . . . a i
p−1abba i
pab|p ≥ 1, i 1 ≥ 0, . . . , i p ≥ 0}
= ε + b + (a ∗ abb) ∗ a ∗ ab
Langages reconnaissables (exemple)
Langage reconnu par un automate = ensemble des mots reconnus par l’automate.
Exemple :
b 1
2 4
5
b a a
6
3 7
b c
I
Les mots a n ab (avec n ≥ 0} sont reconnus
I
En fait, LE langage reconnu =
{ε, b} ∪ {a i
1abb . . . a i
p−1abba i
pab|p ≥ 1, i 1 ≥ 0, . . . , i p ≥ 0}
= ε + b + (a ∗ abb) ∗ a ∗ ab
Langages reconnaissables (exemple)
Langage reconnu par un automate = ensemble des mots reconnus par l’automate.
Exemple :
b 1
2 4
5
b a a
6
3 7
b c
I
Les mots a n ab (avec n ≥ 0} sont reconnus
I
En fait, LE langage reconnu =
{ε, b} ∪ {a i
1abb . . . a i
p−1abba i
pab|p ≥ 1, i 1 ≥ 0, . . . , i p ≥ 0}
= ε + b + (a ∗ abb) ∗ a ∗ ab
Langages reconnaissables (définition)
Langage reconnaissable = langage reconnu par un automate.
On note Rec(A ∗ ) l’ensemble des langages reconnaissables.
Langages reconnaissables (définition)
Langage reconnaissable = langage reconnu par un automate.
On note Rec(A ∗ ) l’ensemble des langages reconnaissables.
Toto
L’automate :
t o t o 5
t
lettre différente de t
lettre différente de o et de t
t
t
lettre différente de t lettre différente
de o et de t lettre
différente de t
1 2 3 4
reconnaît l’ensemble des mots qui terminent par toto.
Exemples de langages et d’automates les reconnaissant
∅ : reconnu par exemple par < A, {1}, {1}, ∅, ∅ >
1
{ε} : par exemple < A, {1}, {1}, {1}, ∅ >
1
{a} pour a lettre : par exemple
< A, {1, 2}, {1}, {2}, {(1, a, 2)} >
1 a 2
Exemples de langages et d’automates les reconnaissant
∅ : reconnu par exemple par < A, {1}, {1}, ∅, ∅ >
1
{ε} : par exemple < A, {1}, {1}, {1}, ∅ >
1
{a} pour a lettre : par exemple
< A, {1, 2}, {1}, {2}, {(1, a, 2)} >
1 a 2
Exemples de langages et d’automates les reconnaissant
∅ : reconnu par exemple par < A, {1}, {1}, ∅, ∅ >
1
{ε} : par exemple < A, {1}, {1}, {1}, ∅ >
1
{a} pour a lettre : par exemple
< A, {1, 2}, {1}, {2}, {(1, a, 2)} >
1 a 2
Exemples de langages et d’automates les reconnaissant
A ∗ :
Par exemple, < A, {1}, {1}, {1}, {(1, a, 1) | a ∈ A} >.
1
A
Automates équivalents
Deux automates sont équivalents s’ils reconnaissant le même langage.
Exemple :
b a, b
Automate 1
a
a b
Automate 2
Les deux automates reconnaissent {a, b} ∗ .
Langages Rationnels
Opérations rationnelles
Ce sont les opérations d’union, de produit et d’étoile (itération).
I
L’union est celle que l’on connaît sur les ensembles.
I
Le produit est une extension du produit (de concaténation) des mots sur les ensembles.
I
L’étoile est l’opération utilisée quand nous avons défini A ∗ .
Produit
Soient X , Y deux ensembles de mots, le produit (la concaténation) de X et Y est l’ensemble :
X .Y = XY = {xy | x ∈ X , y ∈ Y }.
Exemple : {ab, aba, b}{ab, b} = {abab, abb, abaab, bab, bb}.
Le produit d’ensembles n’est pas commutatif :
I
baba ∈ {ab, b}{ab, aba, b} mais baba 6∈ {ab, aba, b}{ab, b}.
I
{ab, b}{ab, aba, b} 6= {ab, aba, b}{ab, b}.
Exemples
I
Soit P l’ensemble des mots de longueur paire (ε ∈ P) : PP = P
I
Soit I l’ensemble des mots de longueur impaire :
I .I = P \ {ε} IP = PI = I
Propriétés du produit
si X ⊆ T et Y ⊆ Z alors XY ⊆ TZ X (Y ∪ Z ) = XY ∪ XZ
(X ∪ Y )Z = XZ ∪ YZ X (Y ∩ Z ) ⊆ XY ∩ XZ En général pas égalité.
Par exemple, X = {ab, a}, Y = {a}, Z = {ba} :
I
X (Y ∩ Z ) = ∅,
I
mais XY ∩ XZ = {aba}.
(X ∩ Y )Z ⊆ XZ ∩ YZ
∅X = X ∅ = ∅
X {ε} = {ε}X = X
Puissances
Idée : X k =
k fois
z }| { X ...X Inductivement
X 0 = {ε}, et
X k = X k −1 X = XX k−1 quand k ≥ 1 Définition par compréhension :
X k = {x 1 . . . x k | x i ∈ X , 1 ≤ i ≤ k}
(Convention usuelle : x 1 . . . x 0 = ε.) Exemples :
I
Soit A un alphabet, A k est l’ensemble des mots de longueur k sur A.
{a, b} 3 = {aaa, aab, aba, baa, abb, bab, bba, bbb}.
I
{a, ba, ab} 2 = {aa, aba, aab, baa, baba, baab, abba, abab}
I
Soit X l’ensemble des mots contenant au moins un a. Pour
k ≥ 1, X k est l’ensemble des mots contenant au moins k
occurrences de a.
Étoile (itération)
X ∗ =
∞
[
i=0
X i
X ∗ = {x 1 . . . x n | n ≥ 0, x i ∈ X } X ∗ = {x 1 . . . x n | n ≥ 1, x i ∈ X } ∪ {ε}
Pour X l’ensemble des mots contenant au moins un a, X ∗ = X ∪ {ε}.
{aa, ab, ba, bb} ∗ est l’ensemble des mots de longueur paire sur
{a, b}.
Propriétés de l’étoile
pour i entier, X i ⊆ X ∗ ε ∈ X ∗ , X ⊆ X ∗
∅ ∗ = {ε}
si X ⊆ Y alors X ∗ ⊆ Y ∗ (X ∪ {ε}) ∗ = X ∗
(X ∗ ) ∗ = X ∗ X ∗ X ∗ = X ∗
(X ∪ Y ) ∗ = ((X ∪ {ε})(Y ∪ {ε})) ∗ = (X ∗ Y ∗ ) ∗
Itération restreinte
X + =
∞
[
i=1
X i
X + = {x 1 . . . x n | n ≥ 1, x i ∈ X } Propriétés de l’itération restreinte :
I
X ∗ = X + ∪ {ε}
I
Si ε ∈ X , alors X ∗ = X + . Dans ce cas, X + 6= X ∗ \ {ε}.
I
X + = XX ∗ = X ∗ X
Remarque sur les notations
Dans ce qui suit (de même quedans la bibliographie), plusieurs notations pourront être utilisées indifféremment dans l’écriture des langages. Ainsi, si u et v sont des mots ou des ensembles de mots :
I
On pourra trouver les notations {u} ou (u) pour désigner u.
I
L’ensemble {u} ∪ {v } (ou u ∪ v) pourra être noté, selon les
cas, {u, v }, (u, v ), {u ∪ v}, (u ∪ v), (u + v) ou u + v.
Langages rationnels/réguliers
La famille des langages rationnels sur A est la plus petite (au sens de l’inclusion) famille de langages qui contient
I
l’ensemble vide,
I
les ensembles {a} pour a lettre de A,
et telle que, pour tous ensembles rationnels X et Y ,
I
X ∪ Y est rationnel,
I
XY est rationnel et
I
X ∗ est rationnel.
Notation : Rat(A ∗ ) ou Rat(A),
En d’autres termes, un ensemble est rationnel si et seulement
s’il peut être obtenu à partir des ensembles finis en utilisant un
nombre fini de fois les opérations d’union, de produit et
d’itération.
Langages rationnels/réguliers – exemples
ensemble vide
les singletons {u} pour u ∈ A ∗ (u mot sur A) ensembles finis de mots
A ∗
{aa, ab, ba, bb} ∗ = ({a, b}{a, b}) ∗ = (AA) ∗ avec A = {a, b}.
A ∗ {a}A ∗ .
Expressions régulières
Expressions formées par les règles suivantes :
I
∅, ε et les éléments de A sont des expressions régulières.
I
Si E et F sont des expressions régulières, (E + F), (EF ) et (E) ∗ sont des expressions régulières.
Les parenthèses sont omises s’il n’y a pas d’ambiguïté.
La priorité des opérateurs est : “ ∗”, “.”, “+”.
Des noms d’ensembles (représentables par une expression rationnelle) peuvent aussi être introduits dans les expressions rationnelles.
Bien entendu, il ne faut pas que A contienne les symboles (, ), ∅, ε, ∗, +, et le symbole de la virgule.
Attention : les notations utilisées en théorie des langages sont souvent différentes dans les logiciels utilisant les “regular
expressions” (REGEXP) (surtout concernant l’usage du symbole ∗
qui peut représenter un joker et non l’opération étoile).
Langage associé à une expression régulière
Définition
I
L(∅) = ∅ ;
I
L(ε) = {ε} ;
I
L(a) = {a} pour a lettre ;
I
L(E + F) = L(E ) ∪ L(F ) ;
I
L(EF ) = L(E )L(F ) ;
I
L(E ∗ ) = L(E ) ∗ . Exemples
I
A ∗ aA ∗ désigne l’ensemble A ∗ {a}A ∗
I
L’ensemble{aa, ab, ba, bb} ∗ des mots de longueur paire :
(aa + ab + ba + bb) ∗ Souvent ! (Notation pas très pure)
(aa, ab, ba, bb) ∗
Langages rationnels et expressions régulières
Lemme. Un langage est rationnel si et seulement si une expression régulière le représente.
I
on utilise les termes rationnel(les) ou réguli(ers/ères) pour définir l’un et l’autre.
I
Confusion usuelle entre le langage et son expression.
Remarques
Attention, l’∗ porte sur ce qui précède immédiatement !
I
Par exemple, aa ∗ 6= (aa) ∗ , ab ∗ 6= (ab) ∗
Une expression rationnelle ne contient pas, par définition, de notation de puissance et d’itération restreinte. Par souci de simplification, elles pourront toutefois être utilisées (sauf ambiguïté).
I
Exemple d’utilisation de puissance :
A 3 pour les mots de longueur 3 (au lieu de AAA)
Attention ! a + a 6= a + a = {a} ∪ {a}.
Un même ensemble peut être représenté par plusieurs expressions rationnelles différentes.
I