Buscar

p1

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

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
DEPARTAMENTO DE INFORMÁTICA
Curso de Engenharia de Computação
1a. Avaliação de Algoritmos e Fundamentos da Teoria de Computação (INF09268) – 15/07/2021
Prof. Eduardo Zambon
Nome: Nota:
Instruções:
• Esta avaliação parcial vale 3.0 pontos na média parcial da disciplina.
• Esta avaliação deve ser feita obrigatoriamente em dupla.
• Por se tratar de uma avaliação, assume-se que você só vai discutir as soluções com a sua dupla.
Obviamente, o formato deste semestre não facilita a aplicação dessa regra; esse ponto fica para a
ética e consciência de cada um.
• Envie um arquivo PDF com as suas respostas na tarefa do Classrom até o prazo limite.
• Faça um envio por dupla.
Q1 (1.0 ponto) Construa uma máquina de Turing que computa a função numérica parcial f : N ⇀ N, definida
como
f(x) =
{
x− 2 se x ≥ 2
↑ caso contrário.
Não utilize macros nessa questão: apresente o diagrama completo da máquina com todos os estados. Utilize
a base de representação numérica que preferir. Importante: Lembre-se que a sua máquina deve entrar em
loop para os valores aonde a função f é indefinida. Lembre-se também que nos casos em que a máquina
para, ela deve estar no estado final lendo branco na posição 0 da fita.
Q2 (1.0 ponto) Considere a existência de uma máquina G que computa a função parcial g : N×N ⇀ N,
definida como
g(x, y) =
{
x− y se x > y
↑ caso contrário.
Utilizando G, construa uma máquina de Turing que computa a função total h : N×N→N, definida como
h(x, y) =
{
x− y se x > y
0 caso contrário.
Você é livre para utilizar as macros e máquinas definidas entre as seções 9.2 e 9.4 do livro do Sudkamp na
sua resposta. Utilize a base de representação numérica que preferir. Obs.: Para garantir que o projeto da
sua máquina está correto, indique sempre a entrada e saı́da esperada de cada macro/máquina, usando a
notação vista no material de estudo.
Q3 (1.0 ponto) Seja o alfabeto Σ = {a, b}. Construa uma máquina de Turing que aceita strings aonde cada a é
seguido por um número crescente de b’s; isto é, as strings aceitas têm a forma
abn1abn2 . . . abnk , k > 1,
onde n1 < n2 < · · · < nk. Obs.: Você pode utilizar qualquer variante de TM que quiser, isto é, multi-faixa,
multi-fita, não-determinı́stica, etc.
1

Outros materiais