Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Exercício teoria da computação, Exercícios de Teoria da Computação

Máquinas de Turing

Tipologia: Exercícios

2019

Compartilhado em 29/09/2019

antonio-sousa-20
antonio-sousa-20 🇧🇷

5

(1)

1 documento

1 / 5

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Universidade Federal de Pelotas
Programa de Pós-Graduação em Computação
Teoria da Computação
Autores: Matheus de Luna Dobke, Patrícia Teixeira Davet e Thiago Ferreira Pontes.
Exercícios Máquina de Turing
Tarefa 1 - Desenvolva máquinas de Turing que aceita as seguintes linguagens:
a) L = {w | w possui o mesmo número de as e bs}
Resolução:
M=({q0, q1, q2, q3, q4, q5}, {a,b}, {A,B }, δ, q0, □, {q5}, φ)
Operação:
- Se a partir do estado inicial (q0) é lido da fita o caractere “a” este é escrito “A” e a unidade de
controle se desloca para direita até encontrar um “b” correspondente e escrever “B” no lugar
deste, identificando um par de “a e b”. A partir deste ponto a unidade de controle se desloca
para a esquerda até encontrar o “A” já marcado e o processo se reinicia.
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Exercício teoria da computação e outras Exercícios em PDF para Teoria da Computação, somente na Docsity!

Universidade Federal de Pelotas Programa de Pós-Graduação em Computação Teoria da Computação

Autores: Matheus de Luna Dobke, Patrícia Teixeira Davet e Thiago Ferreira Pontes.

Exercícios Máquina de Turing

Tarefa 1 - Desenvolva máquinas de Turing que aceita as seguintes linguagens:

a) L = {w | w possui o mesmo número de a’s e b’s}

Resolução:

M=({q0, q1, q2, q3, q4, q5}, {a,b}, {A,B }, δ, q0, □, {q5}, φ)

Operação:

  • Se a partir do estado inicial (q0) é lido da fita o caractere “a” este é escrito “A” e a unidade de controle se desloca para direita até encontrar um “b” correspondente e escrever “B” no lugar deste, identificando um par de “a e b”. A partir deste ponto a unidade de controle se desloca para a esquerda até encontrar o “A” já marcado e o processo se reinicia.
  • Outro caminho possível a partir do estado inicial é ler o caractere “b”, escrever “B” e deslocar a unidade de controle para a direita até encontrar o “a” que formará o par e escrever “A”, de forma análoga ao outro caminho a unidade de controle se desloca para a esquerda até encontrar um “B” marcado e o processo se reinicia.

Fim da operação: o processo termina quando a entrada for uma palavra vazia ou quando for encontrados todos os pares de a’s e b’s e o próximo caractere a ser lido for branco chegando ao estado final q5 reconhecendo a palavra pertencente a linguagem.

b) L = {wwR | w ∈ {a, b}*} Exemplos de palavras pertencentes à L: ε, aa, abba, abbbba, baaaab, etc. Exemplos de palavras não à L: a, b, abb, bab, etc.

Resolução:

M=({q0, q1, q2, q3, q4, q5,q6}, {a,b}, {K }, δ, q0, □, {q6}, φ)

Operação:

  • A partir do estado inicial q0 posso ler “a” ou “b” e este será substituído por “K”, a unidade de controle avançará para a direita até o caractere branco ou “K”que indica o final da palavra ou caractere já marcado e retornará para a esquerda comparando este caractere com o marcado no início do caminho se for o mesmo será escrito “K”, a unidade de controle é movimentada sucessivamente para a esquerda até encontrar um “K” recomeçando o processo.

Fim da operação: o término acontece quando a palavra original é uma palavra vazia ou foi toda escrita com K’s possibilitando a passagem para o estado final q6, demonstrando que a Máquina de Turing proposta reconhece a linguagem.

Operação:

  • O conteúdo da fita é codificado em 0’s, na forma 0 𝑛^.
  • A resolução da função n-2 se n ≥ 2 é dada da seguinte forma: os dois zeros iniciais são substituídos por branco, o restante dos zeros se houverem permanecem na fita e o estado final q3 é alcançado com a fita contendo o resultado da operação na forma 0 𝑛−^2.
  • A resolução da função para n < 2 substitui zero por branco e após branco por zero se n=1 e para n=0 substitui branco por zero resultando na fita após chegar ao estado final q4 o valor “1” codificado em apenas um zero.

b) f(n) = n se n é par = n+1 se n é ímpar

Resolução:

M=({q0, q1, q2, q3, q4,q5,q6}, {0,1}, {0,1}, δ, q0, □, {q2,q6}, φ)

Operação:

- Todos os caracteres da fita são analisados, quando “0” permanece ou transita para o estado

q0 (estado par) quando “1” para o estado q1 (estado ímpar) até o último caractere que denota se ele é par ou ímpar.

  • Se for par transita para o estado final q2 e a fita conterá o mesmo valor n da entrada.
  • Se for ímpar transita para os estados q3, q4 e q5 que realizarão o acréscimo de 1 a entrada n. Quando a unidade de controle atingir início de fita esta levará ao estado final q6 com o conteúdo da fita n+1.

 Para a simulação dos exercícios foi utilizado o simulador JFLAP (http://www.jflap.org/).