Você está na página 1de 18

TRABALHO DE TEORIA DA COMPUTAÇÃO

Curso: Sistemas de informação


Maquina de Turing

Aluno
ROBERT DIEGO DE JESUS
Mat. 2007.2100.398

Diamantina, 06/2010
SUMÁRIO
1. Apresentação....................................................................................................................................2
Exemplo de uma máquina de Turing simples.............................................................................3
2. Definição de Máquina de Turing.......................................................................................................4
O problema da parada e o problema da decisão............................................................................5
2.2 Variações da Máquina de Turing ..............................................................................................6
2.2.1. Máquina de Turing com múltiplas fitas ...........................................................................6
2.2.2. Máquina de Turing com múltiplas cabeças .....................................................................7
2.2.3. Máquina de Turing com fita infinita para os dois lados ..................................................8
Resumo das variações da Máquina de Turing: ...........................................................................9
3. Linguagens Recursivas e Recursivas Enumeráveis............................................................................9
3.1 Propriedades ...........................................................................................................................10
4. Tese de Church-Turing....................................................................................................................12
5. Outras Aplicações para MT.............................................................................................................14
5.1 As informações que a máquina de Turing já resolve..........................................................14
5.2 o que a máquina de Turing ainda não processa.................................................................15
Referências Bibliográficas...................................................................................................................17
06/2010 MÁQUINA DE TURING

1. APRESENTAÇÃO

A máquina de Turing é um dispositivo teórico conhecido como máquina universal, que foi
concebido pelo matemático britânico Alan Turing (1912-1954), muitos anos antes de existirem os
modernos computadores digitais (o artigo de referência foi publicado em 1936). Num sentido
preciso, é um modelo abstrato de um computador, que se restringe apenas aos aspectos lógicos
do seu funcionamento (memória, estados e transições) e não à sua implementação física. Numa
máquina de Turing pode-se modelar qualquer computador digital.
Turing também se envolveu na construção de máquinas físicas para quebrar os códigos

1. Apresentação
secretos das comunicações alemãs durante a II Guerra Mundial, tendo utilizado alguns dos
conceitos teóricos desenvolvidos para o seu modelo de computador universal.
A Máquina de Turing é um modelo computacional semelhante à um autômato finito,
porém muito mais poderoso e com propósito de uso geral. À rigor trata-se de um modelo
abstrato de computador, restrito apenas aos aspectos lógicos do funcionamento do mesmo:
Capacidade de armazenamento, estados e transições ignorando sua implementação física.
Informalmente descrita, uma máquina de Turing consiste em:
• Uma fita divida em células adjacentes umas às outras. Em cada célula está escrito um
símbolo de um alfabeto definido para a fita. O alfabeto contém obrigatoriamente um
símbolo especial branco e um ou mais outros símbolos. Assume-se que a fita é infinita,
isto é, a máquina de Turing possui fita suficiente para realizar sua computação.
Inicialmente a fita possui apenas a cadeia de entrada preenchida e todas as demais
células estão inicialmente com o símbolo vazio escrito. Note também que a máquina de
Turing possui dois alfabetos, um para a fita e outro para a entrada, sendo eles nunca
iguais visto que o de entrada não pode conter o símbolo vazio enquanto o de fita ,como
descrito, obrigatoriamente o possui.

Ilustração 1: Fita da Máquina de Turing

• Uma cabeça, que pode ler, escrever símbolos e mover-se na fita, tanto para a esquerda
como direita.
• Um registrador de estados, que armazena o estado da máquina de Turing. O número de
estados diferentes é sempre finito e existem pelomenos dois, o estado de aceitação e o
de rejeição.
• Uma função de transição que diz à máquina que símbolo escrever, como mover a cabeça
e qual será seu novo estado após a mudança, dados o símbolo que ele acabou de ler na
fita e o estado em que se encontra.
Apesar de sua semelhança com autômatos finitos, máquinas de Turing possuem
diferenças essenciais:

Teoria da Computação – Sistemas de Informação


UFVJM 2
06/2010 MÁQUINA DE TURING
• Máquinas de turing podem tanto ler como escrever da filha.
• A cabeça pode mover-se para ambos os lados.
• A fita é infinita
• Os estados de aceitação e rejeição são imediatamente processados.

Exemplo De Uma Máquina De Turing Simples

Uma máquina M que computa a soma de dois números naturais n1 e n2, representados
na notação unária. Entrada: 1n101n2; saída deve ser 1n1+n2.

1. Apresentação
A idéia é deslocar o numero 0 até a extremidade direita da fita, ou seja até o fim da
cadeia n2 e assim o resultado na fita será a soma das mesmas.
Algoritmo:
1. Enquanto não encontrar um 0 vá para direita. Se encontrar vá para 2, senão, rejeite.
2. Vá uma célula para a direita, se encontrar 1 , troque-o por 0 e vá para 3, se encontrar o
símbolo vazio aceite, se encontrar o símbolo 0, rejeite.
3. Vá uma célula para a esquerda e troque o 0 por um 1. e vá para 1.

Ilustração 2: Diagrama dos estados de M

Teoria da Computação – Sistemas de Informação


UFVJM 3
06/2010 MÁQUINA DE TURING
2. DEFINIÇÃO DE MÁQUINA DE TURING

Formalmente, uma máquina de Turing (MT) é um 7-tupla


M =S , Σ , Γ , δ , s0 , b , F  onde
S é um conjunto finito de estados
Γ é o conjunto finito de símbolos da fita
Σ é um subconjunto de Γ que não incluí • , é o conjunto dos símbolos de entrada
δ é a função de transição, função parcial de S × Γ em S × Γ × → ,←
s 0 é o estado inicial

2. Definição de Máquina de Turing


b é um símbolo de Γ , designado por branco
F ⊆ S é o conjunto de estados finais

Uma descrição instantânea (ID) ou configuração é representada por xsy , onde s é


o estado corrente, x ∈ Γ ∗ é a sequência de símbolos à esquerda da cabeça, sendo o último
símbolo de x o que está imediatamente à esquerda da cabeça, e y ∈ Γ ∗ é a sequência à
direita da cabeça (o primeiro símbolo de y é o que está debaixo da cabeça). Supomos que x
e y não contêm “brancos” desnecessários, isto é, xy é a sequência de caracteres da fita
desde ou o caractere não-branco mais à esquerda ou o símbolo que está sobre a cabeça,
conforme o que for mais à esquerda, e analogamente para o seu extremo direito.

A relação M
∣− um movimento, entre duas configurações é definida da seguinte forma.
Seja X 1 ·· · X i − 1 sX i · ·· X n
uma configuração.
Seja δ  s , X i = s ' , Y , D . Se i=1 e D=← então
M
sX 1 · · · X n ∣− s ' bY X i 1 · ·· X n
Se i=1, D=← e Y =b então
M
sX 1 · · · X n ∣− s ' X i1 · · · X n
Se i1 e D=← então,
M
X 1 · ·· X i −1 sX i · · · X n ∣− X 1 ·· · X i − 2 s ' X i −1 Y X i 1 ·· · X n
Analogamente se D=→ tem-se que
M
X 1 · ·· X i −1 sX i · · · X n ∣− X 1 · ·· X i −1 Y s ' X i1 · · · X n
k
Diz-se que xsy ∣− M
x ' s ' y ' se x ' s ' y ' resulta de xsy em k movimentos e
∗ k
xsy ∣M− x ' s ' y ' se existe k 0 tal que xsy ∣− x ' s ' y '
M

Teoria da Computação – Sistemas de Informação


UFVJM 4
06/2010 MÁQUINA DE TURING
Uma palavra x ∈ Σ ∗ é aceite por uma máquina de Turing M se com palavra x na fita e
no estado inicial s 0 , a máquina usando a função de transição δ , M entra num estado final.
Note que mal a máquina atinja um estado final a computação para, independentemente de ter
lido ou não todos os símbolos de entrada. Por outro lado, se para um estado não final e um
símbolo lido pela cabeça, a função de transição δ não estiver definida a máquina para sem
aceitar os dados (a palavra x).
Pode ainda acontecer que a máquina nunca pare ... caso em que também não aceita a
palavra x.
Formalmente,
A linguagem aceite por M, é

2. Definição de Máquina de Turing


L M ={x∨ x ∈ Σ e s 0 x ∣− x 1 sx 2 para algum s ∈ F , e x 1 , x 2 ∈ Γ }
∗ M ∗

Exemplo 1 A máquina de Turing definida por,

M = ({s0, s1, s2, s3}, {0, 1}, {0, 1, •, X}, •, s0, {s4})

δ(s0, 0) = (s2, X, →) δ(s0, 1) = (s1, X, →) δ(s0, X ) = (s0, X, →)


δ(s0, •) = (s4, •, ←) δ(s2, 0) = (s2, 0, →) δ(s2, 1) = (s3, X, ←)
δ(s2, X) = (s2, X, →) δ(s1, 1) = (s1, 1, →) δ(s1, 0) = (s3, X, ←)
δ(s1, X) = (s1, X, →) δ(s3, 0) = (s3, 0, ←) δ(s3, 1) = (s3, 1, ←)
δ(s3, X) = (s3, X, ←) δ(s3, •) = (s0, •, →).

aceita a linguagem L={x ∈ {0,1} ∣x tem igual número de 1 ’ s e de 0 ’ s}


No estado s0se a cabeça da máquina lê 0 (1), a máquina entra no estado s 2(s1),


substitui o 0 (1) por X – indicando que o “apagou”– e procura um 1 (0), deslocando-
se para a direita. No estado s0 se encontra um caractere “branco”, •, entra no
estado final s4e para (significa que aceitou os dados!). Se no estado s2(s1) encontra
um 1 (um 0) substituí-o por um símbolo de fita X -indicando que o “apagou”– e
desloca-se para a esquerda, entrando no estado s3até encontrar um “branco”.
Quando encontra um “branco” passa para o estado s0. E repete o ciclo enquanto
houverem 0’s ou/e 1’s. Termina com sucesso no estado s4. Caso contrário, termina
num estado não final. Esta máquina para sempre!

O PROBLEMA DA PARADA E O PROBLEMA DA DECISÃO

Turing mostrou que o funcionamento de sua máquina (usar-se-á a sigla MT a partir de


agora) e a aplicação das regras de formação de um sistema formal não têm diferença. Ele
demonstrou também que seu dispositivo poderia resolver infinitos problemas mas havia alguns
que não seriam possíveis, porque não haveria jeito de se prever se o dispositivo pararia ou não.
Colocando de uma outra maneira: dado um programa P para uma MT e uma
determinada entrada de dados E, existe algum programa que leia P e E, e pare após um número
finito de passos, gerando uma configuração final na fita que informe se o programa P encerra
sua execução após um número finito de passos ao processar E?

Teoria da Computação – Sistemas de Informação


UFVJM 5
06/2010 MÁQUINA DE TURING
Comparando-se com as afirmações sobre verdades aritméticas, dentro de um sistema
formal consistente da aritmética, que não são passíveis de prova dentro deste sistema, percebe-
se que o problema da parada de Turing nada mais é do que o Teorema de Gödel, mas expresso
em termos de uma máquina computacional e programas ao invés de uma linguagem de um
sistema dedutivo da Lógica Matemática.
Turing provou formalmente o seguinte teorema:

Teorema da Parada: Dado um programa P qualquer para uma Máquina de Turing e uma
entrada E qualquer de dados para esse programa, não existe uma Máquina de Turing especifica
que pare após um número finito de passos, e que diga se P em algum momento encerra sua
execução ao processar E.
A solução negativa deste problema computacional implica também numa solução

O problema da parada e o problema da decisão


negativa para o problema de Hilbert. Portanto nem todos os enunciados verdadeiros da
aritmética podem ser provados por um computador.

Ilustração 3: Relacionamento entre os mundos formais,


matemáticos e computacionais

2.2 VARIAÇÕES DA MÁQUINA DE TURING


2.2.1. Máquina De Turing Com Múltiplas Fitas

Ilustração 4: Máquina de Turing com múltiplas fitas

Teoria da Computação – Sistemas de Informação


UFVJM 6
06/2010 MÁQUINA DE TURING
Considere uma máquina de Turing que possui várias fitas. Tal máquina possui uma
cabeça de leitura para cada fita. A qualquer momento os símbolos “varridos” por todas as
cabeças são lidos. Dependendo do conjunto de símbolos e do estado atual, são substituídos
alguns símbolos em algumas fitas e movimentos para a direita ou esquerda são feitos em
outras fitas. Uma representação dessa máquina pode ser vista na ilustração 3.
Será mostrado como uma máquina de Turing com k fitas pode ser simulada por
uma máquina de Turing padrão computando a mesma função. Suponha uma máquina de Turing A
com múltiplas fitas computando uma função f com a seguinte condição: a computação começa
com qualquer w Є dom(f) na primeira fita, e pára com f(w) na primeira fita. A máquina de Turing
B com uma única fita deve conter, de alguma forma, todas as informações armazenadas nas
múltiplas fitas de A. Vamos assumir que a fita de B pode ser dividida em k faixas, cada uma
contendo a mesma informação da fita correspondente de A conforme mostrado na ilustração 4.

2.2.1. Máquina de Turing com múltiplas fitas


Ilustração 5: Fita com múltiplas faixas

Isso tomaria conta de simular múltiplas fitas. No entanto, B pode usar uma única
cabeça, enquanto A tem k cabeças posicionadas em diferentes locais em diferentes fitas. Para
memorizar a posição de k cabeças é necessário k faixas adicionais, uma para cada cabeça.
Assim, a fita única de B deve ser dividida em 2k faixas. As faixas com números ímpares
são idênticas as fitas 1,2,...,k de A. As faixas com números 2,4,...,2k memorizam as posições das
cabeças. Se a cabeça na fita i está posicionada na célula n, então a faixa 2i tem um na célula n e
0 em todas as outras células conforme mostrado na Figura 3.

Ilustração 6: Simulando k fitas com 2k faixas

2.2.2. Máquina De Turing Com Múltiplas Cabeças


A Máquina de Turing com múltiplas cabeças é definida por:
Σ − Alfabeto.
Q − Conjunto de estados
Γ − Alfabeto Auxiliar

Teoria da Computação – Sistemas de Informação


UFVJM 7
06/2010 MÁQUINA DE TURING
φ − Símbolo Inicial
s − Estado inicial
F − Conjunto de estados finais
δ − Função de transição
β − Símbolo branco
k − Número de cabeças
Definição da função de transição:
δ=Q× Σ ∪ Γ ∪ {φ , β } → Q× Σ ∪ Γ ∪ {β } ×E , D k ,
n n

onde E representa o movimento da cabeça de leitura e escrita uma posição para a esquerda e D

2.2.2. Máquina de Turing com múltiplas cabeças


representa o movimento da cabeça de leitura e escrita para a direita. k é a quantidade de
cabeças, e os movimentos das cabeças e as gravações na fita dependem desse valor e n é o valor
lido na posição onde a cabeça n se encontra, sendo que n ≥ 1;
• A entrada é armazenada a partir do quadro à direita do que contém o símbolo de início
de fita, igualmente à Máquina de Turing tradicional.
• A saída é o conteúdo da fita, a partir do símbolo inicial até o primeiro espaço em branco.
• A Máquina de Turing com múltiplas cabeças possui o símbolo k que define qual a
• cabeça que está trabalhando.
• Cada cabeça trabalha independentemente das outras, e a função de transição
pode estar definida para o valor lido por todas as cabeças no estado atual ou
apenas algumas delas.
A simulação de uma Máquina de Turing com múltiplas cabeças em uma MT tradicional
é simples e segue a seguinte regra: As k primeiras posições da fita serão usadas para armazenar
o quadro correspondente a fita k, onde k representa o número de cabeças. Após as primeiras k
posições, é inserido o símbolo de início de fita e a partir daí será armazenada a entrada a ser
analisada.
Portanto, os valores armazenados nas primeiras k posições pertencem ao intervalo
[k+1 ,∞ ), onde o valor mínimo corresponde à posição onde está o símbolo inicial de fita.

2.2.3. Máquina De Turing Com Fita Infinita Para Os Dois Lados


A modificação da definição básica da Máquina de Turing permitindo que a fita seja
infinita dos dois lados não aumenta o seu poder computacional. Na realidade, a fita infinita à
esquerda e à direita pode ser facilmente simulável por uma fita tradicional, como ilustrado na
figura baixo onde as células pares representam a parte direita da fita e as ímpares a parte
esquerda.

Ilustração 7
Teoria da Computação – Sistemas de Informação
UFVJM 8
06/2010 MÁQUINA DE TURING
Resumo Das Variações Da Máquina De Turing:
Uma das razões para considerar a Máquina de Turing como o mais geral dispositivo de
computação é o fato de que todos os demais modelos e máquinas propostas, bem como
diversas modificações da Máquina de Turing, possuem, no máximo, o mesmo poder
computacional da Máquina de Turing. As modificações apresentadas a seguir são
frequentemente usadas.
1. Máquina de Turing Não-Determinística: A facilidade de não-determinismo não aumenta o
poder computacional da Máquina de Turing;
2. Máquina de Turing com Fita Infinita à Esquerda e à Direita: A modificação da definição
básica da Máquina de Turing permitindo que a fita seja infinita dos dois lados não
aumenta o seu poder computacional. Na realidade, a fita infinita à esquerda e à direita

Resumo das variações da Máquina de Turing:


pode ser facilmente simulável por uma fita tradicional, como ilustrado na figura
baixo, onde as células pares representam a parte direita da fita e as ímpares a parte
esquerda;
3. Máquina de Turing com Múltiplas Fitas: A Máquina de Turing com múltiplas fitas possui
k fitas infinitas à esquerda e à direita e k cabeças de fita. A função programa é
como segue:
• dependendo do estado corrente da máquina e do símbolo lido em cada uma das
fitas;
• grava um novo símbolo em cada uma das fitas;
• move cada uma das cabeças independentemente;
• a máquina assume um (único) novo estado.
Inicialmente, a palavra de entrada é armazenada na primeira fita, ficando as demais com
valor branco;
4. Máquina de Turing Multidimensional: Neste modelo, a fita tradicional é substituída
por uma estrutura do tipo arranjo k-dimensional, infinita em todas as 2k direções;
5. Máquina de Turing com Múltiplas Cabeças: A Máquina de Turing com esta modificação
possui k cabeças de leitura e gravação sobre a mesma fita. Cada cabeça possui
movimento independente. Assim, o processamento depende do estado corrente e do
símbolo lido em cada uma das cabeças.

3. LINGUAGENS RECURSIVAS E RECURSIVAS ENUMERÁVEIS


Se x ∈ L M  então M para quando atinge um estado final. Caso contrário, M pode
não parar ou parar num estado não final.
Uma linguagem diz-se recursivamente enumerável (r.e) ou semi-decidível se é aceite
por uma máquina de Turing. A classe de linguagens recursivamente enumeráveis designa-se por
SD.
Note-se que sendo M uma máquina de Turing, o problema x ∈ L M  ∗ não é
decidível (i.e computável). Se for verdade, sendo x a sequência de entrada (dados) de M , esta
para num número finito de movimentos (passos). Mas se x ∉L M  , M pode não parar e
portanto não se obtém resposta.
Designam-se por recursivas ou decidíveis as linguagens para as quais existe uma
Teoria da Computação – Sistemas de Informação
UFVJM 9
06/2010 MÁQUINA DE TURING
máquina de Turing que a reconhece, isto é, que para para todos os dados e que para num estado
final se a palavra dada pertence à linguagem e para num estado não final se a palavra dada não
pertence à linguagem. A classe de linguagens recursivas designa-se por D.

1. Uma linguagem é dita Enumerável Recursivamente se é aceita por uma Máquina


de Turing.
São exemplos de Linguagens Enumeráveis Recursivamente:
a) Duplo_Bal = {a n bn∣n ≥ 0}
b) Triplo_Bal = {a n bn c n∣n ≥ 0}
c) Palavra_Palavra = {ww∣w é palavra sobre os símbolos a e b}

A classe das Linguagens Enumeráveis Recursivamente inclui algumas linguagens

3. Linguagens Recursivas e Recursivas Enumeráveis


onde não é possível determinar mecanicamente se uma palavra não pertence à
linguagem. Se L é uma dessas linguagens, então para qualquer máquina M que aceita a
linguagem L, existe pelo menos uma palavra w, não pertencente a L, que, ao ser processada por
M, resulta no processamento da máquina em loop infinito. Ou seja:

• Se w pertence a L, M pára e aceita a entrada;


• Se w não pertence a L, M pode:
◦ parar, rejeitando a palavra ou
◦ permanecer, processando indefinidamente (loop).

2. Uma linguagem é dita Recursiva se existe uma Máquina de Turing tal que:

ACEITA(M) = L
REJEITA(M)= ∑ ∗ −L.
LOOP(M) = ∅

Pode-se afirmar que a classe das Linguagens Recursivas representa todas as


linguagens que podem ser reconhecidas mecanicamente e para as quais existe um
reconhecedor que sempre pára, para qualquer entrada.

São exemplos de Linguagens recursivas:


a) Duplo_Bal = {a n bn∣n ≥ 0}
b) Triplo_Bal = {a n bn∣n ≥ 0}
c) {w∣w ∈ a , b∗tem o dobro de símbolos a que b}

3.1 PROPRIEDADES

Seja L ⊆ A ∗ uma linguagem e seja T uma máquina de Turing com alfabeto


de entrada A. Diz-se que
• T aceita ou reconhece L se L=LT  ;
• T decide L se a função característica χ L : A∗ → {0, 1} é calculada por T .

Proposição: Uma linguagem L ⊆ A ∗ é recursiva se e só se existe uma máquina de Turing


T que reconhece L e é tal que a configuração inicial de qualquer palavra u ∈ L é uma
configuração de rejeição.

Teoria da Computação – Sistemas de Informação


UFVJM 10
06/2010 MÁQUINA DE TURING
Demonstração: ( ⇒ ) Se L é recursiva, então existe uma MT que decide L.
A partir desta MT é fácil construir uma outra que reconheça L.

( ⇐ ) A partir da configuração inicial associada a uma palavra u ∈ A ∗ atinge-se sempre uma


configuração de paragem. Esta configuração é de aceitação se u ∈ L e é de rejeição se u 6 ∈ L.
Modifica-se então a máquina de Turing T de
forma que:

1) a partir de uma configuração de aceitação em T se escreva 1 na 2ª célula da fita, deixando


todas as outras células em branco e o cursor na 1ª célula;
2) a partir de uma configuração de rejeição em T se escreva 0 na 2ª célula da fita, deixando
todas as outras células em branco e o cursor na 1ª célula;

3.1 Propriedades
Esta nova máquina de Turing calcula χL , a função característica de L, e portanto L é
recursiva.

Corolário Todas as linguagens recursivas são recursivamente enumeráveis.


São válidas ainda as seguintes propriedades.

Proposição Sejam L e K linguagens sobre um alfabeto A.


i) Se L e K são recursivas (resp. recursivamente enumeráveis), então L∪ K e
L ∩ K são recursivas (resp. recursivamente enumeráveis).
ii) Se L é recursiva, então L é recursiva.

Demonstração: A ideia em i) é considerar máquinas de Turing T L e T K que decidam (resp.


aceitem) L e K , respectivamente, e construir uma máquina de Turing com conjunto de
estados Q L ×Q K (onde Q L e Q K são os conjuntos de estados de TL e TK
respectivamente) e com duas fitas, que executa em simultâneo segundo T L e T K .
A alínea ii) é imediata.

Teorema: [Post, 1943] Uma linguagem L ⊆ A ∗ é recursiva se e só se L e L são recursivamente


enumeráveis.
Seja A um alfabeto e sejam RE(A) o conjunto das linguagens recursivamente enumeráveis
sobre A e T (A) o conjunto das máquinas de Turing de alfabeto de entrada A. O conjunto T (A) é
numerável. Logo RE(A) também é numerável pois cada linguagem de RE(A) é reconhecida por
uma máquina de Turing de T (A).
O teorema seguinte mostra que as linguagens recursivamente enumeráveis formam uma
pequena parte do conjunto de todas as linguagens.

Teorema: Existem linguagens não recursivamente enumeráveis sobre qualquer alfabeto A. Mais
precisamente, o conjunto das linguagens não recursivamente enumeráveis sobre A tem o
cardinal do contínuo.
Demonstração: Basta notar que RE(A) é um conjunto numerável, enquanto que P  A ∗  , o
conjunto de todas as linguagens sobre A tem o cardinal do contínuo.

Teoria da Computação – Sistemas de Informação


UFVJM 11
06/2010 MÁQUINA DE TURING
4. TESE DE CHURCH-TURING
Após os resultados de Gödel em 1931 muitos lógicos matemáticos partiram em busca do
que seria uma noção formalizada de um procedimento efetivo (por efetivo entenda-se mecânico),
ou seja, o que pode ser feito seguindo-se diretamente um algoritmo ou conjunto de regras (como
já visto, antigo sonho de séculos, que remonta a Leibniz). Destas buscas surgiram:

• A sistematização e desenvolvimento das funções recursivas (introduzidas nos trabalhos de


Gödel) por Stephen Cole Kleene (1909-1994) em sua teoria lógica da computabilidade
(parte de seu livro Introdução à Metamatemática, um dos cumes da lógica matemática
dos últimos anos);
• As Máquinas de Turing;

4. Tese de Church-Turing
• Cálculo-lambda (componente característico fundamental da linguagem de programação
LISP) de Alonzo Church;
• A Máquina de Post, análoga à de Turing, tornada pública um pouco depois, fruto de
trabalho independente, e seu sistema para rescrita de símbolos (cuja gramática de
Chomsky é um caso particular), de Emil L. Post (1897-1954).

Com efeito, todos estes conceitos levaram à mesma conclusão e acabaram por ter o mesmo
significado, dentro do citado escopo da busca de uma definição bem elaborada de processo
efetivo. No presente trabalho referir-se-á mais a Church e Turing (Kleene fez em seu trabalho
uma ampla abordagem de ambos, tirando várias consequências, e Post trata do mesmo tema de
Turing), para se ter uma visão mais clara da diversificação dos estudos desta década de 1930
para a fundamentação teórica de toda a Computação.
Um teorema de Alonzo Church (1903-1995) demonstrou em 1936 que não pode existir
um procedimento geral de decisão para todas as expressões do Cálculo de Predicados de 1a
ordem, ainda que exista tal procedimento para classes especiais de expressões de tal cálculo.
Isto pode causar certo espanto se se pensa que o Cálculo de Predicados de 1a ordem é
semanticamente completo, com o que se diz implicitamente que o próprio cálculo, com seus
axiomas e regras, constitui um algoritmo capaz de enumerar uma após outra todas as sua
expressões válidas.
De fato, no entanto, estas expressões são indefinidamente numerosas, de modo que,
mesmo sendo verdade que essa infinidade de expressões seja enumerável, ou seja, construíveis
passo a passo a partir dos axiomas, essa enumeração não tem fim. Compreende-se, então que,
se se consegue demonstrar uma determinada fórmula P em um certo momento, isto já basta
para afirmar que se trata de uma fórmula válida. Pelo contrário, se por exemplo depois de haver
deduzido mil teoremas dos axiomas, P ainda não apareceu, não se pode afirmar nada, porque P
poderia aparecer talvez após outro milhar de teoremas, permitindo-se reconhecer sua validade,
ou não aparecer nunca, por não ser válida. Mas não se poderá afirmar em qual caso se está,
mesmo depois das mil deduções.
A decisão, dentro desse cálculo seria possível se se possuísse um algoritmo capaz de
enumerar as expressões não válidas. A expressão P então aparecia dentro desse conjunto de
não válidas em algum momento. O teorema de Church de que se está tratando consiste
fundamentalmente na demonstração de que não existe algoritmo capaz de enumerar as
expressões não válidas, de maneira que fica excluído a proibir todo procedimento de decisão
para as expressões do Cálculo de predicados, em geral. Para compreender as razões de
semelhante fato seria necessário valer-se das noções técnicas relacionados com os conceitos da
matemática recursiva, que excedem amplamente os limites deste trabalho.

Teoria da Computação – Sistemas de Informação


UFVJM 12
06/2010 MÁQUINA DE TURING
Também Church estava interessado no problema de Hilbert. O resultado a que Turing tinha
chegado em 1936 sobre o problema da decisão de Hilbert, Church o tinha alcançado também,
alguns poucos meses antes, empregando o conceito formalizado de lambda-definibilidade (ao
invés do computável por uma Máquina de Turing definido por Turing), no lugar do conceito
informal procedimento efetivo ou mecânico. Kleene em 1936 mostrou que lambda-definibilidade
é equivalente ao conceito de recursividade de Gödel-Herbrand e nesse meio tempo Church
formulou sua tese que estabelecia que a recursividade é a própria formalização do efetivamente
computável. Isto foi estabelecido, no caso das funções dos inteiros positivos, por Church e Kleene,
em 1936.
O cálculo-lambda, como sistema elaborado por Church para ajudar a fundamentar a
Matemática (1932/33) era inconsistente, como o mostraram Kleene e Rosser (1935). Mas a
parte do cálculo-lambda que tratava de funções recursivas estava correta e teve sucesso.

4. Tese de Church-Turing
Usando sua teoria Church propôs uma formalização da noção de "efetivamente computável",
através do conceito de lambda-definibilidade. Turing em 1936 e 1937, ao dar a sua noção de
computabilidade associada a uma máquina abstrata, mostrou que a noção Turing-computável é
equivalente à lambda-definibilidade. O trabalho de Church e Turing fundamentalmente liga os
computadores com as MT. Os limites das MT, de acordo com a tese de Church-Turing, também
descreve os limites de todos os computadores.
O processo que determina o valor de uma função através dos argumentos dessa função é
chamado de cálculo da função (ou computar uma função). Como foi observado, a máquina de
Turing pode ser matematicamente interpretada como um algoritmo e efetivamente toda ação
de uma máquina algorítmica como o computador pode ser considerada como a de calcular o
valor de uma função com determinados argumentos. Este 'insight' é interessante, pois dá uma
maneira de se medir a capacidade computacional de uma máquina. Necessita-se somente
identificar as funções que se é capaz de computar e usar este conjunto como medida. Uma
máquina que compute mais funções que outra é mais poderosa.
A partir dos resultados de Gödel, Turing e Church, pode-se dizer que existem funções para
as quais não existe uma seqüência de passos que determinem o seu valor, com base nos seus
argumentos. Dizendo-se de outra maneira, não existem algoritmos para a solução de
determinadas funções. São as chamadas funções não computáveis. Isto significa que para tais
funções não há nem haverá capacidade computacional suficiente para resolvê-las. Logo,
descobrir as fronteiras entre funções computáveis e não computáveis é equivalente a descobrir
os limites do computador em geral. A tese de Church-Turing representa um importante passo
nesse sentido. A percepção de Turing foi a de que as funções computáveis por uma MT eram as
mesmas funções computáveis acima referidas. Em outras palavras, ele conjeturou que o poder
computacional das MT abarcava qualquer processo algorítmico, ou, analogamente, o conceito
da MT propicia um contexto no qual todas as funções computáveis podem ser descritas. Isto foi
a contribuição dada pelo trabalho de Turing e Church: as funções computáveis são as mesmas
funções Turing-computáveis. A importância disso está na possibilidade de se verificar o alcance
e limites de um computador.

Teoria da Computação – Sistemas de Informação


UFVJM 13
06/2010 MÁQUINA DE TURING
5. OUTRAS APLICAÇÕES PARA MT

5.1 As Informações Que A Máquina De Turing Já Resolve


Abaixo, são descritos alguns problemas de informação já resolvidos pela máquina de
Turing, sem que isso signifique que as soluções encontradas tenham atingido todas suas
possibilidades.

1 – Modelos computacionais
Em 1945, John von Neumann fez alterações na máquina de Turing para torná-la mais
prática dividindo-a em dispositivo de entrada de dados, uma memória para guardar os dados e
instruções, um dispositivo de processamento, um sistema operacional capaz de gerenciar todo o

5. Outras Aplicações para MT


processo e dispositivo de saída de dados.
A arquitetura von Neumann se tornou, a partir daí, padrão para todos computadores e
sistemas de informações.
2 – Criptografia.
Quatro anos depois ter solucionado um impasse teórico, a máquina de Turing fez, a
partir de 1940, sua primeira aplicação prática ao decodificar os códigos secretos dos nazistas
gerados pelas máquinas Enigma. Supervisionadas pelo próprio Alan Turing, as diversas
máquinas utilizadas para decifrar os códigos alemães – entre elas, o Colossus, o primeiro
computador, em funcionamento a partir de 1943 - teriam encurtado a guerra em dois anos e,
assim, milhares de vidas humanas foram salvas. Dentro desse feito notável, está a localização do
Bismarck, possibilitando seu afundamento pela aviação e marinha inglesas. A criptografia faz
parte hoje do cotidiano de qualquer pessoa que tenha acesso às redes de computadores.
3 – O cálculo, contabilidade e bancos de dados.
A partir de 1946, os computadores passaram a fazer cálculos de aplicações militares. A
calculadora ENIAC, muitas vezes citada erradamente como sendo o primeiro computador,
passou a fazer cálculos de balística a partir de 15 de fevereiro desse ano. Com as linguagens
Fortran (1956) e Cobol (1960) a máquina de Turing ganhou uma maioridade funcional para
cálculos matemáticos, contáveis e acesso a bancos de dados, cujas soluções foram adotadas por
todas as grandes empresas, centros de pesquisas e governos.
4 – Os jogos.
Os jogos, sobretudo xadrez, sempre fizeram parte das teorias das máquinas de solução
automática, sendo que o primeiro programa de xadrez para máquinas foi escrito por Alan Turing
em 1948. Com a derrota do campeão mundial Kasparov pelo programa Deep Blues, em 5 de
novembro de 1997, ficou marcada uma nova etapa no relacionamento homem-máquina. E, a
partir dos anos 1990, os videogames se transformaram numa nova forma de literatura, com a
interatividade se juntando aos jogos de ação e enredos complexos – ainda que sofram
preconceitos dos desavisados.
5 – O processamento em tempo real.
Em 20 de abril de 1951 foi feita a primeira experiência do projeto SAGE da Força Aérea
dos Estados Unidos, quando foi possível calcular em tempo real a distância entre vários aviões.
Muitas tinham sido as inovações: computadores foram ligados entre si por linha telefônica, o
computador principal processava as informações vindas de outros computadores em pequenos
lotes e em rodízio em "tempo partilhado" e, pela primeira vez um dispositivo não humano era
Teoria da Computação – Sistemas de Informação
UFVJM 14
06/2010 MÁQUINA DE TURING
utilizado para processar informações e decidir sobre a resposta apropriada, em tempo real e em
um ambiente cambiante. Hoje uma aplicação comum para quem tem, por exemplo, conta em
bancos.
6 – A multimídia.
A partir dos anos 1990, os computadores passaram a processar textos, imagens, sons num
sistema de navegação interativa tornando possível o surgimento de muitas aplicações como
jogos, enciclopédias, obras de referências, dicionários, filmes e aulas.
7 – A internet e a web.
No final dos anos 1960, com o protocolo TCP/IP tornou-se possível a interligação a baixo
custo entre quaisquer modelos de computadores. No início dos 1970, graças ao trabalho de Ray

5.1 As informações que a máquina de Turing já resolve


Tomlinsom surge o mais popular uso da internet: o e-mail. Mas é a partir de 1991 é que a
internet começa a se transformar num veículo de comunicação mundial devido a trabalho de
Tim Berners-Lee, que criou o servidor para transmitir dados (HTTP), a padronização nos textos,
imagens e sons a serem transmitidos (HTML), um sistema que deu endereços aos arquivos (URL)
e o Mosaic, o primeiro programa capaz de ver as páginas na internet.
8 – Linguagem falada.
Com o aumento da capacidade dos processadores, a partir dos anos 1980 para
computadores de grande porte e, a partir do final dos anos 1990, para microcomputadores,
tornou-se possível o processamento da linguagem falada para acionar comandos, escrever a
partir da voz ou reproduzir pela fala textos escritos.
9 – Inteligência artificial.
A partir dos anos 1990 muitos produtos substituíram as matérias teóricas. O scanner que
reconhece letras, impressões digitais ou faces, o sistema operacional que analisa o computador
antes de ser instalado, a rede de celular que encontra o número discado, o computador que se
conserta sozinho, o programa que faz diagnóstico a partir de dados de um exame médico e
outro que escreve conforme a voz do usuário são algumas das aplicações que já foram teorias
da inteligência artificial.
10 – Administração.
Agendas, planilhas, calculadoras, editores de texto, gráficos e apresentações e
gerenciadores de projetos são alguns dos produtos de informação que auxiliam a administração
dos recursos tanto das empresas quanto da vida pessoal.

5.2 O Que A Máquina De Turing Ainda Não Processa

Considerando que as áreas de atuação da Ciência da Informação são produção,


armazenamento, organização, disseminação, uso e recuperação de informações - variações das
etapas da arquitetura von Neumann - e que todas as aplicações já resolvidas pela máquina de
Turing podem ser melhoradas, ampliadas e melhor disseminadas, existem os seguintes
problemas de informação ainda não processados pela máquina de Turing ou aguardando
melhorias:
Teoria da Computação – Sistemas de Informação
UFVJM 15
06/2010 MÁQUINA DE TURING
1 – O problema da parada
Existem problemas não-computáveis, isto é, não podem ser resolvidos por uma máquina de
Turing, considerando os atuais conhecimentos da lógica. Um desses problemas, cuja
solução será de grande utilidade caso exista, é o problema da parada. Programas de
computadores, quando mal definidos, podem ser processados sem fim, isto é, só serão
interrompidos por uma ação externa.
O problema da parada é que é impossível se fazer um segundo programa, que seja capaz
de dizer se determinado programa é capaz de ter um fim ou não. Esse segundo programa, se
existisse, seria de grande utilidade para programadores e empresas de software, mas tal
problema é não-computável.
2 – Os sete grandes

5.2 o que a máquina de Turing ainda não processa


Existem hoje sete grandes problemas não resolvidos de informação matemática,
portanto, não-computáveis, a saber: a hipótese de Reimann, a conjectura Poincaré, o problema
P versus NP, a conjectura de Birche Swinnerton-Dyer, as equações de Navier-Stokes, a teoria de
Yang-Mills e a conjectura de Hodge. A solução de qualquer um desses problemas pode dar ao
autor a honra de transformá-lo num problema computável e um prêmio de um milhão de
dólares pelo Instituto Clay.
Pode-se juntar aos sete grandes, a conjectura de Goldbach – todo número par é a soma de dois
números primos - infelizmente sem prêmio previsto.
3 – Informação por toda parte
Na medida que as redes de comunicação – satélites, rádios, cabos, celulares – se
espalham e ampliam suas capacidades, e novas interfaces físicas – notebooks e palmtops com
celulares, celulares com computadores – são inventadas, a informação passa a estar em
qualquer parte a qualquer momento. Surgem aí os grandes desafios da Ciência da Informação:
produzir informações para diversas interfaces e enviar a mesma informação para interfaces
diferentes.
Também, conforme as redes se espalham e aumentam de capacidade, é possível
distribuir um problema complexo para processamento mundial e depois recuperar os
resultados. A procura do próximo número primo, a análise dos sinais vindos do espaço, a
pesquisa de remédios para certos cânceres e o projeto Genoma Humano já estão utilizando o
processamento distribuído mundial.
Por outro lado, ao interligar processadores digitais, sistemas de armazenamento e
software em escala mundial, a chamada tecnologia de grade computacional pode transformar o
processamento de dados num serviço público de acesso generalizado, afirmativa que, por si só,
define as oportunidades da Ciência da Informação.
4 – Ensino à distância
Apesar do enorme potencial, o Ensino à Distância, que utiliza as atuais tecnologias de
informação, é um fracasso. É necessário que a Ciência da Informação analise como os cursos
estão sendo feitos e transforme o enorme potencial em realidade.
5 – Aprendizado dos sistemas
Na área dos brinquedos os robôs Aibo e Furby mostram que é possível o aprendizado de
máquinas. Entretanto, há um campo enorme de aplicações para programas capazes de aprender
com uso como programas de busca em bancos de dados, tradutores automáticos, interfaces

Teoria da Computação – Sistemas de Informação


UFVJM 16
06/2010 MÁQUINA DE TURING
homem-máquina, interpretadores de imagens e texto etc. até que todas as máquinas possam
passar pelo teste de Turing qualquer que seja o interrogador.
6 – Documentação e recuperação
Devido ao aumento tanto em quantidade, variedade e qualidade, é preciso que sistemas
automáticos sejam capazes de classificar, arquivar e recuperar automaticamente as informações.
Essa classificação (metadados) deverá servir ainda orientar os tradutores automáticos, os
programas de data mining – isto é, programas capazes de descobrir relacionamentos não-
evidentes entre os dados - e para as pesquisas bibliométricas.
E dentro da própria área de desenvolvimento de sistemas de informação é sempre
necessário aperfeiçoar os sistemas do ponto de vista gerencial ou de engenharia dos programas
aumentando a confiabilidade dos resultados, a pontualidade dos compromissos e a precisão dos

5.2 o que a máquina de Turing ainda não processa


orçamentos, bem como o reaproveitamento dos componentes em futuros programas.
7 – Futurologia
À medida que avançam os estudos sobre o comportamento dos sistemas complexos –
teoria das catástrofes, teoria do caos, filogenia das redes, interpretações de padrões – a
futurologia deverá sair da ficção científica e do esoterismo e se transformar num serviço cujo
contrato garanta as previsões.

REFERÊNCIAS BIBLIOGRÁFICAS

[1] < http://www.cin.ufpe.br/~rmoc/Decidibilidade.doc > Acessado em 29 de julho de 2010.


[2] <http://pt.wikipedia.org/wiki/Máquina_de_Turing> Acessado em 29 de julho de 2010
[3] <http://www.ncc.up.pt/~nam/aulas/0001/mc/material/turing01.pdf> Acessado em 29 de
julho de 2010
[4] <http://www.podre.com.br/trabalhos/GraduacaoComputacaoUnisinos/2004-
1/Teoria_da_Computacao/trabalhos/maquina_turing.pdf > Acessado em 29 de julho de 2010
[5] <http://w3.math.uminho.pt/site/files/outros/3956_Aula7xi2007.pdf> Acessado em 02 de
julho de 2010
[6] http://professores.faccat.br/assis/hcomp/EvolucaoConceitual.html#church> Acessado em 02
de julho de 2010
[7] EIRAS, Carlos Silva, Modesta Proposta: a Máquina da Turing como Fundamento Teórico da
Ciência da Informação. Revista Eletrônica MARPHEUS, UNIRIO. 2004.
<http://www.unirio.br/morpheusonline/Numero04-2004/leiras.htm> Acessado em 02 de julho de 2010

Teoria da Computação – Sistemas de Informação


UFVJM 17