• Non ci sono risultati.

Complessit` a in spazio deterministico

Nel documento Capitolo 3 Elementi di Complessit`a (pagine 21-24)

Al fine di avere una nozione di misura di spazio sensata, modifichiamo la de-finizione di configurazione in modo da ricordare tutte le celle visitate, incluse quelle che erano o sono diventate bianche. A esser pignoli, questa modifi-ca richiederebbe l’introduzione di un nuovo simbolo ausiliario, per esempio

✁ ∈ Σ, da usarsi su ciascun nastro come delimitatore destro della parte/ scritta, e una semplice modifica alla funzione di transizione perch´e ne tenga conto e lo sposti, ma solo a destra, quando necessario. Per esempio, pren-diamo la macchina “parallela” per decidere se una stringa `e palindroma ed estendiamola con un nastro di ingresso e uno di uscita. Alcuni passi della computazione su aba verranno allora rappresentati cos´ı, dove qi, qj, qk e qh

sono stati opportuni:

(q0, ☎aba✁, ✄✁) → (qi, ✄aba✁, ✄aba✁)→

(qj, ☎aba✁, ✄aba✁)→ (qk, ✄aba✁, ✄aba✁)→ (qh, ✄aba✁, ✄ab#✁)

Ci sentiamo liberi di non apportare queste modifiche e di immaginare che, una volta toccata, una casella del nastro apparir`a sempre nella rappresen-tazione del nastro. Quindi in una configurazione (q, u1σ1v1, . . . , ukσkvk), ui

comincia per ✄ e vi pu`o finire con (molti) #, tutti quelli su cui l’i-mo cursore

`e venuto a posizionarsi durante il calcolo. In questo modo il numero delle caselle in uso nei nastri non diminuisce mai, n´e

• nel nastro di ingresso, il primo, perch´e `e di sola lettura;

• nel nastro di uscita, il k-esimo, perch´e `e di sola scrittura;

• nei nastri di lavoro 1 < i < k, perch`e i caratteri bianchi a destra non scompaiono mai.

Adesso siamo pronti per definire lo spazio necessario a una computazione come il numero totale delle caselle toccate solamente sui nastri di lavoro.

Come per il tempo, anche qui si parla di spazio deterministico perch´e usiamo macchine di Turing deterministiche.

Definizione 3.2.14. Sia M una MdT a k nastri di tipo I/O tale che ∀x (q0, ☎x, ☎, . . . , ☎)→ (H, w1, w2, . . . , wk) con H ∈ {SI,N O}.

Lo spazio richiesto da M per decidere x `e

"k−1 i=2

|wi|.

Inoltre, M decide I in spazio deterministico f (n) se ∀x lo spazio richiesto da M per decidere x `e minore o uguale a f (|x|).

Infine, se M decide I in spazio deterministico f (n), allora I ∈ SPACE(f(n)).

Ovviamente, la definizione appena vista pu`o essere immediatamente adat-tata nel caso generale, in cui si consideri anche lo stato di arresto h come elemento dell’insieme H.

Alcuni autori preferiscono definire lo spazio richiesto come

2≤i≤k−1max |wi|

ma la sola differenza con la nostra definizione `e un fattore k, il quale viene trascurato quando si considerano solamente ordini di grandezza.

La ragione principale per cui si trascura lo spazio necessario a contenere i dati di ingresso e quelli di uscita `e che si vogliono misure abbastanza fini per la complessit`a in spazio. Infatti, se uno considerasse sempre anche la dimensione dei dati di ingresso, cio`e la sommatoria di sopra partisse da 1 anzich´e da 2, si avrebbero sempre complessit`a almeno lineari. Ci`o perch´e la misura del primo nastro `e proprio |x| + 1, in quanto tale nastro `e di sola lettura e contiene la stringa w1 = ✄x. La dimensione del nastro d’uscita non `e rilevante nel caso di problemi di decisione I considerati: il risultato `e semplicemente un segnale che il caso x ∈ I `e risolto positivamente o meno.

Inoltre, a differenza di quanto accade per le classi di complessit`a in tempo, ci sono delle classi interessanti e importanti che sono sub-lineari e che rivestono un ruolo rilevante nella trattazione successiva, per esempio, LOGSPACE(n), la classe dei problemi decisi in spazio deterministico logaritmico che definiamo pi´u precisamente qui sotto (la quale potrebbe coincidere con P: si veda il frammento di gerarchia introdotto a pagina 132). In questo caso, sommare anche lo spazio per il dato di ingresso porterebbe a trascurare l’addendo log n che cresce meno di n e a schiacciare cos´ı LOGSPACE(n) su PSPACE(n).

Passiamo ora a vedere che anche lo spazio `e suscettibile di essere ridotto linearmente, come gi`a visto per il tempo. Si noti che un teorema analogo a quello di riduzione dei nastri sarebbe banale: avremmo ancora la stessa misura, dopo aver ricopiato fianco a fianco i k nastri di lavoro su un solo nastro.

Teorema 3.2.15 (Compressione lineare dello spazio).

Se I ∈ SPACE(f(n)), allora ∀ϵ ∈ R+. I ∈ SPACE(2 + ϵ × f(n)).

Come fatto precedentemente per P, i problemi decidibili in tempo polino-miale deterministico, introduciamo ora la classe dei problemi decidibili in spazio deterministico polinomiale; poi, come promesso, definiremo quella dei

problemi decidibili in spazio deterministico logaritmico, che giocheranno un ruolo importante nel capitolo 3.5.

Definizione 3.2.16. La classe dei problemi decidibili (da MdT) in spazio polinomiale deterministico `e

PSPACE = !

k≥1

SPACE(nk)

La classe dei problemi decidibili (da MdT) in spazio logaritmico determini-stico `e

LOGSPACE = !

k≥1

SPACE(k× log n).

Per fortuna anche queste classi sono invarianti rispetto al cambio di modelli, e quindi come gi`a fatto perP possiamo eliminare nella definizione precedente il riferimento alle macchine di Turing. In altre parole, le classi PSPACE e LOGSPACE sono chiuse rispetto a trasformazioni di modelli, il che garantisce la loro robustezza, oltre a quella della teoria che stiamo passando in rassegna.

Concludiamo questo capitolo stabilendo alcune relazioni tra le classi di complessit`a appena introdotte e facendo un’ulteriore osservazione su come tempo e spazio siano correlati. Iniziamo enunciando senza dimostrazione il teorema che stabilisce la relazione di stretta contenenza tra le due classi in spazio appena viste:

Teorema 3.2.17. LOGSPACE ! PSPACE.

Inoltre, confrontiamo LOGSPACE con P, stabilendo un altro piccolissimo frammento della gerarchia che intercorre tra classi di complessit`a in spazio e in tempo; ulteriori risultati si trovano nel capitolo 3.4.

Teorema 3.2.18. LOGSPACE ⊆ P

Dimostrazione. Poich´e il problema I appartiene a LOGSPACE, c’`e una mac-china di Turing M che decide ogni sua istanza x ∈ I in O(log |x|) spazio de-terministico, basta notare che M pu`o attraversare al massimoO(|x|×log |x|×

#Q× #Σlog |x|) configurazioni non terminali diverse. Una computazione non pu`o ripassare su una stessa configurazione, altrimenti va in ciclo, quindi una computazione ha al massimo O(|x|k) passi per qualche k.

Infine, dalla dimostrazione di sopra, si pu`o vedere che, seppure in modo meno preciso, vale anche il “duale” di quanto affermato a pagina 139, e cio`e che, nel caso di algoritmi per problemi decidibili

Osservazione 2: lo spazio limita il tempo di calcolo!

Nel documento Capitolo 3 Elementi di Complessit`a (pagine 21-24)

Documenti correlati