Mostre que existem infinitamente mais problemas do que jamais poderemos calcular

8

Eu estava olhando para esta leitura do MIT sobre complexidade computacional e, às 15:00, Erik Demaine embarca em uma demonstração para mostrar o que é afirmado no título desta pergunta. No entanto, não posso seguir seu raciocínio, na prática o que ele diz é o seguinte:
podemos declarar um problema de decisão como uma seqüência de e que na prática é a tabela verdadeira da função. Ele continua dizendo que um problema de decisão é uma sequência infinita de bits, enquanto um programa é uma sequência finita de bits e, até aqui, não há problema. O que não entendo é a continuação da prova a partir deste ponto: Os problemas de decisão estão em01
R porque você pode colocar um ponto decimal antes da string que representa o problema, obtendo assim a parte decimal de um real

 for example if you have 0111011010101010101... it could become x.0111011010101010101... 

Um programa é "apenas" um número inteiro em porque é uma sequência finita de bits. O ponto que eu não entendo é como é possível que um problema de decisão seja comparável a um número real em vez de um número inteiro ... Quero dizer, se usarmos o argumento de "colocar um ponto na frente do número", não é possível o mesmo raciocínio também pode ser aplicado ao número de algoritmos possíveis que podem ser produzidos?N

Yamar69
fonte
11
O ponto é que o número de algoritmos é contável, enquanto o número de problemas de decisão é incontável. Sugiro procurar esses termos em um livro sobre teoria dos conjuntos elementares.
Yuval Filmus
1
@Yuval Filmus Estou perfeitamente ciente do significado desses termos, o que luto para assimilar é a razão dessas diferentes cardinalidades (algoritmos / problemas de decisão).
Yamar69
1
@ JimmyB a mesma afirmação é verdadeira para os números racionais, mas os números racionais ainda são contáveis ​​(com o mesmo "tamanho" que os números inteiros), enquanto os números reais não são.
Gregory J. Puleo
1
O mais interessante é que talvez haja infinitos problemas de decisão especificados finitamente que não podem ser decididos por nenhuma máquina de Turing. Você não precisa apelar para conjuntos incontáveis ​​para concluir que existem infinitamente muitos problemas algoritmicamente insolúveis. Você não precisa da incontabilidade dos números reais para concluir que o conjunto de números reais computáveis ​​possui um complemento infinito.
John Coleman
1
"... do que jamais poderemos calcular" sugere que os problemas que podemos calcular variam com o tempo. A definição de "computável" não depende do tempo.
David Richerby

Respostas:

9

Se o entendi corretamente, sua pergunta é: por que uma solução pode ser codificada por um número natural e um problema com um número real? (Presumo que você entenda a próxima fase da prova que se baseia na diferença entre conjuntos de cardinalidade e .)c0

A razão está na teoria dos conjuntos, mais especificamente na cardinalidade de diferentes conjuntos. Conte o número de programas - é o tamanho das diferentes seqüências de caracteres de um idioma específico ou conjunto de caracteres (ASCII, por exemplo). Esse tamanho é equivalente ao tamanho do conjunto (números naturais). (Cada sequência pode ser representada como seu valor calculado por sua representação binária.)N

Mas, contando o número de funções dos números naturais (ou cadeias que os representam) até , isso é uma história totalmente diferente, e aqui estamos lidando com diferenças de tamanho entre dois conjuntos infinitos; o tamanho deste conjunto é maior. Há uma boa prova baseada no fato de que as funções de para todos os conjuntos mencionados acima não podem ser "ativadas", o que leva à conclusão da diferença de cardinalidade. Você pode ler a prova aqui .{0,1}N

royashcenazi
fonte
11

Reformulando de uma maneira mais matematicamente precisa, o que o palestrante está tentando dizer é o seguinte: Qualquer algoritmo pode ser (exclusivamente) codificado como uma sequência finita de bits e qualquer sequência finita de bits (exclusivamente) codifica um programa; portanto, existe uma bijeção entre e o conjunto de algoritmos, portanto ambos são conjuntos contáveis. Por outro lado, tendo corrigido uma ordem de seqüências de caracteres, qualquer problema de decisão pode ser (exclusivamente) codificado como uma sequência infinita de bits, onde o ésimo bit representa se a ésima sequência está em ou não, e qualquer sequência infinita de bits (exclusivamente) codifica um problema de decisão (da mesma maneira); portanto,NPiiPR e o conjunto de problemas de decisão são conjuntos incontáveis.

dkaeae
fonte
6

Todo algoritmo pode ser descrito por uma sequência finita e, portanto, existem apenas muitos algoritmos. Em contraste, podemos descrever todo problema de decisão como um decimal infinito na base 2 e, além disso, esse é um mapeamento surjetivo : todo número em pode ser "decodificado" para um problema de decisão. Portanto, existem incontáveis ​​problemas de decisão.[0,1]

O argumento de decodificação não funciona para algoritmos - enquanto todo algoritmo corresponde a um número decimal finito, isso não cobre todo o , mas apenas um subconjunto contável dele.[0,1]

Yuval Filmus
fonte