I limiti di runtime in P sono decidibili? (risposta: no)


64

La domanda è se la seguente domanda è decidibile:

Problema   Dato un intero e la macchina di Turing promessa di essere in P, il tempo di esecuzione di rispetto alla lunghezza di input ?M M O ( n k ) nkMM O(nk)n

È accettabile una risposta ristretta di "sì", "no" o "aperto" (con riferimenti, bozze di prova o una revisione delle conoscenze attuali), ma sono benvenute anche risposte più ampie.

Risposta

Emanuele Viola ha pubblicato una prova che la domanda è indecidibile (vedi sotto).

sfondo

Per me, questa domanda è nata naturalmente analizzando la risposta di Luca Tevisan alla domanda I tempi di autonomia per P richiedono risorse EXP per il limite superiore? ... sono noti esempi concreti?

La domanda riguarda anche una domanda di MathOverflow: quali sono i problemi indecidibili di Turing più interessanti in matematica? , in una variazione in cui la parola "matematica" viene cambiata in "ingegneria", riconoscendo che la stima del tempo di esecuzione è un onnipresente problema di ingegneria associato (ad esempio) alla teoria del controllo e alla progettazione dei circuiti.

Pertanto, l'obiettivo generale nel porre questa domanda è ottenere un miglior apprezzamento / intuizione riguardo a quali aspetti pratici della stima del tempo di esecuzione nella classe di complessità P sono fattibili (cioè, richiedono risorse computazionali in P per stimare), rispetto non fattibile (cioè, richiedono risorse di calcolo in EXP da stimare), rispetto a formalmente indecidibili.

--- modifica (post-risposta) ---

Ho aggiunto il teorema di Viola al wiki della comunità di MathOverflow "Interessanti problemi indecidibili di Turing". È il primo contributo di quel wiki associato alla classe di complessità P; ciò attesta la novità, la naturalezza e l'ampia portata del teorema di Viola (e anche IMHO la sua bellezza).

--- modifica (post-risposta) ---

La monografia di Juris Hartmanis I calcoli fattibili e le proprietà dimostrabili della complessità (1978) coprono gran parte dello stesso materiale delle prove di Emanuele Viola.


In risposta alle domande poste sul weblog di Lance Fortnow e Bill GASARCH, sotto l'argomento "75 anni di informatica", a partire da "Ho spesso desiderato che Turing avesse chiesto in modo sobrio:" Quali sono i processi verificabili che possono essere eseguiti nel calcolo di un numero? ”... invece di Turing che pone la domanda fatalmente più difficile:“ Quali sono i possibili processi che possono essere eseguiti nel calcolo di un numero? ”, la domanda successiva sarà (approssimativamente)“ Esistono macchine di Turing che sono dimostrabili a NP, la cui appartenenza a P è indecidibile? "Questo per dimostrare che ci sto ancora pensando! :)
John Sidles,

2
Sebbene la prova di I Emanuele Viola sia più chiara, una domanda molto simile è stata posta e ha risposto su Mathoverflow: mathoverflow.net/questions/28056/…
Alex ten Brink,

Molte delle risposte e idee su questo thread si sono rivelate rilevanti per un saggio / set di domande che Dick Lipton ha pubblicato sul suo blog Godel's Lost Letter ; quel set di domande / saggi è "Come iniziare con P = NP". URL: rjlipton.wordpress.com/2011/07/04/getting-on-base-with-pnp
John Sidles

Sebbene i limiti in P siano indecidibili, non impedisce a uno di provare (limitandosi ulteriormente). Un esempio se fornito in questa risposta cstheory
Artem Kaznatcheev

1
Questa domanda ha ispirato il seguente articolo: arxiv.org/abs/1307.3648
David G

Risposte:


83

Il problema è indecidibile. In particolare, è possibile ridurre il problema di arresto come segue. Data un'istanza del problema di arresto, costruisci una nuova macchina che funzioni come segue: sugli input di lunghezza , simula su per passi. Se accetta, eseguire il ciclo per passi e arrestare; in caso contrario, eseguire il ciclo per passaggi e interrompere.M n M x n M n 2 n 3(M,x)MnMxnMn2n3

Se ferma su lo fa in passi , quindi il tempo di esecuzione di sarebbe . Se non si ferma mai, il tempo di esecuzione di è almeno .x t = O ( 1 ) M O ( n 2 ) M M n 3Mxt=O(1)MO(n2)MMn3

Quindi puoi decidere se accetta decidendo se il tempo di esecuzione di è o .x M O ( n 2 ) O ( n 3 )MxMO(n2)O(n3)


4
perché M deve fermarsi su x (se lo fa) nei passaggi O (1)?
Suresh Venkat,

10
x nM e sono fissi indipendenti da . xn
Manu,

2
Prova molto intelligente, è una variazione di un risultato ben noto o l'hai appena ideato?
Antonio E. Porreca,

3
@Raphael: Questa è un'area delicata, che non credo che abbiamo risolto. Alcuni siti di stackexchange incoraggiano la modifica delle risposte di altri. Non abbiamo una politica contraria, ma, in pratica, non l'ho quasi mai visto. Un punto tecnico: se una risposta viene modificata troppo, diventa wiki della community e @Emanuele non otterrebbe ulteriori punti rep se la sua risposta fosse votata successivamente. Penso che ulteriori spiegazioni aiuterebbero a chiarire: @John Sidles inizialmente pensava che la promessa non fosse utilizzata, ma la dimostrazione usa una promessa più forte : corre in o , non solo P.n 2 n 3Mn2n3
Aaron Sterling

2
@Giovanni: fintanto che non viene fornito alcun riferimento pubblicato, prendere in considerazione questa linea guida .
Raffaello,

29

Questa è una riformulazione della risposta di Emanuele Viola con l'obiettivo di essere più comprensibili.

Mostriamo che il dato problema è indecidibile riducendo ad esso il problema generale di arrestoHPH

Sia qualsiasi istanza del problema di arresto, ovvero dobbiamo decidere se ( ferma su ). Costruire una macchina Turing che funziona come segue:M ( x ) M x M (M,x)M(x)MxM

M*(y) = {
  n := |y|
  Simulate M(x) for n steps
  if ( M(x) has halted )
    Execute n*n arbitrary steps
  else
    Execute n*n*n arbitrary steps
}

Ora osserviamo le seguenti implicazioni:

M(x)n0N:M halts on x after at most n0 stepsy:nn0M(y) executes n2 arbitrary stepsTM(n)O(n2)

e

M(x)nN:M does not halt on x in less than n stepsy:M(y) executes n3 arbitrary stepsTM(n)Ω(n3)

Pertanto, . Supponendo che fosse algoritmicamente decidibile, così sarebbe , che produce una contraddizione. H(M,x)P(M,2)PH


12

Sul lato positivo, è decidibile se una macchina di Turing a un nastro gira nel tempo per , vedi:nCn+DC,DN

David Gajser: Verifica se le macchine di Turing non deterministiche a nastro singolo funzionano in tempoCn+D , arXiv: 1312.0496


1
Non mancano comportamenti insoliti da parte di TM a nastro singolo di piccole dimensioni. :)
Kaveh,

4

Il problema è stato risolto anche nel mio articolo " Il contenuto intenzionale del teorema di Rice " POPL'2008, dove dimostro che nessuna "cricca della complessità" è decidibile. Una cricca di complessità è una classe di programmi a programmi chiusi con comportamento e complessità simili . Fornisco anche le condizioni necessarie per le proprietà semi-decidibili.

I programmi in esecuzione in O (n ^ k) sono una cricca di complessità in questo senso, quindi l'insieme non è decidibile.

Il risultato è stato recentemente esteso anche alle impostazioni subrecursive (come P) da Mathieu Hoyrup: Le proprietà decidibili delle funzioni subrecursive (ICALP 2016).


2

Per aggiungere alle risposte precedenti, questo problema non è solo indecidibile ma completo. Pertanto, è indecidibile anche se il decisore ha un oracolo per il problema di arresto. Σ20

Per chiarire la completezza, mentre anche la condizione di promessa del P-time è , esiste un insieme decidibile di codici tale che tutte le macchine in sono tempo polinomiale e la domanda è completare il .Σ20SSO(n2)Σ20S

Per dimostrarlo, scegli completo , con tempo polinomiale calcolabile (per numeri binari).Σ20φφ(x)kmψ(x,k,m)ψ

Quindi vale se la seguente macchina è dove è la lunghezza di input (la macchina si preoccupa solo della lunghezza di input):φ(x)O(n2)n

per 0 a :     se : # testato usando un loop         halt     wait per step haltn m < nkn
n 2m<nψ(x,k,m)

n2

Si noti che per ogni non troppo piccolo , se un programma si ferma sempre (per esempio) in passaggi è -completo, ma la domanda sui limiti in modo robusto dà .n 2 + c Π 0 1 Σ 0 2cn2+cΠ10Σ20


-1

ecco di recente nuove analisi / angoli / risultati più sistematici su questa domanda e relative, che introducono il concetto di "verificabilità algoritmica" e un analogo simile a Rice per la teoria della complessità. segue una sezione pertinente dell'abstract e ci sono molti altri teoremi correlati relativi alla provabilità di P vs NP ecc

  • Perché il concetto di complessità computazionale è difficile per la matematica verificabile / Hromkovic

    Innanzitutto, dimostriamo il teorema di Rice per l'improvvisazione, sostenendo che ogni problema semantico non banale sui programmi non è quasi ovunque risolvibile in matematica "AV" algoritmicamente verificabile. Usando questo, mostriamo che ci sono infiniti algoritmi (programmi che sono provabilmente algoritmi) per i quali non esistono prove che funzionino in tempo polinomiale o che non funzionino in tempo polinomiale. ...

    Notare che, se P! = NP è dimostrabile in matematica AV, allora per ogni algoritmo A è dimostrabile che "A non risolve la SODDISFABILITÀ o A non funziona in tempo polinomiale". È interessante notare che alla fine mostriamo che esistono algoritmi per i quali non è né dimostrabile che non funzionino in tempi polinomiali, né che non risolvano la SODDISFAZIONE. Inoltre, esiste un algoritmo che risolve la SODDISFABILITÀ per la quale non è possibile dimostrare in matematica AV che non funziona in tempi polinomiali.

    Inoltre, mostriamo che P = NP implica l'esistenza di algoritmi X per i quali l'affermazione "X risolve la SODDISFABILITÀ in tempo polinomiale" non è dimostrabile in matematica AV.


-3

La soluzione di Viola può essere generalizzata a qualsiasi tempo di esecuzione (oltre il poli): è possibile ridurre il problema di arresto come segue. Data un'istanza (M, x) del problema di arresto, costruisci una nuova macchina M ′ che funzioni come segue: sugli input di lunghezza n, simula M su x per passi f (n) o fino a quando M si ferma, dove f (n ) è qualsiasi funzione crescente arbitraria (maggiore della costante) di n. (Oss .: M ′ legge gradualmente l'input, per evitare di perdere tempo lineare [O (n)] solo per leggere inutilmente tutto l'input, se è abbastanza grande e M si ferma.)

Se M si ferma su x lo fa in passi T = O (1), quindi il tempo di esecuzione di M ′ sarebbe O (1). Se M non si ferma mai, il tempo di esecuzione di M ′ è O (n ^ 2 * f (n)).

Quindi puoi decidere se M accetta x decidendo se il tempo di esecuzione di M ′ è O (1) o O (n ^ 2 * f (n)).

Quindi, il codice ausiliario di Raffaello può essere generalizzato di conseguenza da:

Sia (M, x) qualsiasi istanza del problema Halting, ovvero dobbiamo decidere se M si ferma su x. Costruisci una macchina di Turing deterministica (DTM) M * che funziona come segue:

  1. M * (input) = {
  2. n: = 0
  3. Leggi il primo simbolo dall'input
  4. Ciclo continuo:
  5. n: = n + 1
  6. Simula M (x) per passi f (n) o fino a quando M (x) si ferma
  7. Leggi il simbolo successivo dall'input
  8. Ripeti fino a quando end_of_input o fino a quando M (x) si è arrestato
  9. }

Ora osserviamo le seguenti implicazioni:

M si ferma su x dopo al massimo k (costanti) passi => T (M *) = O (1) e

M non si ferma mai su x => T (M *) = O (n ^ 2 * f (n))

Pertanto, anche decidere se il tempo di esecuzione di un DTM arbitrario sia semplicemente maggiore della costante è difficile come risolvere il problema. □


2
1) Utilizzare LaTeX. 2) Qual è il nuovo contributo a questa domanda? 3) Il tuo ragionamento è errato. La simulazione di richiede tempo già, a può certamente funzionare a tempo costante. O ( n ) M MO(n)M
Raffaello,

Per n abbastanza grande, se M (x) si interrompe, anche la sua simulazione si interrompe e ritorna a M * entro n0 passi (costanti).
André Luiz Barbosa,
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.