Buscar

Exerc-TM-L1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 Exerćıcios de Máquina de Turing
1.1 Exerćıcio 1: Máquina de Turing que reconhece a Lin-
guagem do Duplo Balanceamento
Considere a linguagem:
DB = {(n)n|n ≥ 0}
Intuitivamente, uma Máquina de Turing que aceita esta linguagem pode ser
definida da seguinte maneira: no estado inicial, a cabeça lê o śımbolo “(”, o qual
pode ser marcado com “x”. A cabeça da fita é então movimentada para à direita,
procurando o “)” correspondente, o qual quando encontrado deve ser marcado
como “y”. Este ciclo é repetido sucessivamente até que seja identificado para
cada “(” o seu correspondente “)”. Adicionalmente, a máquina deve garantir
que qualquer outra palavra que não esteja na forma (n)n seja rejeitada.
Projete uma descrição de baixo ńıvel de um MT que reconhece DB. Simule
a sua solução no JFLAP (simulador de MT).
1.2 Exerćıcio 2: Máquina de Turing como processadora
de funções
Uma abordagem da máquina de Turing é como processadora de funções, i.e.,
funções que mapeiam palavras de um alfabeto Σ entre si.
A idéia intuitiva para a definição desta máquina é que a entrada pode ser
vista como uma palavra do tipo: w1#w2. Inicialmente, a máquina posiciona a
cabeça no último śımbolo da palavra de entrada. Após move a cabeça para a
esquerda até encontrar o śımbolo #, quando pára. Enquanto move a cabeça,
ao ler um śımbolo, grava sobre este o śımbolo lido anteriormente. Um ponto
interessante é a memorização do śımbolo anterior.
Um exemplo é a máquina de Turing para a função concatenação:
conc :: ({a, b}∗)n → {a, b}∗
tal que associa ao par (w1, w2) a palavra w1w2. Projete a MT que computa tal
função. Considere que a entrada é uma palavra w1#w2. Assim, a sáıda deve
ser w1w2. Simule a sua solução no JFLAP (simulador de MT).