Você está na página 1de 5

UNIVERSIDADE DE UBERABA

SISTEMAS DE INFORMAÇÃO / ADS


TEORIA DA COMPUTAÇÃO
PROF. LUCIANO RODRIGO FERREIRA

Máquinas de Turing

A teoria da computação é um ramo da matemática que estuda os fundamentos


da computação. Ela se concentra em entender o que pode e o que não pode ser
computado, e em desenvolver modelos matemáticos para representar
computadores.

Uma das ferramentas mais importantes da teoria da computação é a máquina


de Turing. A máquina de Turing é um modelo matemático de um computador que
pode ser usado para representar qualquer cálculo que possa ser realizado por
um computador real.

Definição

Uma máquina de Turing é um modelo matemático que consiste em:

• Uma fita infinita, dividida em células.


• Um cabeçote de leitura/escrita, que pode se mover para a esquerda ou
para a direita ao longo da fita.
• Um conjunto finito de estados.
• Uma tabela de transição, que especifica o comportamento da máquina em
cada estado.

O cabeçote de leitura/escrita pode ler o símbolo que está na célula atual da fita,
escrever um novo símbolo na célula atual da fita, ou mover o cabeçote para a
esquerda ou para a direita. A tabela de transição especifica o que a máquina
deve fazer em cada estado, com base no símbolo que está na célula atual da
fita.
Linguagens e Máquinas de Turing

Uma linguagem é um conjunto finito ou infinito de strings. Uma máquina de


Turing pode ser usada para reconhecer uma linguagem.

Para reconhecer uma linguagem, uma máquina de Turing começa com a fita
vazia. Ela então lê a string de entrada da fita, uma letra de cada vez. Em cada
passo, a máquina usa sua tabela de transição para determinar o que fazer. Se a
máquina chega a um estado final enquanto lê a string de entrada, então a string
é reconhecida pela máquina.

Por exemplo, a seguinte máquina de Turing reconhece a linguagem das strings


que começam com "0" e terminam com "1":

Estados: q0, q1
Alfabeto: {0, 1}
Fita: infinita
Cabeça: inicializa na posição 0 da fita
Tabela de transição:

q0 | 0 | q1, 1, R
q1 | 1 | q1, 0, R

Esta máquina começa no estado q0. Se ela lê um "0" na posição atual da fita,
ela move o cabeçote para a direita e muda para o estado q1. Se ela lê um "1" na
posição atual da fita, ela também move o cabeçote para a direita e muda para o
estado q1. Se ela chega ao fim da fita, ela está no estado q1.

Portanto, esta máquina reconhece todas as strings que começam com "0" e
terminam com "1".
Tese de Church-Turing

A tese de Church-Turing afirma que qualquer cálculo que possa ser realizado por
um computador real também pode ser realizado por uma máquina de Turing.

Esta tese é importante porque significa que a máquina de Turing é um modelo


completo para computadores. Qualquer cálculo que possa ser feito por um
computador real também pode ser representado por uma máquina de Turing.

Variantes e Extensões

Existem muitas variantes e extensões da máquina de Turing. Algumas das


variantes mais comuns incluem:

• Máquinas de Turing com múltiplas fitas.


• Máquinas de Turing com memória ilimitada.
• Máquinas de Turing com tempo ilimitado.

Essas variantes são úteis para representar diferentes tipos de cálculos.

Por exemplo, máquinas de Turing com múltiplas fitas podem ser usadas para
representar cálculos que envolvem múltiplas variáveis. Máquinas de Turing com
memória ilimitada podem ser usadas para representar cálculos que envolvem
um número infinito de passos. Máquinas de Turing com tempo ilimitado podem
ser usadas para representar cálculos que levam um tempo infinito para serem
concluídos.

A máquina de Turing é uma ferramenta poderosa que é usada em muitos campos


da ciência da computação. Ela é usada para estudar a teoria da computação,
para projetar computadores, e para resolver problemas computacionais.

Aqui estão alguns exemplos de máquinas de Turing:

Máquina de Turing para somar dois números: Esta máquina pode ser usada para
somar dois números inteiros representados como strings de dígitos binários. A
máquina começa com os dois números na fita, um após o outro. Em seguida, ela
usa sua tabela de transição para adicionar os dois números, um dígito de cada
vez.

Máquina de Turing para verificar se uma string é um palíndromo: Esta máquina


pode ser usada para verificar se uma string é um palíndromo, ou seja, uma string
que é a mesma quando lida de trás para frente. A máquina começa com a string
na fita, da esquerda para a direita. Em seguida, ela usa sua tabela de transição
para comparar os símbolos na fita, um a um. Se a máquina chegar ao fim da fita
e todos os símbolos forem iguais, então a string é um palíndromo.

Máquina de Turing para gerar números primos: Esta máquina pode ser usada
para gerar números primos, que são números que só têm dois divisores: 1 e eles
mesmos. A máquina começa com um número na fita. Em seguida, ela usa sua
tabela de transição para verificar se o número é primo. Se o número for primo, a
máquina o escreve na fita. Se o número não for primo, a máquina move o
cabeçote para a direita e tenta o próximo número.

Uma máquina de Turing também é um modelo matemático de computador, mas


ela tem um poder computacional maior do que um autômato finito. Uma máquina
de Turing pode ser usada para representar qualquer cálculo que possa ser
realizado por um computador real.

Portanto, é possível construir uma máquina de Turing que simule o


comportamento de um autômato finito. Essa máquina de Turing terá um conjunto
de estados igual ao conjunto de estados do autômato finito, um conjunto de
símbolos de entrada igual ao conjunto de símbolos de entrada do autômato finito,
e uma tabela de transição que mapeia cada estado e símbolo de entrada para
um novo estado e símbolo de saída. Por exemplo, considere o seguinte autômato
finito:
Estados: q0, q1
Símbolos de entrada: 0, 1
Função de transição:

q0 | 0 | q0
q0 | 1 | q1
q1 | 0 | q1
q1 | 1 | q0
Este autômato finito reconhece a linguagem das strings que terminam em "0".

A seguinte máquina de Turing pode ser usada para simular o comportamento


deste autômato finito:

Estados: q0, q1
Símbolos de entrada: 0, 1
Fita: infinita
Cabeça: inicializa na posição 0 da fita
Tabela de transição:

q0 | 0 | q0, 0, R
q0 | 1 | q1, 1, R
q1 | 0 | q1, 0, R
q1 | 1 | q0, 0, R

Esta máquina de Turing começa no estado q0. Se ela lê um "0" na posição atual
da fita, ela move o cabeçote para a direita e permanece no estado q0. Se ela lê
um "1" na posição atual da fita, ela move o cabeçote para a direita e muda para
o estado q1. Se ela chega ao fim da fita e está no estado q1, então ela aceita a
string.

Portanto, esta máquina de Turing simula o comportamento do autômato finito


original. Ela reconhece todas as strings que terminam em "0".

QUESTÕES:

1. Qual é a definição de uma máquina de Turing?


2. Quais são os componentes de uma máquina de Turing?
3. Como uma máquina de Turing reconhece uma linguagem?
4. O que é a tese de Church-Turing?
5. Quais são algumas variantes e extensões da máquina de Turing?
6. Como uma máquina de Turing pode ser usada para simular o
comportamento de um autômato finito?

Você também pode gostar