Como o uso das máquinas Turing da Oracle não leva a contradições?


9

Como podemos garantir que continuamos a fazer declarações válidas e válidas sobre as classes de complexidade ao usar as máquinas de Turing da Oracle? De acordo com o meu entendimento (com base nas definições fornecidas nos livros introdutórios sobre o assunto), as máquinas Oracle Turing podem determinar o status de associação de uma string em relação a uma linguagem Oracle em uma etapa da computação. No entanto, as linguagens do oracle frequentemente usadas são comprovadamente impossíveis de resolver em tempo constante (por exemplo, um oráculo completo EXPTIME). Para mim, isso parece "abrir a porta" para as contradições e, afinal, tudo segue uma contradição.


2
Se o oráculo "realmente" levou tempo , isso é apenas um fator para o tempo de execução da máquina total. Assumir um custo constante (ou seja, contar quantas vezes você precisa do oráculo) facilita a comparação de algoritmos que usam o oráculo. (A questão se os resultados obtidos têm qualquer relevância na realidade, é um que você sempre enfrentam e / ou ignorar no TCS.)T
Raphael

@ Rafael Por "você" no comentário entre parênteses, você quer dizer teóricos da complexidade em geral ou eu em particular?
Ari #

O antigo. Bem, de certa forma.
Raphael

um tópico avançado. tente começar com Fortnow, que concorda que às vezes é "mal utilizado" e faz pesquisas na área. a maneira autoconsistente de ver esses resultados é como uma afirmação "condicional". da mesma forma que muitos resultados são provados condicionalmente em matemática, com base na hipótese de Riemann etc.
vzn

Respostas:


8

Há várias maneiras de ver isso.

Uma é que, nas provas, a implicação é como uma função, que toma como entrada uma prova de alguma coisa e produz uma prova de outra coisa.

Podemos escrever funções que operam com valores que não temos.

Por exemplo, vamos considerar o número de parada , que não é computável. Eu posso escrever a funçãoh

humaeutEungPeuvocêsOne:{h}N

.humaeutEungPeuvocêsOne(x)=x+1 1

Esta função usa como entrada o número de parada e retorna o número de parada mais um. Claramente, esta é uma função bem definida: se dermos a entrada correta, ela fornecerá a saída correta. O fato de não encontrarmos a entrada correta não a torna menos válida para uma transformação.

X

Também é importante perceber que, quando dizemos algo como "Não existe uma máquina de Turing que possa resolver o problema de parada", isto é, não existe uma TM que corresponda à definição padrão de uma TM que decide o problema de parada.

Um oráculo está basicamente dizendo "Suponha que temos uma TM que corresponde à definição normal, exceto também assumindo que podemos resolver algum problema". Portanto, não há contradição, já que não estamos assumindo que uma TM normal está aceitando o problema, estamos assumindo que existe uma TM especial aceitando o problema.

Numa analogia muito informal, pense assim. Se eu posso provar a você que nenhum humano sem superpotências pode voar, não há contradição dizendo que há um super-herói que pode voar.

Esses oráculos são objetos puramente lógicos. Não sabemos como construir máquinas físicas que as imitem, da maneira que podemos com as máquinas de Turing, mas, tanto quanto sabemos, não há contradição inerente entre suas definições e nossos axiomas básicos. Como objetos lógicos, esses oráculos existem. Sabemos que eles não são termos padrão de Máquinas de Turing ou Lambda-Calculus ou funções Recursivas Parciais. A tese de Church-Turing diz que não há modelo mais poderoso, mas não é um teorema, é apenas uma conjectura e é informal demais para ser realmente provado.


n+1 1=nn1 1

11
O fato é que as declarações não são falsas, simplesmente não podemos construí-las. A chave é que os oráculos não são máquinas de Turing, isso não significa que eles não existem.
jmite

"encontre a entrada correta" "encontre a saída correta" ?

2

UMABB=BUMA

Então, qual é o sentido de usar um oracle TM? Eu diria que isso nos permite principalmente considerações teóricas sobre o (grau de) dureza dos problemas. O oráculo pode até ser indecidível. Nesse caso, você pode definir toda uma hierarquia de problemas indecidíveis (grau de Turing). Obviamente, se o seu oráculo é o problema de parada, você não pode converter seu oracle TM em um TM tradicional.

O conceito do oracle TM também é importante para definir uma forma forte de reduções (reduções de Turing).

PNP

W|W|

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.