computabilidade e linguagens formais

12
1 Computabilidade e Linguagens Formais Problemas Notas baseadas em John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. “Introduction to automata theory, languages and computation”. 2nd ed, Addison-Wesley, 2001. Gabriel David / Cristina Ribeiro

Upload: wardah

Post on 09-Jan-2016

29 views

Category:

Documents


6 download

DESCRIPTION

Computabilidade e Linguagens Formais. Problemas Notas baseadas em John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. “Introduction to automata theory, languages and computation” . 2nd ed, Addison-Wesley, 2001. Gabriel David / Cristina Ribeiro. Problema 1. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Computabilidade e Linguagens Formais

1

Computabilidade e Linguagens Formais

Problemas

– Notas baseadas em John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman. “Introduction to automata theory, languages and computation”. 2nd ed, Addison-Wesley, 2001.

Gabriel David / Cristina Ribeiro

Page 2: Computabilidade e Linguagens Formais

Problemas-2

Problema 1

Considere a linguagem S* em que S= {aa, b}. Quantas palavras de comprimento 4, 5e 6 contém esta linguagem?

– O que pode concluir em geral?

Resposta– 4: aaaa, aabb, baab, bbaa, bbbb (5)– 5: aaaab, aabaa, baaaa, aabbb, baabb, bbaab, bbbaa, bbbbb (8)– 6: aaaaaa, aaaabb, aabaab, aabbaa, aabbbb, baabaa, baaaab, baabbb,

bbaaaa, bbaabb, bbbaab, bbbbaa, bbbbbb (13)

Page 3: Computabilidade e Linguagens Formais

Problemas-3

Problema 2

(i) Seja S={ab, bb} e T={ab, bb, bbbb}. Mostre que S*=T*. (ii) Seja S={ab, bb} e T={ab, bb, bbb}. Mostre que S*T*,

mas que S* T*. (iii) Que princípio ilustram estes resultados? Resposta

– (i) S* T*. Se w S* então é constituído por uma sequência de ocorrências de ab e de bb. Ora quer ab quer bb pertencem a T e portanto w T*.

– T* S*. Se w T* então é constituído por uma sequência de ocorrências de ab, bb e bbbb. Ora quer ab quer bb pertencem a S e bbbb corresponde a repetir bb que está em S e portanto w S*.

Page 4: Computabilidade e Linguagens Formais

Problemas-4

Problema 2 (cont.)

– (ii) S* T*. Se w S* então é constituído por uma sequência de ocorrências de ab e de bb. Ora quer ab quer bb pertencem a T e portanto w T*.

– S*T*, porque, por exemplo bbb T* mas não a S*, uma vez que as cadeias só com b’s em S* tem que ter comprimento par pois são construídas à custa de repetições de bb.

– (iii) o princípio ilustrado é o de que S T S* T*.

Page 5: Computabilidade e Linguagens Formais

Problemas-5

Problema 3

Suponha que numa certa linguagem L se podem sempre concatenar duas palavras e obter uma palavra em L, desde que as duas sejam diferentes, isto é, dadas w1, w2 L, w1w2, então w1w2 L, embora w1w1 não pertença. Mostre que isto não pode acontecer.

Resposta– Se w1, w2 L então w1w2 L e w1w2w1 L e, fazendo x1= w1w2w1

e x2=w2, w1w2w1w2 L. Mas então, fazendo agora x1= w1w2, também x1x1 L, contrariando a hipótese.

Page 6: Computabilidade e Linguagens Formais

Problemas-6

Problema 4

Apesar de alguma semelhanças, as expressões regulares não são polinómios algébricos. Quais das seguintes igualdades são verdadeiras? Justifique.

– (i) (a+b)* = (a+b)* + (a+b)* – (ii) (a+b)* = (a+b)* b (a+b)* – (iii) (a+b)* = (a+b)* + a*– (iv) (a+b)* = (a+b)* (a+b)*– (v) (a+b)* = a(a+b)* + b(a+b)*– (vi) (a+b)* = (a+b)*ab(a+b)*+b*a*

Resposta– falsas são (ii), porque exige sempre um b, e (v) porque falta o caso

vazio (acrescentar ); na (vi) trata-se primeiro os casos em que existe um ab e com b*a* todos os outros

Page 7: Computabilidade e Linguagens Formais

Problemas-7

Problema 5

Considere a expressão regular e simplifique-a– E = (a+b)*a(a+b)*(a+)(a+b)*a(a+b)*

Resposta– Aplicar a propriedade distributiva– E = (a+b)*a(a+b)*(a)(a+b)*a(a+b)* + (a+b)*a(a+b)*()

(a+b)*a(a+b)*– Reconhecer: 1ª operando exige 3 a’s, enquanto que o segundo exige

apenas 2, o que inclui o caso dos 3.– Simplifica para: E= (a+b)*a(a+b)*a(a+b)*

Page 8: Computabilidade e Linguagens Formais

Problemas-8

Problema 6

Considere o autómato da figura. Obtenha uma expressão regular que defina a mesma linguagem usando

– (i) o método da construção de caminhos– (ii) o método da redução de nós

Start

2a

3b

4

a,b

1

a

ab

b

Page 9: Computabilidade e Linguagens Formais

Problemas-9

Problema 6 (cont.)

Rij(k) = Rij

(k-1) + Rik(k-1) (Rkk

(k-1))* Rkj(k-1)

R11(0)

R12(0) a

R13(0) b

R14(0)

R21(0)

R22(0)

R23(0) a

R24(0) a

Start

2a

3b

4

a,b

1

a

ab

bR31(0)

R32(0) b

R33(0)

R34(0) b

R41(0)

R42(0)

R43(0)

R44(0) +a+b

R11(1)

R12(1) a

R13(1) b

R14(1)

R21(1)

R22(1)

R23(1) a

R24(1) a

R12(1)=a+()*a = a

R31(1)

R32(1) b

R33(1)

R34(1) b

R41(1)

R42(1)

R43(1)

R44(1) + a+b

Page 10: Computabilidade e Linguagens Formais

Problemas-10

Problema 6 (cont.)

Rij(k) = Rij

(k-1) + Rik(k-1) (Rkk

(k-1))* Rkj(k-1)

R11(2)

R12(2) a

R13(2) b+aa

R14(2) aa

R21(2)

R22(2)

R23(2) a

R24(2) a

Start

2a

3b

4

a,b

1

a

ab

bR31(2)

R32(2) b+ba

R33(2) +ba

R34(2) b+ba

R41(2)

R42(2)

R43(2)

R44(2) +a+b

R11(3)

R12(3) a+(b+aa)(ba)*(b+ba)

R13(3) b+aa +(b+aa)(ba)*(+ba)

R14(3) aa+(b+aa)(ba)*(b+ba)

R21(3)

R22(3) +a(b+a)(b+ba)

R23(3) a+a(+ba)*(+ba)

R24(3) a+a(ba)*(b+ba)

R12(2)=a+a()* = a

R13(2)=b+a()*a = b+aa

R32(2)=b+b()*a = b+ba

R12(3)=a+(b+aa)

(+ba)*(b+ba) = a+(b+aa)(ba)*(b+ba)

Page 11: Computabilidade e Linguagens Formais

Problemas-11

Problema 6 (cont)

Rij(k) = Rij

(k-1) + Rik(k-1) (Rkk

(k-1))* Rkj(k-1)

Start

2a

3b

4

a,b

1

a

ab

bR31(3)

R32(3) b(+a)+(ba)*b(+a)

R33(3) (ba)*

R34(3) b+ba+ (ba)*(b+ba)

R41(3)

R42(3)

R43(3)

R44(3) +a+b

R14(4)=aa+(b+aa)(ba)*(b+ba)+(aa+(b+aa)

(ba)*(b+ba))(+a+b)*(+a+b)= aa+(b+aa)(ba)*(b+ba)+(aa+(b+aa)(ba)*(b+ba))(a+b)*

Page 12: Computabilidade e Linguagens Formais

Problemas-12

Problema 6 (cont)

Eliminar 2 e depois 3

Start

2a

3b

4

a,b

1

a

ab

b

Startaa

3b+aa

4

a,b

1

b+ba Startaa+(b+aa)(ba)*(b+ba)

4

a,b

1

ba

R= [aa+(b+aa)(ba)*(b+ba)](a+b)* == [aa+b(ba)*b+b(ba)*ba +aa(ba)*b + aa(ba)*ba](a+b)*= = (aa+bb)(a+b)*