6.045J/18.400J: Autômatos, Computabilidade e Complexidade Prof. Ron Rivest Tarefa 4 Prazo final: 13 de março de 2002 Problema 1: [Máquinas de Turing] Neste problema, pedimos que você anote a especificação de uma máquina de Turing no formato usado na palestra de segunda-feira. (Esse é também o formato usado nas páginas 132 e 133.) No entanto, em vez de reconhecer uma linguagem, queremos uma máquina de Turing que calcule uma função de sua entrada. Ou seja, na entrada w, sua máquina de Turing deve sempre parar e aceitar, mas, quando faz isso, a fita deve conter exatamente f(w) para alguma função f. Neste problema, o alfabeto de fita Γ consistirá em três coisas: • , o alfabeto de entrada; • , os caracteres do alfabeto de entrada com pontos sobre eles; e • Três símbolos especiais: (espaço), e . Para esse problema, a função f é definida como a seqüência de caracteres: onde W é a palavra w com um caractere de espaço inserido após cada caractere de w e um ponto sobre o primeiro caractere de w. Então, f(01010) seria, por exemplo: Uma última condição: sua máquina de Turing só pode gravar uma vez em cada célula da fita. (Ela pode sobregravar a entrada, uma por célula. Lembre-se de que, no início do cálculo, a fita após a entrada é supostamente preenchida com espaços.) Certifique-se de explicar a estrutura e a operação da sua máquina. Após o problema acima exposto, você pode explicar as operações das suas máquinas de Turing em um nível muito mais alto de abstração. Veja os Exemplos 3.6, 3.7, 3.14 etc. Evidentemente, essas descrições exigirão explicação adicional, mas são significativamente mais fáceis de usar e entender que as descrições formais. Problema 2: [Variantes da máquina de Turing] Problema 3.10. (Dica: suponha que existe uma máquina de Turing que possa calcular a função do Problema 1, mesmo que não pudesse especificá-la você mesmo.) Problema 3: [Enumeradores] Problema 3.16 Problema 4: [Não-Determinismo, Decidibilidade] Problema 3.3