ր - linguist.univ-paris-diderot.framsili/Ens12/pdf/cor-li3242-1.pdf · longueur 0 : ε; longueur 2...

3
Universit´ e Paris Diderot – LI 3242 – 11/12 corrig´ e C.C. n˚1 1. Soit Σ= {a, b, c}. (a) Proposer un automate d´ eterministe (pas n´ ecessairement complet) qui reconnaˆ ıt le langage sur Σ de tous les mots qui comprennent un nombre de lettres multiple de 3 et qui se terminent par c. (b) Proposer un automate d´ eterministe (pas n´ ecessairement complet) qui reconnaˆ ıt le langage sur Σ de tous les mots de longueur sup´ erieure ou ´ egale `a deux qui commencent et se terminent par la mˆ eme lettre. (a) La deuxi` eme condition exclut le mot vide, le langage en question peut donc ˆ etre d´ efini : {u Σ / |u| =3n, n > 0, et t.q. u = vc, c Σ,v Σ } (b) {u Σ / |u|≥ 2 et u = ava ou u = bvb ou u = cvc, v Σ }. 1 2 3 4 a,b,c a,b,c c a,b a,b,c a b a b,c b a,c c c a,b b,c a,c a,b a b c 2. Soit l’automate suivant. Appliquez l’algorithme de McNaughton & Yamada pour proposer une ex- pression rationnelle caract´ erisant le langage reconnu. a b c 1 2 1 2 2 1 La premi` ere ´ etape donne l’automate g´ en´ eralis´ e (a), puis on supprime l’´ etat 1 (au hasard), ce qui donne la version (b), et enfin on supprime l’´ etat 2, ce qui donne l’expression (c) (a) ր 1 2 F I ε 1 c a 2 c b ε (b) ր 2 F I ∅| /// ∅| /// ε.c .a ε.c .//////// 2 b | ε c.c .a c.c ./////// (c) ր F I |∅ //// c a(b|cc a) 3. Soit la grammaire alg´ ebrique G : A aAb | AA | bAa | ε. (a) Donner des mots de L(G) de longueur 0, 2, 4. longueur 0 : ε ; longueur 2 : ab, ba ; longueur 4 : abba, aabb, baba,... (b) Tout mot commen¸ cant par a se termine-t-il par b ? Non, ` a cause de la r` egle A AA, on peut produire a n b n b k a k . (c) Quel est le langage engendr´ e par G ? On demande juste une caract´ erisation intuitive. L(G) est le langage de tous les mots contenant autant de a que de b. Cela peut se emontrer en faisant une r´ ecurrence sur le nombre de a et de b des proto-mots (r´ ecurrence sur les ´ etapes de d´ erivation). (d) Soit le mot u = aabbbaab. Donner pour u une d´ erivation droite, une d´ erivation gauche, et un arbre syntaxique. erivation gauche (parmi d’autres) : A AA AAA aAbAA aaAbbAA aabbAA aabbbAaA aabbbaA aabbbaaAb aabbbaab erivation droite (mˆ eme analyse) : A AA AaAb Aab AAab AbAaab Abaab aAbbaab aaAbbbaab aabbbaab A ✟✟ A A ✟✟ a A a A ε b b A a A ε b A a A ε b

Transcript of ր - linguist.univ-paris-diderot.framsili/Ens12/pdf/cor-li3242-1.pdf · longueur 0 : ε; longueur 2...

Universite Paris Diderot – LI 3242 – 11/12 corrige C.C. n 1

1. Soit Σ = {a, b, c}.

(a) Proposer un automate deterministe (pas necessairement complet) qui reconnaıt le langage sur

Σ∗ de tous les mots qui comprennent un nombre de lettres multiple de 3 et qui se terminent

par c.

(b) Proposer un automate deterministe (pas necessairement complet) qui reconnaıt le langage sur

Σ∗ de tous les mots de longueur superieure ou egale a deux qui commencent et se terminent

par la meme lettre.

(a) La deuxieme condition exclut le mot vide, le langage en question peut donc etre defini :

{u ∈ Σ∗ / |u| = 3n, n > 0, et t.q. u = vc, c ∈ Σ, v ∈ Σ∗}

(b) {u ∈ Σ∗ / |u| ≥ 2 et u = ava ou u = bvb ou u = cvc, v ∈ Σ∗}.

1 2

3

4

a,b,c

a,b,c

c

a,b

a,b,c

a

b

a

b,cb

a,c

cc

a,b

b,c

a,c

a,b

a

b

c

2. Soit l’automate suivant. Appliquez l’algorithme de McNaughton & Yamada pour proposer une ex-

pression rationnelle caracterisant le langage reconnu. a b c

→ 1 2 1← 2 2 1

La premiere etape donne l’automate generalise (a), puis on supprime l’etat 1 (au hasard), cequi donne la version (b), et enfin on supprime l’etat 2, ce qui donne l’expression (c)

(a)ր 1 2 FI ε ∅ ∅1 c a ∅2 c b ε

(b)ր 2 FI ∅ |/// ∅ |///

ε.c∗.a ε.c∗.∅////////

2 b | εc.c∗.a c.c∗.∅///////

(c)ր FI | ∅////

c∗a(b|cc∗a)∗.ε

3. Soit la grammaire algebrique G : A→ aAb | AA | bAa | ε.

(a) Donner des mots de L(G) de longueur 0, 2, 4.

longueur 0 : ε ; longueur 2 : ab, ba ; longueur 4 : abba, aabb, baba, . . .(b) Tout mot commencant par a se termine-t-il par b ?

Non, a cause de la regle A → AA, on peut produire anbnbkak.(c) Quel est le langage engendre par G ? On demande juste une caracterisation intuitive.

L(G) est le langage de tous les mots contenant autant de a que de b. Cela peut sedemontrer en faisant une recurrence sur le nombre de a et de b des proto-mots (recurrencesur les etapes de derivation).

(d) Soit le mot u = aabbbaab. Donner pour u une derivation droite, une derivation gauche, et un

arbre syntaxique.

Derivation gauche (parmi d’autres) :A → AA → AAA → aAbAA → aaAbbAA → aabbAA →aabbbAaA→ aabbbaA→ aabbbaaAb→ aabbbaab

Derivation droite (meme analyse) :A→ AA→ AaAb→ Aab→ AAab→ AbAaab→ Abaab→aAbbaab→ aaAbbbaab→ aabbbaab

A

��

��

HH

HH

A

���

HHH

A

���

HHH

a A

��

HH

a A

ε

b

b

A

��

HH

a A

ε

b

A

��

HH

a A

ε

b

Universite Paris Diderot – LI 3242 – 11/12 corrige C.C. n 1

(e) La grammaire G est-elle ambigue ? Justifier.

Oui, la grammaire est ambigue, ce qui est facile a demontrer : il suffit de trouver un motqui est produit par deux derivations gauches differentes (ou qui a deux arbres syntaxiquesdifferents). En voici un : ababab (l’arbre syntaxique est legerement simplifie).

A

��

��

HH

HH

A��PP

aεb

A

���

HHH

A��PP

aεb

A��PP

aεb

A

��

��

HH

HH

A

���

HHH

A��PP

aεb

A��PP

aεb

A��PP

aεb

4. Soit la grammaire S → aXS | bY S | dX → Y caX | eY → Xbb | bY | d

(a) Representer l’« arbre d’exploration » d’une analyse descendante du mot u = aebdd. On ne

demande pas de detailler toutes les branches.

L’arbre contient plusieurs branches infinies, car la grammaire est recursive gauche. Lesdeux branches notees « echecs » comprennent des parties infinies si on applique l’algo-rithme standard qui compare les prefixes terminaux.

(S, aebdd)

��

��

��

��

��

HH

HH

HH

HH

HH

(aXS, aebdd)(XS, ebdd)

��

��

��

��

��

HH

HH

HH

HH

HH

(Y caXS, ebdd)

��

��

��

HH

HH

HH

(XbbY caXS,

ebdd)�

�P

P

echecs. . .

(bY caXS,

ebdd)

×

(dcaXS,

ebdd)

×

(eS, ebdd)(S, bdd)

��

��

��

��

HH

HH

HH

HH

(aXS, bdd)

×

(bY S, bdd)(Y S, dd)

��

��

��

HH

HH

HH

(XbbS, dd)�

�P

P

echecs. . .

(bY S, dd)

×

(dS, dd)(S, d)

��

���

HH

HH

H

(aXS, d)

×

(bY S, d)

×

(d, d)

(ε, ε)

(d, bdd)

×

(bY S, aebdd)

×

(d, aebdd)

×

Si on ne fait pas figurer les transitions qui aboutissent directement a une paire (xα, yβ),avec x 6= y (x, y terminaux, α et β quelconques), cela simplifie l’arbre de facon impor-tante : cf. figure 1, gauche.

(b) Proposer une grammaire equivalente sous forme de Greibach qui reconnaisse le meme langage

(il peut etre necessaire de passer par plusieurs etapes).

La grammaire etant recursive gauche (indirecte), il faut d’abord la derecursiver avantde la traduire en forme de Greibach.Le probleme de recursivite vient des regles de la forme X → Y α et Y → Xβ. Onremplace les regles X → Y α par des regles ou Y est « developpe » (un autre ordreaurait ete possible).Au lieu de X → Y caX | e, on aura donc : X → XbbcaX | bY caX | dcaX | e.

Universite Paris Diderot – LI 3242 – 11/12 corrige C.C. n 1

Cela donne une regle avec recursivite directe, qu’on va transformer en :X → bY caXX ′ | dcaXX ′ | eX ′

X ′ → bbcaXX ′ | εLa grammaire non recursive gauche est donc la suivante :S → aXS | bY S | dX → bY caXX ′ | dcaXX ′ | eX ′

X ′ → bbcaXX ′ | εY → Xbb | bY | d

Il faut maintenant passer en forme de Greibach, ce qui n’est pas tres complique, car uneseule regle est concernee, c’est la regle Y → Xbb, qu’on va « developper » :S → aXS | bY S | dX → bY caXX ′ | dcaXX ′ | eX ′

X ′ → bbcaXX ′ | εY → bY caXX ′bb | dcaXX ′bb | eX ′bb | bY | d

En toute rigueur, il faut aussi supprimer les productions ε. Ici, seul X ′ s’efface, il fautdonc ajouter a toutes les regles ou X ′ apparaıt en partie droite une regle ou X ′ n’apparaıtpas1. Cela donne :S → aXS | bY S | dX → bY caXX ′ | dcaXX ′ | eX ′ | bY caX | dcaX | eX ′ → bbcaXX ′ | bbcaXY → bY caXX ′bb | dcaXX ′bb | eX ′bb | bY caXbb | dcaXbb | ebb | bY | d

(c) Representer l’« arbre d’exploration » d’une analyse descendante du mot u avec cette nouvelle

grammaire. On ne demande pas de detailler toutes les branches.

On donne simplement l’arbre d’exploration simplifie : cf. figure 1, droite.(d) Peut-on (intuitivement) estimer le cout et le benefice de l’operation ?

Le plus grand benefice est la finitude de l’arbre d’exploration : on garantit une analysedescendant en un temps fini. Les couts induits sont d’une part la plus grande complexitede la grammaire (en terme de nombre de regles), d’autre part le cout de l’applicationdes algorithmes de transformation. Enfin, l’arbre syntaxique, puisque la grammaire estalteree, n’est plus le meme (pas dans tous les cas : pour notre mot aebdd l’analyse estla meme).

Fig. 1 – Arbres simplifies, 1re & 2e grammaire

(S, aebdd)

(aXS, aebdd)(XS, ebdd)

��

��

��

HH

HH

HH

(Y caXS, ebdd)

(XbbY caXS,

ebdd)�

�P

P

echecs. . .

(eS, ebdd)(S, bdd)

(bY S, bdd)(Y S, dd)

��

��

��

HH

HH

HH

(XbbS, dd)�

�P

P

echecs. . .

(dS, dd)(S, d)

��

���

HH

HH

H

(aXS, d)

×

(bY S, d)

×

(d, d)

(ε, ε)

(S, aebdd)

(aXS, aebdd)(XS, ebdd)

(eX ′S, ebdd)(X ′S, bdd)

��

���

HH

HH

H

(bbcaXX ′S, bdd)(bcaXX ′S, dd)

×

(S, bdd)

(bY S, bdd)(Y S, dd)

��

��

HH

HH

(dS, dd)(S, dd)

(d, d)

(ε, ε)

(dcaXX ′bbS, dd)(caXX ′bbS, d)

×

1Cette operation peut donner lieu, en general, a une combinatoire couteuse, mais avec cette grammaire-ci ce n’est

pas le cas.