PSPACE

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search

Nella teoria della complessità algoritmica, la classe di problemi PSPACE (da polynomial space) è l'insieme di tutti i problemi che possono essere risolti da una macchina di Turing deterministica usando una quantità di memoria di , dove è la dimensione dei dati di ingresso e è un qualsiasi valore finito.

In altre parole, PSPACE include quei problemi che possono essere risolti da un algoritmo che utilizzi uno spazio di memoria la cui dimensione sia al più funzione polinomiale della dimensione dell'input.

Proprietà della classe[modifica | modifica wikitesto]

Per il teorema di Savitch, questa classe risulta equivalente a NPSPACE. Inoltre si osserva facilmente che la ben più conosciuta classe di complessità P è inclusa in PSPACE. Infatti è evidente che se un algoritmo ha tempo di esecuzione , potrà utilizzare al più celle di memoria; se quindi sappiamo che per un qualche , necessariamente lo spazio utilizzato è limitato allo stesso modo.

Questo stesso ragionamento, unito all'osservazione fatta prima che PSPACE = NPSPACE, ci permette di dimostrare anche l'inclusione NP PSPACE. L'inclusione opposta invece non è dimostrata, e anzi è opinione comune che sia falsa, ovvero che PSPACENP. Questo implicherebbe quindi PSPACEP.

Ad accreditare in particolare questa ultima congettura si aggiunge l'esistenza di problemi NP completi appartenenti alla classe PSPACE. Ad esempio, è possibile risolvere in tempo esponenziale ma con utilizzo di memoria polinomiale il problema del commesso viaggiatore: date città, è sufficiente contare in base i percorsi possibili, che saranno quelli associati ai numeri di cifre tutte distinte (questo conteggio richiede una quantità di memoria lineare nel numero di città) e per ogni percorso calcolare la somma delle distanze tra le varie città (anche questa operazione ha costo lineare in spazio). Questo significa che se fosse vero che PSPACE P, sarebbe anche vero NP-C P, e quindi NP P (ossia tutti i problemi decidibili in tempo polinomiale rispetto alla dimensione dell'input da una macchina di Turing non deterministica sarebbero decidibili in tempo polinomiale anche da una macchina di Turing deterministica). Dato che le macchine di Turing deterministiche sono un caso particolare di macchine non deterministiche ne risulta che P NP, e quindi P = NP. La domanda "P=NP o P NP?" è uno dei problemi del millennio, ad oggi non risolto, anche se molti esperti credono che P NP.