Você está na página 1de 5

Autômatos e Teoria da Computação

exercı́cios adicionais 04

1. Construção de gramáticas

Escolha ao menos uma das linguagens abaixo, e construa uma gramática para ela
Escolha também algumas palavras que pertencem à linguagem, e algumas palavras que
não pertencem.
Daı́, você deve derivar as palavras que pertencem à linguagem na gramática.
E deve explicar porque a gramática não pode derivar as palavras que não pertencem à
linguagem.

• BA+ : todo bloco de b’s é seguido por um bloco de a’s maior do que ele

• MKL: palavras da forma


am b ak b a`

onde m, k, ` > 0, e também m = k ou k = ` ou m = `

• P − I+ : os blocos pares de a’s aparecem todos antes dos blocos ı́mpares de a’s,
e existem mais blocos ı́mpares do que blocos pares

• IP+ : todo bloco ı́mpar de a’s é seguido imediatamente por um bloco par de a’s
com o dobro do seu tamanho

• 2MN: palavras da forma


am+2n b a2m+n b an

onde m, n > 0

• COMP-imp: composições de tamanho ı́mpar da função f e do argumento x


Por exemplo,
f(x), f(f(f(x))), f(f(f(f(f(x))))), ...

• pari-BAL: palavras que tem a mesma quantidade de blocos pares de a’s e


blocos ı́mpares de a’s

1
2. Conversão de autômatos de pilha

Escolha um dos autômatos de pilha abaixo.


Converta esse autômato de pilha para um autômato recursivo.
E depois converta o autômato recursivo para uma gramática.

a)

b[a, e]
b[e, b]
q0 q1
e[e, ⊥ ] a[e, a]
q2
a[e, a]
a
a[b, e] q4
b[e, b]
e[ ⊥ , e]
q3
b[e, b]
b[a, e]

b)
q4 q5
b[a,e]
a

q1 b b
q0 a b b
q3 q6
b
a

a[e,a] a q8 q9
b[a,e]

b b
b b
q2 q7 q10

2
3. Conversão de gramáticas

Escolha uma das gramáticas abaixo.


Converta essa gramática para um autômato recursivo.
E depois converta o autômato recursivo para um autômato de pilha.

• BAL (v1):
S → aSb | bSa | SS | e

• BAL (v2):
S → a b S | b a S | aa S bb S | bb S aa S | e

• BAL (v3):
S → aB | bA | e
A → aS | BAA | a
B → bS | ABB | b

• PADRÃO: Palavras da forma


x#y

onde x é um padrão que ocorre ao menos uma vez de maneira reversa na palavra y
Por exemplo,

abb # bba , ba # aaba , abaa # abbaabaaa , etc

• COMP − a

Considere as funções f(x) e g(x, y), e suponha que


- f(a) = b e f(b) = a

- g(a, a) = g(b, b) = a, e g(a, b) = g(b, a) = b

COMP − a é a linguagem que contém todas as composições das funções f, g, com os


argumentos a, b, que dão o resultado a.
Por exemplo,

f(b), f(g(a, b)), g(f(a), b), g(g(a, a), g(b, b)), etc

3
4. Gramáticas e não-determinismo

Escolha uma das gramáticas abaixo.

Faça a conversão padrão da gramática para um autômato de pilha


— (onde cada regra da gramática corresponde a uma transição de qR para qR — (aula 27))

E daı́, modifique o autômato (ou a gramática) para que o autômato se torne determinı́stico.

Nota 1: Em um autômato de pilha determinı́stico, o próximo sı́mbolo da palavra de


entrada e o sı́mbolo no topo da pilha determinam de maneira única o próximo passo da
computação.

Nota 2: Você pode assumir que a palavra de entrada termina com $.

• S → aSa | b

• S → aa S ab | e

• S → TB
T → aTa | b
B → bb B | e

• S → TU
T → a T bb | e
U → b U aa | e

5. Lema do bombeamento

Escolha ao menos uma das linguagens abaixo e prove que ela não é livre de contexto
utilizando o lema do bombeamento

• BAL − BAL: Palavras formadas pela concatenação de duas palavras x, y ∈ BAL


onde x e y tem exatamente o mesmo tamanho
Por exemplo, as palavras abaixo estão na linguagem

baba, ababbbaa, babbaaaaabbb, etc

Mas essas outras não estão

aabb, abaabaaa, abbbbabaaaab, etc

4
• MKM: am bk am , onde k ≤ m/2

• 3 − IG-a: Palavras que possuem 3 blocos de a’s com exatamente o mesmo tamanho
Por exemplo,

ababa, aa b aa bbb aa b , a b aaa bb aaa bb aa bb aaa , etc

• 2 − pares: Palavras que possuem um par de blocos de a’s do mesmo tamanho,


e também possuem um par de blocos de b’s do mesmo tamanho
Por exemplo,

aa b a b a bb , aa b aa bbb a bbb , bbbb aaaa bbbb aaaa , etc

• BAL ∩ PAL: palı́ndromos que possuem a mesma quantidade de a’s e b’s

Você também pode gostar