Aula de Teoria da Computabilidade de 19.08.2004, Prof Prolo
1 Cantor, conjuntos não enumeráveis, funções não-computáveis e
problemas não decidíveis
George Cantor mostrou (1874) que existem cardinais acima de ℵ0 , usando um método que hoje é conhecido como Método da diagonal de Cantor. Nas próximas seções mostramos alguns conjuntos não
enumeráveis importantes, utilizando este método. O trabalho de Cantor vai muito além disto, mas aqui
nos restringimos ao que nos interessa para a disciplina. Ao final concluimos, a partir de resultados de
cardinalidae vistos, que existem funções não computáveis e problemas não decidíveis.
2 O conjunto dos números reais (R) é não-enumerável
Vamos nos restringir aqui apenas ao intervalo (0, 1] por simplicidade. (É óbvio que R não pode ser menor
do que (0, 1].
1. A prova é por contradição (ou redução ao absurdo). Primeiro assumimos como Hipótese que o
conjunto é enumerável. Ora, nós queremos provar exatamente o contrário, isto é, ao final concluímos
que se tal hipótese for verdadeira chega-se a uma contradição, e portanto a hipótese não é verdadeira:
o conjunto dos reais não é enumerável.
2. Ora, se o conjunto é enumerável por hipótese, então deve existir uma enumeração para ele (mesmo
que nós não saibamos qual/como ela é):
r0 , r1 , r2 , r3 , r4 , r5 , r6
3. Nota: Todo número real pode ser representado
em decimal com mantissa infinita. Alguns porque
√
naturalmente a tem como 0.033333 · · · , π, abc. Mas mesmo os que tem mantissa finita, como 0.25,
podem ser representados como 0.2499999 · · · . Isto não é central ao argumento, apenas mostra que
representações com mantissa infinita (sem zeros não significativos à esquerda) tem correspondência
bijetora com os reais.
4. O diagrama abaixo mostra esquematicamente uma enumeração qualquer do intervalo (0, 1], que deve
existir de acordo com 2 acima. Cada linha representa um número. Cada número é uma sequência
infinita de dígitos a partir do ponto decimal (Como estamos representando apenas o intervalo (0, 1],
antes do ponto decimal é sempre 0, que não é representado). O número π/10, por exemplo, seria
representado como
3 1 4 1 5 ··· ,
e deve ser listado em uma linha k ∈ N. rk,0 = 3, rk,1 = 1, rk,2 = 4, rk,3 = 1, rk,4 = 5, · · · . Na
verdade, para todo número no intervalo (0, 1] deve haver um k ∈ N tal que o número é representado
na linha k da tabela abaixo.
Linha
0
1
2
3
4
5
6
...
Representação do número
r0,0 r0,1 r0,2 r0,3 r0,4 . . .
r1,0 r1,1 r1,2 r1,3 r1,4 . . .
r2,0 r2,1 r2,2 r2,3 r2,4 . . .
r3,0 r3,1 r3,2 r3,3 r3,4 . . .
r4,0 r4,1 r4,2 r4,3 r4,4 . . .
r5,0 r5,1 r5,2 r5,3 r5,4 . . .
r6,0 r6,1 r6,2 r6,3 r6,4 . . .
... ... ... ... ... ...
5. Imagine agora o número real x, cuja representação
x0 x1 x2 x3 x4 . . . xl . . .
é construída da seguinte forma:
x0 = 9 − r0,0
x1 = 9 − r1,1
x2 = 9 − r2,2
x3 = 9 − r3,3
x4 = 9 − r4,4
...
xl = 9 − rl,l
Para cada l ∈ N, o l_ésimo dígito de x após o ponto decimal é o complemento de 9 do l_ésimo
dígito do número listado na linha l da enumeração.
6. Não há a menor dúvida de que a construção acima representa um número real no intervalo (0, 1].
Portanto o número deve pertencer à enumeração, por exemplo numa linha k ∈ N qualquer. Mas
pela definição o k_ésimo dígito de x é diferente do k_ésimo dígito desta linha. Ou seja, x não
corresponde a nenhum dos elementos da enumeração. Isto é uma CONTRADIÇÃO! A hipótese
original é, portanto, falsa;
7. NOTA1: O método de Cantor acima é chamado de método da diagonal porque o número x foi
definido utilizando os elementos da diagonal (rk,k ) da tabela da enumeração da hipótese.
3 O conjunto de funções totais dos naturais para os naturais (F =
{f : N → N|f é total }) não é enumerável
1. Primeiro note que ao provarmos que F não é enumerável provamos também que as funções parciais
não o são pois F é um subconjunto das parciais. O motivo da restrição para totais é por força do
argumento que será utilizado abaixo.
2. O método é o mesmo usado acima. Primeiro assumimos como Hipótese que o conjunto F é enumerável. Ora, nós queremos provar exatamente o contrário, isto é, ao final concluímos que se tal
hipótese for verdadeira chega-se a uma contradição, e portanto a hipótese não é verdadeira: o conjunto das funções de N em N não é enumerável.
3. Ora, se o conjunto é enumerável por hipótese, então deve existir uma enumeração para ele (mesmo
que nós não saibamos qual/como ela é):
f0 , f1 , f2 , f3 , f4 , f5 , f6
4. Nota: Duas funções f, g :∈ N são iguais, sse elas são iguais par todo elemento do domínio; são
diferentes sse existe algum x ∈ N para o qual f (x) 6= g(x). Podemos portanto representar uma tal
função f como uma sequência infinita
f (0), f (1), f (2), f (3), ...
(ou imagine o grafo de f = {(0, f (0)), (1, f (1)), (2, f (2)), (3, f (3)), . . .}).
5. O diagrama abaixo mostra esquematicamente uma enumeração qualquer de F , que deve existir pela
hipótese. Cada linha representa uma função. Cada coluna x corresponde ao valor da função aplicada
a x. Para toda a função de F deve haver um k ∈ N tal que a função é representada na linha k da
tabela abaixo.
Função
0
1
2
3
4
5
6
...
0
f0 (0)
f1 (0)
f2 (0)
f3 (0)
f4 (0)
f5 (0)
f6 (0)
...
1
f0 (1)
f1 (1)
f2 (1)
f3 (1)
f4 (1)
f5 (1)
f6 (1)
...
Argumentos
2
3
f0 (2) f0 (3)
f1 (2) f1 (3)
f2 (2) f2 (3)
f3 (2) f3 (3)
f4 (2) f4 (3)
f5 (2) f5 (3)
f6 (2) f6 (3)
...
...
4
f0 (4)
f1 (4)
f2 (4)
f3 (4)
f4 (4)
f5 (4)
f6 (4)
...
...
...
...
...
...
...
...
...
...
6. Imagine agora a função f ∈ F , cuja representação
f (0) f (1) f (2) f (3) f (4) . . . f (l) . . .
é construída da seguinte forma:
f (0) = f0 (0) + 1
f (1) = f1 (1) + 1
f (2) = f2 (2) + 1
f (3) = f3 (3) + 1
f (4) = f4 (4) + 1
...
f (l) = fl (l) + 1
Para cada l ∈ N, f é diferente da função fl da linha l da enumeração, pois por construção, f é
diferente de fl quando aplicada ao argumento l (f (l) = fl (l) + 1). Portanto f não pertence à
enumeração. Mas como f ∈ F , por hipótese f pertence à enumeração. Novamente chegamos a
uma contradição. A hipótese original é portanto falsa. F não é enumerável.
4 CONCLUSÃO 1: Existe função não computável.
Vimos que o conjunto de todos os programas (procedimentos efetivos) em uma dada linguagem (PROGS)
é enumerável. Mas o conjunto das funções sobre os naturais (F ) não é enumerável card(F ) > ℵ0 ..
Portanto, não existe bijeção entre PROGS e F . Não tem como associar um programa para cada função.
Tem “mais” funções do que programas. Donde se conclui que existem funções não computáveis (na
verdade muitas!, infinitas! – existem “mais” funções não-computáveis do que funções computáveis).
5 CONCLUSÃO 2: Existe problema não decidível.
1. Com argumento similar ao usado para o conjunto F das funções totais dos naturais para os naturais,
pode-se mostrar o subconjunto de F , das funções totais binárias de naturais F B = {f : N →
{0, 1}|f é total }) também não é enumerável. Esta prova foi incluída como exercício na página da
disciplina.
2. Ora, F B é exatamente o conjunto dos problemas de decisão (definidos anteriormente) para os naturais. Em termos de conjuntos, F B representa o conjunto potência de N (2N , o conjunto de todos
os subconjuntos de naturais) – de fato, cada membro f de F B é a função característica de um
subconjunto dos naturais.
3. Ou seja o número de problemas de decisão não é enumerável. Visto que PROGS é enumerável,
novamente concluímos pela existência de (infindáveis) problemas que não são decidíveis.
4. Note que F B ⊂ F , portanto o fato de que F B não é enumerável por si só implica que F também
não é.
6 Conclusão final:
Existem funções matemáticas que não podem ser computadas (não podem ser expressas por procedimento
efetivo), problemas que não podem ser decididos por computador e conjuntos que não podem ser enumerados por programa de computador.
Download

1 Cantor, conjuntos não enumeráveis, funções não