trabalho [maquina de turing] de teoria da computação

18
Maquina de Turing TRABALHO DE TEORIA DA COMPUTAÇÃO TRABALHO DE TEORIA DA COMPUTAÇÃO Aluno Curso: Sistemas de informação Diamantina, 06/2010 ROBERT DIEGO DE JESUS Mat. 2007.2100.398

Upload: robert-diego-de-jesus

Post on 04-Jul-2015

1.572 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: trabalho [MAQUINA DE TURING] de teoria da computação

Maquina de Turing

TRABALHO DE TEORIA DA COMPUTAÇÃOTRABALHO DE TEORIA DA COMPUTAÇÃO

AlunoCurso:

Sistemas de in

formação

Diamantina, 06/2010

ROBERT DIEGO DE JESUSMat. 2007.2100.398

Page 2: trabalho [MAQUINA DE TURING] de teoria da computação

SUMÁRIO

1. Apresentação....................................................................................................................................2Exemplo de uma máquina de Turing simples.............................................................................3

2. Definição de Máquina de Turing.......................................................................................................4O 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 ...........................................................................62.2.2. Máquina de Turing com múltiplas cabeças .....................................................................72.2.3. Máquina de Turing com fita infinita para os dois lados ..................................................8Resumo das variações da Máquina de Turing: ...........................................................................9

3. Linguagens Recursivas e Recursivas Enumeráveis............................................................................93.1 Propriedades ...........................................................................................................................10

4. Tese de Church-Turing....................................................................................................................125. Outras Aplicações para MT.............................................................................................................14

5.1 As informações que a máquina de Turing já resolve..........................................................145.2 o que a máquina de Turing ainda não processa.................................................................15

Referências Bibliográficas...................................................................................................................17

Page 3: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010

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 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.

• 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:

MÁQUINA DE TURING

1. Apresentaçã

o

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

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

Page 4: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010• 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.

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.

MÁQUINA DE TURING

1. Apresentaçã

o

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

Ilustração 2: Diagrama dos estados de M

Page 5: trabalho [MAQUINA DE TURING] de teoria da computação

06/20102. 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 ×Γ ×→ ,←s0 é o estado inicial

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=1e D=← então

sX 1 · · · X n ∣−M s ' bY X i1 · ·· X n

Se i=1,D=←eY=b então

sX 1 · · · X n ∣−M s ' X i1 · · · X n

Se i1e D=← então,

X 1 · ·· X i−1 sX i · · · X n ∣−M X 1 ·· · X i− 2 s ' X i−1Y X i1 ·· · X n

Analogamente se D=→ tem-se que

X 1 · ·· X i −1 sX i · · · X n ∣−M X 1 · ·· X i−1Y s ' X i1 · · · X n

Diz-se que xsy ∣−Mkx ' s ' y ' se x ' s ' y ' resulta de xsy em k movimentos e

xsy ∣ −M∗x ' s ' y ' se existe k0 tal que xsy ∣−M

kx ' s ' y '

MÁQUINA DE TURING

2. Definição de

Máquina de T

uring

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

Page 6: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010Uma palavra x ∈ Σ ∗ é aceite por uma máquina de Turing M se com palavra x na fita e

no estado inicial s0 , 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, é

L M ={x∨ x∈ Σ ∗ e s0 x ∣−M x1 sx 2 para algums ∈ F ,e x1 , x2∈ Γ ∗ }

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 temigual númerode1 ’ se de0 ’ s}

No estado s0se a cabeça da máquina lê 0 (1), a máquina entra no estado s2(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 enquantohouverem 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?

MÁQUINA DE TURING

2. Definição de

Máquina de T

uring

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

Page 7: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010Comparando-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 negativa para o problema de Hilbert. Portanto nem todos os enunciados verdadeiros da aritmética podem ser provados por um computador.

2.2 VARIAÇÕES DA MÁQUINA DE TURING

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

MÁQUINA DE TURING

O problema d

a parada e o pr

oblema da dec

isão

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

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

Ilustração 3: Relacionamento entre os mundos formais, matemáticos e computacionais

Page 8: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010Considere 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.

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.

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

MÁQUINA DE TURING

2.2.1. Máquina

de Turing com

múltiplas fita

s

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

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

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

Page 9: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010φ− 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×Σ ∪ Γ ∪ {φ , β }n→Q×Σ ∪ Γ ∪ {β }n×E , D k ,

onde E representa o movimento da cabeça de leitura e escrita uma posição para a esquerda e D 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.

MÁQUINA DE TURING

2.2.2. Máquina

de Turing com

múltiplas cab

eças

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

Ilustração 7

Page 10: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010Resumo 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 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 ∈ LM 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 ∈ LM ∗ 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∉LM ,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

MÁQUINA DE TURING

Resumo das v

ariações da Má

quina de Turin

g:

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

Page 11: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010má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 = {anbn∣n≥ 0}b) Triplo_Bal = {anbn cn∣n≥ 0}c) Palavra_Palavra = {ww∣wé palavra sobre os símbolosa eb}

A classe das Linguagens Enumeráveis Recursivamente inclui algumas linguagens 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) = LREJEITA(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 = {anbn∣n≥ 0}b) Triplo_Bal = {anbn∣n≥ 0}c) {w∣w∈ a , b∗temodobro de símbolos a queb}

3.1 PROPRIEDADES

Seja L⊆ A ∗ uma linguagem e seja T uma máquina de Turing com alfabetode entrada A. Diz-se que

• T aceita ou reconhece L se L=LT ;• 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.

MÁQUINA DE TURING

3. Linguagens

Recursivas e R

ecursivas Enu

meráveis

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

Page 12: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010Demonstraçã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 deforma 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;

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 QL×QK (onde QL e QK são os conjuntos de estados de T L e T K 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.

MÁQUINA DE TURING

3.1 Propriedad

es

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

Page 13: trabalho [MAQUINA DE TURING] de teoria da computação

06/20104. 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; • 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.

MÁQUINA DE TURING

4. Tese de Chu

rch-Turing

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

Page 14: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010 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. 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.

MÁQUINA DE TURING

4. Tese de Chu

rch-Turing

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

Page 15: trabalho [MAQUINA DE TURING] de teoria da computação

06/20105. OUTRAS APLICAÇÕES PARA MT

5.1 As Informações Que A Máquina De Turing Já ResolveAbaixo, 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 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

MÁQUINA DE TURING

5. Outras Apli

cações para M

T

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

Page 16: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010utilizado 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 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:

MÁQUINA DE TURING

5.1 As inform

ações que a m

áquina de Tur

ing já resolve

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

Page 17: trabalho [MAQUINA DE TURING] de teoria da computação

06/20101 – 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

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

MÁQUINA DE TURING

5.2 o que a m

áquina de Tur

ing ainda não

processa

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

Page 18: trabalho [MAQUINA DE TURING] de teoria da computação

06/2010homem-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 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

MÁQUINA DE TURING

5.2 o que a m

áquina de Tur

ing ainda não

processa

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