Sei sulla pagina 1di 46

Exerccios de Modelos de Computao

A. Matos, A. P. Toms, P. Vasconcelos, M. Ferreira


N. Moreira e R. Reis
DCC-FCUP 2007

Linguagens
1

?2

Seja

o alfabeto

(a)

AB

(b)

AB

(c)

BA

(d)

A3

(e)

A?

Sejam

{0, 1}.

Sendo

A = {10, 11}

linguagens de alfabeto

em

menor ou igual a dois}.

ou seja a linguagem

L3 .

e verica se:

x tal que x (LM ) (M L)?


L LM ? M LM ? L M L? M M L?

L o conjunto

mente L .

(c) Seja

LM

0's

i) Existe
ii)

ML

determina:

dadas por

e o nmero de

{xyz | x L, y L, z L},

(b) Determina as linguagens

B = {00, 1},

= {0, 1, 2}

L = {01, 10, 1}
M = {x | x , |x| 4
(a) Determina

Considera a palavra

das sequncias nitas (incluindo

aaaba

de alfabeto

= {a, b}.

)

de palavras de L. Descreve informal-

Indica, justicando, se tal palavra pertence ou

no a cada uma das linguagens seguintes:

(a)

{a, b}

(b)

{aaa, bab}{ba, bb}

(c)

{aaa} {b} {a}

(d)

{a} {b} {a}

(e)

{aa} {a} {a, ba, bb, }

Descreve informalmente a linguagem


i)

?5

denida indutivamente por:

AL

ii)

ay L, y L

iii)

ya L, y L

iv)

AyA L, y L

Sejam

L1 , L2

L3

as linguagens de alfabeto

{a, b, c}

assim denidas:

L1

= {waw | w {b, c} }

L2

= {cccc} {aaa}

L3

= {wcn | w {a, b} , n N}

(a) Para cada uma das linguagens

Li ,

determina em extenso

L0i = {x | 7 |x| 8, x Li

tem pelo menos trs

(b) Descreve, informalmente, cada uma das linguagens

c's}.

Li .

(c) Determina, L1 L3 , L1 L2 , L1 L3 e L2 .

(d) Mostra que L2 L3 = {cccc} {a, b} {c} e descreve informalmente esta linguagem.

Para cada uma das seguintes armaes sobre linguagens diz se verdadeira ou falsa, demonstrando
se for verdadeira ou encontrando um contra-exemplo se for falsa.

(a)

AB = BA

(b)

L = L =

(c)

(L? )? =L?

(d)

L? L? =L?

(e)

(A B)? = A? B ?

(f )

(A B)? = A? B ?

(g)

(AB)? = A? B ?

(h) se

L1 L2

ento

L?1 L?2

Para cada uma das seguintes armaes, diz se verdadeira ou falsa, justicando:
i) uma linguagem vazia se s contm a palavra vazia;
ii) uma linguagem innita contm alguma palavra innita;
iii) Se

uma linguagem nita, o seu complementar

Seja o alfabeto

= {0, 1}

? \ L

innito

e considera as seguintes linguagens:

A1

= {(01)n (10)n | n 0}

A2

= {01} {10}

A3

= {w | em w

no ocorrem dois

(a) Determina e descreve informalmente

1s

ou dois

A1 A2 , A2 A3 , A2 \ A3

0s
e

seguidos}

A1

(b) Para cada uma das linguagens que calculaste em (a):

A4 = {w | | w | 8}
igual a A1 .

1. Determina a sua interseco com


2. Indica, justicando, se alguma

Seja o alfabeto

= {a, b}

e considera as seguintes linguagens:

B1

= {(aa)n (bb)n | n 0}

B2

= {aa} {bb}

B3

= {w | em w

(a) Determina e descreve informalmente

nmero de

as

igual ao nmero de

B1 B2 , B2 B3 , B2 \ B3

bs}

B1

(b) Para cada uma das linguagens que calculaste em (a):

B4 = {w | | w | 8}
igual a B1 .

1. Determina a sua interseco com


2. Indica, justicando, se alguma

Para cada uma das seguintes armaes sobre linguagens

A, B

quaisquer diz se verdadeira ou

falsa, demonstrando se for verdadeira ou encontrando um contra-exemplo se for falsa.

10
11

(a)

(AB) = A B

(b)

A(B C) = AB AC

(a)

(A B) = (A B )

(b)

(A B) = A B

Autmatos Finitos
12

Considera o autmato nito representado na gura.


89:;
/ ?>=<
s0 k

89:;
/ ?>=<
s1

0
1


89:;
0123
7654
/ ?>=<
s2

0,1

0
(a) Constri uma descrio formal para este autmato como um tuplo

A = (Q, , , q0 , F );

(b) Indica quais das seguintes palavras so aceites por este autmato:

111111

101001, 11001010111,

0000011000;

(c) Diz (em portugus) qual a propriedade que uma palavra de

{0, 1}

tm de ter para ser aceite

por este autmato.

13

Considera os seguintes autmatos nitos do alfabeto

= {0, 1},

A = ({s0 , s1 }, , A , s0 , {s1 })
B = ({s0 , s1 , s2 }, , B , s0 , {s1 , s2 })
com as funes de transio dadas por:

A (s0 , 0) = s0
A (s1 , 0) = s0

A (s0 , 1) = s1
A (s1 , 1) = s1

B (s0 , 0) = s1
B (s1 , 1) = s2

B (s0 , 1) = s2
B (s2 , 0) = s1

(a) Representa cada um dos autmatos por um grafo.


(b) Diz quais das seguintes palavras so aceites por algum dos autmatos:


11001

101
01010

111
00011

(c) Diz quais as linguagens reconhecidas pelos autmatos.

14

Descreve um autmato nito que reconhea a linguagem das palavras de

{0, 1}

que. . .

(a) no tm nenhum 1;


(b) so diferentes de 1;
(c) contm pelo menos algum 0 e algum 1;
(d) tm comprimento no inferior a 2;
(e) no contm 101 como sub-palavra;
(f ) terminam em 1;
(g) terminam em 1 mas no em 111;
(h) tm pelo menos dois 0 consecutivos;
(i) terminam em 1 e tm pelo menos dois 0 consecutivos;
(j) tm um nmero mpar de 0 ou um nmero par de 1;
(k) tm no mximo um par de 0 e um par de 1 consecutivos;
(l) so representao binria de inteiros positivos mltiplos de 4;
(m) so representao binria de inteiros positivos mltiplos de 2 mas no de 3;
(n) contm (algures) pelo menos trs 0 seguidos, mas no contm dois ou mais 1 seguidos'
(o) se tm algum par de 0 adjacentes, este aparece antes de qualquer par de 1 adjacentes;

(p) no terminam em 1101 nem em 1011;


(q) tm igual nmero de 0 e 1 e nenhum seu prexo tem um nmero de 0 que excede em
dois o nmero de 1, nem um nmero de 1 que excede em dois o nmero de 0

15

Seja

16

Dada uma linguagem

A = (, S, , s0 , F ) um autmato nito determinstico e s um estado de A,


b x) = s.
a . Mostra por induo no comprimento de x, que x ? , (s,
nito , ento

? 17

? 18

L,

seja

LR = {xR | x L}.

Mostra que se

tal que

(s, a) = s,

for aceite por um autmato

tambm o .

A das palavras de alfabeto


{0, 1} em que no ocorrem sequncias pares de 0's imediatamente esquerda de sequncias mpares
de 1's.
Descreve um autmato nito determinstico que reconhea a linguagem

Seja

a linguagem das palavras de alfabeto

{0, 1}

que representam em binrio nmeros mltiplos

de 5.
(a) Descreve um autmato nito determinstico que reconhea esta linguagem.
(b) Para o autmato encontrado, prova que o mesmo reconhece a linguagem

B.

Autmatos no-determinsticos
19

Considera os autmatos nitos

no-determinsticos

/()*+
?_ a ()*+

//.-, b ()*+
//.-,
/ .-,
O ?

?? b

??

a
??  b
/.-,
()*+o
()*+
/.-,

A:

representados pelos seguintes diagramas:

()*+
//.-,

B:


()*+
/.-,
1

20

(b)

aba

(c)

abba

(d)

bba

(e)

abab

Constri um autmato nito


das palavras com um

21

/.-,


/()*+

Diz quais das seguintes palavras so aceites por

aa

/.-,


/()*+

(a)

b
/.-,
/()*+

no-determinstico

ou

B:

que reconhea q linguagem do alfabeto

= {0, 1}

na terceira posio a contar do m.

Considera o autmato nito no-determinstico representados pelo seguinte diagrama:


?()*+
/.-,
>=<
/ 89:;
1 j

A:

a,b

?>=<
/ 89:;
2

b
Converte, pela construo dos subconjuntos, o autmato num autmato nito

22

Seja

o autmato nito de alfabeto

GF
ED
 BC
/ ?>=<
89:;
1

a,b,c
a

{a, b, c}

determinstico.

representado pelo diagrama seguinte.

89:;
/ ?>=<
2

(a) Qual a linguagem reconhecida pelo autmato

89:;
()*+
/.-,
/ ?>=<
3

A?

Porqu?

89:;
()*+
/.-,
/ ?>=<
4

(b) Usando o mtodo da construo de subconjuntos, determina um autmato determinstico que


seja equivalente a

A.
(S, , , s0 , F ) em que uma funo total
(S, , , s0 , S \ F ) reconhece ? \ L (isto , a

(c) Recorda que se um dado autmato determinstico


(no encrava), reconhece

L,

linguagem complementar de

ento o autmato

L).

Por que que a linguagem reconhecida pelo autmato seguinte no a complementar da


linguagem reconhecida por

A?

GF
ED
 BC
/ ?>=<
89:;
/.-,
()*+
1

23

Seja

89:;
()*+
/.-,
/ ?>=<
2

a,b,c
a

89:;
/ ?>=<
3

89:;
/ ?>=<
4

{a, b} que tm no mximo uma ocorrncia de aba


bb. Por exemplo aaaabaaab, ababba e bbbaabbabaaaab pertencem a A,
aaaababaaabb no pertencem.

a linguagem das palavras de alfabeto

e que no terminam em
mas

ababa

(a) Descreve um autmato nito determinstico (que no encrave) que reconhea

A.

(b) Para cada um dos estados do autmato descreve informalmente a linguagem correspondente.

24

Seja

{0, 1} que no comeam em 101 e contm exactamente


11001000, 100010 e 01011000101 pertencem a B , mas 101100

a linguagem das palavras de alfabeto

uma subpalavra

10000100

000.

Por exemplo

no pertencem.

(a) Descreve um autmato nito determinstico (que no encrave) que reconhea

B.

(b) Para cada um dos estados do autmato descreve informalmente a linguagem correspondente.

25

Considera o seguinte autmato nito no-determinstico

89:;
/ ?>=<
s0
|

89:;
0123
7654
/ ?>=<
s1

{a, b}.

89:;
0123
7654
/ ?>=<
s2
S

denido no alfabeto

a
(a) Descreve

L(C)

e indica uma palavra que pertena a

L(C)

e outra que no pertena.

(b) Usando o mtodo de construo de subconjuntos, determina um autmato nito determinstico


equivalente a

C.

Indica claramente a que subconjuntos de estados de

corresponde cada

estado do novo autmato.

26

Considera o seguinte autmato nito no determinstico

89:;
/ ?>=<
s0 o
(a) Descreve

L(D)

d
d

&

?>=<
89:;
0123
7654
s1
x

c
c

e indica uma palavra que pertena a

denido no alfabeto


89:;
0123
7654
/ ?>=<
s2
L(D)

{c, d}.

e outra que no pertena.

(b) Usando o mtodo de construo de subconjuntos, determina um autmato nito determinstico


equivalente a

D.

Indica claramente a que subconjuntos de estados de

corresponde cada

estado do novo autmato.

Autmatos nitos no determinsticos com transies 


27

?/.-,
()*+
>=<
/ 89:;
1 f

Considera os seguintes autmatos nitos no-determinsticos representados pelo seguinte diagrama:

s
89:;
3 ?>=<
2
a

& 89:;
3 ?>=<
3

a,b

(a) Calcula o fecho- de cada estado


(b) Usando a pela construo dos subconjuntos, determina um autmato nito determinstico
equivalente.

? 28

Considera o autmato nito

({s0 , s1 , s2 , s3 , s4 }, {a, b}, , s0 , {s4 })

com a seguinte funo de transi-

o:

s0
s1
s2
s3
?s4

{s1 }

a
{s0 , s1 }

{s1 , s4 }
{s1 }

b
{s2 }
{s3 }

{s4 }

(a) Para cada uma das seguintes palavras indica se so aceites ou no pelo autmato:
i)
ii)
iii)

bbab
aaaaba
ababab

(b) Descreve a linguagem aceite pelo autmato.


(c) Determina o autmato nito determinstico que reconhece a linguagem complementar desta.

? 29

Considera o autmato nito

({s0 , s1 , s2 , s3 , }, {a, b}, , s0 , {s0 , s3 })

com a seguinte funo de tran-

sio:

?s0
s1
s2
?s3


a
{s1 , s2 } {s0 }

{s0 }

{s1 , s2 }

{s3 }

(a) Para cada uma das seguintes palavras indica se so aceites ou no pelo autmato:
i)
ii)
iii)

abaa
baaa
ababba

(b) Descreve a linguagem aceite pelo autmato.


(c) Determina o autmato nito determinstico que reconhece a linguagem complementar desta.

Expresses regulares
30

Escreve expresses regulares para cada uma das seguintes linguagens de


(a) palavras com no mais do que trs
(b) palavras com um nmero de

as

as

divisvel por trs

(c) palavras com exactamente uma ocorrncia da sub-palavra

31

32

= {a, b}:

aaa.

Quais das seguintes armaes so verdadeiras? Justica.


(a)

baa L(a? b? a? b? )

(b)

L(b? a? ) L(a? b? ) = L(a? + b? )

(c)

L(a? b? ) L(c? d? ) =

(d)

abcd L((a(cd)? b)? )

(a) A linguagem

{x {0, 1}? | x

no termina em 1} descrita pela expresso:

i)
ii)
iii)

(1 + 0)? 0?
(0 + 10)?
0? + (0 + 1)? 0

(b) A linguagem
i)
ii)
iii)

33

34

{x {0, 1}? | x

comea por 1} descrita pela expresso:

( + 1)1(1 + 0)?
(11 + 10)(1 + 0)?
1? (1 + 0)?

Escreve expresses regulares mais simples equivalentes s seguintes:


(a)

+ a? + b? + (a + b)?

(b)

((a? b? )? (b? a? )? )?

(c)

(a? b)? + (b? a)?

(d)

(a + b)? a(a + b)?

Descreve cada uma das linguagens seguintes por uma expresso regular.
(a)
(b)
(c)

L1 = {x {a, b, c, d}? | x
L2 = {xaay | x, y {0, 1}
L3

no tm

b's

direita de

c's

nem

e a diferena entre o nmero de

o conjunto das palavras de alfabeto

a's
0's

esquerda de
em

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

e em

d's}
mpar}

que so representao em

decimal de inteiros no negativos mltiplos 5 ou de 10.


(d)

35

L4 = {x {0, 1}? | x

tm

110

como subpalavra mas no

101}

Para cada uma das igualdades seguintes sobre expresses regulares diz se verdadeira ou falsa,
demonstrando se for verdadeira ou arranjando um contra-exemplo se for falsa.

36

(a)

( + r)? = r?

(b)

(r + s)? = r? + s?

(c)

(rs + r)? = r(sr + r)?

(d)

(r + s)? s = (r? s? )?

Considera o autmato nito no determinstico


onde a funo de transio

A = ({s0 , s1 , s2 , s3 , s4 , s5 }, {0, 1}, , s0 , {s2 , s4 }),

denida pela tabela seguinte:

s0
s1
?s2
s3
?s4
s5


{s2 , s4 }

{s4 }

{s5 }

{s1 }
{s2 }

{s3 }

(a) Apresenta o diagrama que descreve o autmato e diz quais das seguintes palavras so aceites
por

A: 0001, 010101

00000

(b) Descreve a linguagem reconhecida por


(c) Determina o fecho por

A,

eventualmente usando uma expresso regular.

de cada estado de

A.

(d) Usando o mtodo de construo de subconjuntos, determina um autmato nito determinstico


completo equivalente a

A.

37

Considera o autmato nito no determinstico


onde a funo de transio

B = ({s0 , s1 , s2 , s3 , s4 , s5 }, {c, d}, , s0 , {s4 , s5 }),

denida pela tabela seguinte:

s0
s1
s2
s3
?s4
?s5

c
d

{s3 }
{s1 }
{s2 } {s2 , s5 }

{s1 }
{s4 }


{s2 , s4 }

{s4 }

(a) Apresenta o diagrama que descreve o autmato e diz quais das seguintes palavras so aceites
por

B : cccd, dccc

ccdcc

(b) Descreve a linguagem reconhecida por


(c) Determina o fecho por

B,

eventualmente usando uma expresso regular.

de cada estado de

B.

(d) Usando o mtodo de construo de subconjuntos, determina um autmato nito determinstico


completo equivalente a

38

B.

(a) Escreve uma expresso regular que descreve cada uma das seguintes linguagens:




{a, b}? que no terminam num nmero par de as


?
As palavras de {0, 1, 2} em que todas as subpalavras 00 ocorrem
subpalavra 11.

As palavras de

(b) Sendo

antes de qualquer

s expresses regulares, indica se as expresses regulares seguintes so ou no equiva-

lentes, demonstrando se o forem ou exibindo uma palavra que pertena a uma e no outra,
caso contrrio:

39

r? (sr? )?

(s + r)?

(a) Escreve uma expresso regular que descreve cada uma das seguintes linguagens:




As palavras de
As palavras de

(b) Sendo

{a, b}? que contm exactamente uma subpalavra aa


{a, b, c}? que contm aa e no terminam em bc

s expresses regulares, indica se as expresses regulares seguintes so ou no equiva-

lentes, demonstrando se o forem ou exibindo uma palavra que pertena a uma e no outra,
caso contrrio:

(rs + r)? r

r(sr + r)?

Converso entre Autmatos Finitos e Expresses Regulares


40

Considera os seguintes autmatos nitos determinsticos:

A:

?>=<
/ 89:;
1 s

89:;
()*+
/.-,
2 s
4 ?>=<

a,b

B:

?>=<
/ 89:;
1 k
X

+ ?>=<
89:;
()*+
/.-, s
@2

a
b
b


89:;
?>=<
()*+
/.-,
3

Determina as expresses regulares das linguagens reconhecidas por cada autmato, pelo mtodo
de eliminao de estados.

41

Determina expresses regulares para cada uma das linguagens do exerccio

42

Constri um autmato nito no-determinstico que reconhea cada uma das linguagens denidas
pelas seguintes expresses regulares:
(a)

(ab + a)?

(b)

(a + b)? aba
9

2.3

da Folha 2.

43

(c)

(aaa + aaaaa)?

(d)

(aa)? bbb(bbb)?
A

Seja

a linguagem das palavras de alfabeto

{0, 1}

imediatamente esquerda de sequncias mpares de

em que no ocorrem sequncias pares de

1's.

0's

(a) Descreve um autmato nito determinstico que reconhea esta linguagem.


(b) Encontra uma expresso regular para a linguagem dada.

44

Seja

a linguagem das palavras de alfabeto

{0, 1}

que representam em binrio nmeros mltiplos

de 5.
(a) Descreve um autmato nito determinstico que reconhea esta linguagem.
(b) Encontra uma expresso regular para a linguagem dada.

45

Seja

A = {x {a, b}? | em

que o nmero de ocorrncias de

ab

igual ao nmero de ocorrncias de

(a) Descreve um autmato nito determinstico que reconhea esta linguagem.


(b) Encontra, pelo mtodo de eliminao de estados, uma expresso regular para a linguagem
dada.

46

Seja
de

a linguagem das palavras de alfabeto

mas no mltiplos de

{0, 1}

que representam em binrio nmeros mltiplos

3.

(a) Descreve um autmato nito determinstico que reconhea esta linguagem.


(b) Encontra, pelo mtodo de eliminao de estados, uma expresso regular para a linguagem
dada.

47

Considera dois autmatos nitos

A:
Partindo de

B,

(a)

L(A) L(B)

(b)

L(A) L(B)

(c)

L(B)

Para

48

x ?

B:

/.-,


/()*+

1
()*+
// .-,



0
()*+
// .-,

B:

/.-,


/()*+

constri autmatos no determinsticos que reconheam:

denota-se por

a(x)

o nmero de

as

em

x.

Considera a linguagem seguinte

A
Por exemplo,

= {x {0, 1}? | 0(x) 1(x) 0

011001 A, 1100111
/A

(mod 4)}

000111011111 A.

(a) Descreve um autmato nito determinstico completo que reconhea

A.

(b) Encontra, pelo mtodo de eliminao de estados, uma expresso regular para a linguagem
indicando todas as fases da aplicao do mtodo.

49

Considera a linguagem seguinte

B
Por exemplo,

= {x2y | x, y {0, 1}?

1010210011 B, 1100201111
/B

1(x) + 0(y)

par}

0001112111000 B.

(a) Descreve um autmato nito determinstico completo que reconhea

10

I.

A,

ba}

(b) Encontra, pelo mtodo de eliminao de estados, uma expresso regular para a linguagem

B,

indicando todas as fases da aplicao do mtodo.

50

Considera a linguagem de alfabeto

{a, b}

denida pela expresso regular

(a + b(ab? a)? b)?


(a) Descreve informalmente essa linguagem.
(b) Constri, eventualmente usando o mtodo de Thompson, um autmato nito determinstico
que a reconhea.

51

Considera a linguagem de alfabeto

{a, b}

denida pela expresso regular

(ba? a + aa? b)? aa?


(a) Descreve informalmente essa linguagem.
(b) Constri, eventualmente usando o mtodo de Thompson, um autmato nito determinstico
que a reconhea.

52

Num alfabeto de dois smbolos

invertida




de

x,

Se

|x| = 0

Se

|x| 1,

denota-se por
ento
ento

x
e

{a, b},

dada uma palavra de

x {a, b}?

a palavra

e dene-se por induo sobre o comprimento de

complementar

por:

x
e=x=
x = ya

implica que

x
e = be
y,

Por exemplo a palavra complementar invertida de

x = yb

aaba

implica que

babb.

x
e = ae
y

Seja

L = {xe
x | x {a, b}? }
Mostra, usando o lema da repetio para linguagens regulares, que

53

no regular.

Prova, usando o lema da repetio, que a linguagem seguinte no regular:

{w1n | w {0, 1}?

54

|w| = n , n 0}

Prova, usando o lema da repetio, que a linguagem seguinte no regular:

{w {0, 1}? | |w| = n2 para

algum

n 0}

55
Para cada uma das seguintes linguagens, indica, justicando, se ela ou no regular. Usa (e enuncia)
o lema da repetio, para provar que uma linguagem

, , \,

56
57
58
59

(a)

{xcx | x {a, b}? }

(b)

{xcy | x, y {a, b}? }

(a)

{02n | n 0}

(b)

{0n | n 0}

(a)

{0n w | w {0, 1}?

2n

|w| = n , n 0}

(b)

{0 w | w {0, 1} , |w|

(a)

{an ck bm | k 0 , n m

m 5}

(b)

{an ck bm | k 0 , n m

0 m 5}

par e

n 0}

Considerando o autmato nito seguinte

11

no

regular, e/ou as propriedades de fecho para

(a) indica quais os estados acessveis do estado inicial.


(b) determina um autmato nito determinstico mnimo equivalente, indicando qual a classe de equivalncia a que corresponde cada estado e desenhando seu o diagrama.
(c) determina uma expresso regular equivalente.

60 Ae = ({1, 2, 3, 4, 5, 6, 7}, {a, b}, e , 1, {2, 4, 6, 7})


a
1
6
5
6
1
2
5

1
2
3
4
5
6
7

b
3
3
7
1
7
7
3

61 Af = ({1, 2, 3, 4, 5, 6, 7}, {a, b}, f , 1, {1, 2})


1
2
3
4
5
6
7

a
2
1
7
5
4
3
3

b
5
4
2
7
3
6
1

62 Ag = ({0, 1, 2, 3, 4, 5, 6}, {a, b}, g , 0, {4, 5})


a
3
6
6
6
0
2
1

0
1
2
3
4
5
6

b
5
3
4
6
5
4
6

63 Ah = ({1, 2, 3, 4, 5, 6, 7}, {a, b}, h , 1, {1, 2})


1
2
3
4
5
6
7

a
2
1
5
2
3
7
6

b
6
7
2
3
1
3
5

Para cada uma das seguintes linguagens, indica, justicando, se ela ou no regular. Usa (e enuncia)
o lema da repetio, para provar que uma linguagem

, , \,

64

(a)

{13n | n 0}

(b)

{13 | n 0}

65
12

no

regular, e/ou as propriedades de fecho para

(a)
(b)

{an bm | n, m 0
n m

{a b

| n, m 0

n + m 3}

n + m 3}

Considerando o autmato nito seguinte


(a) indica quais os estados acessveis do estado inicial.
(b) determina um autmato nito determinstico mnimo equivalente, indicando qual a classe de equivalncia a que corresponde cada estado e desenhando seu o diagrama.

66 Ac = ({1, 2, 3, 4, 5, 6, 7}, {c, d}, c , 1, {2, 4, 6, 7})


c
3
3
6
1
6
3
6

1
2
3
4
5
6
7

d
1
7
5
7
1
5
2

67 Ad = ({1, 2, 3, 4, 5, 6, 7}, {0, 1}, d , 1, {1, 2})


0
2
1
4
3
2
7
6

1
2
3
4
5
6
7

1
6
7
2
1
3
3
4

Lema da Repetio
68

Para cada uma das seguintes linguagens, diz se ela ou no regular. Usa o lema da repetio (para

no

provar que uma linguagem


tar),

(concatenao) e

regular) e/ou as propriedades de fecho para

{1n : n

um primo}

(b)

{1 : n

quadrado perfeito}

(c)

{0 1 0 : i 0, j

(d)

{0 1 : i 0, j i}

(e)

{0i 1j : i 6= j}

(f )

{ww : w {0, 1} }

(g)

{wwR : w {0, 1} } (wR

i j k

, , \

(complemen-

(fecho de Kleene).

(a)

(h)

69

par e

mpar}

i j

{y {a, b} | 2

a palavra

invertida)

divide a diferena entre o nmero de

(i) {w

{(, ), +, 0, 1, 2, . . . , 9}

(j) {w

{+, 0, 1, 2, . . . , 9}

a's

e o nmero de

b's

em

y}

uma expresso aritmtica sintacticamente correcta}

uma expresso aritmtica cujo resultado 42}

Averigua se cada uma das seguintes linguagens ou no regular. Justica.


(a)

{an bm ck | n 0, m 0, k 0, }

(b)

{an bn cn | n 100}

(c)

{an bn cn | n 0}
13

70

(d)

{an bn cn | n > 100}

(e)

{an bm ck | n 0, m 0, k = m + n}

(f )

{an b2m | n 0, m 0}

(g)

{an bm | m 0, n = 2m}

(h)

{an bm | m 1000, n = 2m}

(i)

{an bm | m 1000, n = 2m}

Verica que as seguintes linguagens

satisfazem a condio do lema da repetio.

Que podes concluir

em relao a serem ou no regulares?

71

(a)

{111, aaa, bb}

(b)

L(aa(a + b)? )

(c)

{cm an bn | m 1, n 0} {am bn | m, n 0}

Comenta a seguinte armao, indicando se verdadeira ou falsa e porqu:

L uma linguagem regular innita;


w tais que L = {uv i w | i 0}.

Seja

v
? 72

u,

Prova que a linguagem seguinte no regular:

{x {0, 1}? | |x|


? 73

pelo lema da repetio conclui-se que existem palavras

Prova que a linguagem

da forma

L = {x {(, )}? | x

n3

para algum

n N}

tem os parntisis bem-casados} no regular. Nota

que esta linguagem pode ser denida indutivamente por:


1.

74

L

2. Se

xL

ento

(x) L

3. Se

xL

ento

xx L

Verdade ou Falsidade? Mostra ou encontra contra-exemplos em cada caso (supe-se sempre um


alfabeto
(a) Se

xo).

uma linguagem innita ento

\L

nita.

(b) A reunio innita de linguagens regulares regular.


(c) Qualquer linguagem nita regular.
(d) Se

(e) Se

L=AB

uma linguagem no regular ento

\L

uma linguagem regular ento

regular.

tambm so regulares.

(f ) Qualquer subconjunto duma linguagem regular regular.


(g) Se

uma linguagem regular ento

(h) Se

regular ento

(i) Se

regular e

AB

{xy : x L

{x L : |x| 1000}
regular ento

y 6 L}

tambm regular.

tambm regular.

tambm regular.

Minimizao de autmatos nitos


75

Usa o algoritmo de minimizao para obter autmatos mnimos equivalentes aos seguintes autmatos nitos determinsticos:
(a)

?>=<
/ 89:;
1

14


t
?()*+
/.-,
>=<
/ 89:;
2

a
b

89:;
()*+
/.-,
/ ?>=<
3
v

v
a / ?>=<
a / ?>=<
89:;
89:;
()*+
/.-,
?>=<
/ 89:;
2>
3
1>
@
>>
>
>>b
b >>>
>>
>>
>> a
>>

 v
b
89:;
()*+
/.-,
89:;
?>=<
/ ?>=<
5
4

(b)

76

a,b

a,b

Para cada um dos autmatos nitos seguintes, indica


1. um autmato nito deterministico mnimo equivalente
2. uma expresso regular equivalente

A1 = ({1, 2, 3, 4, 5, 6, 7}, {a, b}, 1 , 1, {1, 2})


a b
1 2 5
2 1 6
3 4 3
4 7 1
5 6 7
6 5 4
7 4 2

77

Considera a linguagem de

{a, b}?

A2 = ({0, 1, 2, 3, 4, 5, 6}, {a, b}, 2 , 0, {4, 5})


a b
0 3 5
1 6 3
2 6 4
3 6 6
4 0 5
5 2 4
6 1 6

denida pela expresso regular seguinte:

(a + b)(aa + bb)? (b + a) + (b + a)(aa + bb)?

(1)

1. Descreve informalmente essa linguagem;


2. Constri um autmato nito determinstico mnimo que a reconhea. Indica quais as palavras
que levam o autmato do estado inicial a cada um dos estados.

? 78

Considerando os autmatos nitos seguintes


(a) indica quais os estados acessveis do estado inicial.
(b) determina um autmato nito determinstico mnimo equivalente.
(c) determina uma expresso regular equivalente.
1.

A1 = ({1, 2, 3, 4, 5, 6, 7, 8}, {a, b}, 1 , 1, {3, 4})

1
2
3
4
5
6
7
8
2.

a
1
3
4
3
4
6
2
3

b
4
1
2
5
6
3
4
1

a
3
8
7
6
1
2
1
5

b
5
7
2
2
8
3
4
1

A2 = ({1, 2, 3, 4, 5, 6, 7, 8}, {a, b}, 2 , 1, {1, 2})

1
2
3
4
5
6
7
8
15

Problemas decidveis sobre linguagens regulares


79

80

Mostra que os seguintes problemas so decidveis, descrevendo um algoritmo para cada caso:

(a) Dado um AFD

(b) Dado um AFD

A,

ser

L(A) = ?

(c) Dado um AFD

A,

ser

L(A) = ?

(d) Dado um AFD

A,

ser

L(A)

e uma palavra

qualquer, ser que

x L(A)?

nita?

(e) Dadas

L1 , L2

duas linguagens regulares; ser que

L1 L2 ?

(f ) Dadas

L1 , L2

duas linguagens regulares; ser que

L1 = L2 ?

Para cada uma das seguintes armaes, diz se verdadeira ou falsa, justicando:
(a) Uma linguagem innita contm alguma palavra innita;
(b) Uma linguagem vazia se s contm a palavra vazia;
(c) se um autmato tem mais estados que outro, ento reconhece mais palavras que esse outro;
(d) qualquer linguagem nita pode ser reconhecida por autmato nito;
(e) qualquer linguagem innita pode ser reconhecida por um autmato nito;
(f ) se dois autmatos nitos tm conjuntos de estados diferentes, reconhecem linguagens diferentes;
(g) num automato nito, se todos estados so nais, ento a linguagem reconhecida

(h) Se o estado inicial de um autmato for nal, a linguagem reconhecida pelo autmato
(i) qualquer que seja

E , L(E ) 6=

L(E) 6= , ento podemos encontrar outra expresso


L(F ) = L(E)), tal que F no usa o smbolo  ;

(j) se

{}.

regular

para a mesma linguagem

(i.e.,

Para cada uma das seguintes linguagens, indica, justicando, se ela ou no regular. Usa (e enuncia)
o lema da repetio, para provar que uma linguagem

, , \,

81
82

(a)

{13n | n 0}

(b)

{13 | n 0}

(a)

{an bm | n, m 0

(b)

no

regular, e/ou as propriedades de fecho para

.
n

n m

{a b

| n, m 0

n + m 3}

n + m 3}

Considerando o autmato nito seguinte


(a) indica quais os estados acessveis do estado inicial.
(b) determina um autmato nito determinstico mnimo equivalente, indicando qual a classe de equivalncia a que corresponde cada estado e desenhando seu o diagrama.

83 Ac = ({1, 2, 3, 4, 5, 6, 7}, {c, d}, c , 1, {2, 4, 6, 7})


1
2
3
4
5
6
7

c
3
3
6
1
6
3
6

d
1
7
5
7
1
5
2
16

84 Ad = ({1, 2, 3, 4, 5, 6, 7}, {0, 1}, d , 1, {1, 2})


0
2
1
4
3
2
7
6

1
2
3
4
5
6
7

1
6
7
2
1
3
3
4

Gramticas e Linguagens Independentes de Contexto


85

Responde s questes seguintes considerando a gramtica independente de contexto


onde o conjunto de regras

G = (V, {a, b}, P, R),

R XRX | S
S aT b | bT a
T XT X | X | 
Xa|b
(a) Quais so as variveis e os smbolos terminais de
(b) D trs exemplos de palavras de

G?

Qual a varivel inicial?

L(G).

(c) D trs exemplos de palavras que no pertenam a

L(G).

(d) Verdadeiro ou Falso? Justica.


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

T aba.
T aba.
T T.
T T .
XXX aba.
X aba.
T XX .
T XXX .
S .
R ab
R aba

(e) Descreve em portugus a linguagem

86

L(G).

Seja G a gramtica independente de contexto, descrita por G = (V, , P, S), onde o alfabeto
= {0, 1}, os smbolos no terminais so V = {S}, o smbolo inicial S e as produes so dadas
por P = {S , S 0S, S 1S}.
(a) Obtm uma derivao para as seguintes sequncias:
(b) Mostra que a linguagem gerada por
i.e.,

87
88

001, 101000

111000

o conjunto de todas as sequncias nitas de 0s e 1s,

{0, 1}? .

Justica a armao:

dente de contexto

a linguagem {0n 12n : n 0} do alfabeto {0, 1} no regular mas indepen-

Considera a seguinte gramtica independente de contexto

= {0, 1, +, , (, )}.

G = (V, , R, E),

onde

As regras da gramtica so:

E E + E | E E | (E) | N
N 0|1
Determina as derivaes e rvores associadas a cada uma das seguintes palavras:

17

V = {E, N }

89

(a)

(b)

1+0

(c)

1+0+1

(d)

(1 1) + 0

(e)

11+1

(f )

1 (1 + 1)

Constri gramticas independentes de contexto que reconheam as seguintes linguagens. O alfabeto


considerado

= {0, 1}.

(a) O conjunto vazio


(b)

{w : w

contm pelo menos trs 1s}

(c)

{w : w

comea e termina pelo mesmo smbolo}

(d)

{w : o

comprimento de

mpar}

(e)

{w : o

comprimento de

mpar e o smbolo do meio 0}

(f )

{w : w

(g)

{w : w = wR }

(h)

{w : w

contm mais 1s que 0s}

tem duas vezes mais 0s do que 1s}

(i) O complemento da linguagem


(j)
(k)
(l)

90

{w {0, 1}? |
i j i

{0n 1n : n 0}

3 divide a diferena entre o nmero de 0's e 1's em

w}

{a b c {a, b, c} | i 0, j 0}
{ai bi+j cj {a, b, c}? | i 0, j 0}

Mostra que a seguinte gramtica independente de contexto

G = ({S}, {a, b}, P, S)

com as regras:

S aSa | bSb | a | b | 
gera a linguagem dos palndromos em

91

{a, b} .

Escreve gramticas independentes de contexto para as linguagens seguintes. Indica se so ao no


regulares.
(a) as frmulas do clculo proposicional:

smbolos proposicionais: p, q, r, s
conectivas lgicas: , , ,
parntesis: ( e )
(b) nmeros decimais em notao cientca: por exemplo
(c) as expresses regulares em

{a, b}

3.14, 15.21, .13E2, 23E 5

smbolos bsicos: a, b,  e
operadores +, (concatenao) e ?
parntesis: ( e )
92

Seja

G = ({S}, {a, b, c}, {S aaS, S ccS, S bSaa, S b}, S) uma gramtica indepenV e os conjuntos de variveis e terminais de G, respectivamente.

dente de contexto. Denote-se por


(a) Determina

Dn = {w (V )? | S nG w}

(b) Determina as rvores de derivao para


(c) Mostra que

para

aaccbaa

n = 1, 2, 3, 4.
e

aabccbaabaaaa.

abaac
/ L(G).

(d) Descreve informalmente a linguagem gerada pela gramtica.

18

(e) Mostra por induo sobre o nmero de passos da derivao que quaisquer que sejam

n>0

x (V )? ,
se
em que

S nG x

ento

k 0 w ({b}A)k y A

x = ywba2k x = ywSa2k

A = {aa, cc}? . Conclui que L(G) {ywba2k | y A, w ({b}A)k , k 0} =


| x (A{b})k , k > 0}.

2(k1)

{xa

(f ) Mostra que






L(G) {xa2(k1) | x (A{b})k , k > 0}

mostrando que

|w|/2

S G

wS ,

qualquer que seja

em que

w A;

|w|)

(Por induo sobre

1+|w|/2
wb, qualquer que seja w A;
concluindo que S G
1+|w|/2
e concluindo que S G
wbSaa, qualquer que seja w
para mostrar que para todo

A = {aa, cc}? ,

A;

k > 0,

se w (A{b})k {a}2(k1) S G w ento w (A{b})k+1 {a}2k S G w;


?

e concluir

L(G) {xa2(k1) | x (A{b})k , k > 0}.

(g) Descreve formalmente

? 93

L(G)

Escreve uma gramtica independente de contexto que gere a linguagem de alfabeto


constituda pelas palavras em que o nmero de

1's

no excede o nmero de

0's.

= {0, 1}

Demonstra que a

gramtica obtida gera a linguagem.

? 94

Escreve uma gramtica independente de contexto que gera a linguagem de alfabeto


constituda pelas palavras da forma

an bm cl

em que

l 6= n.

= {a, b, c}

Demonstra que a gramtica obtida gera

a linguagem.

Gramticas ambguas
95

Considera a seguinte gramtica


(a) Mostra que

L(G)

(b) Mostra que

G = ({S}, {S aSbS | bSaS | }, {a, b}, S)

o conjunto de palavras de

{a, b}?

a's

b's.

ambgua.

(c) Escreve uma gramtica no ambgua equivalente a

96

com o mesmo nmero de

Considera a gramtica

G = ({S, X}, {S X | Sa, X a | b}, {a, b}, S)


Mostra que no ambgua e descreve a linguagem gerada.

97

Considera a seguinte gramtica para expresses aritmticas em notao prexa:

({E}, {E +EE | EE | EE | x | y}, {+, , , x, y}, E)


(a) Encontra derivaes pela esquerda e pela direita e uma rvore de derivao para

+ xyxy.

(b) Mostra que a gramtica no ambgua.

98

Considera a seguinte gramtica

({S, A, B}, {S A0B, A 1A | , B 0B | 1B | }, {0, 1}, S)


(a) Mostra que a gramtica no ambgua.
(b) Descreve a linguagem gerada pela gramtica
(c) Encontra uma gramtica ambgua equivalente e justica a sua ambiguidade

? 99

Mostra que a seguinte gramtica ambgua e encontra uma equivalente que o no seja.

S S S | S S | (S) | p | q
19

? 100

Mostra que a seguinte gramtica ambgua e encontra uma equivalente que o no seja.

S AB1
A A11A | 
B B0B | B1B | 
Uma forma de provar que uma gramtica gera uma linguagem

primeiro:

Seja

L.

mostrar por induo sobre a estrutura (ou no comprimento) das palavras de

palavra de

101

mostrar por induo sobre o nmero de passos de derivao que se uma palavra derivada

pela gramtica, ento pertence a

segundo:

A.

(b) Demonstra que a gramtica dada na alena anterior gera a linguagem


(c) Mostra que
Seja

B = {0i 1j 2j 3i | i, j 0}
B.

(b) Demonstra que a gramtica dada na alena anterior gera a linguagem


(c) Mostra que
Seja

a linguagem de

{e, d, c}

constituda pelas palavras em que o nmero de ocorrncias de

c.

Por exemplo,

ds
ecdeed L, deecec L

cce
/ L.

(a) Descreve uma gramtica independente de contexto que gere

L.

(b) Apresenta uma derivao pela esquerda e uma rvore de derivao para
Verica que

104

B.

no regular.

igual diferena entre os nmeros de ocorrncias de


e

A.

no regular.

(a) Descreve uma gramtica independente de contexto que gere

103

que toda a

A = {am ck bn {a, b, c}? | m, k 0, m n}

(a) Descreve uma gramtica independente de contexto que gere

102

tem uma derivao pela gramtica.

Para

cce

x ?

ecdeed e para deecec.

no gerada pela gramtica.


denota-se por

a(x)

o nmero de

as

em

x.

Seja

L = {x {a, b, c}? | b(x) = 2a(x)}


Por exemplo,

aacbcbbb L, bbcbcaba L

cacb
/ L.

(a) Descreve uma gramtica independente de contexto que gere


(b) Apresenta uma
palavras:

L.

rvore de derivao e uma derivao pela esquerda para cada uma das

aacbcbbb

Verica, ainda, que a

bbcbcaba.
palavra cacb

no gerada pela gramtica.

Gramticas Regulares
105

Constri gramticas independentes de contexto que gerem as linguagens descritas pelas seguintes
expresses regulares:
(a)

0? 1(0 + 1)?

(b)

0? 1? 2?

(c)

(0 + 1 + 2)? 1(0 + 1 + 2)? 1(0 + 1 + 2)? 0(1 + 2)?

(d)

(0 + 2)? (1(0 + 1 + 2))? .

20

106

Constri uma gramtica independente de contexto que gere a linguagem de cada um dos seguintes
autmatos nitos:

.-,
//()*+

(a)

b
.-,
//()*+


/.-,
()*+
1

/.-,
()*+

/ 

()*+


//.-,


a

.-,k
//()*+
W

(b)

b
b

.-,
 k

//()*+
W

(c)

+
/.-,
()*+
G

b
a
a
b

107

+ 
/.-,
()*+
 q
?


 a


/.-,
()*+



 
/.-,
()*+

b
a

G = (V, , P, S), que contenha apenas produes da forma A aB ou


a gera uma linguagem regular. E, inversamente, se uma linguagem

Mostra que uma gramtica

A ,

com

A, B V

regular gerada por uma gramtica dessa forma.


Obtm um autmato nito para a linguagem gerada pela gramtica

G = ({S, A, B}, {0, 1}, {S 0A, A 1B, B 0A, A }, S)

108

Seja

G = ({A, B, C}, {a, b, c}, P, A) uma gramtica independente de contexto, onde P

constitudo

pelas seguintes regras:

A aaA | bbA | B
B cbB | bbbB | C
C Ca | 
(a) Justica que

linear esquerda
linear direita.

no

equivalente que

nem

linear direita,

(b) Justica que existe um autmato nito que reconhece


(c) Descreve

L(G)

L(G)

mas existe uma gramtica

e indica tal autmato.

por uma expresso regular.

(d) Mostra que a gramtica linear direita que gera a linguagem reconhecida por um autmato
nito determinstico
todo o

x L(G)

A,

obtida pelo mtodo dado no curso, no ambgua, isto , que para

existe uma e uma s derivao pela esquerda para

(e) Mostra que a gramtica

x.

ambgua e indica uma gramtica equivalente que o no seja.

Operaes fechadas nas Linguagens Independentes de Contexto


109

Usa a propriedade de fecho para mostrar que as seguintes linguagens so independentes de contexto:
(a)

{am bn | m 6= n}

(b)

{a, b}? \ {an bn : n 0}

(c)

{am bn cp dq | n = q

(d)

110

n n m m

ou

mp

ou

m + n = p + q}

n m m n

{a b c d |n 1, m 1} {a b c d |n 1, m 1}

Mostra que se

uma linguagem independente de contexto,

invertidas, tambm independente de contexto.

21

LR

a linguagem das palavras de

Formas normais
111

Escreve gramticas sem smbolos inteis, sem produes- e sem produes unitrias equivalentes

):

s seguintes (eventualmente, excluindo gerar


(a)

({S, T, V }, {S aSbb | T | V a, T bT aa | S | }, {a, b}, S)

(b)

({S, A, B}, {S ASB | , A aAS | a, B SbS | A | bb}, {a, b}, S)

(c)

({S, A, B, C}, {S 0A0 | 1B1 | BB, A C, B S | A, C S | }, {0, 1}, S)

Para cada uma delas obtm gramticas equivalentes em forma normal de Chomsky.

112

Escreve gramticas independentes de contexto nas formas normais de Chomsky e de Greibach


equivalentes s seguintes (eventualmente, excluindo gerar

113

):

(a)

({S}, {S aSa | bSb | }, {a, b}, S)

(b)

({E}, {E E + E | E E | (E) | n}, {+, , (, ), n}, E)

Escreve gramticas independentes de contexto nas formas normais de Chomsky e de Greibach que
gerem as seguintes linguagens:

? 114

(a)

{an b2n ck | n, k 1}

(b)

{an bk cn | n, k 1}

(c)

{an bm ck | n, k, m 1, 2n k}

(d)

{an bm ck | n, k, m 1, n k

ou

m k}

Considera a seguinte gramtica:

S S S | S S | (S) | p | q
Escreve uma gramtica equivalente em forma normal de Chomsky.

? 115

Considera a seguinte gramtica:

S AB1
A A11A | 
B B0B | B1B | 
Escreve uma gramtica equivalente em forma normal de Chomsky.

116

Considera a seguinte gramtica independente de contexto:

G1 = {{E, A, B}, {E AAE | A | , A aAb | aBb, B Bb | }, {a, b}, E}


(a) Descreve, justicando,

L(G1 ).

(b) Obtm uma gramtica que gere

L(G1 ) \ {}

sem produes

,

sem produes unitrias e sem

smbolos inteis.
(c) Obtm uma gramtica equivalente obtida em forma normal de Chomsky.

117

Dada uma gramtica em forma normal de Chomsky, mostra por induo sobre
rvores de derivao de palavras de tamanho

118

tm

Supe que uma gramtica independente de contexto


Se

x L(G), | x |= n e x
n + m ns.

2n 1
G

tem uma derivao em

no tem produes

n,

que todas as

ns interiores.

passos ento

.

Mostra que:

tem uma rvore de

derivao com

119

Uma produo-A uma produo que tem


seja

A 1 B2 P

a gramtica que se obtm


Mostra que

A no lado esquerdo. Seja G = (V, , P, S) uma GIC,


B 1 | | r as produes-B . Seja G1 = (V, , P1 , S)
substituindo A 1 B2 em G, por A 1 1 2 | | 1 r 2 .

e sejam

L(G) = L(G1 ).
22

Autmatos de Pilha
120

Considera o autmato de pilha

M = ({q0 , q1 , q2 }, {a, b}, {A, B}, , q0 , A, {q2 })

so:

(q0 , a, A)
(q0 , b, A)
(q1 , a, B)
(q1 , b, B)
(q1 , , A)
(a) Representa o autmato

onde as transies

{(q0 , BA), (q1 , A)}


{(q0 , B)}
{(q1 , )}
{(q1 , )}
{(q2 , )}

=
=
=
=
=

por um diagrama de transies.

(b) Indica todas as mudanas de congurao do autmato com a palavra


congurao

aba,

comeando na

(q0 , aba, A).


L(M ), isto ,
L(M ) = {x | (q0 , x, A) `?M (q2 , , )}

(c) Indica quais das seguintes palavras pertencem a


mato por estados nais:

linguagem aceite pelo aut-

aa aba baa bab abb baaaa


N (M ) = {x | (q0 , x, A) `?M (q, , )},
igual a L(M )

(d) Verica que neste caso


por pilha vazia,
(e) Descreve

121

L(M )

a linguagem aceite pelo autmato

em linguagem corrente.

Seja o autmato de pilha

P = ({q0 , q1 , q2 }, {a, b, c}, {Z, B}, , q0 , Z, {q1 })

(q0 , a, Z)
(q0 , b, Z)
(q0 , a, B)
(q1 , b, B)
(q2 , , Z)
(a) Representa o autmato

=
=
=
=
=
P

{(q1 , Z)}
{(q0 , BZ)}
{(q1 , B)}
{(q2 , )}
{(q2 , )}

onde as transies

so:

(q1 , a, Z) = {(q1 , Z), (q1 , )}


(q0 , b, B) = {(q0 , BB)}
(q1 , a, B) = {(q1 , B)}
(q2 , b, B) = {(q2 , )}

por um diagrama de transies.

(b) Indica todas as mudanas de congurao do autmato com a palavra


congurao

aaaa,

comeando na

(q0 , aaaa, Z).

(c) Mostra que qualquer palavra da linguagem descrita por

aa?

aceite pelo autmato por estados

nais e por pilha vazia.


(d) Mostra que qualquer palavra da linguagem descrita por

bbaa?

aceite pelo autmato por

estados nais mas no por pilha vazia.


(e) Mostra que nenhuma palavra da linguagem descrita por

bbb? aa? b reconhecida pelo autmato

por estados nais ou por pilha vazia.


(f ) Descreva informalmente
aceite por

N (P ) (a linguagem aceite por P

por pilha vazia) e

L(P ) (a linguagem

por estados nais). Comenta a armao:

L(P ) pode ser aceite por um autmato nito determinstico mas N (P ) no.
(g) Indica uma gramtica independente de contexto que gere

122

N (P ).

Descreve autmatos de pilha que reconheam (por pilha vazia ou por estados nais) cada uma das
linguagens seguintes.
(a)

{x@xR {a, b, @}? | xR

(b)

{x {a, b}? | x

a inversa de

x,

x {a, b}? }

capcua}

x {0, 1}? representemos por x o nmero inteiro que tem


?
?
binrio, {x : y {0, 1, :} | x, y {0, 1} \ {}, e x y (mod 3)}

(c) Seja

(d)

{w : w

contm mais 1s que 0s}

(e) O complemento da linguagem


(f )

aquela representao em

{w {0, 1}? |

{0n 1n : n 0}

3 divide a diferena entre o nmero de 0's e 1's em

23

w}

(g)
(h)

{ai bj ck | i = j
i j k

{a b c | i 6= j

ou

j = k}

ou

j 6= k}

i i+j j

c {a, b, c}? | i 0, j 0}

(i)

{a b

(j)

{0n 1m {0, 1}? | n 0, m n}

(k) Todas as palavras de

123

{0, 1}

que no so da forma

ww.

Mostra que qualquer linguagem que reconhecida por um autmato de pilha por estados nais
pode ser reconhecida por algum autmato de pilha por pilha vazia e vice-versa.

124

PAREN2 { ( , ) , [ , ] }? } das palavras com dois tipos


PAREN2 indutivamente como o menor conjunto tal que:

Considera a linguagem
casados. Denimos
1.

 PAREN2

2. se

x PAREN2

3. se

x, y PAREN2

Por exemplo

ento

( x ) PAREN2

ento

[ x ] PAREN2

xy PAREN2

[ ( [ ] ) [ ] ( ) ] PAREN2

[(])
/ PAREN2 .

(a) Descreve um autmato de pilha que aceite

? 125

de parntesis bem

Considera a seguinte linguagem

de alfabeto

PAREN2

por pilha vazia.

= {a, b, c},

M = {an bm cl bm | l, m, n N, m 6= 0}.
(a) Descreve um autmato de pilha que aceite

por estados nais.

(b) Indica o papel desempenhado por cada um dos estados.


(c) Determina as mudanas de congurao do autmato no processamento das seguintes palavras:
(a)
(b)

? 126

aabbbb
abccbb

Considera a seguinte linguagem

de alfabeto

= {0, 1, 2},

M = {xyz | x, z {0, 1} , y {1, 2} , z = xR }.


(a) Descreve um autmato de pilha que aceite

por estados nais.

(b) Indica o papel desempenhado por cada um dos estados.


(c) Determina as mudanas de congurao do autmato no processamento das seguintes palavras:
(a)
(b)

127

Seja

101121101
101121010

a linguagem de

{0, 1}?

descrita pela expresso regular

(11 + 0)? (00 + 1)? .

(a) Determina uma gramtica independente de contexto que gere

A.

Indica se a tua gramtica

linear.
(b) Converte a gramtica obtida para a forma normal de Chomsky. Para esta gramtica apresenta
uma rvore de derivao para a palavra

128

Seja

as

B {a, b}?

1100100.

constituda pelas palavras em que o nmero de

bs

igual ao nmero de blocos de

consecutivos de comprimento maior ou igual a dois.

Por exemplo

aaababaaa, baaabaaa

so palavras de

aaabab

no pertence a

(a) Descreve uma gramtica independente de contexto que gere

B.

B.

(b) Converte a gramtica obtida para a forma normal de Chomsky e apresenta para esta gramtica
uma

rvore de derivao para aaab.

24

129

Considera o alfabeto
Dado

{a, b, c},

com a seguinte relao de ordem

a b c.

x {a, b, c} , uma sub-palavra de x diz-se crescente se os seus smbolos esto ordenados.


aabccba temos que aabcc uma sub-palavra crescente e ba uma sub-palavra no
?

Para a palavra
crescente. Seja

= {x {a, b, c}? | |x| 2 e existem x1 , . . . , xn {a, b, c}?


|xi | 2 e xi crescente, para 1 i n}

(a) Descreve uma gramtica independente de contexto que gera

tal que

x = x1 x2 . . . xn ,

(b) Converte a gramtica obtida para a forma normal de Chomsky. Para esta gramtica apresenta
uma rvore de derivao para a palavra para

130

Seja

a linguagem de alfabeto

de 0s e de 1s, i,e,


um

uplo

{0, 1, ,, ), (, ], [},

abcab.

das palavras que so

uma sequncia, eventualmente vazia, de

parntisis curvos, p.e

(1, 0, 0, 1).

Uplos com um

0s

1s,

ou um

listas de listas de uplos

separados por vrgulas

e entre

no podem ter vrgulas e no

podem terminar em vrgulas.

uma

lista de uplos uma sequncia, eventualmente vazia, de uplos separados por vrgulas
[(1, 0, 0, 1), (), (0)]. Se s tiver um uplo no pode ter vrgulas e

e entre parntisis rectos, p.e

no pode terminar em vrgulas.

uma

lista de listas , uma sequncia, eventualmente vazia, de listas separadas por vrgulas
[[(1, 0, 0, 1), (), (0)], [(0)]]. Se s tiver uma lista no pode ter

e entre parntisis rectos, p.e

vrgulas e no pode terminar em vrgulas.


Por exemplo,

[[(1, 0, 1), (0)], [(0, 0, 0), (1, 0), (0, 1)]] D

(a) Determina uma gramtica independente de contexto que gere

D.

(b) Converte a gramtica obtida para a forma normal de Chomsky. Para esta gramtica apresenta
uma rvore de derivao para a palavra

131

Seja

E = {0i 1j 2k 3l | n, m, i, l 0, l = 2i

[[(1, 0), ()]].

k = j}

(a) Descreve um autmato de pilha que aceite

indicando se por estados nais ou por pilha

vazia.
(b) Indica o papel desempenhado por cada um dos estados.
(c) Determina as mudanas de congurao do autmato no processamento das seguintes palavras:
(a)
(b)

132

Seja

00123333
0001122333

F = {an bm ck | n, k, m 1, 2n k}

(a) Descreve um autmato de pilha que aceite

F,

indicando se por estados nais ou por pilha

vazia.
(b) Indica o papel desempenhado por cada um dos estados.
(c) Determina as mudanas de congurao do autmato no processamento das seguintes palavras:
(a)
(b)

133

Seja

aabbccc
aaccccc

G = {ak bal bak+l | k, l 0}

(a) Descreve um autmato de pilha que aceite

G,

indicando se por estados nais ou por pilha

vazia.
(b) Indica o papel desempenhado por cada um dos estados.

25

(c) Determina as mudanas de congurao do autmato no processamento das seguintes palavras,


indicando se as palavras so ou no aceites:
(a)
(b)

134

aababaaa
baabaa

H = {x {0, 1, 2}? | x

Seja

tem duas vezes mais 0s do que a soma de

(a) Descreve um autmato de pilha que aceite

H,

1s

2s}

indicando se por estados nais ou por pilha

vazia.
(b) Indica o papel desempenhado por cada um dos estados.
(c) Determina as mudanas de congurao do autmato no processamento das seguintes palavras,
indicando se as palavras so ou no aceites:
(a)
(b)

135

102000
000012001

Considera a seguinte gramtica para um fragmento das expresses regulares sobre o alfabeto
onde

{a, b},
, e

representa a concatenao e a precedncia dos operadores , por ordem decrescente,

+:
E = ({S}, {S S + S | S S | S | a | b}, {a, b, +, , }, S})
(a) Mostra que

ambgua.

(b) Constri uma gramtica equivalente a

136

que no seja ambgua. Justica a tua resposta.

Considera a gramtica

F = ({X, Z}, {X Z | X + X, Z a | b | Z Z}, {a, b, +, }, X)


(a) Mostra que

ambgua.

(b) Constri uma gramtica equivalente a

que no seja ambgua e cujas rvores de derivao

preservem a ordem habitual de avaliao de expresses aritmticas. Justica a tua resposta.

137

Considera a gramtica

H = ({S, U }, {0, 1}, {S U 1U 1U, U U 0U | U 1U | }, S)


(a) Mostra que

ambgua.

(b) Descreve informalmente a linguagem

L(H)

(c) Constri uma gramtica equivalente a

138

que no seja ambgua. Justica a tua resposta.

Considera a seguinte gramtica

({A, D, I}, {A A A | A A | [I, I], I DI | D, D 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9},


{, , [, ], 0, . . . , 9,0 ,0 }, A)
(a) Mostra que a gramtica ambgua.
(b) Descreve a linguagem gerada pela gramtica
(c) Escreve uma gramtica equivalente em forma normal de Chomsky.

139

Considera a seguinte gramtica

({B, E, D}, {B B + B | B B | E, E Dx | D, D 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9}
, {+, , 0, . . . , 9, x}, B)
(a) Mostra que a gramtica ambgua.

26

(b) Descreve a linguagem gerada pela gramtica


(c) Escreve uma gramtica equivalente em forma normal de Chomsky.

140

= {, , [, ], 0, . . . , 9,0 ,0 ,0 0 } e a linguagem C ? para representao


n I onde n um inteiro decimal no negativo e I uma reunio e/ou
interseco de intervalos abertos ou fechados (n1 , n2 ) onde n1 e n2 so inteiros decimais no negativos
e ), ( {[, ]}. Por exemplo, 21 [1, 50[[13, 100[[3, 14].
Considera o alfabeto

de expresses da forma

(a) Escreve uma gramtica no ambgua que gere a linguagem


gerada por cada no-terminal. Supe que

e indica qual a linguagem

tem precedncia menor que

(superior a

que operaes iguais associam esquerda.


(b) Apresenta uma

derivao pela esquerda e uma rvore de derivao para 5 [0, 11[]4, 7]

e mostra que so nicas.

141

= {+, =, <, 0, . . . , 9, x} e a linguagem D ? das expresses lineares da


forma a1 + + an = an+1 + + am ou a1 + + an < an+1 + + am , onde ai = kx ou ai = k
ou ai = x com k inteiro decimal no negativo, 1 i m.
Considera o alfabeto

(a) Escreve uma gramtica no ambgua que gere a linguagem

D e indica qual a linguagem gerada

por cada no-terminal. Supe que a adio tem precedncia inferior multiplicao (e superior
a

<)

e operaes iguais associam esquerda.

(b) Apresenta uma

4x + 1 + 6x

derivao pela esquerda

e uma

rvore de derivao

para

51x + 3 =

e mostra que so nicas.

Mquinas de Turing
142

Considera a mquina de Turing


sio

M = ({s0 , s1 , s2 }, {a, b}, {a, b, }, , s0 , , {s2 })

s0
s1

a
b

(s1 , a, ) (s1 , b, ) (s2 , , )


(s0 , a, ) (s0 , b, )

(a) Escreve a sucesso de conguraes da mquina comeando em


(b) Descreve qual a linguagem aceite por

143

e a funo de tran-

dada por

s0 aabab

M.

Constri mquinas de Turing que aceitem cada uma das seguintes linguagens. Indica as que so
independentes de contexto.
(a)

{0n 1m | n m}

(b)

{an bn cn | n 0}

(c)

{1p 01q 01n | p + q = n}

(d) as palavras de

{a, b}?

(e)

? {an | n 1}

(f )

? {a2 | n 1}

(g)

? {ap | p

(h)

b's

primo}

? {ww | w {a, b}? }

(j)

? {ww | w {a, b}? }

(m)

que

{w@w | w {a, b}? }

(l)

a's

(i)

(k)

com mais

{xcn xR | x {a, b}? , |x| = n}


{0n 1m 2k 3l | n, m, k, l 0, n = 3k
{ai bj ck | i, j, k 0 j = 2i

m = l}

k = i}

27

144

Descreve uma mquina de Turing que reconhea


(a) a linguagem descrita pela expresso regular

a? b? cc?

(b) a linguagem reconhecida por estados nais pelo autmato de pilha

(q0 , c, Z) = {(q1 , Z)}


(q0 , a, Z) = {(q0 , AZ)}
(q0 , a, A) = {(q0 , AA)}
(q0 , b, A) = {(q2 , )}
O estado inicial
(c) a linguagem

q0 ,

(q1 , c, Z) = {(q1 , Z)}


(q2 , b, A) = {(q2 , )}
(q2 , c, Z) = {(q1 , Z)}

e o nico estado nal

q1 .

{an bn cn | n N}

Mquinas de Turing Calculadoras de Funes


145

Descreve uma mquina de Turing que calcule cada uma das seguintes funes de
(a)

f (1n 01m ) = 1n+m


Por exemplo se n = 3

(b)

f (1n ) = 12n

(c)

f (w) = wr

(d)

f (1n 01m ) = 1nm


Por exemplo se n = 3

m=2

em

{0, 1}?

as conguraes da ta deveriam ser

Inicial :

1 1

F inal :

1 1

m=2

{0, 1}?

as conguraes da ta deveriam ser

Inicial :

1 1

F inal :

1 1

(e) ordene por ordem crescente dois nmeros

x e y dados em unrio.

Por exemplo se esses nmeros

fossem 3 e 2 as conguraes da ta seriam

146

Inicial :

1 1

F inal :

1 0

Descreve mquinas de Turing que calculem cada uma das seguintes operaes entre nmeros representados em base

2.

x no vazia de {0, 1}? calcule f (x) sendo f (x) = 0 se x L(0? 0), e


f (x) = 1y se x L(0? 1y), y L((0 + 1)? ). Nota que f elimina os zeros no signicativos de
x (quando x interpretada como representao binria de algum nmero).

(a) dada uma palavra

(b) dada uma palavra

Inicial :

0 1

F inal :

0 1

no vazia de

{0, 1}?

calcule o dobro do nmero por ela representado

(supondo que as representaes binrias no tem zeros no signicativos).

Inicial :

0 1

F inal :

0 1

28

(c) ordene por ordem crescente dois nmeros

dados em binrio separados por

@.

Suponha

que os nmeros no tm zeros no signicativos.


(d) determine o menor nmero de uma dada sequncia de nmeros em binrio separados por
Por exemplo se esses nmeros fossem

5, 3

@.

as conguraes da ta deveriam ser

Inicial :

@ 1

@ 0

F inal :

(e) calcule a soma de uma unidade a um nmero em binrio dado.


(f )

calcule a soma em binrio de dois nmeros em binrio dados.

(g)

calcule o triplo em binrio de um nmero em binrio dado.

(h) calcule o produto em binrio de dois nmeros em binrio dados.


(i) dado um inteiro

147

em binrio, calcule o seu triangular, i.e,

1 + 2 + . . . n.

multiplicao russa ) de dois inteiros positivos:

Considera o seguinte o algoritmo de multiplicao (




Escrever

em duas colunas

Repetir

dividir por

o ltimo nmero da primeira coluna (ignorando o resto) e escrev-lo nessa

coluna




multiplicar por

o ltimo nmero da segunda coluna e escrev-lo nessa coluna

At o ltimo nmero da primeira coluna ser

Somar os nmeros da segunda coluna para os quais o nmero correspondente na primeira


coluna

mpar.

Escreve uma mquina de Turing que calcule o produto em binrio de dois nmeros em binrio

m e n, usando o algoritmo da multiplicao russa. Supe que os nmeros esto inicialmente


@). Sugesto: Considera que a primeira coluna so as clulas
esquerda de m e a segunda as direita de n, e podes usar @ para delimitar os restante nmeros. Para

dados,

separados por outro caracter (p.e.

somar dois nmeros em binrio, poders usar a soluo do problema 1.146.6, que foi disponibilizada.

148

Escreve uma mquina de Turing que ordene por ordem crescente trs nmeros em binrio
dados e separados por

@.

x, y

Supe que a representao dos nmeros tem o mesmo nmero de

bits.

Sugesto: Comea por ordenar apenas dois nmeros.

149

Escreve uma mquina de Turing que dado um nmero em unrio, o escreve em binrio, descrevendo
o propsito de cada estado e os smbolos usados.

150

n em binrio, determine o n-simo termo da sucesso de


= F1 = 1, Fn+1 = Fn + Fn1 ). Nota: Para somar dois nmeros em binrio, poders

Escreve uma mquina de Turing que dado


Fibonacci (F0

usar a mquina de Turing disponvel na pgina das aulas prticas.


Escreve uma mquina de Turing, codicando para o simulador dado, que reconhea a seguinte linguagem:

151
152

{0i 1j 2i 3j | i, j 0}
{u2n v | u {0, 1}? , v {2, 3}? , 1(u) = 3(v) = 2n}

Escreve uma mquina de Turing, codicando para o simulador dado, que calcule a seguinte funo:

29

153

154

Dado um nmero

2n

em unrio, calcule

em unrio. Por exemplo:

Inicial :

F inal :

1 1

Determine o menor nmero de uma sequncia de nmeros em unrio separados por

Inicial :

@ 1

1 @ 1

F inal :

@.

Instrues sobre o formato dos cheiros para o simulador


As especicaes para uma descrio duma mquina de Turing para o simulador TM so:

##

inicializa um comentrio

a primeira linha que no contenha um comentrio deve conter a seguinte informao (separada

TAB): estado inicial, estado final, branco

por

wildcard

(este ltimo pode ser usado nas

transies para indicar um conjunto de smbolos para os quais dado um estado e um smbolo ainda
no havia transio)

cada linha seguinte deve representar uma transio e os seus elementos tambm devem ser separados
por

TAB: estado, smbolo, novo estado, novo smbolo

movimento (R,

direita, ou

L,

esquerda).

Os smbolos da ta s podem ser representados por um caracter. Cada transio pode ser seguida
de um comentrio (no sendo necessrio

##).

Variantes de Mquinas de Turing


155

Seja

M = (S, , , , s0 , , F )

uma mquina de Turing.

movem a cabea para a direita ento

Sugesto :

156

L(M )

Mostra que se todas as transies em

regular.

constri um autmato nito que reconhece

L(M ).

Mostra que as seguintes variantes de Mquinas de Turing so equivalentes ao modelo bsico. Para
cada uma:

dene formalmente a uma mquina

dessa variante indicando a funo de transio, a

relao mudana de congurao e linguagem aceite por


(a)

constri MT's que simulem o funcionamento destas variantes

Mquinas de Turing com movimento de paragem.

A cabea da MT pode, para alm

dos movimentos normais de esquerda () e direita (), car no mesmo stio (h). A funo
de transio passa a ser da forma
(b)

: S S {, h, }.

Mquinas de Turing com k-tas.

Cada ta tem a sua cabea para leitura e escrita.

Inicialmente a palavra de entrada est na ta 1 e as restantes tas esto em branco. A funo
de transio passa a ser da forma

157

: S k S k {, }k .

(a) Descreve formalmente uma MT com

tas e dene as noes de congurao, relao de

mudana de congurao e linguagem aceite por uma MT de

tas.

(b) Descreve uma mquina de Turing com 2 tas que reconhea a seguinte linguagem

{w1 #w2 #...#wn | wi {a, b} e wi = wj i, j}

30

(c) Descreve uma MT com

tas que aceite a seguinte linguagem:

L = {wcwr | w {0, 1}? }


e compare-a com uma para o modelo bsico. Sugesto: Copiar os dados para a segunda ta
e comparar os smbolos, em cada ta movimentando as cabeas em direes opostas.

2 tas que reconhea a linguagem de todas as palavras


1's.Sugesto: A primeira ta contm os dados e
e a segunda guarda o excesso de 0's (ou de 1's) em cada

(d) Descreve uma mquina de Turing com


de

{0, 1}?

com igual nmero de

0's

e de

percorrida da esquerda para a direita;


momento.

158

no determinstica

Uma mquina de Turing

se dado um estado e um smbolo lido, existirem

vrias hipteses para o movimento (passo) seguinte, isto ,

: S P(S {, })
Uma mquina de Turing no determinstica aceita a sequncia de entrada se existe uma sequncia
de escolhas de movimentos que conduza a um estado de nal.
Descreve mquinas de Turing no determinsticas que aceitem cada uma das seguintes linguagens:

{0, 1}? que


wxzxy , |x| = 100.

(a) As palavras de
forma
(b)

L = {ww | w {0, 1}? }

(c) as palavras da forma

j , wj

159

contm uma subpalavra de tamanho 100 que se repete, i.e, so da

Seja um

o inteiro

k -APD

w1 #w2 #...#wn

para qualquer

n,

tal que cada

wi {a, b}

e para algum

em binrio.

um autmato de pilha determinstico com

pilhas. Um 0-APD um autmato

nito determinstico e um 1-APD um autmato de pilha determinstico. Sabemos que 1-APDs


so mais poderosos de 0-APDs.
(a) Dene formalmente um

k -APD

que aceite por estados nais. Nota: para facilitar podemos

supor que os dados so sempre da forma

x$ em que $ no pertence ao alfabeto, apenas permite

indicar que os dados terminaram.


(b) Mostra que 2-APDs so mais poderosos que 1-APDs.
(c) Mostra que 2-APDs so equivalentes a mquinas de Turing.
(d) Mostra que 3-APDs no so mais poderosos que 2-APDs.

? 160

Formaliza de um modo preciso a simulao da execuo de autmato de pilha por uma mquina
de Turing. Conclui que as linguagens independentes de contexto so recursivas.

Decidibilidade e indecidibilidade: linguagens recursivas, recursivamente enumerveis (r.e) e no-r.e


161

Considerando a codicao dada no curso, de mquinas de Turing em palavras de

{0, 1}?

obtm a

palavra correspondente seguinte MT:

M = ({s0 , s1 , s2 }, {0, 1}, {0, 1, }, , s0 , , {s2 })


onde a funo de transio

dada por

s0
s1

162

0
1

(s1 , 0, ) (s1 , 1, ) (s2 , , )


(s0 , 0, ) (s0 , 1, )

Para cada uma das operaes sobre linguagens: reunio (), concatenao, interseco () e fecho
de Kleene (?), averigua, justicando, se as seguintes linguagens so fechadas para essa operao:

31

(a) recursivas
(b) recursivamente enumerveis (r.e.)

163

Mostra que os seguintes problemas sobre mquinas de Turing so indecidveis (por reduo a um
problema indecidvel j conhecido):

M e palavra x, se M aceita x.
Determinar, dado uma mquina M , um estado s e uma palavra x,
quando inicializada com a palavra x na ta.

(a) Determinar, dada uma mquina


(b)

164

se

entra no estado

Mostra que os seguintes problemas sobre mquinas de Turing so decidveis:


(a) Determinar, dado uma mquina

se para algum

x, M

com dados

executa pelo menos 45

passos.
(b) Determinar, dado uma mquina

M , se M

alguma vez escreve um smbolo no branco, quando

inicializada com a ta vazia.


(c) Determinar, dado uma mquina

M e uma palavra x,
x na ta.

se

alguma vez move a cabea para a

esquerda quando inicializada com

165

Verdade ou Falsidade? Para cada uma das seguintes questes justica a sua resposta encontrando
uma prova ou um contra-exemplo.
(a) se
(b) se
(c) se
(d) se
(e) se
(f ) se
(g) se

? 166

L recursiva e R regular, ento L R


L r.e. e R regular, ento L R r.e.
L r.e. e R regular, ento R \ L r.e.
L r.e. e L r.e. ento L recursiva
A m B e B regular, ento A regular
A r.e. e A m B , ento B r.e.
A recursiva ento A recursiva

recursiva

(a) Averigua, justicando, se as linguagens recursivas so fechadas para a concatenao.


(b) Mostra que o seguinte problema indecidvel: Dada uma mquina de Turing determinar se

L(M )
? 167

innita. Ser r.e ou no r.e?

(a) Averigua, justicando, se as linguagens recursivamente enumerveis so fechadas para a concatenao.


(b) Mostra que o seguinte problema indecidvel: dada uma mquina de Turing determinar se

L(M )

168

tem pelo menos duas palavras. Ser r.e ou no r.e?

Dene linguagem recursivamente enumervel e averigua, justicando, se as linguagens recursivamente enumerveis so fechadas para a interseco nita.

169

Dene linguagem recursivamente enumervel e averigua, justicando, se as linguagens recursivamente enumerveis so fechadas para o fecho de Kleene.

170

(a) Mostra que o seguinte problema decidvel:


Determinar, dado uma mquina

e uma palavra

cabea para a direita quando inicializada com

x,

se

alguma vez move a

na ta.

(b) Mostra que o seguinte problema indecidvel:


Determinar, dado uma mquina

171

M,

se

L(M )

aceita a palavra

aaaa.

(a) Mostra que o seguinte problema decidvel:


Determinar, dado uma mquina

e uma palavra

x,

se

com dados

executa

mais de 100 passos


(b) Mostra que o seguinte problema indecidvel:
Determinar, dado uma mquina
estado

M,

um estado

quando inicializada com a palavra

32

e uma palavra

na ta.

x,

se

entra no

Resoluo de exerccios escolhidos


2

(a)

L3 = {010101, 01011, 010110, 011001, 01101, 011010, 0111, 01110, 100101, 10011, 100110, 101001,
10101, 101010, 1011, 10110, 11001, 1101, 11010, 111, 1110}

(b)

10 ou 01 e o nmero de zeros menor ou igual a 3}


{x | x , |x| 5 termina em 1 e o nmero de zeros menor ou igual a 2}
= {x | x , |x| 6 comea com 10 ou 01 e o nmero de zeros menor ou igual a 3}
{x | x , |x| 5 comea em 1 e o nmero de zeros menor ou igual a 2}

M L = {x | x , |x| 6

termina em

LM

i) Como

M

temos

L (LM M L).

 L LM pois  M ;
 M
6 LM pois 2222 M 2222 6 LM , porque nenhuma palavra de L comea com

ii)

o caracter

 6 L;

 L M L pois  M ;
 M
6 M L pois 2222 M 2222 6 M L, porque nenhuma palavra de L termina com
o caracter
iii)

 6 L.

a linguagem formada pelas palavras de caracteres

na vizinhana imediata de um

0 e 1 em que os 0's ocorrem sempre

1.

(a)

L01
L02

= {cccaccc, ccbaccb, cbcacbc, bccabcc}


= {ccccaaa, cccccccc}

L03

= {no

tenho pacincia!!! }

(b) Para todas as linguagens vamos subentender que tm alfabeto

 L1

a linguagem formada por palavras com exactamente um

esquerda e direita deste

 L2

{a, b, c}...

a,

de

e cujas subpalavras

a linguagem formada por um nmero (eventualmente nulo) de blocos de quatro

seguido por um nmero (eventualmente nulo) de blocos de trs

 L3

a,

so iguais;

a's;

c's

a linguagem formada pelas palavras formadas por um bloco (eventualmente vazio)

a's

b's

seguido por um qualquer nmero de

c's.

(c)

L1 L3

= {waw | w {b} }

L1 L2

L2 L3

= {aaa} {cccc}

L2

= {aaa, cccc}

(d)

L2 L3

= {wv | w L2 v L3 }
= {cccc} {aaa} {a, b} {c}

= {cccc} {a, b} {c}


L2 L3

a linguagem de alfabeto

(mas como

{aaa} {a, b} = {a, b}

{a, b, c}

formada por um conjunto de

c's

com tamanho

mltiplo de 4, seguida por uma qualquer bloco (eventualmente vazio) formado somente por

a's

17

b's,

seguido por um qualquer nmero de

c's.

(a) aparentemente demasiado complicado tentar encontrar directamente um autmato nito


determinstico que reconhea esta linguagem... e portanto em vez disso, passamos rapidamente

33

fora bruta... primeiro encontramos um autmato nito


a

linguagem complementar desta:


0's

uma sequncia par de

no determinstico que reconhea

ou seja a linguagem formada pelas palavras que contm

imediatamente esquerda de uma sequncia mpar de

1's.

Um

autmato no determinstico para esta linguagem :

?>=<
/ 89:;
a

89:;
/?>=<
b

89:;
/?>=<
c
C

?>=<
/ 89:;
d

0,1

89:;
?>=<
/.-,
/ ()*+
i

89:;
()*+
/.-,
?>=<
/ 89:;
/ ?>=<
g
e
U
T
0 1
0 
 1
89:;
?>=<
89:;
?>=<
f
h

0,1

Comecemos por encontrar um autmato nito determinstico completo equivalente a este:

{a, b, c}
{b, d}
{b, c}
{b, e}
{b, f }
?{b, c, g}
?{b, d, i}
{b, c, h}
?{b, e, i}
?{b, c, i}
?{b, f, i}
?{b, c, g, i}
?{b, c, h, i}

0
{b, d}
{b, e}
{b, d}
{b, f }
{b, e}
{b, d, i}
{b, e, i}
{b, d}
{b, f, i}
{b, d, i}
{b, e, i}
{b, d, i}
{b, d, i}

(A)
(B)
(C)
(D)
(E)
(F )
(G)
(H)
(I)
(J)
(K)
(L)
(M )

1
(B)
{b, c}
(D)
{b, c}
(B)
{b, c}
(E) {b, c, g}
(D)
{b, c}
(G) {b, c, h}
(I)
{b, c, i}
(B) {b, c, g}
(K) {b, c, g, i}
(G)
{b, c, i}
(I)
{b, c, i}
(G) {b, c, h, i}
(G) {b, c, g, i}

(C)
(C)
(C)
(F )
(C)
(H)
(J)
(F )
(L)
(J)
(J)
(M )
(M )

Como este autmato completo, o autmato que reconhece a linguagem complementar (o


nosso objectivo!) :

89:;
7654
0123
/ ?>=<
A@
@@
@@0
@
1
1 @@
@
 y
89:;
?>=<
0123
7654
89:;
?>=<
7654
0123
B o
C
0 9
JO

?>=<
89:;
7654
0123
E
1


89:;
?>=<
0123
7654
D
0

?>=<
89:;
0123
7654
H

89:;
/ ?>=<
F

y
1
?>=<
89:;
89:;
?>=<
L Ao
I
Y AA
O
AA0
AA
0
1
AA

y
89:;
@ABC
GFED
/ ?>=<
G
M
0
<

8
0
0

GFED
@ABC
K

?>=<
89:;
J
9 T
1

Este autmato equivalente a este outro, muito mais simples :

 y
89:;
/.-,
()*+
/ ?>=<

9
0

?>=<
89:;
0123
7654

9
0

?>=<
89:;
()*+
/.-,

89:;
?>=<
:

?>=<
/89:;
 s

0,1

...o que mostra que talvez pensar um pouco antes de atacar um problema, compense...

18

(a) Um autmato nito determinstico que reconhece esta linguagem :

1 Que

se obtm minimizando o anterior.

34

@ABC
/ GFED
s

0
0

 |
?>=<
0123
7654
/ 89:;
s0

89:;
/ ?>=<
s1
<
|

89:;
/ ?>=<
s2 o

<

?>=<
89:;
s3 o

<

89:;
?>=<
s4 u

(b) Para provar que este autmato reconhece a linguagem dada vamos provar que para uma
palavra

b , w) = si .
k5 + i (i {0, 1, 2, 3, 4}) se tem (s
comprimento de w . Se |w| = 1 ento ou w = 0 e

que represente um nmero da forma

A demonstrao segue por induo no

b , 0) = s0 ,
(s

ou

w=1

b , 1) = s1 .
(s

ne
|w0 | = n + 1, podemos escrever w0 = wx em que |w| = n e x {0, 1} e portanto

Suponhamos que a propriedade se verica para todas as palavras de comprimento igual a


seja

w0

tal que

b , w0 ) = ((s
b , w), x).
(s
Por hiptese de induo

b , w) = si .
w i (mod 5) (s

Temos portanto que analisar 5

casos:

i=0

i=1

i=2

i=3

i=4

b , w) = s0
(s
 (s0 , 0) = s0 . Como w0 = 2w, (w 0 (mod 5)) (2w 0 (mod 5)).
 (s0 , 1) = s1 . Como w1 = 2w + 1, (w 0 (mod 5)) ((2w + 1) 1 (mod 5)).
b , w) = s1
, ento (s
 (s1 , 0) = s2 e (w 1 (mod 5)) (2w 2 (mod 5)).
 (s1 , 1) = s3 e (w 1 (mod 5)) ((2w + 1) 3 (mod 5)).
b , w) = s2
, ento (s
 (s2 , 0) = s4 e (w 2 (mod 5)) (2w 4 (mod 5)).
 (s2 , 1) = s0 e (w 2 (mod 5)) ((2w + 1) 0 (mod 5)).
b , w) = s3
, ento (s
 (s3 , 0) = s1 e (w 3 (mod 5)) (2w 1 (mod 5)).
 (s3 , 1) = s2 e (w 3 (mod 5)) ((2w + 1) 2 (mod 5)).
b , w) = s4
, ento (s
 (s4 , 0) = s3 e (w 4 (mod 5)) (2w 3 (mod 5)).
 (s4 , 1) = s4 e (w 4 (mod 5)) ((2w + 1) 4 (mod 5)).
, ento

A propriedade verica-se para uma palavra de comprimento


que a propriedade universal.

n+1

so reconhecidas pelo autmato, aquelas que

b , w) = s0 ,
(s

so exactamente as que

(mod 5).

28

(a)

(b)

e portanto temos mostrado

Fica assim mostrado, em particular, que as palavras

i)

bbab, no.
ii) aaaaba, sim.
iii) ababab, no.
{a} {a, b}{ba} {b}{a, b}{(}{ab}{ab} {a, b})

(c)

0
{s0 }
{s0 , s1 }
{s1 , s2 }
{s1 , s2 , s3 }
{s3 }
?{s1 , s4 }
?{s3 , s4 }
?{s4 }
{s1 }
35

a
b
{s0 , s1 }
{s1 , s2 }
{s0 , s1 } {s1 , s2 , s3 }

{s3 }
{s1 , s4 }
{s3 , s4 }
{s1 , s4 }
{s4 }
{s1 }
{s3 }
{s1 , s4 }
{s4 }
{s1 }

{s3 }

w que
w 0

s00 = {s0 }, s01 = {s0 , s1 }, s02 = {s1 , s2 }, s03 = {s1 , s2 , s3 }, s04 = {s3 },
= {s3 , s4 }, s07 = {s4 }, s08 = {s1 }, o autmato nito determinstico equivalente

Ou seja, tomando

s05

{s1 , s4 }, s06

({s00 , s01 , s02 , s03 , s04 , s05 , s06 , s07 , s08 }, {a, b}, 0 , s00 , {s05 , s06 , s07 }).
Tornando este autmato completo (para poder encontrar o autmato que reconhece a linguagem complementar), e transformando os estados nais em no-nais e


GFED
@ABC
89:;
?>=<
s0
? 1

vice versa, vem:

b / GFED
G?>=<
89:;
FED
@ABC
/ @ABC
s06
s03 G
GG a
//
a
GG
GG  a //
G#
/
G?>=<
89:;
FED
@ABC
GFED
/ @ABC
s00
s05 //b/
>>
b
//
B
>>b
a
>>
/

b

b
+
@ABC
GFED
89:;
?>=<
@ABC
89:;
?>=<
@ABC
GFED
/ GFED
a
s02
s04 Gc
s0
GaG a hhhhhhhh 7
G
h
h
hhhh GGGG 
a
hhhhb
 b
h
h
h
sh
@ABC
GFED
89:;
?>=<
@ABC
GFED
89:;
?>=<
s08
s09 o
H
a

a,b

29

(a)

i)

abaa, sim.
baaa, sim.
iii) ababba, no.
({a} {b}{ab} {aa, })
ii)

(b)
(c)

0
?{s0 , s1 , s2 }
?{s3 }
{s1 , s2 }
Ou seja, tomando

a
{s0 , s1 , s2 }
{s1 , s2 }
{s0 , s1 , s2 }

b
{s3 }

{s3 }

s00 = {s0 , s1 , s2 }, s01 = {s3 }, s02 = {s1 , s2 },

o autmato determinstico

equivalente

({s00 , s01 , s02 }, {a, b}, 0 , s00 , {s00 , s01 })


Tornando este autmato completo (para poder encontrar o autmato que reconhece a linguagem complementar), e transformando os estados nais em no-nais e

GFED
@ABC
s0
? 1S >>
>>b
>>

@ABC
89:;
?>=<
a b GFED
s03 u

GFED
/) @ABC
s00
>_ >
>>
a >> 
@ABC
GFED
89:;
?>=<
s02
b

43

vice versa, vem:

a,b

(a) A correo desta alnea foi feita na folha 2 (2.6). Um autmato pode ser:

 y
89:;
/.-,
()*+
/ ?>=<

9
0

?>=<
89:;
0123
7654

9
0

?>=<
89:;
()*+
/.-,

89:;
?>=<
:

?>=<
/89:;
 s

0,1

(b) Uma expresso regular, que se obtm facilmente a partir do autmato de 5 estados,

(1 + 0(0(11) 0) 1) 0(0(11) 0) 0(11) .


36

44

(a) Como se viu em na folha 2, ex. 2.7, um autmato nito determinstico que reconhece esta
linguagem :

@ABC
/ GFED
s

 |
?>=<
0123
7654
/ 89:;
s0

0
0

89:;
/ ?>=<
s1
<

89:;
/ ?>=<
s2 o

?>=<
89:;
s3 o

<

?>=<
89:;
s4 u

<

(b) A expresso regular pode-se obter a partir do autmato, pelo mtodo da eliminao de estados
(por exemplo).
Ao estado inicial no chegam nenhumas transies, pelo que j est nas condies requeridas
pelo algoritmo. Em contrapartida do estado nal
acrescentar um novo estado:

@ABC
/ GFED
s

0
0

GFED
@ABC
89:;
?>=<
s
A


 
1



 |
|
1 / ?>=<
89:;
89:;
/ ?>=<
s0
s1
<

s0

89:;
/ ?>=<
s2 o

<

?>=<
89:;
s3 o

Comecemos por eliminar o estado

s3

partem transies pelo que necessrio

s4 .

<

?>=<
89:;
s4 u

O nico trajecto que passa por

s4

@ABC
/ GFED
s

GFED
@ABC
89:;
?>=<
s
A



 
1



 |
|
1 / ?>=<
89:;
89:;
/ ?>=<
s0
s1
<

0
0

89:;
/ ?>=<
s2 o

s3 ,

Seguidamente, se eliminarmos

@ABC
/ GFED
s

1
01 0

8<

?>=<
89:;
s3

temos:

0
0

GFED
@ABC
89:;
?>=<
s
A


 
1



 |

1 / ?>=<
89:;
89:;
/ ?>=<
s0
s1
< S

01 00


89:;
?>=<
s2
E

01 01

10
1
Eliminamos agora o estado

@ABC
/ GFED
s

s2 :

0
0

11+0

GFED
@ABC
89:;
?>=<
s
A



 



 
1 / ?>=<
89:;
89:;
/ ?>=<
s1
s0
Y
< S
(10)+((11+0)(01 01) 01 00)

(11+0)(01 01) 1

37

s2
01 0.

o que vai de

pelo que passa a existir uma transio entre estes dois estados com a etiqueta

para

Seguidamente eliminamos

s0 :

@ABC
GFED
89:;
?>=<
s
A ]:::

::

00 
::(11+0)(01 01) 10

::

::


89:;
?>=<
@ABC
/ GFED
s1
s
< S
(10)+((11+0)(01 01) 01 00)+((11+0)(01 01) 10 1)
1+(00 1)

s1

Finalmente eliminamos o estado

(00 )+(1+(00 1))((10)+((11+0)(01 01) 01 00)+((11+0)(01 01) 10 1)) (11+0)(01 01) 10

GFED
/ @ABC
s
%

GFED
@ABC
89:;
?>=<
s

O resultado :

(00 ) + (1 + (00 1))((10) + ((11 + 0)(01 01) 01 00) + ((11 + 0)(01 01) 10 1)) (11 + 0)(01 01) 10 .

72

Suponhamos que tal linguagem regular, ento pelo

Lema da Repetio temos que

n > 0 x L (|x| > n u, v, w (|uv| n |v| > 0 uvw = x) i 0 uv i w L).


3

n e consideremos a palavra 0(n ) L e sejam u, v, w nas condies


(n3 )
3
do enunciado anterior. Temos uvw = 0
, (com |v| > 0 e |u|+|v| n), donde |w| = n (|u|+|v|).
2
Ento, pelo Lema da Repetio uv w L. Mas

Suponhamos que existe ento tal

|uv 2 w| = |u| + 2|v| + (n3 (|u| + |v|))


= n3 + |v|
n3 + n
(pois |v| n)
3
2
< n + 3n + 3n + 1
=
como

|v| =
6 0

(n + 1)3

temos

n3 < |uv 2 w| < (n + 1)3


pelo que

|uv 2 w| =
6 i3 i N
uv 2 w 6 L o que absurdo.
provado que L no regular.

e portanto
ca

73

evidente que uma condio


linguagem

O absurdo resultou da suposio que

necessria

era regular pelo que

(mas no suciente) para que uma palavra

que contenha um mesmo numero de

).

Suponhamos que

pertena

regular e

n nas condies do Lema da Repetio. Consideremos ento a seguinte palavra


n n
n n
L: ( ) . Existem ento u, v, w {(, )} com uvw = ( ) , |uv| n e |v| > 0. Como
|uv| n, tanto u como v contm somente (. Pelo lema da repetio uv 2 w L, mas como v contm
2
somente ( uv w vai conter mais ( do que ), o que absurdo. O absurdo resultou de se supor que
L era regular, pelo que ca mostrado que L no regular.
portanto existe
pertencente a

78 1.
(a) Para determinar os estado acessveis do estado inicial, temos que determinar os estados para
os quais h transies do inicial para eles e depois sucessivamente os estados onde se chega
desses. Assim obtm-se que os estados acessveis do estado 1 so: 1,4,3,5,2,6. O estados 7 e 8
no so acessveis do estado inicial, portanto podem ser eliminados.

38

(b) Comeamos por determinar os estados que so equivalentes, construindo a tabela de compatibilidades, onde se marcam os pares de estados distinguveis. Recorda que a tabela simtrica
e os elementos da diagonal que correspondem a pares

(s, s),

sero sempre equivalentes (e

portanto nunca podero ser marcados). Assim camos s com a parte triangular inferior da
tabela.
Comeamos com todos os pares no marcados.

Marcamos todos os pares

(s, s0 )

tal que

Agora para um par no marcado

(s, s0 )

3
4

nal e

3
4

s0

no , ou vice-versa. Resulta a tabela:

5
6

temos que ver se

est marcado (caso em que marcamos tambm

(1, 2):
(1, 5):
(1, 6):

5
6

(s, s )

((s, x), (s0 , x)),

para algum

x ,

):

a obtemos o par (1, 3) que est marcado, portanto marca-se (1, 2)


por a obtemos o par (1, 4) que est marcado, portanto marca-se (1, 5)
por a obtemos o par (1, 6) e por b o par (3, 4), ambos no marcados, portanto
marcamos (1, 6)
(2, 5): por a obtemos o par (3, 4) que no est marcado e por b o par (1, 6), que tambm
est marcado, portanto no se marca (2, 5)
(2, 6): por a obtemos o par (3, 6) que est marcado, portanto marca-se (2, 6)
(3, 4): por a obtemos o par (4, 3) que no est marcado e por b o par (2, 5), que tambm
est marcado, portanto no se marca (3, 4)
(5, 6): por a obtemos o par (4, 6) que est marcado, portanto marca-se (5, 6)
por

no

no

no

Resulta a seguinte tabela:

3
4

5
6

Repetindo o processo, vemos que no podemos marcar mais pares de estados, concluindo que
os pares de estados equivalentes so:

(1, 6), (2, 5)

(3, 4)

O autmato mnimo equivalente ento:

Am1 = ({[1, 6], [2, 5], [3, 4]}, {a, b}, m1 , [1, 6], {[3, 4]})
a
b
[1, 6] [1, 6] [3, 4]
[2, 5] [3, 4] [1, 6]
[3, 4] [3, 4] [2, 5]
Sendo

A = [1, 6], B = [2, 5]

C = [3, 4]

temos:

39

89:;
/* ?>=<
A
X

89:;
0123
7654
/* ?>=<
C
F

b
b


?>=<
89:;
B

(c) Por eliminao de estados obtm-se a expresso regular:

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

2.
(a) Para determinar os estado acessveis do estado inicial, temos que determinar os estados para
os quais h transies do inicial para eles e depois sucessivamente os estados onde se chega
desses. Neste caso, todos os estados so acessveis do estado 1: 1,3,5,7,2,8,4,6.
(b) Comeamos por determinar os estados que so equivalentes, construindo a tabela de compatibilidades, onde se marcam os pares de estados distinguveis. Recorda que a tabela simtrica
e os elementos da diagonal, que correspondem a pares

(s, s),

sero sempre equivalentes (e

portanto nunca podero ser marcados). Assim camos s com a parte triangular inferior da
tabela. Comeamos com todos os pares no marcados.

Marcamos todos os pares

(s, s0 )

tal que

nal e

s0

7
8

no , ou vice-versa. Resulta a tabela:

7
8

(s, s0 ) temos que ver se ((s, x), (s0 , x)), para algum x
0
est marcado (caso em que marcamos tambm (s, s ) ):
(1, 2): por a obtemos o par (3, 8) e por b obtemos o par (5, 7), como ambos no esto marcados,
tambm no marcamos (1, 2)
(3, 4): por a obtemos o par (7, 6) e por b obtemos o par (2, 2), como ambos no esto marcados,
tambm no marcamos (3, 4)
(3, 5): por a obtemos o par (7, 1) que est marcado, portanto marca-se (3, 5)
Analogamente marcamos (3, 6) e (3, 7)
(3, 8): por a obtemos o par (7, 5) e por b obtemos o par (2, 1), como ambos no esto marcados,
tambm no marcamos (3, 8)
(4, 5): por a obtemos o par (6, 1) que est marcado, portanto marca-se (4, 5)
Analogamente marcamos (4, 6) e (4, 7)
(4, 8): por a obtemos o par (6, 5) e por b obtemos o par (2, 1), como ambos no esto marcados,
tambm no marcamos (4, 8)
Agora para um par no marcado

40

(5, 6):

a obtemos o par (1, 2) e por b obtemos o par (8, 3), como ambos no esto marcados,
(5, 6)
(5, 7): por a obtemos o par (1, 1) e por b obtemos o par (8, 4), como ambos no esto marcados,
tambm no marcamos (5, 7)
(5, 8): por a obtemos o par (1, 5) que est marcado, portanto marca-se (5, 8)
(6, 7): por a obtemos o par (2, 1) e por b obtemos o par (3, 4), como ambos no esto marcados,
tambm no marcamos (6, 7)
(6, 8): por a obtemos o par (2, 5) que est marcado, portanto marca-se (6, 8)
(7, 8): por a obtemos o par (1, 5) que est marcado, portanto marca-se (7, 8)
por

tambm no marcamos

Resulta a seguinte tabela:

7
8

Repetindo o processo, vemos que no podemos marcar mais pares de estados, concluindo que

(1, 2), (3, 4), (3, 8),(4, 8),(5, 6)


[1, 2], [3, 4, 8] e [5, 6, 7].

os pares de estados equivalentes so:


as classes de equivalncia

(6, 7).

Donde resultam

O autmato mnimo equivalente ento:

Am2 = ({[1, 2], [3, 4, 8], [5, 6, 7]}, {a, b}, m2 , [1, 2], {[1, 2]})
a
b
[3, 4, 8] [5, 6, 7]
[5, 6, 7] [1, 2]
[1, 2] [3, 4, 8]

[1, 2]
[3, 4, 8]
[5, 6, 7]
Sendo

A = [1, 2], B = [3, 4, 8]

C = [5, 6, 7]

temos:

s
89:;
0123
7654
/ ?>=<
A g

b
a
a


' ?>=<
89:;
C

89:;
3 ?>=<
B
F
b

(c) Por eliminao de estados obtm-se a expresso regular:

(ba + (a + bb)(ab) (b + aa))

93

Seja

a gramtica com as seguintes regras:

S 0S1S | 1S0S | 0S | 
Temos que mostrar que, sendo
excede o nmero de

(L(G) L):

Seja ento

6= 1).

se tem:

a linguagem formada pelas palavras em que o nmero de

L(G) L

A nica palavra de

trivialmente a

(n

0's,

L(G)

1's

no

L L(G).

que pode ser derivada com um s passo

que pertence

L.

uma palavra de

L(G),

portanto existe uma derivao de

Suponhamos que para todas as palavras

41

r0

em

com

passos

com uma derivao mais curta que a de

se tem

r0 L.

Como existe uma derivao de

em

(e estamos a supor que tem mais do

que um passo), esta tem que ter uma das seguintes formas:

S 0S1S . . . r
S 1S0S . . . r
S 0S . . . r
n o tamanho das derivaes das palavras que corresponr tm que ter derivaes
menores que n. Portanto, pela hiptese de induo, so palavras cujo nmero de 1's no
excede o nmero de 0's. Ento em qualquer dos trs casos trivial concluir que a palavra r
goza dessa mesma propriedade e portanto r L.
(L L(G)): Provemos que qualquer palavra r que contenha um nmero de 1's que no exceda o
nmero de 0's pode ser derivada em G, ou seja r L(G), por induo no comprimento de r .
Se |r| = 0, ento r =  e portanto pode ser trivialmente derivada em G.
0
Seja ento r L com |r| = n e suponhamos que qualquer palavra r com comprimento menor
0
0
que n se tem r L r L(G). Suponhamos que o primeiro caracter de r um 0, se r
composta somente por 0's ento r temos que
Como o tamanho da derivao de
dem a cada um dos

que ocorrem no primeiro passo de derivao de

S 0S
e como

0n1 L

por hiptese de induo existe uma derivao para

0n1

e portanto existe

uma derivao

S 0S . . . r
logo

r L(G).

Se pelo contrrio existir algum

em

ento

r = 0r0 1r00

para algum

r0 , r00 L

porque:




se o ltimo caracter de

um

se o ltimo caracter um

r = 0r0 1 e r0 L;
tomemos o 1 mais esquerda

ento

ento

em

r:

r = 0r00 1r000 0
r00 , r000 0 L est o problema resolvido... se no porque r00 L e r000 0 6 L (pois r00 s
0
00
contm 0's) e r0 contm pelo menos mais um 0 do que 1's (porque, por hiptese r0 0 6 L
e r L). Ento tomamos o 1 seguinte:
se

r = 0r10 1r100 0
r10 , r100 L o problema est resolvido seno porque se tem r10 L e r100 6 L (porque
0
r0 tinha pelo menos um 0 mais que que 1's e r10 s contm mais um 1 que r0 ), notando
0
que r1 continua a ter de conter pelo menos mais um 0 do que 1's prosseguimos o processo

se

para o

com um

seguinte... Temos garantia que o processo termina com sucesso pois

pelo que para o ltimo

termina

(o mais direita) no possvel ter

r = orn0 1rn00 0
rn0 L e rn00 6 L.
0
00
0 00
0
00
0 00
Portanto r = 0r 1r como r , r L. Como |r |, |r | < n pela hiptese de induo r , r
L(G) logo r L(G). O caso de r ter como primeiro caracter um 1 inteiramente anlogo ao
com

anterior.

94

Uma gramtica que gera a linguagem a gramtica com as seguintes regras:

S aSc | A | C
A aA | aB
C Cc | Bc
B  | bB
Seja

a linguagem pedida, temos que mostrar que

42

L = L(G)

ou seja que

L L(G) L(G) L.

(L(G) L) :

Vamos mostrar o seguinte:

 B w
Se

ento

bm

da forma

com

m N.
w = .

for derivvel num s passo ento

trivialmente da forma

 C w

ento

da forma

Se na derivao de

bm c. Se
 A w

tiver

passos

bm cl

com

m, l N, l > 0.
C ento w tem que ser da forma
C ento w trivialmente da forma bm cl .
n, m N, n > 0.

intervem somente uma vez a regra

na derivao intervierem
ento

Se a derivao de

bm1 .

da forma

an bm

regras
com

Inteiramente anlogo anterior.

 S w

ento

da forma

Se na derivao de

an bm cl

Como cada derivao usando a regra

tem a forma pretendida.

(L L(G)) :
que

n, m, l N, n 6= l.
0
0
S ento w da forma an bm ou bm cl .

S aSc acrescenta um a e um c, se S w ento

com

s intervem uma vez a regra

w L ento w da forma an bm cl com n 6= l logo ou n > l ou n < l.


n > l, seja n = l + k ento
Seja

Suponhamos

S l al Acl k al ak Bck m an bm cl
logo

99

w L(G).

Se

n<l

a demonstrao inteiramente anloga.

Para mostrar que a gramtica ambgua basta encontrar uma palavra com duas rvores de derivao distintas, p.e para

q q q:






S?
??
??
??

S?
 ???

??

?


S
S

S
 ???

??

??



S
S
 ???

?

??

?

q

S
S

Uma gramtica no ambgua, equivalente anterior :

S P S |P S |P
P (S) | p | q

100

Para mostrar que esta gramtica ambgua basta exibir duas rvores de derivao diferentes para

43

uma mesma palavra, p.e

11111:
~
~~
~
~
~~

S?
??
??
??
?
1
B

jjojo A
jjojojoo
j
j
j
jjj ooo 
jjjj oooo 
j
j
j
o
j

1
1
A
oA@
ooo @@@
o
o
@@
oo 
@
ooo 
o
o
o

1
1
A
A







S ?OOO
?? OOO
?? OOO
?? OOO
OO
1
B?
??
~~
~
?
~
??
~~
?
~~
B
1
B>
 >>>


>>

>


1
B>
B
>>
>>
>>

B
1
B>
>>
>>
>>

B
1
B


Uma gramtica equivalente anterior, mas no ambgua :

S 1S | 0S | 1

114

Na forma normal de Chomsky:

S SA | SB | CD | p | q
A ES
B FS
C(
D SG
E
F
G)

115

Para obter a gramtica original na forma normal de Chomsky comecemos por eliminar as regras-:

S AB1 | B1 | A1 | 1
A A11 | 11A | A11A | 11
B B0B | B1B | 0B | B0 | B1 | 1B | 0 | 1

44

Donde a gramtica na forma normal de Chomsky vem:

S AC | BG | AG | 1
A AD | GH | AJ | GG
B BE | BF | IB | BI | BG | GB | 0 | 1
C BG
D GH
E IB
F GB
G1
H GA
I0
J GG

160

Seja um autmato de pilha

P = (S, , , , sp , Z, F ).

Podemos supor que em cada transio o

nmero de smbolos da pilha aumenta no mximo de uma unidade (Verica!).


Para simplicar consideremos uma Mquina de Turing (no-determinstica) com duas tas, com
instrues de movimento

R, L, H

(mover a ta para a direita, esquerda e no mover, respectiva-

mente) e supomos que a palavra a reconhecer est escrita na ta


smbolo inicial da pilha,

Z,

na ta

1.

Comeamos por escrever o

(si , a, , sp , a, Z, H, R), a
A segunda ta pode desempenhar o papel da pilha do autmato, e podemos traduzir para transies
da MT, directamente, as diversas entradas da funo de transies

(s0 , a, A) = (s1 , B)
(s0 , , A) = (s1 , B)
(s0 , a, A) = (s1 , )
(s0 , , A) = (s1 , )
(s0 , a, A) = (s1 , BA)
(s0 , , A) = (s1 , BA)

Em que cada

k1

s00

(s0 , x, A),

do autmato:

(s0 , a, A, s1 , a, B, R, H)
(s0 , a, A, s1 , a, B, H, H), a
(s0 , a, A, s1 , a, , R, L)
(s0 , a, A, s1 , a, , H, L), a
(s0 , a, A, s00 , a, A, H, R)
(s00 , a, , s1 , a, B, R, H)
(s0 , a, A, s00 , a, A, H, R), a
(s00 , a, , s1 , a, B, H, H), a

um novo estado para cada transio

alternativas

Se o autmato for no determinstico, as

devem ainda ser identicadas no estado intermdio de actualizao

da pilha, que dever ser da forma

(s00 , j)

com

j = 1 . . . k.

Se o autmato depois de ler os dados, entrar num estado nal, a mquina tambm deve entrar no
estado nal

sf :
(s, , X, sf , , X, H, H), s F, X {}

Caso o autmato no entre num estado nal, quando terminar os dados ele pra, e mquina tambm
pra, mas no entra num estado nal.
Como este modelo de MT equivalente ao das MT com uma s ta e dois movimentos (visto nas
aulas) conclumos que seja qual for a linguagem independente de contexto, esta por denio tem
um autmato de pilha que a aceita (por estado nal), e foi possvel encontrar uma MT que tambm
reconhece esta linguagem por estado nal. Portanto todas as linguagens independentes de contexto
so recursivas.
Utilizando uma MT (no determinstica) com uma s pilha e duas instrues no muito difcil
fazer o mesmo tipo de traduo que foi feita acima... mas esta traduo bastante mais trabalhosa...

45

166

L0
M 00

(a) Sejam

L00

duas linguagens recursivas. Ento, por denio existem mquinas de Turing

que para qualquer input na ta, param num estado nal (denidor de sucesso) caso

a palavra pertena a
Para cada palavra

L0

L00 ,

respectivamente, e param num outro estado, caso contrrio.

com tamanho

existem

n+1

w = w0 w00 .

maneiras de se ter

Basta

escrever uma mquina de Turing que execute o seguinte algoritmo:





w = w0 w00 ;
00
executam-se M com w e M com w ;
0
00
se ambas as mquinas M e M terminarem aceitando as respectivas palavras, a mquina
M deve terminar aceitando a palavra w;
 se alguma das mquinas rejeitar o seu input, toma-se a diviso de w = w0 w00 seguinte e
toma-se a primeira diviso de

00

repete-se o processo;

w = w0 w00

a mquina M deve rejeitar w .


M dado um input w pra (sempre), encontrado-se no estado de aceitao somente
w L0 L00 . Conclui-se assim que as concatenao de duas linguagens recursivas uma
se no restarem mais divises de

Esta m.T.
se

linguagem recursiva.
(b) Consideremos a seguinte reduo: uma m.T.
se uma determinada m.T.

existisse uma mquina

com

input x

M0

L(M 0 )

indecidvel. Portanto tal mquina

com

termina aceitando

L(M 0 )

A linguagem

que respondesse pergunta se

ao problema da paragem para a mquina

input y

que dado um

parar.

ou

ou

Se

innito, estaria a responder

input x, que , como sabemos, um problema

no existe, pelo que o problema indecidvel.

A questo de provar que o problema no semi-decidvel, bastante mais delicada... Consi-

que dado um input y termina com sucesso se uma determinada m.T.


input x no parar ao m de |y| passos, e rejeita y caso contrrio. A linguagem L(M 0 )
innita caso M com input x no pare, e vazia caso contrrio. Portanto se existisse uma soderemos uma m.T.

M0

com

luo semi-decidvel para o problema de responder se a linguagem aceite por uma mquina de
Turing innita, ento tal resposta para a mquina

M0

corresponderia a obter uma resposta

semi-decidvel para o problema complementar da paragem que sabemos no ser semi-decidvel


(seno o problema da paragem seria decidvel pois seria semi-decidvel com complementar
semi-decidvel).

167

(a) Sejam

L0

L00

duas linguagens recursivamente enumerveis, quer isto dizer que existem m-

M0

quinas de Turing

M 00

input

que quando executadas tendo por

que essa palavra pertence linguagem (respectivamente

L0

L00 )

uma palavra, sempre

terminam num estado nal

(denidor de sucesso) no se garantindo que parem caso contrrio. Queremos mostrar que

M que quando executada com input w pra num


w = w0 w00 com w0 L0 e w00 L00 , nada necessitando

possvel encontrar uma mquina de Turing


estado nal (denidor de sucesso) caso
garantir no caso contrrio.

w com tamanho n existem n + 1 maneiras de se ter w = w0 w00 . Sejam


0 00
0 00
0 00
w0 w0 , w1 w1 , ..., wn wn essas n + 1 divises de w. Basta ento que a mquina M v executando
(por diagonalizao) sucessivamente um passo de cada uma das 2(n + 1) mquinas

Para cada palavra

(M 0 , w00 ), (M 00 , w000 ), ..., (M 0 , wn0 ), (M 00 , wn00 ),


at que um par de mquinas
em que a mquina

(M 0 , wi0 ), (M 00 , wi00 ) termine aceitando os respectivos input, altura


w.

deve parar, aceitando

Conclu-se assim que as concatenao de duas linguagens recursivamente enumerveis uma


linguagem recursivamente enumervel.
(b) A primeira reduo dada no alnea do problema 160 serve para mostrar que este problema
no pode ser decidvel (Porqu?).
O problema trivialmente semi-decidvel. Dada uma mquina de Turing
damente (por ordem crescente) todos os possveis inputs para

M.

Ento executamos (por diagonalizao) todos os pares (mquina,


cutando estgios sucessivos (comeendo no estgio
passo de cada par

(M, xi ), i {0, ..., k}.

0),

input ).

46

geramos ordena-

xi

xi , i N.

Ou seja vamos exe-

tal que no estgio

Quando tivermos obtido dois

paramos no estado de sucesso.

Sejam esses inputs

executamos um

aceites pela mquina