In che modo l'uso delle macchine Oracle Turing non porta a contraddizioni?


9

Come possiamo assicurarci di continuare a fare affermazioni valide e valide sulle classi di complessità quando utilizziamo oracle Turing Machines? Secondo la mia comprensione (basata sulle definizioni fornite nei libri di testo introduttivi sull'argomento), le macchine di Oracle Turing possono determinare lo stato di appartenenza di una stringa rispetto a un linguaggio di Oracle in una fase di calcolo. Tuttavia, le lingue dell'oracolo usate spesso sono impossibili da risolvere in tempo costante (ad esempio un oracolo completo EXPTIME). Per me questo sembra "aprire la porta" alle contraddizioni e, dopotutto, tutto segue da una contraddizione.


2
Se l'oracolo "davvero" ha impiegato il tempo questo è solo un fattore per il tempo di esecuzione della macchina totale. Supponendo che il costo costante (ovvero la frequenza con cui è necessario l'oracolo) sia più semplice confrontare algoritmi che utilizzano l'oracolo. (La domanda se i risultati ottenuti abbiano qualche rilevanza nella realtà è quella che devi sempre affrontare e / o ignorare in TCS.)T
Raffaello

@Raphael Per "tu" nel commento tra parentesi intendi i teorici della complessità in generale o io in particolare?
Ari,

L'ex. Bene, entrambi, in un certo senso.
Raffaello

un argomento avanzato. prova a iniziare con Fortnow, che concorda sul fatto che a volte vengono "abusati" e controlla l'area. il modo autoconsistente di vedere questi risultati è un po 'come un'affermazione "condizionale". analogamente al modo in cui molti risultati vengono dimostrati condizionatamente in matematica sulla base dell'ipotesi di Riemann ecc.
vzn

Risposte:


8

Esistono diversi modi per esaminarlo.

Uno è che nelle prove, l'implicazione è un po 'come una funzione, che prende come input una prova di qualcosa e produce una prova di qualcos'altro.

Siamo in grado di scrivere funzioni che operano su valori che non abbiamo.

Ad esempio, consideriamo il numero di arresto , che non è calcolabile. Posso scrivere la funzioneh

haltingPlusOne:{h}N

haltingPlusOne(x)=x+1 .

Questa funzione accetta come input il numero di Halting e restituisce il numero di Halting più uno. Chiaramente questa è una funzione ben definita: se gli diamo il giusto input, darà il giusto output. Il fatto che non riusciamo a trovare l'input giusto non lo rende meno valido di una trasformazione.

Vedo le prove con gli oracoli come simili. Fondamentalmente sono funzioni che dicono, mi danno una macchina di Turing che risolve il problema , e darò in uscita una prova di un teorema.X

È anche importante rendersi conto che quando diciamo qualcosa del tipo "Non esiste Turing Machine in grado di decidere il problema di arresto", ciò significa che non esiste alcuna TM corrispondente alla definizione standard di una TM che decide il problema di arresto.

Un oracolo sta sostanzialmente dicendo "Supponiamo di avere una MT che corrisponda alla definizione normale, tranne supponendo che possiamo risolvere qualche problema". Quindi non c'è contraddizione, dal momento che non stiamo assumendo che una TM normale accetti il ​​problema, supponiamo che ci sia una TM speciale che accetta il problema.

In un'analogia molto informale, pensala in questo modo. Se posso dimostrarti che nessun uomo senza superpoteri può volare, non c'è contraddizione nel dire che esiste un supereroe che può volare.

Questi oracoli sono oggetti puramente logici. Non sappiamo come costruire macchine fisiche che le emulino, come possiamo con le macchine di Turing, ma per quanto ne sappiamo, non c'è contraddizione intrinseca tra le loro definizioni e i nostri assiomi di base. Come oggetti logici, questi oracoli esistono. Sappiamo che non sono macchine di Turing standard o termini Lambda-Calculus o funzioni ricorsive parziali. La tesi di Church-Turing afferma che non esiste un modello più potente, ma non è un teorema, è solo una congettura ed è troppo informale per essere mai veramente provato.


n+1=nn1

1
Il fatto è che le affermazioni non sono false, non possiamo costruirle. La chiave è che gli oracoli non sono macchine di Turing, non significa che non esistano.
jmite,

"trova l'ingresso giusto" "trova l'output giusto" ?

2

ABB=BA

Allora, che senso ha usare un oracle TM? Direi che ci consente principalmente considerazioni teoriche sulla (grado di) durezza dei problemi. L'oracolo può anche essere indecidibile. In questo caso è possibile definire un'intera gerarchia di problemi indecidibili (grado di Turing). Naturalmente, se l'oracolo è il problema di arresto, non è possibile convertire l'oracolo TM in una TM tradizionale.

Anche il concetto di Oracle TM è importante per definire una forte forma di riduzioni (riduzioni di Turing).

PNP

w|w|

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.