Théorie des langages 2010-2011

July 28, 2017 | Author: nini_karim_1 | Category: Subset, Linguistics, Mathematical Concepts, Rules, Theoretical Computer Science
Share Embed Donate


Short Description

Download Théorie des langages 2010-2011...

Description

Théorie des langages Préparé par O.Diouri et D. Chiadmi Mis à jour par D. Chiadmi Ecole Mohammadia d’Ingénieurs Février 2011

date

Contenu S15 Férié S16 Mer. 23/2/11 Ch1 - Langages : vocabulaire, chaînes, concaténation, langages, expressions régulières Ch2/1- Systèmes de réécriture : grammaires, dérivation, définition des langages, langage engendré par une grammaire

Devoir

Jeu. 24/2/11 Ch2/2- Systèmes de réécriture : Classes de grammaires, formalisme, Arbres de dérivation, Ambiguïté, Décidabilité, Exemple : Grammaires Expr arithmétique S17 Mer. 2/3/11 Jeu. 3/3/11 S18 Mer. 9/3/11 Jeu.10/3/11

Ch3/1 - Automates finis Ch3/2 - Automates finis : Automates déterministes, minimaux Ch4- Langages réguliers et langages d’état fini : automate ⇔ ER Ch5- Définitions des langages par récurrence : langage ⇔ grammaire Ch6 – Automates à piles

Travail à rendre

Remise du devoir

S19 Mer. 19/3/11 Contrôle continu 2

Chapitre 1: Langages 1. Vocabulaire, chaînes 

Vocabulaire ou alphabet : un ensemble fini d’éléments Éléments : lettres, caractères ou symboles // x , ‫ت‬, ۩, ▲, ■ # V : Cardinal du vocabulaire V // V = {۩, ▲, ■} ; # V = 3



Chaîne est une suite éventuellement vide d’éléments d’un vocabulaire // mot ou phrase

Ex : aba est une chaîne de V = {a, b} ۩▲ ۩ ■ est une chaîne de V = {۩, ▲, ■} début x:=1 fin est une chaîne de V = {début, fin, :=, 1, x,’ ‘} Rq : ambiguïté entre chaînes du vocabulaire Ex: V= {a, aa} a aa avec aa a EMI

D. Chiadmi - Théorie des langages – S4 – 2011

3

A. Notations V0 = {ε} où ε est la chaîne vide V1 = V // Si V = {a} alors V1 = {a } V* = ∪ Vi i ≥0 // Si V = {a} alors V* = {ε, a, aa, aaa, …} V+= ∪ Vi i >0 // Si V = {a} alors V+ = {a, aa, aaaa, …} |x| : longueur d’une chaîne x // | ۩▲ ۩ ■ | = 4 Vn : ensemble des chaînes sur V de longueur n B. Sous chaîne u sous chaîne de w si ∃ x, y ∈ V* tel que w = x u y u préfixe de w si x = ε u suffixe de w si y = ε

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

4

C. Opération sur les chaînes Concaténation de x et y notée . donne x.y ou y.x Propriétés : associative - ∀ x, y, z ∈ V* x.(y.z) = (x.y).z admet un élément neutre ε - ∀ x ∈ V* x.ε = ε.x = x 2. Langages



Un langage sur un vocabulaire V est tout sous ensemble de V*



Propriétés : Un langage L est infini ssi ∀n ∈ N, ∃ x ∈ L | |x| > n

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

5

Opérations sur les langages : Soient L, L1, L2 langages sur V ensemblistes - L1 ∪ L2 : réunion L1 ∩ L2 : intersection L1 \ L2 : différence L= V* \ L : complémentaire Concaténation - L1.L2 = {x.y / x ∈ L1 et y ∈ L2} //Associative Puissance

- L0 = {εε} // langage Ø ≠ langage {εε} ∀ n > 0 Ln =L. Ln-1 = L.L…L n fois

Concaténation itérée ou opérateur de Kleene L*= ∪ Ln n ≥ 0 et L+ = ∪ Ln n > 0 {a }* ≅ a* et ε ≅ {εε} // abus de langage EMI

D. Chiadmi - Théorie des langages – S4 – 2011

6

Expression de langage ? • Comment exprimer un langage ? – Si petite taille : donner le vocabulaire et les chaînes le constituant – Si grande taille : (1) donner le vocabulaire , (2) impossible de donner l’ensemble des chaînes formalisme ou système de réécriture : expressions régulières, grammaires EMI

D. Chiadmi - Théorie des langages – S4 – 2011

7

Expression de langage ? Comment reconnaître qu’une chaîne appartient au langage ?

Comment distinguer entre les chaînes du langage et les autres chaînes du vocabulaire V ?

Construction d’un algorithme de reconnaissance du langage

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

8

3.

Expressions régulières

Ø Est une ER décrivant le langage Ø ε

// V : vocabulaire

Est une ER décrivant le langage {εε}

Tout a ∈ V est une ER décrivant le langage {a} Soit r et s 2 ER décrivant le langage R et Salors - r + s est une ER décrivant le langage R ∪ S - r.s est une ER décrivant le langage RS - r* est une ER décrivant le langage R*= ∪ Rn n≥0 Ex: (A+B+…+Z+a+b+…+z).(A+B+…+Z+a+b+…+z+0+1+…+9)* le langage défini par cette ER (valeur de l’expression régulière) est le langage des identificateurs C EMI

D. Chiadmi - Théorie des langages – S4 – 2011

9

Chapitre II. Systèmes de réécriture: grammaires Systèmes de réécriture Grammaires Langages engendrés par une grammaire Formalisme pour définir un langage de programmation Ambiguité

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

10

A- Système de réécriture : Formalisation 1. Définition: S = où S est le système de réécriture , V est un vocabulaire et R un ensemble fini de couples de chaînes sur V (α, β) ∈ R est une règle de réécriture notée : α→β partie gauche partie droite Les règles α → β1 α → β2 ……… α → βk EMI

α → β1 | β2 |…| βk

D. Chiadmi - Théorie des langages – S4 – 2011

11

2. Relations Définition: Relation ρ sur E = toute partie de E × E Pour x, y ∈ E ρ est vraie pour (x, y) SSI (x,y) ∈ ρ

ou x ρ y

Ex: ∅ est la relation partout fausse sur E E × E est la relation partout vraie sur E ιE est la relation unité ou identité sur E = {(x , x) / x ∈E } ( ’=‘ ) Une relation ρ est réflexive si ∀ x∈E xρx et transitive si ∀x,y,z ∈ E

(xρy et yρz) ⇒ xρz

Alors : relation de préordre ρ est symétrique si ∀x,y ∈E xρy ⇒ yρx Une relation de préordre symétrique ⇒ relation d’équivalence antisymétrique ⇒ relation d’ordre partiel EMI

D. Chiadmi - Théorie des langages – S4 – 2011

12

Opérations sur les relations: Les relations étant des parties de E × E : opérations ensemblistes Soient ρ et σ relations sur E

ρ : complémentaire ρ∪σ : réunion ρ∩σ : intersection

(x,y) ∈ ρ ∪ σ SSI xρy ou xσy (x,y) ∈ ρ ∩ σ SSI xρy et xσy x ρ y SSI (x,y) ∉ρ ( non xρy) ρ ⇒ σ SSI ρ ⊆ σ càd ∀ x,y ∈ E

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

xρy ⇒ xσy

13

3. Classes de définitions (description) • Existence de plusieurs classes de définitions qui peuvent être traduites en un algorithme de reconnaissance • Les définitions sont fondées sur des systèmes de réécriture : 1. Automates et machines 2. Grammaires : engendrer toutes les chaînes du langage à partir d’une chaîne donnée « axiome de la grammaire » EMI

D. Chiadmi - Théorie des langages – S4 – 2011

14

B- Grammaire par l’exemple • une phrase est composée d’un sujet suivi d’un verbe suivi d’un complément • Exemple : L’étudiant suit un cours sujet

verbe

complément

• Règle 1 : phrase = sujet verbe complément Ensuite il faut expliquer ce qu’est un sujet , un verbe, un complément • Règle 2 : sujet = article adjectif nom | article nom adjectif |article nom • Règle 3 : article = le | la | un | des | l • Règle 4 : adjectif = malin | stupide | couleur • Règle 5 : couleur = vert | rouge | jaune • Etc. EMI

D. Chiadmi - Théorie des langages – S4 – 2011

15

1. Grammaires formelles (inventé par Noam Chomsky) Définition G = < VT , VN , S , R > où – VT Vocabulaire terminal – VN Vocabulaire non terminal

disjoints



Avec V= VT ∪ VN vocabulaire de la grammaire



S ∈ VN : axiome de la grammaire



R = règles de la grammaire

// Règle de production

Le système de réécriture est défini par < V, R > Convention Non terminaux

Terminaux

Chaîne de T et NT

MAJUSCULE

Minuscule

Lettre grecque

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

16

Exemple 1 • G = ( VT, VN, S, P) avec • VT = { il elle parle est devient court reste sympa vite} • VN= {PHRASE PRONOM VERBE COMPLEMENT VERBETAT VERBACTION } • S = PHRASE • P={ – PHRASE → PRONOM VERBE COMPLEMENT – PRONOM → il | elle – VERBE → VERBETAT | VERBACTION – VERBETAT → est | devient | reste – VERBACTION → parle | court – COMPLEMENT → sympa | vite }

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

17

Exemple 2 Un exemple est fourni par G1 (syntaxe possible) : E T F

→ E+T | E-T |T → T*F | T/F |F → num | id

E, T, F : non terminaux (VN) définis par des règles de productions (R_P) +, -, *, /, num,id : terminaux (VT) E : symbole de départ (axiome) de la grammaire. R : Règles Pb : Trouver les phrases de L(G1) : Dérivation EMI

D. Chiadmi - Théorie des langages – S4 – 2011

18

2. Relations de dérivation dans un système de réécriture Soient S = et x, y ∈ V* ; on note ⇒ une relation sur V* ∈ V* × V* tels que x ⇒S y ou x ⇒R y x se réécrit direct en y ssi ∃ (α → β) ∈ R / x = uαv et y = uβv x ⇒R y plusieurs règles de R permettent de réécrire x en y x ⇒n y en appliquant n règles x ⇒* y en appliquant un nb qq de règles évent. nul x ⇒+ y en appliquant un nb non nul de règles Remarques 1. x ⇒0 y ssi x = y 2. La donnée d’une dérivation ne permet pas toujours de retrouver les règles de réécriture appliquées. // règles de production EMI

D. Chiadmi - Théorie des langages – S4 – 2011

19

Grammaires : reconnaissance 2.

Langage engendré par une grammaire = L(G) • Ensemble des chaînes sur VT que l’on peut dériver de l’axiome S = {x ∈ VT* / S ⇒*R x}



G1⇔ ⇔ G2 si L(G1) = L(G2)



L(G1) ??

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

20

Langage engendré par une grammaire



L(G) est l’ensemble des chaînes sur VT que l’on peut dériver de l’axiome S = {x ∈ VT* / S ⇒*R x}

E



G1⇔ ⇔ G2 si L(G1) = L(G2)



L(G1) ??

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

/ \ E T | / \ T T F | | | F F | | id + num* id 21

3. Classes de grammaires

- Grammaires de type 3 (régulière) : Une grammaire est de type 3 si elle est soit linéaire à gauche, soit linéaire à droite. Exemple1:

• Grammaire linéaire à droite si A → aB avec A, B ∈VN et a ∈ VT* S → aS | T | abU |cc T → cT | ε * A → a avec A ∈VN et a ∈ VT U → abS • Grammaire linéaire à gauche si A → Ba avec A,B ∈VN et a ∈ VT* A → a avec A ∈VN et a ∈ VT* EMI

D. Chiadmi - Théorie des langages – S4 – 2011

Exemple 2 S → aS |bS | ε Équivalent à (a|b)*

22

Classes de grammaires (suite) Grammaires de type 2 // hors contexte A → ω avec A∈VN et ω∈V* Langage de Dick : S → ( S ) S | ε

Les grammaires hors contexte sont utilisées pour définir la syntaxe de la plupart des langages de programmation

Grammaire de type 1

// sous-contexte αAβ → αωβ où α, α β∈V β∈ *, A∈V ∈ N et ω∈ V+

Langage de correspondance entre paramètres formels et effectifs L = {an bm cn dm, n ≥ 1, m ≥ 1}

Rqs : A → ε est une ε - règle A → B avec B ∈ VN est une 1-règle

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

23

restrictif

Remarques Type 1 : SC

-

Type 2 : HC Type 3 : Régulier

+ Propriété : Les grammaires de type 1 englobent les grammaires de type 2 qui englobent les grammaires de type 3.

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

24

Problèmes décidables et indécidables Un pb est dit décidable pour G s’il ∃ un alg qui calcule la réponse (oui ou non) au un pb posé indécidable dans le cas contraire.

. Exemple de problème de décidabilité L(G) est-il vide? L(G) = langage régulier ? L(G) est-il infini? Un mot ∈ ou ∉ L(G) ? récursivité L(G) = VT* ? Equivalence L(G1) = L(G2) ? … EMI

D. Chiadmi - Théorie des langages – S4 – 2011

25

4. Choix d’un formalisme pour définir un langage de programmation Formalisme ou type de grammaire selon les critères suivants: 1.

Doit être suffisamment puissant pour contenir une définition du langage

2.

Suffisamment simple pour que chaque définition puisse être compilée en un algorithme efficace de reconnaissance des programmes du langage défini

3.

Doit contenir une définition du langage concise et facile à comprendre

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

26

Formalisme (suite) Critère 1exclut les grammaires régulières • Parenthèses à grande profondeur • Structures de blocs Mais peut être utilisée pour la lexicographie des langages de programmation (identificateurs, constantes)

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

27

Formalisme (suite) Critère 2 exclut les grammaires générales qui engendrent des langages non récursifs // un langage est dit récursif ⇔ si ∀ x chaîne de V, ∃ algorithme qui décide oui ou non x ∈ langage

• Pas d’algorithme de reconnaissance efficace La plupart des langages de programmation sont définis par des grammaires hors contexte

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

28

4. Arbres de dérivation (AD) Un AD pour une séquence x ∈VT* selon G est un arbre de dérivations E / \ E T - La racine : étiquetée par l'axiome, | / \ - Les feuilles : étiquetées par les T ou ε T T F - Un noeud intérieur n étiqueté par A (NT) a | | | - k fils étiquetés de ghe à dte par N1,N2,...,Nk si A → N1N2...Nk ∈P 2- un fils étiqueté par ε si A→ε ∈ P

F F | | id + num* id

- x : concaténation des étiquettes des feuilles gauche à droite

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

29

Arbres de dérivation : exemple Soit la grammaire suivante avec σ comme axiome : V = {a,b} R = {σ → aσb , σ → ab} σ

σ

a σ b a

a

b

b

L(G) = {an bn / n ∈N*} Pour tout w ∈V* w ∈L(G) ⇔ ∃n ∈N*/ w = anbn

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

30

G0 = ( VN, VT, E , P); VN = {E} ; 5. Ambiguïté



VT = {+,∗ ∗,(,),id, num} Une grammaire hors contexte + Eambiguë | E ∗ E (E) | une id | num } G =< VT , VPN = , S{, RE >→ estEdite s’il| existe chaîne terminale admettant au moins deux arbres de dérivation de racine S

E

E / \ E E | / \ | E E | | | id + num* id EMI

E

\ E

/ \ E E | | id + num * id

D. Chiadmi - Théorie des langages – S4 – 2011

Pb : l’AD influe sur la sémantique ⇒ choix unique

31

Ambiguïté

un langage hors contexte est ambiguë si toutes les grammaires hors contexte qui l’engendrent sont ambiguës

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

32

Élimination des ambiguïtés par réécriture de G 1- en imposant des délimiteurs 2-en séparant un non terminal E en deux Solution1 : délimiteur (par un terminal) • Ex1 : – I → Si E alors I | Si E alors I sinon I | autre – I → Si E alors I finsi| Si E alors I sinon I finsi| autre

• Ex2 : – E → E+E|E-E |E*E| (E) | id | num – E → (E+E)|( E-E) |(E*E)| (E) | id | num EMI

D. Chiadmi - Théorie des langages – S4 – 2011

33

Élimination des ambiguïtés par réécriture de G solution2 : - Séparer I en 2 NT I-close et I-nclose : I entre alors et sinon doit toujours être close I → IC | InC //I-close | I-nclose IC → si E alors IC sinon InC | autre InC → si E alors I |si E alors IC sinon InC

- Séparer les niveaux de priorités - E→E+T|E-T|T - T→T*E|F - F →(E) | num | id EMI

D. Chiadmi - Théorie des langages – S4 – 2011

34

Chapitre III. Automates finis I. Définition: C’est un quintuplet (Q, V, δ , I, F) où Q ensemble fini d’états V ensemble fini de symboles = vocabulaire de l’automate δ sous ensemble de Q x V∪ ∪{εε}x Q = ens de transitions I ⊂ Q sous ensemble d ’états initiaux F ⊂ Q sous ensemble d ’états finaux (finals)

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

35 35

transition (p,a,q) transition où p,q ∈Q et a ∈ V

= a-transition a

p : origine Q : extrémité

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

p

q

36

Quelques définitions • Tout automate peut être dessiné comme suit: a p

q a,b

p

Signifie que (p,a,q) et (p,b,q) ∈ δ

q

Marque un état initial

p p

EMI

ou

Signifie que (p,a,q) ∈ δ

p

Marque un état final

D. Chiadmi - Théorie des langages – S4 – 2011

37

• Entrée : ER r sur V • Sortie : AFND • Méthode: Décomposer r en sous expressions 1- r

r

q

2- r|s

s

q

r

3- rs

q

f

r

q1 s

f f

4- r*

r

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

38

Exemple • Soit 1 AFND reconnaissant des nombres réels xx..xExx ou xx…x.xx…x • ∑ = {0, ... , 9, ., E} ch

ch ch

ch E . ch

. ch

EMI

ε

ch ch

D. Chiadmi - Théorie des langages – S4 – 2011

39

Quelques définitions (suite) • Chemin Un chemin de A de longueur n = suite de transitions de δ / (ri , ai+1 , r i+1) pour 0≤ i ≤ n a1 …an = trace du chemin

Par convention, un chemin de longueur 0 est la transition (p,ε,p)

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

a1 …an r0

rn

ε p

40

Quelques définitions (suite) • Mot : un mot x est reconnu par un automate s’il existe une trace x menant d’un état initial à un état final

• Langage : Soit A un automate, L(A) ={ des mots reconnus par l’automate A } L(A) = le langage reconnu par A Un langage reconnu par un automate fini de vocabulaire V est appelé langage d’états fini sur V EMI

D. Chiadmi - Théorie des langages – S4 – 2011

41

Propriétés 1. 2 automates A et B sont équivalents s’ils ont le même vocabulaire et reconnaissent le même langage. 2. Soient A = (Q, V, δ , I, F) un automate fini ; x, y ∈ V*, p, q deux états de A et a ∈ V - Un chemin mène de p à q avec la trace xy ⇔ ∃ un état r p

x

y

r et

r

q

- a est un chemin de p à q ⇔ ∃ r, s ∈Q / ε p

s

r chemin

ε

a transition

q chemin

a p

q chemin

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

42

Automates déterministes Un AFD est un cas particulier d'un AFND où : – Il y a un unique état initial – Aucun état n'a de ε-transition – ∀(q,a), q∈Q & a∈V, ∃ au + un état successeur On note δ(p,a) ∼ l’unique état q / (p,a,q) ∈ δ Q x V → Q fonction de transition Exemple 0

0

1 impair

pair

État initial = état final

1 EMI

D. Chiadmi - Théorie des langages – S4 – 2011

43

Propriétés Soit A= (Q,V, δ ,q0, F) automate fini déterministe 1. Pour tout état p et toute chaîne x,

2.

x δ (p,x) = q ⇔ ∃ un chemin p → q trace L(A) = {x ∈ V* / δ(q0, x) ∈ F} Preuve: utiliser la propriété 1

3.

Pour tout état p et toutes chaînes x,y δ (p,xy) = δ (δ (p,x) ,y) Preuve: par récurrence sur la lg de y

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

44

Propriétés (suite) Définition 2 - p est accessible pour A ⇔ il y a une chaîne x sur V | p = δ(q0,x) -un automate déterministe est dit initialement connecté si tous ses états sont accessibles 4.

Soit R l’ensemble des états accessibles de A B = (R,V, η , q0, R∩F) est l’automate obtenu en supprimant les états inaccessibles. η = δ ∩ (R x V x R)

Automate déterministe ⇔ A et B initialement connecté EMI

D. Chiadmi - Théorie des langages – S4 – 2011

45

Automate déterministe: construction Théorème 2 Un langage reconnu par un AFND est aussi reconnu par un AFD

Pb :

EMI

AFND

?

AFD

D. Chiadmi - Théorie des langages – S4 – 2011

46

AFD Construction (suite)

Soit A = (Q, V, ∆, q0, F) AFND, Définition1 : { ε-succs} de – q ∈ Q : ε-succs(q) ε = { p | (q,ε,p) ε } – S ⊆ Q : ε-succs(S) = ∪q∈S ε-succs(q)

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

47

AFD Construction (suite)

Définition2 : L’AFD B=(Q', V, η, q’0 ,F'), équivalent à A, est défini par : – Q' ⊆ P(Q) , l'ensemble des parties de Q – q'0 = ε-fermeture (q0) – F' = {S ⊆ Q| S ∩ F ≠ ∅ } – η (S,a) = ε- fermeture {p |(q,a,p) ∈∆, q∈S} , ∀ a ∈V

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

48

Exple : d’un AFND à un AFD 1.

2.

3. 4. 5.

Partir de ε-succs de l’état initial Rajouter dans la relation de transition toutes les fermetures des nouveaux états produits avec leurs transitions Recommencer jusqu’à ce qu’il n’y ait plus de nouvel état Tous les états contenant au moins un état terminal deviennent terminaux Renuméroter alors les états

EMI

état a b

c

ε

0

2 -

0

1

1

3 4

-

-

2

- -

1,4 0

3

- 1

-

-

4

- -

3

2

D. Chiadmi - Théorie des langages – S4 – 2011

49

Exple : d’un AFND à un AFD état a b 0 1 2 3 4

2 3 4 - - 1 - -

c 0 -

ε

état

a

1

0,1

2,3,0 2,4

0,1

-

2,3,0

2,0

1

1,4,2

2,4

-

-

1,4,3,2

2,0

2,0

-

1,4,0

1

3

4,2

-

1,4,2

3

4

1,3,4,2

1,4 0 3

2

ε-fermeture(0) = {0,1}

1,4,3,2 3

b

c

1,4,2 1,3,4,2

g({0,1},a) = ε-ferm{2,3}= {2,3,0} g({0,1},b) = ε-ferm {4} = {2,4} g({0,1},c) = ε-ferm {0} = {0,1}

1,4,0

2,3,0 4,2

3,0,1

3

-

1

-

4

-

-

3

g({2,3,0},a) = ε-ferm{2} = {2,0} g({2,3,0},b) = ε-ferm{1}= {1} g({2,3},c) = ε-ferm{1,4}= {1,4,2}

3,0,1

2,3,0 1,4,2 0,1

EMI

état a

b

c

0’

1’ 2’ 0’

1’

3’ 4’ 5’

2’

-

-

6’

3’

3’ -

7’

4’

8’ 2’ -

5’

8’ 9’ 6’

6’

8’ 5’ 6’

7’

1’ 2’ 10’

8’

-

4’ -

9’

-

-

8’

10’ 1’ 5’ 0’

Etc.

D. Chiadmi - Théorie des langages – S4 – 2011

50

Algorithme : De l’AFND à l’AFD q'0 := ε-fermeture(q0) ; Q' := {q'0} ; marque(q'0) := faux ; δ := ∅; Tantque (∃ S ∈ Q') & ( non marque (S)) faire marque(S) := vrai ; pour tout a ∈ V faire T := ε-fermeture({p∈Q | (q,a,p) ∈ δ & q ∈ S}); si T ∉ Q' alors Q' := Q' U {T} ; /* nouvel état*/ marque(T) := faux ; fsi η := η ∪ {(S,a) → T} /*nouv. trans.*/ fpour ftq fin. EMI

D. Chiadmi - Théorie des langages – S4 – 2011

51

Exercices Donnez un automate fini déterministe reconnaissant chacun des langages suivants : 1. Les mots contenant au moins deux ‘a’ consécutifs sur l’alphabet {a,..,z} 2. ((a+b) a)* sur le vocabulaire {a,b} 3. (0+1)*0 sur le vocabulaire {0,1}

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

52

Exercices (suite) • Donner intuitivement une expression régulière pour chacun des langages suivants: • L1= {l’ensemble des mots sur l’alphabet {a, b, c} telle que « jamais de ‘b’ avant la première occurrence de ‘a’ »}. Un mot sans ‘a’ ou un mot sans ‘b’ fait partie de L1. • L2= {l’ensemble des mots sur l’alphabet ASCI commençant par /* et se terminant par */, et sans */ entre les deux} EMI

D. Chiadmi - Théorie des langages – S4 – 2011

53

Exercices (suite) Le système d’immatriculation marocain est composé de 3 champs consécutifs : Compteur Série région Ex : 125 ‫أ‬ 25 Avec - Compteur entre 1 et 999999 - Série ∈ { ‫ أ‬,‫ ب‬, ‫} س‬ - Région entre 1 et 76 Ecrire un automate qui décrit un tel langage. EMI

D. Chiadmi - Théorie des langages – S4 – 2011

54

Exercice (grammaire) Soit la grammaire des expressions arithmétiques avec ‘+’ et ‘*’ : G = (Vt, Vn, R, Exp), telle que : Vt = {(, ), +, *, num} Vn = {Exp} R= {Exp  num Exp  ( Exp ) Exp  Exp + Exp Exp  Exp * Exp} 1. Donner quelques mots générés par G 2. Donner un arbre de dérivation pour la chaîne « num + num * num » L’arbre est-il unique? Que peut on dire de G et du langage engendré par G? Justifier. 1. En général, on peut avoir plusieurs grammaires générant le même langage. 2. Proposer une grammaire équivalente à G

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

55

Chapitre IV.Automates minimaux Définition : Un automate déterministe A est minimal si tout automate déterministe équivalent à A comporte au moins autant d’états que A Soit A= (Q, V, δ ,q0, F) automate fini déterministe • Deux états p,q de A sont équivalents: p ≡A q si ∀ x ∈V* : δ (p, x) ∈ F ⇔ δ(q, x) ∈ F • ∀ x ∈V* p ≡ q ⇒ δ (p,x) ≡ δ(q,x)

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

56

Soit µ(A)= (R, V, η, [q0], G) Où • R: ens des classes d’équivalence de la relation ‘≡’ • G: ens des classes d’équivalence des états de F • [a] : classe d’≡ de a pour la relation ‘≡’ • η([p],a) = [δ(p,a)] pour ∀a∈V , ∀p∈Q

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

57

Proposition Si A automate déterministe initialement connecté, alors µ(A) est un automate déterministe ≡ A, initialement connecté et tous ses états sont 2à2 non équivalents. ⇒ • ∀x∈V* ,∀p∈Q : η([p],x) = [δ(p,x)] • p∈ F ⇔ [p] ∈ G • L(A) = L(µ(A)) • µ(A) est initialement connecté

Corollaire Si A automate déterministe minimal alors A est initialement connecté et ses états sont 2à2 non équivalents Propriété caractéristique des automates minimaux EMI

D. Chiadmi - Théorie des langages – S4 – 2011

58

Théorème 1 A.I.C. et tous ses états sont 2à2 non ≡ts A.D.M. ⇔ ⇒ Théorème 2: Existence d’un automate minimal ≡ à un automate donné Si A automate déterministe et B l’automate obtenu sans les états inaccessibles de A Alors µ(B) est minimal et ≡ à A Théorème 3: Si 2 automates déterministes sont ≡ts et minimaux alors ils sont isomorphes Unicité de l’automate minimal

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

59

Construction d’un automate minimal équivalent à un automate donné (1) Soit A= (Q,V, δ ,q0,F) 1. Enlever les états inaccessibles de A ⇒ B = (R, V, η, q0, G) 2. Calculer la congruence ‘≡’ pour B : p,q∈Q p ≡ q ssi ∀x∈V* η(p,x) ∈ G



η(q,x) ∈ G

3. Construire l’automate µ(B)= (S, V, θ, [q0], H) EMI

D. Chiadmi - Théorie des langages – S4 – 2011

60

Construction d’un automate minimal équivalent à un automate donné (2) Où • S ens des classes de la relation ‘≡’ • H ens des classes des états de G • θ([p],a) θ = [η(p,a)] η ∀ ∈ , ∀p∈R ∀a∈V ∀ ∈ • ≡k (où k ≥ 0) relation sur R : p ≡k q ⇔ ∀x∈V* / |x|≤ k η(p,x) ∈ G

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

⇔ η(q,x) ∈ G

61

Nous avons les propriétés suivantes (3) 1. 2.

∀ k ≥ 0 ‘≡k’ est une relation d’équivalence ≡ = ∩ ≡k k≥0

3. 4.

∀k≥0 ≡k+1 ⊆ ≡k p ≡0 q ssi p∈G ⇔

5. ∀ k ≥ 0 p ≡k+1 q

q∈ G

ssi p ≡k q et ∀a∈V / η(p,a) ≡k η(q,a)

6.

Si n est le nb d’états de l’automate B alors ∃ k≤n / ‘≡k’ = ‘≡k+1’ = ‘≡’

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

62

Règle générale (4) Pour construire la relation ‘≡’ : • On calcule à partir de l’indice 0 la suite des relations ‘≡k’ ((4) et (5)) jusqu’au premier indice m tel que : ‘≡m’ = ‘≡m+1’ qui est donc ‘≡’ • exemple

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

63

Pour tout e ∈ V e 1

2

r

1 ε 1′ 1 ε

r

2

ε 3

1 ′′

2′

s

ε 1

2

ε 1’

1 ε

EMI

2

r

2

1′

2

1’’ ε

ε des langages – S4 – 2011 D. Chiadmi - Théorie

64

Tout langage d’états fini sur V est un langage régulier sur V Définition : système d’équation associé à un automate fini • A = (Q,V, δ, I, F) automate fini • q1, .. , qn liste sans répétition des états de A • αi,j = { a ∈ V∪{ε} / (qi, a, qj ) ∈ δ 1 ≤ i,j ≤ n } • x1, .. , xn : n variables non éléments de V Le système d’équations sur V pour 1 ≤ i ≤ n n

xi = ε + ∑ αi,j xj

si qi ∈ F

j=1 n

xi = ∑ αi,j xj

si qi ∉ F

j=1

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

65

Ce système a pour plus petite solution : • x1= L(A1), .. , xn= L(An) pour 1 ≤ i ≤ n Ai = (Q,V, δ, qi, F) Théorème Si α,β deux langages sur V et x ∉ V alors: x = α.x +β admet comme plus petite solution x=α α *β Ex: si x=L ⇒ α*β ⊆ L Un langage d’états fini sur V SSI un langage régulier sur V L = L(A) = ∪ L(Ai) = ∪ langages réguliers = régulier i∈I

i∈I

Exemple: EMI

D. Chiadmi - Théorie des langages – S4 – 2011

66

Chapitre VI Définition des langages par récurrence Rappels G = < VT , VN , S , R > grammaire = ens de règles de production où • VT Vocabulaire terminal • VN Vocabulaire non terminal Avec V= VT ∪ VN vocabulaire de la grammaire • S ∈ VN : axiome de la grammaire • R : règles de la grammaire But : Étant donnée une grammaire G, définir par récurrence le langage L(G) engendré par G et réciproquement. EMI

D. Chiadmi - Théorie des langages – S4 – 2011

67

Exemples Soit G la grammaire suivante: VT= {a,b} VN= {s, x, y} R={s  ay, y  bs, y  ayy, y  b, s  bx, x  as, x  bxx, x  a } Pb: recherche du langage engendré par cette grammaire L(G) Ex: w= ababab, bbbaabaa Par récurrence: ab, ba, aabb, abab, abba, baba, baab,… On peut montrer: S * w ssi |w|a= |w|b y * w ssi |w|b= |w|a +1 x * w ssi |w|a= |w|b +1 EMI

D. Chiadmi - Théorie des langages – S4 – 2011

68

Réciproquement: Étant donné un langage, on cherche une grammaire qui l’engendre • Exemple 1: Soit L= {w∈ {a,b}* / bb non facteur de W } On construit l’automate correspondant :

a

b X

S a

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

R=

S S X S X

aS bX aS 1 1

69

• Exemple2 : Soit L= {w∈ {a,b}* / |w|a= 2|w|b } On a : aab a2nbn baa bna2n aba w1w‘w2 avec w1w2 ∈ L et w‘∈ {aab, aba, baa } Soit S SaSaSbS S SaSbSaS R= S SbSaSaS S 1

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

70

Chapitre V Langages d’états finis et langages réguliers Tout langage régulier sur V est un langage d’états finis sur V Définition 1 • e : expression régulière sur V • λ(e) = langage sur V = valeur de e • V (e) = nb d’occurrences de signes dans e Définition 2 Un automate fini est simple s’il n’admet qu’un état initial et qu’un état final et aucune transition n’a comme extrémité l’état initial ni comme origine l’état final EMI

D. Chiadmi - Théorie des langages – S4 – 2011

71

Propriété 1 Si e expression régulière sur V alors il ∃ α≥2 et un automate simple A= ({1..α}, V, δ, {1}, {α}) qui reconnaît le langage λ(e) Preuve V (e)= 0 ⇒ e=∅ 1

EMI

ou

e ∈ V∪{ε}

2

D. Chiadmi - Théorie des langages – S4 – 2011

1

e

2

72

Preuve (suite) V (e)= x ⇒ e = f * ou e= f+g ou e=f.g avec f, g expressions régulières sur V et V (f), V (g)≤x • Si e = f * ⇒ C = ({1..α+1}, V, ξ, {1}, {α+1}) C reconnaît λ(e) et L(A)* = L(C) • Si e = f + g ⇒ L(A) ∪ L(B) = L(C) où C = ({1..α+β-2}, V, ξ, {1}, {α+β-2}) • Si e = f . g ⇒ L(A) . L(B) = L(C) où C = ({1..α+β-1}, V, ξ, {1}, {α+β-1})

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

73

Pour tout e ∈ V e 1

2

r

1 ε 1′ 1 ε

r

2

ε 3

1 ′′

2′

s

ε 1

1’

1 ε

EMI

2

r

2

2

1′

2

1’’ ε

D. Chiadmi - Théorie des langages – S4 – 2011

74

Exemple si e = f * Le langage 010 est reconnu par l’automate simple: 1

0 p

0 s

r

q

Le langage (010)* est reconnu par l’automate simple: 1 s

r 0

0 p0

EMI

ε

D. Chiadmi - Théorie des langages – S4 – 2011

p

ε

q

75

Si e = f + g ⇒ L(A) ∪ L(B) = L(C) Exemple: Le langage 0* est reconnu par l’automate simple : p

0 q

ε

r

ε

Le langage 101 est reconnu par l’automate simple : 0

1 p

r

q

t 0

1 r

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

ε

q

ε

s

0

Le langage 0* + 101 est reconnu par l’automate simple:

p

1

1 s 76

Si e = f . g ⇒ L(A) . L(B) = L(C) Exemple: Le langage (0+1)* est reconnu par l’automate simple p

ε

0,1 q

r

ε

Le langage 00 est reconnu par l’automate simple 0

0 p

q

r

Le langage (0+1)*00 est reconnu par l’automate simple 0,1 0

0 p

EMI

ε

q

ε

r

s

D. Chiadmi - Théorie des langages – S4 – 2011

t

77

Tout langage d’états fini sur V est un langage régulier sur V Définition : système d’équation associé à un automate fini • A = (Q,V, δ, I, F) automate fini • q1, .. , qn liste sans répétition des états de A • αi,j = { a ∈ V∪{ε} / (qi, a, qj ) ∈ δ 1 ≤ i,j ≤ n } • x1, .. , xn : n variables non éléments de V Le système d’équations sur V pour 1 ≤ i ≤ n n

xi = ε + ∑ αi,j xj

si qi ∈ F

j=1 n

xi = ∑ αi,j xj

si qi ∉ F

j=1

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

78

Ce système a pour plus petite solution : • x1= L(A1), .. , xn= L(An) pour 1 ≤ i ≤ n Ai = (Q,V, δ, qi, F) Théorème : Si α,β deux langages sur V et x ∉ V alors: x = α.x +β admet comme plus petite solution x=α α *β Ex: si x=L ⇒ α*β ⊆ L Un langage d’états fini sur V SSI un langage régulier sur V L = L(A) = ∪ L(Ai) = ∪ langages réguliers = régulier i∈I

i∈I

Exemple: traité en cours EMI

D. Chiadmi - Théorie des langages – S4 – 2011

79

Exemple: Soit l’automate A

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

80

Solution du système d’équations: Langage reconnu par l’automate A

Notation: | = +

EMI

D. Chiadmi - Théorie des langages – S4 – 2011

81

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF