Chapitre 3 Évaluation des expressions régulières et ...

36
Chapitre 3 ´ Evaluation des expressions r´ eguli` eres et automates finis Jean Privat Universit´ e du Qu´ ebec ` a Montr´ eal INF5000 — Th´ eorie et construction des compilateurs Automne 2013 Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 1 / 25

Transcript of Chapitre 3 Évaluation des expressions régulières et ...

Page 1: Chapitre 3 Évaluation des expressions régulières et ...

Chapitre 3Evaluation des expressions regulieres

et automates finis

Jean Privat

Universite du Quebec a Montreal

INF5000 — Theorie et construction des compilateursAutomne 2013

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 1 / 25

Page 2: Chapitre 3 Évaluation des expressions régulières et ...

Evaluation d’une expression reguliere

Soit une expression reguliere definissant un langage

Une chaıne appartient-elle au langage ?

Rechercher les sous-chaınes appartenant au langage ?

Questions non triviales

Meme pour un ordinateur

0110010 ?a?b*c+

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 2 / 25

Page 3: Chapitre 3 Évaluation des expressions régulières et ...

Evaluation d’une expression reguliere

Soit une expression reguliere definissant un langage

Une chaıne appartient-elle au langage ?

Rechercher les sous-chaınes appartenant au langage ?

Questions non triviales

Meme pour un ordinateur

0110010 ?a?b*c+

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 2 / 25

Page 4: Chapitre 3 Évaluation des expressions régulières et ...

Approche naıve

Comment evaluer ?a*ba*ba*

(ab|b)*a?

Les langages sont-ils les memes ?

a+ba*|a*ba+

a+ba+|a+b|ba+

Quel est l’expression reguliere la plus rapide a evaluer ?

Qu’est-ce qui impacte les performances ?

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 3 / 25

Page 5: Chapitre 3 Évaluation des expressions régulières et ...

Approche naıve

Comment evaluer ?a*ba*ba*

(ab|b)*a?

Les langages sont-ils les memes ?

a+ba*|a*ba+

a+ba+|a+b|ba+

Quel est l’expression reguliere la plus rapide a evaluer ?

Qu’est-ce qui impacte les performances ?

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 3 / 25

Page 6: Chapitre 3 Évaluation des expressions régulières et ...

Approche naıve

Comment evaluer ?a*ba*ba*

(ab|b)*a?

Les langages sont-ils les memes ?

a+ba*|a*ba+

a+ba+|a+b|ba+

Quel est l’expression reguliere la plus rapide a evaluer ?

Qu’est-ce qui impacte les performances ?

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 3 / 25

Page 7: Chapitre 3 Évaluation des expressions régulières et ...

Outils necessaires

Structures de donnees

Automates finis

Algorithmes

Transformation d’automates

Evaluation d’automates

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 4 / 25

Page 8: Chapitre 3 Évaluation des expressions régulières et ...

Automate = Graphe

Transitions = arcs

Orientes

Etiquetes par un caractere de l’alphabet ou par ε (epsilon)

Etats = nœuds

Un etat de depart

Un ensemble d’etats d’acceptation (eventuellement vide)

Automate fini

Nombre fini d’etats (et de transitions)

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 5 / 25

Page 9: Chapitre 3 Évaluation des expressions régulières et ...

Automate fini non deterministe (NFA)

Regle : pas de regle

Pas de restriction sur les etiquettes des arcs

1 3

a

2a

ε

a

b

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 6 / 25

Page 10: Chapitre 3 Évaluation des expressions régulières et ...

Automate fini deterministe (DFA)

Regles

Au plus un arc sortant pour une etiquette

Pas d’etiquette ε

1 3

b

2a

c

a

b

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 7 / 25

Page 11: Chapitre 3 Évaluation des expressions régulières et ...

Langages reguliers

NFA et DFA definissent un langage

L’ensemble des chemins partant d’un etat de depart vers un etatd’acceptation

NFA, DFA et expression regulieres

Reconnaissent la meme classe de langages :⇒ les langages reguliers

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 8 / 25

Page 12: Chapitre 3 Évaluation des expressions régulières et ...

Evaluation d’automates

Soit un automate fini definissant un langage

Une chaıne appartient-elle au langage ?

Facile

Il suffit de trouver un chemin

Encore plus facile avec un DFA (algorithme lineaire)

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 9 / 25

Page 13: Chapitre 3 Évaluation des expressions régulières et ...

Evaluation d’automates : Exercice

Soit le DFA

1 3

b

2a

c

a

b

Quelles chaınes sont reconnues parmi

aa

: 1a→ 2

a→ 3$→ OK

acabcb

: 1a→ 2

c→ 1a→ 2

b→ 2c→ 1

b→ 3$→ OK

acc

: 1a→ 2

c→ 1c→ PAS OK

abbc

: 1a→ 2

b→ 2b→ 2

c→ 1$→ PAS OK

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 10 / 25

Page 14: Chapitre 3 Évaluation des expressions régulières et ...

Evaluation d’automates : Exercice

Soit le DFA

1 3

b

2a

c

a

b

Quelles chaınes sont reconnues parmi

aa : 1a→ 2

a→ 3$→ OK

acabcb : 1a→ 2

c→ 1a→ 2

b→ 2c→ 1

b→ 3$→ OK

acc : 1a→ 2

c→ 1c→ PAS OK

abbc : 1a→ 2

b→ 2b→ 2

c→ 1$→ PAS OK

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 10 / 25

Page 15: Chapitre 3 Évaluation des expressions régulières et ...

Evaluation d’expression regulieres

Trois etapes

Transformation RE → NFA

Transformation NFA → DFA

Evaluation du DFA

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 11 / 25

Page 16: Chapitre 3 Évaluation des expressions régulières et ...

Transformation d’expression regulieres →NFA

Atome (caractere ou ε)

a

1 2a

Concatenationab

1 2a 3b

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 12 / 25

Page 17: Chapitre 3 Évaluation des expressions régulières et ...

Transformation d’expression regulieres →NFAAlternation

a|b

0

3

ε

2a

4b5

ε

ε

Etoilea*

1 2

ε

a

ε

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 13 / 25

Page 18: Chapitre 3 Évaluation des expressions régulières et ...

RE → NFA : Exercice 1

Ecrire le NFA de l’expression reguliere

b*ab*ab*

Solution

1 2

ε

b

ε

3a 4

ε

b

ε5a 6

εb

ε

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 14 / 25

Page 19: Chapitre 3 Évaluation des expressions régulières et ...

RE → NFA : Exercice 1

Ecrire le NFA de l’expression reguliere

b*ab*ab*

Solution

1 2

ε

b

ε

3a 4

ε

b

ε5a 6

εb

ε

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 14 / 25

Page 20: Chapitre 3 Évaluation des expressions régulières et ...

RE → NFA : Exercice 2

Ecrire le NFA de l’expression reguliere

((a*|b*)c)*

Solution

1 7

ε

4

ε

ε

3

εaε

6

ε

5

εbε

ε

c

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 15 / 25

Page 21: Chapitre 3 Évaluation des expressions régulières et ...

RE → NFA : Exercice 2

Ecrire le NFA de l’expression reguliere

((a*|b*)c)*

Solution

1 7

ε

4

ε

ε

3

εaε

6

ε

5

εbε

ε

c

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 15 / 25

Page 22: Chapitre 3 Évaluation des expressions régulières et ...

RE → NFA : Exercice 3

Ecrire le NFA de l’expression reguliere

a(bc)?d

≡ a(bc|)d

Solution

1 2a

6

ε

4b 5c

8

ε

9d

7εε

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 16 / 25

Page 23: Chapitre 3 Évaluation des expressions régulières et ...

RE → NFA : Exercice 3

Ecrire le NFA de l’expression reguliere

a(bc)?d ≡ a(bc|)d

Solution

1 2a

6

ε

4b 5c

8

ε

9d

7εε

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 16 / 25

Page 24: Chapitre 3 Évaluation des expressions régulières et ...

RE → NFA : Exercice 3

Ecrire le NFA de l’expression reguliere

a(bc)?d ≡ a(bc|)d

Solution

1 2a

6

ε

4b 5c

8

ε

9d

7εε

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 16 / 25

Page 25: Chapitre 3 Évaluation des expressions régulières et ...

Transformation NFA → DFA

Idee

Simuler en parallele tous les chemins⇒ un etat du DFA ≈ n etats 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

Page 26: Chapitre 3 Évaluation des expressions régulières et ...

Outils sur les NFA

εfermeture(E )

L’ensemble des etats atteignable par 0, 1, ou plusieurstransitions ε a partir d’un etat de E .

trans(E , c)

L’ensemble des etats atteignable par une seule transition c apartir d’un etat de E .

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 18 / 25

Page 27: Chapitre 3 Évaluation des expressions régulières et ...

Outils sur les NFA : Exercice

Soit le NFA

1

4

a

ε

a3a

ε

a a

Determiner F = εfermeture(E ) et T = trans(E , a) pour lesensembles 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

Page 28: Chapitre 3 Évaluation des expressions régulières et ...

Outils sur les NFA : Exercice

Soit le NFA

1

4

a

ε

a3a

ε

a a

Determiner F = εfermeture(E ) et T = trans(E , a) pour lesensembles 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

Page 29: Chapitre 3 Évaluation des expressions régulières et ...

NFA → DFA : AlgorithmeDonnees : Un NFA NResultat : Un DFA D definissant le meme langage que NE = εfermeture(depart(N));ajouter E comme etat de depart de D (sans le marquer);tant que un etat E de D est non marque faire

marquer E ;pour chaque caractere c de l’alphabet faire

F = εfermeture(trans(E , c));si F n’est pas un etat de D alors

ajouter l’etat F a D (sans le marquer);si un element de F est un etat d’acceptation de N alorsF est un etat d’acceptation de D

fin

ajouter la transition Ec→ F a D;

fin

finJean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 20 / 25

Page 30: Chapitre 3 Évaluation des expressions régulières et ...

NFA → DFA : Exercice 1

Transformer en DFA le NFA

1 2

ε

b

ε

3a 4

ε

b

ε5a 6

εb

ε

Solution

1,2

b

3,4a

b

5,6a

b

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 21 / 25

Page 31: Chapitre 3 Évaluation des expressions régulières et ...

NFA → DFA : Exercice 1

Transformer en DFA le NFA

1 2

ε

b

ε

3a 4

ε

b

ε5a 6

εb

ε

Solution

1,2

b

3,4a

b

5,6a

b

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 21 / 25

Page 32: Chapitre 3 Évaluation des expressions régulières et ...

NFA → DFA : Exercice 2

Transformer en DFA le NFA

1 7

ε

4

ε

ε

3

εaε

6

ε

5

εbε

ε

c

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 22 / 25

Page 33: Chapitre 3 Évaluation des expressions régulières et ...

NFA → DFA : Exercice 2

Solution

1,2,

3,4,5,6,7

c2,3,6a

4,5,6

b

c

a

c

b

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 23 / 25

Page 34: Chapitre 3 Évaluation des expressions régulières et ...

NFA → DFA : Exercice 3

Transformer en DFA le NFA

1 2a

6

ε

4b 5c

8

ε

9d

7εε

Solution

12,3,6,

7,8a 9

d

4b

5,8cd

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 24 / 25

Page 35: Chapitre 3 Évaluation des expressions régulières et ...

NFA → DFA : Exercice 3

Transformer en DFA le NFA

1 2a

6

ε

4b 5c

8

ε

9d

7εε

Solution

12,3,6,

7,8a 9

d

4b

5,8cd

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 24 / 25

Page 36: Chapitre 3 Évaluation des expressions régulières et ...

Autres algorithmes pratiques

Minimisation DFA

La meme chose avec moins d’etats

Theoreme : DFA minimum unique

Corollaire : Permet de determiner l’equivalence d’expressionsregulieres

DFAisation paresseuse

Construire et evaluer le DFA en meme temps

Transformation DFA → Expression reguliere

Prouve l’egalite de la classe de langages

Pas forcement utile en pratique

Jean Privat (UQAM) 03—Automate fini INF5000 — Automne 2013 25 / 25