Una macchina di Turing probabilistica può risolvere il problema di arresto?


29

Un computer dotato di un flusso infinito di bit veramente casuali è più potente di un computer senza uno. La domanda è: è abbastanza potente da risolvere il problema dell'arresto?

Cioè, un computer probabilistico può determinare se un programma deterministico si ferma o no ?

Esempio di un computer probabilistico che fa qualcosa che non è deterministico: prendere in considerazione un piccolo programma (di lunghezza inferiore a un kilobyte) che genera una stringa con complessità di Kolmogorov maggiore di un gigabyte. La complessità di Kolmogorovdi una stringa è la lunghezza del programma deterministico più breve che produce quella stringa. Pertanto, per definizione, un programma deterministico non può produrre una stringa la cui complessità è maggiore della sua stessa lunghezza. Tuttavia, se viene fornito un flusso infinito di bit veramente casuali, un piccolo programma è in grado di raggiungere il compito con un successo del 99,9999999% semplicemente facendo eco, diciamo, 10 miliardi di bit casuali e sperando che la complessità di Kolmogorov di quei bit sia abbastanza alta . Quindi, produrre una serie di complessità Kolmogorov superiore rientra nell'orizzonte delle possibilità del programma probabilistico, ma non è affatto possibile per il programma deterministico.

Detto questo, mi chiedo se sia possibile usare bit veramente casuali per segare a mano il problema dell'arresto. Ad esempio, un algoritmo potrebbe generare casualmente teoremi e dimostrarli / confutare / scartarli fino a quando non ne ha abbastanza per dimostrare / confutare che un determinato programma deterministico si interrompe.


3
@downvoter: questo non avrebbe dovuto ricevere un voto negativo senza un commento.
Dave Clarke,

3
Cosa impedisce a una TM deterministica di enumerare tutti i casi? Qui, verificare un'ipotesi è il problema, non indovinare se stesso. Nota anche che non puoi davvero dire che sei strettamente più potente se crei il risultato desiderato solo con una probabilità . p<1
Raffaello,

1
"un programma deterministico non può produrre una stringa la cui complessità è maggiore della sua stessa lunghezza." È sufficiente che un'altra macchina deterministica produca lo stesso output. Nota che le TM deterministiche possono simulare non solo quelle probabilistiche, ma anche le TM non deterministiche (con un numero arbitrario di alternanze).
Kaveh,

Ieri stavo per dire - guardando Kaveh et al - questa era una domanda troppo semplice per questo sito (la stessa domanda per NTM è un risultato di base in ogni primo corso di teoria). Dato che è stato necessario uno sforzo per formalizzare la "MT probabilistica", sono contento di non averlo fatto.
Raffaello,

1
E vedi le risposte chiarificatrici alla mia precedente domanda TCS correlata: cstheory.stackexchange.com/questions/1263/…
Joseph O'Rourke

Risposte:


22

modifica: ho appena realizzato che alcune delle cose che ho scritto erano totalmente senza senso, mi dispiace per quello. Ora ho cambiato la prova e reso più precisa la definizione di macchina probabilistica che sto usando.

Non so se ho capito bene la tua definizione di macchina probabilistica di Turing: è una macchina con un nastro aggiuntivo su cui è scritta una stringa incomprimibile infinita, e oltre a ciò si comporta proprio come una macchina deterministica? Se ripariamo la stringa incomprimibile, la classe che otteniamo non sembra essere interessante.

Penso che possiamo definire una macchina Turing probabilistica in diversi modi. Userò una definizione che sembra abbastanza naturale (e per cui la mia prova funziona;) Definiamo una macchina probabilistica come quella: ottiene un nastro aggiuntivo su cui è scritta una stringa infinita, diciamo che questa macchina decide un linguaggio se per ogni si ferma e accetta con probabilità , quando la probabilità viene presa su quelle stringhe casuali aggiuntive, e per ogni si ferma e rifiuta con probabilità .x L > 1LxL xL>1>12xL>12

Mostreremo ora che se esiste una tale macchina probabilistica che risolve il problema di arresto per le macchine deterministiche, potremmo usarla per costruire una macchina deterministica che risolva il problema di arresto per le macchine deterministiche - e sappiamo che tale macchina non può esistere.HPH

Supponiamo che esista talePossiamo costruire una macchina deterministica che accetta come input una macchina probabilistica con un input , cheM R xPMRx

  • si ferma e accetta se e solo se accetta (cioè ferma e accetta su più della metà delle stringhe casuali).x R xRxRx
  • si ferma e rifiuta se e solo se rifiuta (ovvero ferma e rifiuta su più della metà delle stringhe casuali).x R xRxRx
  • loop altrimenti

Fondamentalmente, per tutti simula sull'input e su ogni stringa da come prefisso della stringa sul nastro casuale diAdesso:i 1 , 2 , . . . R x 0 , 1 i RMi1,2,...Rx0,1iR

  • se per prefissi di lunghezza arrestati e accettati senza tentare di leggere più di bit dal nastro casuale, ferma e accetta iRiM>12i RiM
  • se per prefissi di lunghezza arrestato e rifiutato senza cercare di leggere più di bit dal nastro casuale, ferma e rifiuta iRiM>12i RiM
  • altrimenti esegue la simulazione con .i : = i + 1Mi:=i+1

Dobbiamo convincerci ora, che se accetta (scarti) con probabilità , poi per qualche accetterà (rifiutare) per prefissi di lunghezza della stringa casuale senza cercare di leggere più di bit dal nastro casuale. E 'tecnico, ma piuttosto facile - se assumiamo altrimenti poi la la probabilità di accettare (rifiuto) si avvicina come va all'infinito, e quindi per un po' dovrà essere .x p > 1Rx i>1p>12i iip>1>12ii iip>1p>12iip>12

Ora definiamo semplicemente la nostra macchina deterministica risolvendo il problema di arresto (cioè decidendo se una determinata macchina deterministica accetta una determinata parola ) a come . Nota che si ferma sempre, perché la decisione di un linguaggio con le nostre macchine probabilistiche è stata definita in modo tale che si verifichi sempre una di quelle due:N xHNxM ( P ( N , x ) )H(N,x)=M(P(N,x))M(P(N,x))

  • la macchina si ferma e accetta più della metà delle stringhe casuali
  • la macchina si ferma e rifiuta per più della metà delle stringhe casuali.

Grazie per aver elaborato il mio commento "appena elencato"! ;) Due commenti tecnici: al primo punto, intendi ? Alla fine, intendi ? S ( Q )>2i1S(Q)
Raffaello,

1
Si noti che se non si richiede che P si fermi sempre, è banale costruire anche una macchina di Turing deterministica P che accetta se e solo se la data macchina di Turing deterministica si ferma.
Tsuyoshi Ito,

Qual è il tuo presupposto? Non è possibile negare una macchina Turing probabilistica a meno che non sia garantito che alla fine si arresti.
Tsuyoshi Ito,

La probabilità di arresto viene presa sulla stringa aggiuntiva E sulle parole di input, o cosa?
M. Alaggan,

1
@Mohammad ALAGGAN: No, quella parte è corretta come è scritta: la probabilità è presa solo sulla stringa aggiuntiva (specificando i risultati del lancio della moneta). Poiché non stiamo assumendo alcuna distribuzione di probabilità sulla stringa di input, la probabilità sulla stringa di input non è ben definita. Anche se viene definita una distribuzione di probabilità sulla stringa di input, l'elevata probabilità di una risposta corretta sulla stringa di input implica solo che l'algoritmo è corretto per la maggior parte degli input, che è diverso dal normale requisito di un algoritmo.
Tsuyoshi Ito,

14

Dipende da cosa intendi con algoritmo probabilistico per determinare un predicato.

Esiste un banale algoritmo probabilistico P tale che, per una macchina di Turing deterministica M ,

  • P ( M ) accetta con probabilità diversa da zero se M si ferma,
  • P ( M ) non accetta mai se M non si ferma, e
  • P ( M ) fermate con probabilità 1 per ogni M .

Pertanto, l'algoritmo probabilistico P risolve il problema di arresto per le macchine di Turing deterministiche in questo senso. (Qui " M si ferma" significa " M si ferma sull'input vuoto.")

Tuttavia, se si rafforza il requisito in modo sensato, è improbabile che sia possibile risolvere il problema dell'arresto per le macchine determinanti di Turing. Per esempio,

  • Se si richiede che P ( M ) si fermi sempre anziché semplicemente con la probabilità 1 , allora è chiaro che P può essere simulato da un algoritmo deterministico. (Vedi Wikipedia per una spiegazione della differenza tra "sempre" e "con probabilità 1")
  • Se rendi severi i limiti di errore richiedendo che P ( M ) si fermi e fornisca la risposta giusta con probabilità strettamente maggiore di 1/2 per ogni M (cioè, non ti importa se P ( M ) non si ferma o si ferma e dare la risposta sbagliata nel resto dei casi), quindi P può essere simulato da un algoritmo deterministico usando l'argomento indicato nella risposta di Karolina Sołtys .

Pertanto, un algoritmo probabilistico non può risolvere il problema di arresto per le macchine di Turing deterministiche in questi sensi.


Perdona la mia ignoranza, ma qual è la differenza tra l'arresto '' sempre '' e l'arresto '' con probabilità 1 ''?
Rob Simmons,

1
@Rob: penso che sia un punto difficile. Considera una semplice macchina probabilistica di Turing che lancia ripetutamente una moneta fino a quando il risultato non è la testa. Questa macchina Turing si ferma tranne quando tutti i lanci di monete provocano la coda. Pertanto, si arresta con probabilità 1, ma non si ferma sempre.
Tsuyoshi Ito,

Ho trovato una spiegazione della differenza tra "sempre" e "con probabilità 1" in Wikipedia e ho aggiunto lo stesso link nella risposta.
Tsuyoshi Ito,

Se permetti che P (M) fallisca non fermandosi, allora non so come puoi fare una simulazione deterministica. Ad esempio, supponiamo di eseguire la simulazione deterministica su un set di stringhe di prefisso lunghezza-N e, dopo un certo periodo di tempo, <50% dei prefissi si è arrestato e ha dato una risposta. Come fai a sapere se le stringhe di prefisso rimanenti richiedono semplicemente più tempo per restituire una risposta o se sono tutte bloccate in un ciclo infinito come parte della condizione di errore? Se il primo, continui ad aspettare. Se quest'ultimo, termina il round corrente ed esegui di nuovo su tutti i prefissi di lunghezza-N + 1.
Mike Battaglia,

Ma questo è impossibile da determinare, perché è il problema di arresto! Non abbiamo modo di sapere se la macchina di Turing si fermerà su quegli input o meno.
Mike Battaglia,

12

In generale, se si dispone di una macchina di Turing probabilistica risolvere qualche problema decisionale, si può sempre simulare in modo deterministico eseguendo per ogni possibile valore della casualità ed emettere la risposta maggior parte dei . Pertanto, nessuna macchina Turing probabilistica può risolvere un problema decisionale indecidibile.P PPPP

Penso che questo fosse il significato del commento di Raffaello.


7

Se la misura di Lebesgue di quegli oracoli che calcolano un set è positiva, allora è calcolabile. Questo risale a De Leeuw, Moore, Shannon e Shapiro nel 1956 e Sacks nel 1963. Per una discussione vedi il nuovo libro Algorithmic randomness and complessità del libro di Downey e Hirschfeldt . Come hanno già detto altre risposte, l'idea è di votare a maggioranza. (Sebbene ciò possa essere fatto in modo computabile, non si può affermare che l'algoritmo sia efficiente.) AANA

de Leeuw, K., Moore, EF, Shannon, CE e Shapiro, N. Computabilità con macchine probabilistiche, Studi di automi, pagg. 183–212. Annali di studi di matematica, n. 34. Princeton University Press, Princeton, NJ, 1956.

G. Sacks, Gradi di insolvibilità, Princeton University Press, 1963.

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.