• Aucun résultat trouvé

Année2014-2015 FlorenceLevé ThéoriedesLangagesFormelsChapitre2:Automates

N/A
N/A
Protected

Academic year: 2022

Partager "Année2014-2015 FlorenceLevé ThéoriedesLangagesFormelsChapitre2:Automates"

Copied!
94
0
0

Texte intégral

(1)

Théorie des Langages Formels Chapitre 2 : Automates

Florence Levé

Florence.Leve@u-picardie.fr

Année 2014-2015

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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

(15)

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

(16)

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

(17)

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

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

É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}

(24)

É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}

(25)

É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}

(26)

É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}}

(27)

É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}}

(28)

É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}

(29)

É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}

(30)

É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}

(31)

É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}

(32)

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.

(33)

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.

(34)

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.

(35)

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.

(36)

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.

(37)

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.

(38)

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.

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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 !

(46)

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

(47)

A quoi sert un automate ?

. . . à reconnaître des mots.

(48)

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/38

(49)

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

(50)

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

(51)

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

(52)

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

(53)

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

(54)

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.

(55)

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.

(56)

Reconnaissance de mots

2 - chemin vide

Pour tout état q,

le chemin vide d’étiquette le mot vide mène de q à q.

(57)

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

(58)

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.

(59)

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).

(60)

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.

(61)

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.

(62)

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.

(63)

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.

(64)

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

1

abb . . . a i

p−1

abba i

p

ab|p ≥ 1, i 1 ≥ 0, . . . , i p ≥ 0}

= ε + b + (a abb) a ab

(65)

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

1

abb . . . a i

p−1

abba i

p

ab|p ≥ 1, i 1 ≥ 0, . . . , i p ≥ 0}

= ε + b + (a abb) a ab

(66)

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

1

abb . . . a i

p−1

abba i

p

ab|p ≥ 1, i 1 ≥ 0, . . . , i p ≥ 0}

= ε + b + (a abb) a ab

(67)

Langages reconnaissables (définition)

Langage reconnaissable = langage reconnu par un automate.

On note Rec(A ) l’ensemble des langages reconnaissables.

(68)

Langages reconnaissables (définition)

Langage reconnaissable = langage reconnu par un automate.

On note Rec(A ) l’ensemble des langages reconnaissables.

(69)

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.

(70)

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

(71)

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

(72)

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

(73)

Exemples de langages et d’automates les reconnaissant

A :

Par exemple, < A, {1}, {1}, {1}, {(1, a, 1) | a ∈ A} >.

1

A

(74)

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} .

(75)

Langages Rationnels

(76)

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 .

(77)

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

(78)

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

(79)

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.

(80)

É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}.

(81)

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 )

(82)

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

(83)

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.

(84)

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.

(85)

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 .

(86)

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).

(87)

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)

(88)

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.

(89)

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

Exemple : AA = A A

(90)

FAQ

Est-ce que tous les ensembles sont rationnels ? NON.

Comment tester l’égalité de deux langages rationnels ? AUTOMATES

Est-ce que l’intersection de deux langages rationnels est encore un langage rationnel ? Et pour la complémentation ? OUI Comment savoir si un langage est rationnel ?

ÇA DÉPEND DE LA REPRÉSENTATION DU LANGAGE.

Comment tester (en machine) si un mot appartient à un langage rationnel ?

AUTOMATES

(91)

FAQ

Est-ce que tous les ensembles sont rationnels ? NON.

Comment tester l’égalité de deux langages rationnels ? AUTOMATES

Est-ce que l’intersection de deux langages rationnels est encore un langage rationnel ? Et pour la complémentation ? OUI Comment savoir si un langage est rationnel ?

ÇA DÉPEND DE LA REPRÉSENTATION DU LANGAGE.

Comment tester (en machine) si un mot appartient à un langage rationnel ?

AUTOMATES

(92)

FAQ

Est-ce que tous les ensembles sont rationnels ? NON.

Comment tester l’égalité de deux langages rationnels ? AUTOMATES

Est-ce que l’intersection de deux langages rationnels est encore un langage rationnel ? Et pour la complémentation ? OUI Comment savoir si un langage est rationnel ?

ÇA DÉPEND DE LA REPRÉSENTATION DU LANGAGE.

Comment tester (en machine) si un mot appartient à un langage rationnel ?

AUTOMATES

(93)

FAQ

Est-ce que tous les ensembles sont rationnels ? NON.

Comment tester l’égalité de deux langages rationnels ? AUTOMATES

Est-ce que l’intersection de deux langages rationnels est encore un langage rationnel ? Et pour la complémentation ? OUI Comment savoir si un langage est rationnel ?

ÇA DÉPEND DE LA REPRÉSENTATION DU LANGAGE.

Comment tester (en machine) si un mot appartient à un langage rationnel ?

AUTOMATES

(94)

FAQ

Est-ce que tous les ensembles sont rationnels ? NON.

Comment tester l’égalité de deux langages rationnels ? AUTOMATES

Est-ce que l’intersection de deux langages rationnels est encore un langage rationnel ? Et pour la complémentation ? OUI Comment savoir si un langage est rationnel ?

ÇA DÉPEND DE LA REPRÉSENTATION DU LANGAGE.

Comment tester (en machine) si un mot appartient à un langage rationnel ?

AUTOMATES

Références

Documents relatifs

Le produit cartésien sera utile pour définir les transitions possibles d’un automate. Soient E

transition = flèche partant d’un état vers un autre état avec la lettre comme étiquette.. état de départ =

Dans ce qui suit (de même quedans la bibliographie), plusieurs notations pourront être utilisées indifféremment dans l’écriture des langages...

Ainsi, le nombre d’états d’un automate déterministe complet reconnaissant un langage est minoré par le nombre de résiduels (de ce fait, à un état n’est associé qu’un

Celle-ci est la composante sur laquelle l’État exerce sa souveraineté (pouvoir suprême et absolu) qui en constitue un attribut essentiel et qui s’exprime hors des

Il  s'agit  toujours  d'un  deuxième  traumatisme  désorganisateur  réactivant  la  .. problématique  narcissique  du  premier

Le sens spontané d'évolution d'un système chimique est celui au cours duquel la valeur du quotient de réaction initial Q r,i tend vers la valeur de la constante d'équilibre K.

Les documents (aides et vidéos…) sont accessibles sur ordinateur, soit directement sur le site ou à partir des fichiers [0 fleche.pdf] ou [0 fleche.docx]. A l’issu de