You are on page 1of 5

Demonstrao de No-Computabilidade atravs do problema do Castor Ocupado (Busy Beaver)

1. Introduo:
Neste trabalho ser demonstrada a existncia de funes no computveis e ser exibido um exemplo: O problema do Castor Ocupado. 2.Definies

e Convenes:

Exceto quando mencionado em contrrio, ao nos referirmos a uma mquina de Turing (ou simplesmente mquina), estar implcito que se trata de uma mquina de Turing determinstica, de fita infinita, que l e escreve apenas dois smbolos: zero (branco) e um, e que alm disso as nicas aes permitidas em cada transio so: deslocar a fita uma casa para a direita, deslocar a fita uma casa para a esquerda, escrever 1 na fita, escrever 0 na fita. Dizemos que uma mquina de Turing M implementa uma funo f: N N quando: Sempre que inicializamos a fita com n 1s (sendo o restante ) e a cabea leitora da mquina lendo o primeiro 1 (mais esquerda), a mquina termina a computao com a cabea de leitura lendo o primeiro de uma sequncia de f(n) 1s, sendo que o resto da fita est branca (branco = 0).

Uma funo f: N N dita no computvel quando impossvel construir uma Mquina de Turing que a implemente. At onde se sabe, todo algoritmo conhecido pode ser implementado por uma mquina de Turing. Isso significa que se uma funo no for computvel por Turing, ento ela no ser computvel de jeito algum, ou seja, pode at ser possvel se conhecer o valor de f(n) para um conjunto finito de ns, mas ser impossvel determinar um meio de calcular f(n), para todo n.

3. Enumerabilidade
Um conjunto infinito A dito enumervel se existir uma funo f: N A que seja bijetiva. Exemplos: a) Z = {..., -2, -1, 0, 1, 2, ...} enumervel. Para demonstrar basta exibir a seguinte funo f: f(0) = 0. f(n-simo par) = n-simo inteiro positivo. f(n-simo mpar) = n-simo inteiro negativo. n f(n) 0 0 1 -1 2 1 3 -2 4 2 5 -3 6 3 7 -4 8 4 ... ...

fcil ver que f bijetiva. b) o conjunto F de todas as funes f: N N no enumervel. Prova: Suponha que F seja enumervel. Logo existe uma bijeo de N em F, ou seja, possvel atribuir ndices naturais distintos a todos os elementos de F, donde F = {f1, f2, ..., fn, ...}. Defina f(k) = fk(k)+1, para todo k natural. Como f recebe um natural como argumento e retorna um natural, f pertence a F. Para todo k, f(k) fk(k). Portanto as funes f e fk no so idnticas. Ou seja, f no idntica a nenhuma funo do conjunto {f1, f2, ..., fn, ...} = F. Donde se conclui que f no pertence a F. Absurdo. Segue o resultado. c) O conjunto de todas as palavras (palavra aqui simplesmente um agregado de letras. akuflljcgkberykeh acredite , nesse caso, uma palavra) enumervel. Prova: Toda palavra uma concatenao de um nmero finito de smbolos em A = {a,b,c,...,z}. Como #A = 26, numa palavra podemos associar cada letra a um nmero entre 0 e 25, de modo que h uma correspondncia direta e biunvoca entre o conjunto das palavras e os naturais escritos em base 26. Segue o resultado. d) O conjunto de todas as mquinas de Turing enumervel. A demonstrao dessa propriedade imediata quando se percebe que quelaquer mquina de Turing pode ser escrita usando um nmero finito de smbolos. Por exemplo, a mquina abaixo poderia ser descrita da seguinte forma:

q0:0,1;q0:1,R;q1:0,L;q1:1,0

Ou seja, qualquer mquina de Turing uma palavra escrita com os 15 smbolos: {q, L, R, ,, ;, 0, 1, 2, ..., 9}. O restante anlogo ao item anterior

4. Existncia de no computabilidade.
A partir dos itens b e d no tpico anterior, possvel deduzir que existem funes naturais no computveis. Vejamos a demonstrao dessa afrimao: Lema: Seja A e B conjuntos, sendo A no enumervel. Se existe uma funo injetiva f:A-> B, ento B no enumervel. A demonstrao no difcil e no ser apresentada por fugir aos propsitos desse trabalho. Seja F o conjunto de todas as funes naturais e M o conjunto de todas as mquinas de Turing. Suponha que todas as funes em F sejam computveis. Assim, para cada f em F existe ao menos uma m em M capaz de computla. Logo, existe T:F M, tal que m = T(f) computa f. T injetiva, caso contrrio haveria uma mesma mquina que computa duas funes naturais no equivalentes, o que impossvel devido ao determinismo das mquinas de Turing. Como F no enumervel [3-b], do lema segue que M no enumervel. Absurdo [3-d].

5.O

busy beaver

Considere uma mquina de Turing inicializada com a fita em branco. Se em algum momento a computao termina, com a cabea de leitura lendo o primeiro (mais esquerda) de uma srie ininterrupta de p 1s, deixando o resto da fita em branco, dizemos que a produtividade desta mquina p. Caso a computao no termine, ou termine em um estado diferente do descrito acima, sua produtividade , por definio, nula. Defina agora p(n) como sendo a produtividade da mquina mais produtiva que exista com n estados. Uma mquina de Turing capaz de computar p(n) recebe o nome de busy beaver. Mostraremos que p(n) no-computvel. Ou seja, busy beavers pertencem mesma classe de entidades que o Papai Noel e o Coelhinho da Pscoa. A demonstrao apresentada ser por reduo ao absurdo. Antes necessrio provar duas propridades a respeito p(n). a) p(n+1) > p(n). Escolha qualquer mquina mais produtiva de n estados e adicione mais um estado como na figura:

O resultado uma mquina de n+1 estados cuja produtividade p(n)+1. Podem haver mquinas de n+1 estados ainda mais produtivas, mas ns acabamos de estabelecer que a produtividade da mquina mais produtiva de n+1 estados maior (em pelo menos 1 unidade) que p(n). b) p(n+11) 2n. Considere a seguinte mquina de Turing, denominada mdup:

Note que esta mquina consegue implementar a funo f(n) = 2n (para cada 1 que ela encontra direita, ela apaga, e escreve dois 1s esquerda).

Perceba que, dada uma mquina m de n estados e produtividade p, possvel construir uma mquina de n+11 estados e produtividade 2p, simplesmente substituindo o estado 1 em mdup pelo ltimo estado de m. Tambm no difcil ver que possvel construir uma mquina de n estados cuja produtividade n. Basta fazer cada estado escrever 1 na fita e deslocar a cabea de leitura para a esquerda. De modo que a mquina abaixo tem n+11 estados e produtividade 2n.

De onde se conclui que p(n+1) 2n

Demonstrao de que Busy Beavers no existem:

Suponha que o problema do busy beaver tem soluo. Isto , existe uma mquina de Turing (chame de mBB), com, digamos, k estados, capaz de computar p(n) para todo n. Note agora que, se mBB realmente existe, ento, para cada n natural existe uma mquina de n+2k estados (figura abaixo) cuja produtividade p(p(n)). Portanto: Se mBB existe, ento p(n+2k) p(p(n)). (1) Independente de mBB existir ou no, ns sabemos (de a) que p(n+1) > p(n) para todo n natural. Podemos concluir ento que para i e j naturais: Se i > j, ento p(i) > p(j). (2) De onde se conclui rapidamente que para i e j naturais: Se p(j) p(i), ento j i. (3) De (1) e (3), fazendo j = n+2k e i = p(n), temos que para todo n natural: Se mBB existe, ento n+2k p(n). (4) Valendo para todo n, certamente valer para n+11: Se mBB existe, ento n+11+2k p(n+11). (5) De b e (5) conclui-se que para todo n natural: Se mBB existe, ento n+11+2k 2n 11+2k n. (6) Valendo para todo n, certamente valer para n=12+2k: Se mBB existe, ento 11+2k 12+2k 0 1. (7) Que justamente o absurdo prometido. Assim, no h uma mquina de Turing capaz de computar a funo p.