6
MESTRADO INTEGRADO EM ENGENHARIA INFORMÁTICA E COMPUTAÇÃO | 2º ANO EIC0022 | TEORIA DA COMPUTAÇÃO | 2012/2013 1º SEMESTRE Prova sem consulta. Duração: 1h30m. Mini-Teste Nome: __________________________________________________ Número: _______________ João M. P. Cardoso / Mário Cordeiro / João Jacob / Luís Teófilo 21/11/2012 | PÁG 1 / 6 Nota: As respostas erradas têm cotação negativa. Numa pergunta com 4 alternativas, uma resposta errada tem uma cotação negativa igual a 1/3 da cotação da pergunta. Numa pergunta com 2 alternativas, a resposta errada tem uma cotação negativa igual à cotação da pergunta. As perguntas não respondidas têm cotação 0. 1. Prova por Indução Pretende-se provar que o autómato abaixo aceita cadeias no alfabeto ∑={0,1} com um número ímpar de 1’s. Assuma como provado que δ^(A, w)=A sempre que w tenha um número par de 1’s: 1.1 [0,8val] Uma forma de efectuar essa prova é: usar indução em |w| para provar que δ^(A, w) = A se e só se w tem um número ímpar de 1's usar indução em |w| para provar que δ^(A, w) = B se e só se w tem um número par de 1's usar indução em |w| para provar que δ^(A, w) = B se e só se w tem um número ímpar de 1's provar que a expressão regular equivalente não contém (11)* 1.2 [0,8] Para o passo base, temos de mostrar que: para |w| = 0, w é uma cadeia vazia com número par de 1's (zero 1's) e δ^(A, w) = A para |w| = 0, w é uma cadeia vazia com número ímpar de 1's (zero 1's) e δ^(A, w) = B. para |w| = 1, w é uma cadeia com número par de 1's e δ^(A, w) = B para |w| = 1, w é uma cadeia com número ímpar de 1's e δ^(A, w) = B 1.3 [0,8] No passo indutivo podemos efectuar uma decomposição de w em za (w = za com |z|<|w| e |a| = 1), e verificar que para qualquer w de comprimento k: (a) para a = 0, se w tem um número par de 1’s, z tem um número par de 1’s e como δ^(A, z) = A, logo δ^(A, z0) = A (b) para a = 0, se w tem um número ímpar de 1’s, z tem um número ímpar de 1’s e pela hipótese de indução δ^(A, z) = B, logo δ^(A, z0) = B (c) para a = 1, se w tiver um número ímpar de 1’s, z tem um número par de 1’s e pela hipótese de indução δ^(A, z) = A, logo δ^(A, z1) = B (b) e (c) têm de ser verificadas 2. Autómatos Finitos Deterministas (DFAs) Considere o seguinte DFA: 2.1 [0,8] Qual o estado onde o DFA se encontra após processar a subcadeia 010011001: a partir do estado A, do estado B, e do estado C? C se considerarmos que inicia em C; A ou B quando inicia em B e A, respectivamente; A ou B ou C dependendo do estado em que inicia; C independentemente do estado em que inicia; Não é possível saber qual o estado em que o autómato de encontra;

TCOM_MT_2011_2012

Embed Size (px)

DESCRIPTION

TCom

Citation preview

Page 1: TCOM_MT_2011_2012

MESTRADO INTEGRADO EM ENGENHARIA INFORMÁTICA E COMPUTAÇÃO | 2º ANO EIC0022 | TEORIA DA COMPUTAÇÃO | 2012/2013 – 1º SEMESTRE

Prova sem consulta. Duração: 1h30m. Mini-Teste

Nome: __________________________________________________ Número: _______________

João M. P. Cardoso / Mário Cordeiro / João Jacob / Luís Teófilo 21/11/2012 | PÁG 1 / 6

Nota: As respostas erradas têm cotação negativa. Numa pergunta com 4 alternativas, uma resposta errada tem uma

cotação negativa igual a 1/3 da cotação da pergunta. Numa pergunta com 2 alternativas, a resposta errada tem uma

cotação negativa igual à cotação da pergunta. As perguntas não respondidas têm cotação 0.

1. Prova por Indução

Pretende-se provar que o autómato abaixo aceita cadeias no alfabeto ∑={0,1} com um número ímpar

de 1’s. Assuma como provado que δ^(A, w)=A sempre que w tenha um número par de 1’s:

1.1 [0,8val] Uma forma de efectuar essa prova é:

usar indução em |w| para provar que δ^(A, w) = A se e só se w tem um número ímpar de 1's

usar indução em |w| para provar que δ^(A, w) = B se e só se w tem um número par de 1's

usar indução em |w| para provar que δ^(A, w) = B se e só se w tem um número ímpar de 1's

provar que a expressão regular equivalente não contém (11)*

1.2 [0,8] Para o passo base, temos de mostrar que:

para |w| = 0, w é uma cadeia vazia com número par de 1's (zero 1's) e δ^(A, w) = A

para |w| = 0, w é uma cadeia vazia com número ímpar de 1's (zero 1's) e δ^(A, w) = B.

para |w| = 1, w é uma cadeia com número par de 1's e δ^(A, w) = B

para |w| = 1, w é uma cadeia com número ímpar de 1's e δ^(A, w) = B

1.3 [0,8] No passo indutivo podemos efectuar uma decomposição de w em za (w = za com |z|<|w| e |a|

= 1), e verificar que para qualquer w de comprimento k:

(a) para a = 0, se w tem um número par de 1’s, z tem um número par de 1’s e como δ^(A, z) =

A, logo δ^(A, z0) = A

(b) para a = 0, se w tem um número ímpar de 1’s, z tem um número ímpar de 1’s e pela hipótese

de indução δ^(A, z) = B, logo δ^(A, z0) = B

(c) para a = 1, se w tiver um número ímpar de 1’s, z tem um número par de 1’s e pela hipótese

de indução δ^(A, z) = A, logo δ^(A, z1) = B

(b) e (c) têm de ser verificadas

2. Autómatos Finitos Deterministas (DFA’s)

Considere o seguinte DFA:

2.1 [0,8] Qual o estado onde o DFA se encontra após processar a subcadeia 010011001: a partir do

estado A, do estado B, e do estado C?

C se considerarmos que inicia em C; A ou B quando inicia em B e A, respectivamente;

A ou B ou C dependendo do estado em que inicia;

C independentemente do estado em que inicia;

Não é possível saber qual o estado em que o autómato de encontra;

Page 2: TCOM_MT_2011_2012

João M. P. Cardoso / Mário Cordeiro / João Jacob / Luís Teófilo 21/11/2012 | PÁG 2 / 6

2.2 [0,8] Qual é a linguagem aceite pelo DFA?

Todas as cadeias de 0’s e 1’s que não contêm nem 1’s nem 0’s consecutivos;

Todas as cadeias de 0’s e 1’s que não contêm 1’s consecutivos e são terminadas em 10;

Todas as cadeias de 0’s e 1’s que não contêm 1’s consecutivos;

Todas as cadeias de 0’s e 1’s;

2.3 [0,8] Considerando ={0,1}, indique qual dos seguintes DFAs representa o complemento da

linguagem definida pelo DFA anterior:

2.4 [0,8] Qual dos seguintes autómatos aceita todas as representações binárias de números inteiros

divisíveis por 3, podendo ignorar os 0’s à esquerda do primeiro 1. Nota: zero é divisível por qualquer

número diferente de zero.

3. Minimização de Autómatos

Considere a seguinte tabela de transição de estados de um DFA com 10 estados e a respectiva tabela

de estados distinguíveis (X indica que os dois estados não são equivalentes).

0 1

1 2

2 3

* 3 4

* 4 5

5 6

6 7

7 8

* 8 9

* 9 0 1 2 3 4 5 6 7 8

b

8

3

5

5

5

9

1

7

a

1

8

4

7

6

2

3 2

2 4

5 8

3.1 [0,8] As equivalências que devem existir para que os dois estados 0 e 7 sejam equivalentes são:

1 equivalente a 6, e 9 equivalente a 5

1 equivalente a 9, e 6 equivalente a 5

0 equivalente a 7, 1 equivalente a 6, e 9 equivalente a 5

Os estados 0 e 7 não podem ser equivalentes (um é estado inicial e o outro não)

Page 3: TCOM_MT_2011_2012

Nome: __________________________________________________ Número: _______________

João M. P. Cardoso / Mário Cordeiro / João Jacob / Luís Teófilo 21/11/2012 | PÁG 3 / 6

3.2 [0,8] As igualdades que devem existir para que os dois estados 7 e 8 sejam equivalentes são:

6 equivalente a 5, e 1 equivalente a 3

6 equivalente a 1, e 5 equivalente a 3

7 equivalente a 8, 6 equivalente a 1, e 5 = 3

Os estados 7 e 8 não podem ser equivalentes (um é estado de aceitação e o outro não)

3.3 [0,8] O DFA mínimo equivalente ao dado tem:

3 estados (1 de aceitação e 2 de não aceitação)

5 estados (2 de aceitação e 3 de não aceitação)

3 estados (2 de aceitação e 1 de não aceitação)

5 estados (3 de aceitação e 2 de não aceitação)

3.4 [0,8] Um dos estados do DFA mínimo equivalente é o estado {3,4,8}, sendo assim:

δ({3,4,8}, a) = {1}, e δ({3,4,8}, b) = {3}

δ({3,4,8}, a) = {1,2}, e δ({3,4,8}, b) = {3,4,8}

δ({3,4,8}, a) = {1,2,5}, e δ({3,4,8}, b) = {3,4,8}

δ({3}, a) = {1,2,3}, e δ({3}, b) = {3,4,8}

4. Autómatos Finitos Não-Deterministas (NFA’s)

Considere a seguinte tabela de transição de estados de um NFA:

p

q

r

* s

* t

1

{p}

0

{p,q}

{r,s} {t}

{p,r} {t}

Ø Ø

Ø Ø

4.1 [0,8] O DFA equivalente é:

Nenhum dos apresentados.

5. Expressões regulares

5.1 [0,8] Indique qual das seguintes expressões regulares representa todas as cadeias sobre o alfabeto

{a,b} com um número ímpar de a’s:

b*ab*(ab*a)*b*

b*a(b*ab*ab*)*

b*a(b*ab*a)*b*

as 3 expressões regulares apresentadas definem a linguagem constituída por essas cadeias

Page 4: TCOM_MT_2011_2012

João M. P. Cardoso / Mário Cordeiro / João Jacob / Luís Teófilo 21/11/2012 | PÁG 4 / 6

5.2 [0,8] Indique qual das seguintes expressões regulares define a mesma linguagem que L((b +

ab*a)*ab*):

b*ab*(ab*a)*b*

b*a(b*ab*ab*)*

b*a(b*ab*a)*b*

as 3 expressões regulares apresentadas definem essa linguagem

5.3 [0,8] Indique qual das seguintes expressões regulares representa cadeias sobre o alfabeto {a,b}

terminadas em b e não contendo a cadeia aa:

a(b + ab)*b

(b + ab)*(b + ab)

(a + ab)*b

(a + ab)*(a + ab)

6. Conversão de Autómatos em Expressões Regulares

Considere o seguinte DFA:

6.1 [0,8] Se considerarmos o método de construção de caminhos (Rij(k) = Rij

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

(k-1))* Rkj(k-

1), em que 0 k N e 1 i, j N) para determinar uma expressão regular correspondente ao DFA

obtemos, para k=0:

R(0)11=a+, R(0)

22=, R(0)

33=, R(0)

12=b, R(0)13=, R(0)

21=a, R(0)23=b, R(0)

31=a, R(0)32=b;

R(0)11=a, R(0)

22=, R(0)33=, R(0)

12=b, R(0)13=, R(0)

21=a, R(0)23=b, R(0)

31=a, R(0)32=b;

R(0)11=bba, R(0)

22=bab, R(0)33=abb, R(0)

12=b, R(0)13=bb, R(0)

21=ba, R(0)23=b, R(0)

31=a, R(0)32=ab;

Nenhuma das alíneas apresentadas é a correta.

6.2 [0,8] Supondo R(1)11= a*, R(1)

21 = R(1)31= aa*, R(1)

12 = R(1)32 = a*b, R(1)

22 = + aa*b, R(1)13 = ,

R(1)23 = b e R(1)

33= , a expressão regular para R(2)31 pode ser dada por:

aa* + (a*b)( + aa*b)*(aa*)

aa* + a*b(aa*b)*aa*

aa* + a*baa*(baa*)*

todas as expressões apresentadas estão corretas

6.3 [0,8] A expressão regular obtida pela construção de caminhos é dada por:

R(3)11 + R(3)

22;

R(3)11 + R(3)

12;

R(3)11

R(3)12;

6.4 [0,8] Aplicando agora o método de eliminação de estados, se for eliminado o estado 3 qual é o

autómato resultante?

Page 5: TCOM_MT_2011_2012

Nome: __________________________________________________ Número: _______________

João M. P. Cardoso / Mário Cordeiro / João Jacob / Luís Teófilo 21/11/2012 | PÁG 5 / 6

6.5 [0,8] A expressão regular que define a linguagem do autómato é dada por:

(a + b(ba))*b*

(a + b*(a + ba))*

(a + b(bb)*(a + ba))*b(bb)*

(a + b(bb)*(a + ba))*( + b(bb)*)

7. Conversão de Expressões Regulares em -NFAs

7.1 [0,8] Considere a expressão regular ((aa + b)*(aba)*bab)*. Indique qual dos autómatos seguintes

pode ser obtido a partir desta expressão regular:

8. Linguagens Regulares

8.1 [4val] Indique se cada uma das seguintes afirmações é verdadeira ou falsa:

V F

Uma linguagem constituída por um subconjunto de palavras de uma linguagem regular é sempre

uma linguagem regular.

Dadas duas expressões regulares quaisquer, conseguimos provar sempre se definem a mesma

linguagem regular ou não.

Page 6: TCOM_MT_2011_2012

João M. P. Cardoso / Mário Cordeiro / João Jacob / Luís Teófilo 21/11/2012 | PÁG 6 / 6

A linguagem L={0n0n | n ≥ 0} é uma linguagem regular.

A linguagem resultante da aplicação do operador a duas linguagens regulares é sempre uma

linguagem regular. O operador é definido do seguinte modo: dadas duas linguagens L1 ={abc,

ca} e L2={ab, de}, L1 L2 = {abcab, abcde, caab, cade, ababc, abca, deabc, deca}.

A interseção de uma linguagem não regular com uma linguagem regular nunca pode ser uma

linguagem regular.

O fecho L* de uma linguagem regular L forma sempre uma nova linguagem.

A linguagem constituída pelas palavras formadas com o alfabeto ∑ = {a, b, c} que contêm um

número de par de a’s, b’s e c’s, ou um número ímpar de a’s, b’s e c’s é uma linguagem regular.

L(a*b*) L((a+b)*) = L(a*b*), e L(a*b*) L((a+b)*) = L((a+b)*)

L((a+b)*) 1L = L(a*bb*a(a+b)*), em que L1 = {anbm | n,m ≥ 0}

Qualquer que seja a linguagem regular existe sempre uma expressão regular que a representa.