I risultati che collegano le classi

Teoremi del corso

Leggi l'enunciato, poi apri la scheda: trovi l'idea, la frase da scrivere nella risposta e la dimostrazione.

I 17 teoremi segnati con ★ servono in almeno 8 domande delle tracce ciascuno e da soli coprono circa due terzi delle citazioni: parti da quelli. Ordina per «Più chiesti» per vederli per primi.

93 risultati

Capitolo 1 · Macchina di Turing

proposizione

Proposizione 2.1 (ricorsivo ⇒ ricorsivamente enumerabile)

per l'oraledimostrato nel corso

Se un linguaggio LL è ricorsivo (esiste una MdT che lo decide), allora è anche ricorsivamente enumerabile (esiste una MdT che lo accetta): R⊆RE\htmlData{term=R}{\mathrm{R}} \subseteq \htmlData{term=RE}{\mathrm{RE}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si prende la macchina che decide LL e, invece di fermarsi in "no", la si fa andare a destra all'infinito.

All'esame

Giustifica R⊆RE\htmlData{term=R}{\mathrm{R}} \subseteq \htmlData{term=RE}{\mathrm{RE}} quando si colloca un problema nella scala R, RE, coRE.

Da scrivere all'esame

SÌ: ogni linguaggio ricorsivo è ricorsivamente enumerabile (R⊆RE\htmlData{term=R}{\mathrm{R}} \subseteq \htmlData{term=RE}{\mathrm{RE}}), perché dalla MdT che lo decide se ne ottiene una che lo accetta trasformando il "no" in un ciclo infinito.

Dimostrazione

Idea: dalla macchina che decide LL costruiamo una macchina che si limita ad accettarlo. Basta trasformare ogni risposta "no" in un ciclo infinito.

  1. Per ipotesi LL è ricorsivo: esiste una MdT MM che su ogni input xx si ferma, nello stato "yes" se x∈Lx \in L (xx appartiene a LL) e nello stato "no" se x∉Lx \notin L (xx non appartiene a LL).
  2. Costruiamo M′M' (si legge "emme primo") che si comporta esattamente come MM, con una sola modifica: ogni volta che MM sta per entrare nello stato "no", M′M' entra invece in uno stato nuovo in cui sposta il cursore a destra per sempre, senza mai fermarsi. Cambiano solo le transizioni che portano in "no", quindi M′M' è ancora una MdT.
  3. Se x∈Lx \in L, MM arriva in "yes". M′M' fa le stesse mosse di MM (la modifica non entra mai in gioco), quindi arriva anch'essa in "yes": M′(x)=yesM'(x) = \text{yes}.
  4. Se x∉Lx \notin L, MM arriverebbe in "no". Proprio in quel punto M′M' comincia a muoversi a destra all'infinito, quindi M′(x)=↗M'(x) = \nearrow (la computazione non termina).
  5. I punti 3 e 4 dicono esattamente che M′M' accetta LL: "yes" sugli elementi di LL, nessuna risposta sugli altri. Quindi LL è ricorsivamente enumerabile.

Siccome LL era un linguaggio ricorsivo qualsiasi, vale R⊆RE\htmlData{term=R}{\mathrm{R}} \subseteq \htmlData{term=RE}{\mathrm{RE}}.

Classi

RRE

Dove: dispensa cap. 1, p. 7; slide Lez. 2. Le slide della Lez. 5 richiamano anche che i ricorsivi e i ricorsivamente enumerabili sono separati per diagonalizzazione (dal corso di Elementi di Informatica Teorica): l'inclusione stretta non è dimostrata in questo corso.

Capitolo 2 · MdT multinastro

teorema

Teorema dello speedup multinastro (da kk nastri a 1)

chiesto in 5 domandedimostrato nel corso

Per ogni MdT MM a kk nastri che lavora in tempo f(n)f(n) esiste una MdT M′M' a un solo nastro che lavora in tempo O(f(n)2)O(f(n)^2) e dà lo stesso risultato: M(x)=M′(x)M(x) = M'(x) per ogni input xx.

Idea, frase per l'esame e dimostrazione +

Intuizione

I kk nastri si concatenano su un solo nastro con dei marcatori per le testine; ogni passo di MM costa due scansioni di un nastro lungo O(f(n))O(f(n)).

All'esame

Il numero di nastri cambia il tempo al più di un fattore quadratico, quindi P e le classi polinomiali non dipendono dal numero di nastri.

Da scrivere all'esame

Per lo speedup multinastro una MdT a kk nastri in tempo f(n)f(n) si simula con un nastro solo in tempo O(f(n)2)O(f(n)^2): i nastri cambiano il tempo solo polinomialmente.

Dimostrazione

Idea: scriviamo i kk nastri di MM uno dopo l'altro sull'unico nastro di M′M', segnando dove si trovano i cursori. Ogni passo di MM si simula con due scansioni di questo nastro, che è lungo O(f(n))O(f(n)): quindi O(f(n))O(f(n)) passi per ogni passo di MM e O(f(n)2)O(f(n)^2) in tutto.

  1. Codifica. Sia M=(K,Σ,δ,s)M = (K, \Sigma, \delta, s): KK sono gli stati, Σ\Sigma l'alfabeto, δ\delta il programma, ss lo stato iniziale. L'alfabeto di M′M' contiene Σ\Sigma, una versione "marcata" σ‾\underline{\sigma} di ogni simbolo σ\sigma (indica la cella su cui sta un cursore), un simbolo ▹′\triangleright' (versione dell'inizio-nastro ▹\triangleright che si può scavalcare) e un separatore ◃\triangleleft che chiude ciascun nastro. Una configurazione di MM con nastri w1u1,…,wkukw_1 u_1, \ldots, w_k u_k diventa la stringa ▹′w1u1◃▹′w2u2◃…▹′wkuk◃◃\triangleright' w_1 u_1 \triangleleft \triangleright' w_2 u_2 \triangleleft \ldots \triangleright' w_k u_k \triangleleft \triangleleft, dove in ogni wiw_i l'ultimo simbolo (quello sotto il cursore) è marcato. Il doppio ◃\triangleleft finale segna la fine del nastro di M′M'.
  2. Inizio. M′M' sposta l'input xx di una cella a destra, scrive ▹′\triangleright' davanti e aggiunge in fondo i k−1k-1 nastri vuoti. Servono pochi stati in più, in numero che dipende solo da kk e Σ\Sigma, non dall'input.
  3. Prima scansione (lettura). M′M' scorre il nastro da sinistra a destra e raccoglie i kk simboli marcati, cioè i simboli letti dai kk cursori di MM. Li "ricorda" nello stato: M′M' ha uno stato per ogni stato qq di MM e ogni sequenza di al più kk simboli. Sono in numero finito perché KK, Σ\Sigma e kk sono fissati.
  4. Seconda scansione (scrittura). Ora M′M' conosce qq e i kk simboli letti, quindi sa da δ\delta che cosa farebbe MM. Scorre di nuovo il nastro e, a ogni simbolo marcato, scrive il nuovo simbolo e sposta la marcatura nella cella vicina, nella direzione indicata da δ\delta.
  5. Caso speciale. Se un cursore di MM deve andare a destra oltre la fine del suo nastro (cioè su un ◃\triangleleft), serve una cella nuova: M′M' sposta di una posizione a destra tutto ciò che segue e scrive un blank ⊔\sqcup al posto del vecchio ◃\triangleleft.
  6. Fine. Quando MM si ferma, M′M' cancella i nastri simulati tranne l'ultimo, che contiene l'output, e lo riporta nel formato normale. Quindi M′(x)=M(x)M'(x) = M(x).
  7. Tempo. MM fa al più f(∣x∣)f(|x|) passi, cioè sta nel budget di tempo f(n)f(n), e a ogni passo un nastro cresce al più di una cella: ogni nastro è lungo al più f(∣x∣)+1f(|x|)+1, e il nastro di M′M' al più k(f(∣x∣)+1)+1k(f(|x|)+1)+1. Simulare un passo costa una scansione avanti e indietro per leggere, più una scansione per ciascuno dei kk nastri da modificare (spostamenti compresi): O(k2⋅f(∣x∣))O(k^2 \cdot f(|x|)) passi. Per f(∣x∣)f(|x|) passi di MM il totale è O(k2⋅f(∣x∣)2)=O(f(n)2)O(k^2 \cdot f(|x|)^2) = O(f(n)^2), perché kk è una costante che dipende da MM e non dall'input.

Dove serve nelle tracce

G16 n. 5 · G20v4 n. 5 · MA23 n. 4 · LU24 n. 3 · SP n. 2

Classi

P

Dove: dispensa cap. 2, p. 13; slide Lez. 2

teorema

Teorema 2.5 (le RAM si simulano con le MdT)

Se una RAM calcola una funzione φ\varphi in tempo f(n)f(n), esiste una MdT a 7 nastri che calcola φ\varphi in tempo O(f(n)3)O(f(n)^3).

Idea, frase per l'esame e dimostrazione +

Intuizione

Un modello molto vicino ai calcolatori reali risolve gli stessi problemi delle MdT, con una perdita di efficienza solo polinomiale.

All'esame

Giustifica l'uso delle MdT come modello: un problema in tempo polinomiale su RAM resta in P.

Da scrivere all'esame

Per il Teorema 2.5 una RAM in tempo f(n)f(n) si simula con una MdT in tempo O(f(n)3)O(f(n)^3): ciò che è polinomiale su RAM resta in P.

Schema della dimostrazione

Idea: i registri della RAM si scrivono su un nastro come coppie (indirizzo, contenuto) in binario, e ogni istruzione della RAM si simula scorrendo questo nastro. Il punto chiave è che i numeri nei registri non possono crescere troppo in fretta, quindi il nastro resta corto.

  1. La RAM. Ha un programma finito di istruzioni (lettura dell'input, LOAD, STORE, ADD, SUB, HALF, salti condizionati, HALT) che lavorano su registri r0,r1,…r_0, r_1, \ldots contenenti interi grandi a piacere. Non c'è la moltiplicazione: le operazioni aritmetiche sono somma, sottrazione e dimezzamento.
  2. Lemma sulla lunghezza dei numeri. Dopo tt passi ogni registro contiene un intero lungo in binario al più t+ℓ+bt + \ell + b, dove ℓ\ell è la lunghezza dell'input e bb la lunghezza della costante più grande del programma. Perché: una somma o una sottrazione allunga un numero al più di un bit, il dimezzamento lo accorcia, e un caricamento copia un numero che c'era già. Quindi a ogni passo la lunghezza massima cresce al più di 1.
  3. La MdT. Il primo nastro contiene l'input. Il secondo contiene i registri usati, come sequenza di coppie "indirizzo : contenuto" in binario. L'istruzione corrente si ricorda negli stati, perché il programma è finito. Gli altri nastri tengono l'indirizzo del registro cercato e servono da appoggio per fare somme, sottrazioni e dimezzamenti in binario, come su carta. In tutto bastano 7 nastri.
  4. Costo di un'istruzione. In f(n)f(n) passi la RAM scrive al più f(n)f(n) registri diversi (uno per passo), e per il punto 2 ogni indirizzo e ogni contenuto è lungo O(f(n))O(f(n)) (l'input e le costanti si contano nel budget). Quindi il nastro dei registri è lungo O(f(n)2)O(f(n)^2). Cercare un registro, leggerlo, fare l'operazione e riscrivere il risultato richiede un numero costante di scansioni di questo nastro: O(f(n)2)O(f(n)^2) passi.
  5. Totale. f(n)f(n) istruzioni, ciascuna simulata in O(f(n)2)O(f(n)^2) passi: tempo O(f(n)3)O(f(n)^3). La MdT calcola la stessa funzione φ\varphi (fi) perché esegue le stesse istruzioni sugli stessi valori.

Il corso enuncia il teorema senza prova (Teorema 2.5 del Papadimitriou); qui ne è dato lo schema.

Classi

P

Dove: slide Lez. 2. Solo nelle slide della Lez. 2 (Teorema 2.5 del Papadimitriou); la dispensa non lo riporta.

teorema

Teorema dello speedup lineare

per l'oraledimostrato nel corso

Se L∈TIME(f(n))L \in \mathrm{TIME}(f(n)), allora per ogni ε>0\varepsilon \gt 0 vale L∈TIME(ε⋅f(n)+n+2)L \in \mathrm{TIME}(\varepsilon \cdot f(n) + n + 2).

Idea, frase per l'esame e dimostrazione +

Intuizione

Raggruppando più simboli in uno solo la macchina fa più lavoro a ogni passo: le costanti moltiplicative si possono sempre eliminare.

All'esame

Spiega perché conta solo la notazione O(⋅)O(\cdot): per esempio, se L∈TIME(150n2)L \in \mathrm{TIME}(150n^2) allora L∈TIME(n2+n+2)L \in \mathrm{TIME}(n^2 + n + 2).

Da scrivere all'esame

Per lo speedup lineare, se L∈TIME(f(n))L \in \mathrm{TIME}(f(n)) allora L∈TIME(ε⋅f(n)+n+2)L \in \mathrm{TIME}(\varepsilon \cdot f(n) + n + 2) per ogni ε>0\varepsilon \gt 0: le costanti moltiplicative del budget non contano, conta solo l'O(⋅)O(\cdot).

Dimostrazione

Idea: M′M' usa un solo simbolo per rappresentare un blocco di mm simboli di MM (come allungare la "parola" di un processore). Così M′M' simula mm passi di MM con al più 6 passi propri; scegliendo mm abbastanza grande rispetto a 1/ε1/\varepsilon (epsilon) il tempo scende sotto ε⋅f(n)\varepsilon \cdot f(n), più il tempo lineare per comprimere l'input.

  1. Macchina di partenza. Sia M=(K,Σ,δ,s)M = (K, \Sigma, \delta, s) una MdT a kk nastri che decide LL entro il budget di tempo f(n)f(n), e sia ε>0\varepsilon \gt 0. M′M' ha kk nastri (2 se k=1k = 1) e alfabeto Σ′=Σ∪Σm\Sigma' = \Sigma \cup \Sigma^m: oltre ai simboli di MM, tutte le mm-uple di simboli. L'intero mm dipende solo da ε\varepsilon e lo fissiamo alla fine. Alfabeto e programma di M′M' diventano enormi, ma restano finiti.
  2. Compressione dell'input. M′M' scorre l'input xx ricordando nello stato i simboli già letti del blocco corrente; ogni mm simboli scrive sul secondo nastro il singolo simbolo (σ1…σm)(\sigma_1 \ldots \sigma_m), completando l'ultimo blocco con dei ⊔\sqcup. Questo costa ∣x∣+2|x| + 2 passi. Da qui in poi il secondo nastro fa la parte del nastro di input di MM, e tutti i nastri contengono solo blocchi.
  3. Rappresentazione. Se MM è nello stato qq e il suo cursore ii-esimo è nella cella numero ℓi\ell_i, allora M′M' è nello stato (q,ℓ1modm,…,ℓkmodm)(q, \ell_1 \mathbin{\mathrm{mod}} m, \ldots, \ell_k \mathbin{\mathrm{mod}} m), cioè ricorda dove si trova ogni cursore dentro il suo blocco, e il cursore ii-esimo di M′M' sta sul blocco che contiene la cella ℓi\ell_i. Questi stati sono ∣K∣⋅mk|K| \cdot m^k, un numero finito.
  4. Una fase: lettura. Su ogni nastro M′M' fa un passo a sinistra, due a destra e uno a sinistra (4 passi), memorizzando nello stato anche i blocchi a sinistra e a destra del cursore. Ora conosce i 3m3m simboli di MM intorno a ciascun cursore.
  5. Una fase: scrittura. In mm passi un cursore di MM si sposta al più di mm celle, quindi non esce da questi 3m3m simboli. Allora l'effetto dei prossimi mm passi di MM è già determinato da ciò che M′M' ha nello stato, e il programma δ′\delta' di M′M' è costruito per applicarlo direttamente: cambiano solo il blocco centrale e uno dei due vicini, e bastano 2 passi. Se MM si ferma durante questi mm passi, M′M' si ferma con la stessa risposta. Quindi M′M' decide LL.
  6. Conto. M′M' usa ∣x∣+2|x| + 2 passi per la compressione e poi al più 6 passi per ogni gruppo di mm passi di MM: in tutto circa ∣x∣+2+6⋅f(∣x∣)/m|x| + 2 + 6 \cdot f(|x|)/m. Scegliendo m=⌈6/ε⌉m = \lceil 6/\varepsilon \rceil (il più piccolo intero ≥6/ε\ge 6/\varepsilon) si ha 6/m≤ε6/m \le \varepsilon, quindi M′M' lavora in tempo ε⋅f(n)+n+2\varepsilon \cdot f(n) + n + 2.

Dove: dispensa cap. 2, p. 14; slide Lez. 2. La dispensa enuncia il teorema senza prova; le slide della Lez. 2 lo dimostrano.

proposizione

Proposizione (MdT con input e output)

per l'oraledimostrato nel corso

Per ogni MdT MM a kk nastri che lavora in tempo f(n)f(n) esiste una MdT con input e output a k+2k + 2 nastri che dà lo stesso output e lavora in tempo O(f(n))O(f(n)).

Idea, frase per l'esame e dimostrazione +

Intuizione

Si copia l'input sul secondo nastro, si simula MM sui nastri centrali e alla fine si copia l'output sull'ultimo nastro.

All'esame

Il nastro di input in sola lettura non toglie potenza: per questo lo spazio si misura senza contare input e output, e si possono definire L e NL.

Da scrivere all'esame

Ogni MdT a kk nastri in tempo f(n)f(n) si simula con una MdT con input e output a k+2k+2 nastri in tempo O(f(n))O(f(n)): l'input in sola lettura non toglie potenza.

Dimostrazione

Idea: M′M' copia l'input su un nastro di lavoro e da lì in poi lascia il primo nastro solo in lettura; simula MM sui nastri centrali e alla fine copia il risultato sull'ultimo nastro scrivendo solo verso destra. Ogni fase costa O(f(n))O(f(n)).

  1. Vincoli da rispettare. Una MdT con input e output deve avere: (a) il primo nastro mai modificato (sola lettura); (b) sull'ultimo nastro il cursore mai verso sinistra (sola scrittura); (c) il cursore dell'input mai oltre il primo ⊔\sqcup dopo l'input.
  2. Fase 1: copia dell'input. M′M' scorre il primo nastro e copia xx sul secondo nastro: O(n)O(n) passi, con n=∣x∣n = |x|. Il primo nastro viene solo letto e il cursore si ferma al primo ⊔\sqcup, quindi (a) e (c) valgono; dopo questa fase il primo nastro non si usa più.
  3. Fase 2: simulazione. M′M' riporta il cursore del secondo nastro all'inizio e simula MM usando i nastri 2,…,k+12, \ldots, k+1 al posto dei nastri 1,…,k1, \ldots, k di MM: ogni passo di MM diventa un passo di M′M'. Il primo e l'ultimo nastro non vengono toccati. Costo: al più f(n)f(n) passi, perché MM rispetta il budget di tempo f(n)f(n).
  4. Fase 3: copia dell'output. Quando MM si ferma, il suo output sta sul suo ultimo nastro, cioè sul nastro k+1k+1 di M′M'. M′M' lo copia sul nastro k+2k+2 muovendo quel cursore solo verso destra, quindi (b) vale. In f(n)f(n) passi MM non può scrivere più di f(n)f(n) celle, quindi questa copia costa O(f(n))O(f(n)) passi.
  5. Correttezza e tempo. M′M' finisce nello stesso stato di MM ("yes", "no" o hh) e con lo stesso output. Il tempo totale è O(n)+f(n)+O(f(n))=O(f(n))O(n) + f(n) + O(f(n)) = O(f(n)), perché un budget di tempo è sempre almeno nn (la macchina deve poter leggere l'input).

Classi

LNL

Dove: dispensa cap. 2, p. 16; slide Lez. 2

teorema

Teorema di compressione dello spazio

chiesto in 4 domande

Se L∈SPACE(f(n))L \in \mathrm{SPACE}(f(n)), allora per ogni ε>0\varepsilon \gt 0 vale L∈SPACE(2+ε⋅f(n))L \in \mathrm{SPACE}(2 + \varepsilon \cdot f(n)).

Idea, frase per l'esame e dimostrazione +

Intuizione

Come per lo speedup lineare, più celle si codificano in un solo simbolo: le costanti non contano nemmeno per lo spazio.

All'esame

Le costanti moltiplicative non contano nemmeno nelle classi di spazio.

Da scrivere all'esame

Per il teorema di compressione dello spazio, L∈SPACE(f(n))L \in \mathrm{SPACE}(f(n)) implica L∈SPACE(2+ε⋅f(n))L \in \mathrm{SPACE}(2 + \varepsilon \cdot f(n)) per ogni ε>0\varepsilon \gt 0: anche nel budget di spazio le costanti moltiplicative non contano.

Schema della dimostrazione

Idea: come nello speedup lineare, si codificano mm celle dei nastri di lavoro in un solo simbolo, così lo spazio occupato si divide per mm. Qui non serve comprimere l'input, perché il nastro di input non si conta nello spazio.

  1. Partenza. Sia MM una MdT con input e output che decide LL entro il budget di spazio f(n)f(n), e sia ε>0\varepsilon \gt 0. Scegliamo un intero m≥1/εm \ge 1/\varepsilon. Per semplicità consideriamo un solo nastro di lavoro; con più nastri si ripete lo stesso trucco su ciascuno.
  2. Nuovo alfabeto. M′M' ha gli stessi nastri di MM. Sul nastro di input lavora esattamente come MM. Sul nastro di lavoro usa l'alfabeto Σm\Sigma^m: ogni cella di M′M' contiene un blocco di mm celle consecutive di MM.
  3. Stati. Lo stato di M′M' ricorda lo stato di MM e in quale delle mm posizioni del blocco corrente si trova il cursore di MM. Sono in numero finito, perché KK, Σ\Sigma e mm sono fissati.
  4. Simulazione di un passo. Dallo stato M′M' sa quale simbolo del blocco sta leggendo MM; riscrive il blocco con quel simbolo cambiato e aggiorna la posizione interna. Sposta il proprio cursore sul blocco vicino solo quando il cursore di MM esce dal blocco. Quindi M′M' fa le stesse mosse di MM e dà la stessa risposta (qui il tempo non ci interessa).
  5. Spazio. Il nastro di lavoro di MM è lungo al più f(n)f(n) celle. Togliendo la cella iniziale con ▹\triangleright, che M′M' tiene a parte, il resto occupa al più ⌈f(n)/m⌉≤f(n)/m+1\lceil f(n)/m \rceil \le f(n)/m + 1 celle di M′M'. In tutto al più 2+f(n)/m≤2+ε⋅f(n)2 + f(n)/m \le 2 + \varepsilon \cdot f(n), perché 1/m≤ε1/m \le \varepsilon. Il "+2+2" conta la cella di ▹\triangleright e l'arrotondamento dell'ultimo blocco.

Il corso dice solo "prova simile al linear speedup" (Problema 2.8.14 del Papadimitriou); questo è lo schema standard.

Dove serve nelle tracce

F04 n. 4 · F05 n. 3 · G16 n. 7 · G17 n. 7

Dove: dispensa cap. 2, p. 16; slide Lez. 2. Le slide dicono solo: prova simile al linear speedup (Problema 2.8.14 del Papadimitriou).

Capitolo 3 · MdT nondeterministiche

proposizione

Proposizione P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}

per l'oraledimostrato nel corso

Ogni problema che una MdT deterministica risolve in tempo polinomiale sta in NP: P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Una MdT deterministica è un caso particolare di MdT nondeterministica, in cui la relazione Δ\Delta è una funzione.

All'esame

È il primo anello di ogni catena di inclusioni; il viceversa NP⊆P\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=P}{\mathrm{P}} è la questione aperta P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.

Da scrivere all'esame

SÌ: P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}, perché una MdT deterministica polinomiale è una MdT nondeterministica (con Δ\Delta che è una funzione) che decide lo stesso linguaggio nello stesso tempo.

Dimostrazione

Idea: una MdT deterministica è un caso particolare di MdT nondeterministica, quella in cui in ogni situazione c'è esattamente una mossa possibile.

  1. Sia L∈PL \in \htmlData{term=P}{\mathrm{P}}: esiste una MdT deterministica M=(K,Σ,δ,s)M = (K, \Sigma, \delta, s) che decide LL entro il budget di tempo nkn^k, per un kk fissato.
  2. Definiamo N=(K,Σ,Δ,s)N = (K, \Sigma, \Delta, s), dove la relazione Δ\Delta (delta maiuscola) contiene, per ogni coppia (stato qq, simbolo σ\sigma), solo la mossa δ(q,σ)\delta(q, \sigma) prescritta da MM. Δ\Delta è una relazione che per caso è una funzione, quindi NN è a tutti gli effetti una MdT nondeterministica.
  3. Su ogni input xx, NN ha una sola computazione possibile, perché a ogni passo ha una sola scelta: è identica alla computazione di MM.
  4. NN accetta xx se e solo se esiste una computazione che termina in "yes". L'unica computazione è quella di MM, quindi NN accetta x  ⟺  M(x)=yes  ⟺  x∈Lx \iff M(x) = \text{yes} \iff x \in L. Dunque NN decide LL.
  5. L'unica computazione di NN ha la stessa lunghezza di quella di MM, cioè al più ∣x∣k|x|^k passi. Quindi L∈NTIME(nk)⊆NPL \in \mathrm{NTIME}(n^k) \subseteq \htmlData{term=NP}{\mathrm{NP}}.

Poiché LL era un qualsiasi problema di P, vale P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}.

Classi

PNP

Dove: dispensa cap. 3, p. 18; slide Lez. 3

teorema

Teorema (da nondeterministico a deterministico)

chiesto in 7 domandedimostrato nel corso

Se LL è deciso da una MdT nondeterministica NN in tempo f(n)f(n), allora è deciso da una MdT deterministica a 3 nastri in tempo O(cf(n))O(c^{f(n)}), con c>1c \gt 1 costante che dipende da NN. In breve: NTIME(f(n))⊆⋃c>1TIME(cf(n))\mathrm{NTIME}(f(n)) \subseteq \bigcup_{c \gt 1} \mathrm{TIME}(c^{f(n)}).

Idea, frase per l'esame e dimostrazione +

Intuizione

La macchina deterministica prova una dopo l'altra tutte le sequenze di scelte, che sono al più df(n)d^{f(n)} (dd è il grado di nondeterminismo).

All'esame

Dà NP⊆EXP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}: togliere il nondeterminismo dal tempo, per quanto si sa oggi, costa un esponenziale.

Da scrivere all'esame

Per il teorema da nondeterministico a deterministico NTIME(f(n))⊆⋃c>1TIME(cf(n))\mathrm{NTIME}(f(n)) \subseteq \bigcup_{c \gt 1} \mathrm{TIME}(c^{f(n)}): simulare il nondeterminismo costa un esponenziale, quindi per esempio NP⊆EXP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}.

Dimostrazione

Idea: ogni computazione di NN è individuata dalla sequenza delle scelte fatte a ogni passo. La macchina deterministica MM prova tutte le sequenze di scelte, dalle più corte alle più lunghe; sono al più circa df(n)d^{f(n)}, e ognuna si controlla in tempo O(f(n))O(f(n)).

  1. Grado di nondeterminismo. Sia N=(K,Σ,Δ,s)N = (K, \Sigma, \Delta, s). Per ogni stato qq e simbolo σ\sigma, l'insieme Cq,σC_{q,\sigma} delle mosse possibili è finito, perché Δ\Delta è finita. Sia dd il massimo numero di mosse possibili, d=max⁡∣Cq,σ∣d = \max |C_{q,\sigma}|. Se d=1d = 1, NN è già deterministica e non c'è nulla da fare; quindi d>1d \gt 1. Numeriamo le mosse di ogni Cq,σC_{q,\sigma} da 1 a dd.
  2. Computazioni come sequenze. Una computazione di tt passi è determinata da una sequenza (c1,…,ct)(c_1, \ldots, c_t) di interi tra 1 e dd: cic_i dice quale mossa scegliere al passo ii.
  3. La macchina MM. Ha 3 nastri: il primo con l'input, il secondo con la sequenza corrente, il terzo per simulare NN. Genera le sequenze in ordine di lunghezza (1,2,…,d,11,12,…)(1, 2, \ldots, d, 11, 12, \ldots); passare alla successiva è come aggiungere 1 a un numero in base dd.
  4. Prova di una sequenza. MM simula NN per tt passi seguendo le scelte c1,…,ctc_1, \ldots, c_t (se una scelta non esiste in quella situazione, scarta la sequenza). Se la simulazione arriva in "yes", anche MM si ferma in "yes".
  5. Quando rifiutare. MM non conosce il budget f(n)f(n), quindi non può fermarsi "a f(n)f(n)". Usa questa regola: se per una certa lunghezza tt tutte le sequenze portano a computazioni già ferme (in "no" o in hh), nessuna computazione di NN va oltre, e nessuna ha accettato; allora MM si ferma in "no". Questo succede al più tardi per t=f(n)t = f(n), perché tutte le computazioni di NN si fermano entro f(n)f(n) passi.
  6. Correttezza. MM risponde "yes" se e solo se qualche sequenza di scelte porta NN in "yes", cioè se e solo se NN accetta xx, cioè se e solo se x∈Lx \in L.
  7. Tempo. Le sequenze lunghe al più f(n)f(n) sono d+d2+…+df(n)=O(df(n))d + d^2 + \ldots + d^{f(n)} = O(d^{f(n)}) (somma geometrica). Generarne una e simulare al più f(n)f(n) passi costa O(n+f(n))=O(f(n))O(n + f(n)) = O(f(n)). Il totale O(f(n)⋅df(n))O(f(n) \cdot d^{f(n)}) è O(cf(n))O(c^{f(n)}) con una costante c>dc \gt d, per esempio c=2dc = 2d, perché f(n)≤2f(n)f(n) \le 2^{f(n)}. La costante cc dipende solo da NN.

Dove serve nelle tracce

F05 n. 4 · G20v1 n. 5 · G20v2 n. 5 · G20v4 n. 5 · G20v5 n. 5 · LU24 n. 3 · SP n. 3

Classi

NPEXP

Dove: dispensa cap. 3, p. 20; slide Lez. 3

proposizione

REACHABILITY in spazio logaritmico nondeterministico

per l'oraledimostrato nel corso

REACHABILITY si decide con una MdT nondeterministica in spazio O(log⁡n)O(\log n): REACHABILITY∈NL\htmlData{term=problem:REACH}{\mathrm{REACHABILITY}} \in \htmlData{term=NL}{\mathrm{NL}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

La macchina ricorda solo il nodo corrente e il prossimo, scelto nondeterministicamente: due numeri tra 1 e nn, cioè O(log⁡n)O(\log n) celle.

All'esame

Esempio tipico di problema in NL; è anche il punto di partenza del Teorema di Savitch.

Da scrivere all'esame

SÌ: REACHABILITY∈NL\htmlData{term=problem:REACH}{\mathrm{REACHABILITY}} \in \htmlData{term=NL}{\mathrm{NL}}, perché una MdT nondeterministica indovina il cammino ricordando solo il nodo corrente e il successivo, cioè O(log⁡n)O(\log n) celle di lavoro.

Dimostrazione

Idea: la macchina "indovina" il cammino un nodo alla volta e ricorda solo il nodo corrente e il prossimo. Sono due numeri tra 1 e nn, che in binario occupano O(log⁡n)O(\log n) celle.

  1. Il problema. L'input è un grafo con nodi 1,…,n1, \ldots, n dato con la matrice di adiacenza; la domanda è se c'è un cammino dal nodo 1 al nodo nn. (Se 1=n1 = n la risposta è subito "yes".)
  2. La macchina NN, a 3 nastri. Il primo nastro contiene la matrice ed è in sola lettura. Il secondo contiene il nodo corrente ii, all'inizio 1. Il terzo contiene il prossimo nodo jj del cammino.
  3. Un passo. NN sceglie nondeterministicamente jj tra 1 e nn e lo scrive in binario sul terzo nastro. Poi legge nella matrice il bit in posizione (i,j)(i, j). Se è 0 (non c'è l'arco da ii a jj) si ferma in "no". Se è 1 e j=nj = n si ferma in "yes". Altrimenti copia jj sul secondo nastro, al posto di ii, e ripete.
  4. Se c'è un cammino, NN accetta. Sia 1,v1,…,vk=n1, v_1, \ldots, v_k = n un cammino. La computazione che sceglie proprio v1,v2,…v_1, v_2, \ldots trova sempre il bit 1 e arriva in "yes". Per accettare basta una computazione.
  5. Se NN accetta, c'è un cammino. Una computazione che arriva in "yes" ha controllato che ogni arco tra due nodi scelti consecutivi esiste davvero, quindi i nodi scelti formano un cammino da 1 a nn. Se il cammino non esiste, nessuna computazione accetta: NN decide REACHABILITY.
  6. Spazio. Il nastro di input non si conta. Il secondo e il terzo nastro contengono sempre un numero tra 1 e nn in binario, cioè circa log⁡n\log n celle ciascuno: O(log⁡n)O(\log n) in tutto. L'input è lungo circa n2n^2, ma log⁡(n2)=2log⁡n\log(n^2) = 2 \log n, quindi lo spazio è logaritmico anche rispetto alla lunghezza dell'input.
  7. Computazioni infinite. Alcune computazioni possono girare per sempre in un ciclo del grafo. La definizione di decisione nondeterministica lo permette. Volendo, si aggiunge un contatore fino a nn, anch'esso di O(log⁡n)O(\log n) celle, che fa rifiutare dopo nn passi: un cammino senza ripetizioni ha meno di nn archi.

Classi

NL

Problemi

REACHABILITY

Dove: slide Lez. 3; appunti Lez. 3. Presentato nelle slide della Lez. 3 (algoritmo a 3 nastri); la dispensa non lo enuncia come risultato a sé.

Capitolo 4 · Funzioni di complessità proprie

teorema

Gap Theorem (Teorema 7.3)

Esiste una funzione ricorsiva ff tale che TIME(f(n))=TIME(2f(n))\mathrm{TIME}(f(n)) = \mathrm{TIME}(2^{f(n)}).

Idea, frase per l'esame e dimostrazione +

Intuizione

Con funzioni "strane" come budget anche un aumento esponenziale delle risorse può non dare problemi nuovi: per questo il corso usa solo funzioni di complessità proprie.

All'esame

Motiva l'ipotesi "ff propria" nei teoremi di gerarchia.

Da scrivere all'esame

Per il Gap Theorem esiste ff ricorsiva con TIME(f(n))=TIME(2f(n))\mathrm{TIME}(f(n)) = \mathrm{TIME}(2^{f(n)}): senza l'ipotesi di funzione propria i teoremi di gerarchia non valgono.

Schema della dimostrazione

Idea: costruiamo il budget ff in modo che, per ogni lunghezza nn, nessuna delle "prime" n+1n+1 macchine si fermi su input lunghi nn dopo un numero di passi compreso tra f(n)f(n) e 2f(n)2^{f(n)}. Allora tutto ciò che si fa entro 2f(n)2^{f(n)} passi si fa già entro f(n)f(n) passi.

  1. Enumerazione. Elenchiamo tutte le MdT: M0,M1,M2,…M_0, M_1, M_2, \ldots
  2. Intervalli. Fissato nn, definiamo k1=2nk_1 = 2n e kj+1=2kj+1k_{j+1} = 2^{k_j} + 1. Gli intervalli [kj,2kj][k_j, 2^{k_j}] sono disgiunti, uno dopo l'altro.
  3. Un intervallo libero. Consideriamo le macchine M0,…,MnM_0, \ldots, M_n su tutti gli input di lunghezza nn: è un numero finito, diciamo NN, di computazioni. Una computazione che si ferma lo fa dopo un numero preciso di passi, quindi "cade" in al più un intervallo. Con NN computazioni e N+1N+1 intervalli, almeno un intervallo è libero: nessuna computazione si ferma lì dentro. Poniamo f(n)=kjf(n) = k_j, dove jj è il primo intervallo libero.
  4. ff è ricorsiva. Per controllare se l'intervallo jj è libero basta simulare ogni computazione per al più 2kj2^{k_j} passi, un numero finito; provando j=1,2,…j = 1, 2, \ldots in ordine si trova il primo libero.
  5. Il gap. Sia L∈TIME(2f(n))L \in \mathrm{TIME}(2^{f(n)}), deciso da una macchina MiM_i. Per ogni n≥in \ge i, MiM_i è tra le macchine considerate per nn. Su un input lungo nn si ferma entro 2f(n)2^{f(n)} passi, ma non dentro [f(n),2f(n)][f(n), 2^{f(n)}], perché quell'intervallo è libero: quindi si ferma in meno di f(n)f(n) passi.
  6. Input corti. Restano gli input con n<in \lt i: sono un numero finito, e una macchina può dare la risposta su di essi con una tabella scritta negli stati, in pochissimi passi. Quindi L∈TIME(f(n))L \in \mathrm{TIME}(f(n)). L'altra inclusione, TIME(f(n))⊆TIME(2f(n))\mathrm{TIME}(f(n)) \subseteq \mathrm{TIME}(2^{f(n)}), è ovvia.

La ff costruita è ricorsiva ma non propria: per questo i teoremi di gerarchia richiedono funzioni proprie. Il corso non dà la prova (e la segna come non richiesta): questo è lo schema del Teorema 7.3 del Papadimitriou.

Dove: slide Lez. 4; appunti Lez. 4. Solo nelle slide della Lez. 4 (Teorema 7.3 del Papadimitriou); gli appunti lo segnano come non chiesto all'esame.

teorema

Teorema delle soluzioni precise

per l'oraledimostrato nel corso

Se MM decide LL in tempo o spazio f(n)f(n), con ff propria, allora esiste una MdT precisa M′M' che decide LL in tempo o spazio O(f(n))O(f(n)). Precisa vuol dire che ogni computazione si ferma dopo esattamente f(∣x∣)f(|x|) passi e i nastri di lavoro hanno lunghezza fissata.

Idea, frase per l'esame e dimostrazione +

Intuizione

Prima si calcola il "metro" lungo f(∣x∣)f(|x|) con la macchina MfM_f, poi lo si usa come sveglia (tempo) o come limite di memoria (spazio).

Da scrivere all'esame

Per il teorema delle soluzioni precise, con ff propria si può supporre che tempo o spazio della MdT dipendano solo da ∣x∣|x|, restando nel budget O(f(n))O(f(n)).

Dimostrazione

Idea: M′M' prima calcola, con la macchina MfM_f della funzione propria, un "metro" di esattamente f(∣x∣)f(|x|) simboli; poi lo usa come sveglia (budget di tempo) o come recinto di memoria (budget di spazio). Così tempo e spazio di M′M' dipendono solo da ∣x∣|x|, cioè M′M' è precisa.

  1. Funzione propria. ff è non decrescente ed esiste una MdT MfM_f che, su ogni input xx, scrive sul suo ultimo nastro esattamente f(∣x∣)f(|x|) quasi-blank ⊓\sqcap, in tempo O(∣x∣+f(∣x∣))O(|x| + f(|x|)) e spazio O(f(∣x∣))O(f(|x|)); passi e spazio di MfM_f dipendono solo da ∣x∣|x|.
  2. Prima fase (uguale in tutti i casi). M′M' esegue MfM_f su xx usando nastri propri. Questa fase è deterministica e la sua durata dipende solo da ∣x∣|x|. Il risultato è il metro di lunghezza f(∣x∣)f(|x|).
  3. Budget di tempo. M′M' simula MM su altri nastri e, dopo ogni passo simulato, sposta di una cella a destra il cursore sul metro. Se MM si ferma prima della fine del metro, M′M' ricorda la risposta e continua a scorrere il metro fino al primo vero blank ⊔\sqcup. Siccome MM si ferma entro f(∣x∣)f(|x|) passi, la simulazione arriva sempre in fondo e la risposta è quella di MM. I passi totali sono quelli di MfM_f più f(∣x∣)f(|x|), più una costante: dipendono solo da ∣x∣|x|, quindi M′M' è precisa. Il tempo è O(n+2f(n))=O(f(n))O(n + 2f(n)) = O(f(n)), perché un budget di tempo è almeno nn.
  4. Budget di spazio. M′M' fa una copia del metro per ogni nastro di lavoro di MM e simula MM scrivendo sui quasi-blank, che tratta come blank. MM usa al più f(∣x∣)f(|x|) celle per nastro, quindi non esce mai dal metro. Alla fine ogni nastro di lavoro è lungo esattamente f(∣x∣)f(|x|), perché le celle non usate restano ⊓\sqcap: la lunghezza dipende solo da ∣x∣|x|, quindi M′M' è precisa. Lo spazio è O(f(n))O(f(n)) per MfM_f più k⋅f(n)k \cdot f(n) per i kk nastri: O(f(n))O(f(n)).
  5. Caso nondeterministico. Se MM è nondeterministica, anche la simulazione lo è, ma i ragionamenti dei punti 3 e 4 valgono per ogni computazione: la durata o lo spazio dipendono solo dalla fase deterministica di MfM_f e dalla lunghezza del metro, uguali per tutte le computazioni.

Dove: dispensa cap. 4, p. 21; slide Lez. 4

teorema

Teorema (terminazione delle MdT space-bounded)

per l'oraledimostrato nel corso

Se MM decide LL in spazio f(n)f(n), con ff propria, allora esiste M′M' che decide LL in spazio O(f(n))O(f(n)) e tale che ogni sua computazione termina.

Idea, frase per l'esame e dimostrazione +

Intuizione

Le configurazioni possibili sono al più ∣K∣⋅∣Σ∣f(n)⋅(f(n)+1)|K| \cdot |\Sigma|^{f(n)} \cdot (f(n)+1): se la macchina fa più passi di così è in un ciclo, e la si può fermare in "no".

All'esame

È l'idea dietro SPACE(f(n))⊆TIME(kf(n))\mathrm{SPACE}(f(n)) \subseteq \mathrm{TIME}(k^{f(n)}) e quindi PSPACE⊆EXP\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}.

Da scrivere all'esame

Per il teorema di terminazione, una MdT con budget di spazio f(n)f(n) (ff propria) si rende sempre terminante: ha al più ∣K∣⋅∣Σ∣f(n)⋅(f(n)+1)|K| \cdot |\Sigma|^{f(n)} \cdot (f(n)+1) configurazioni, oltre le quali è in un ciclo.

Dimostrazione

Idea: con un budget di spazio f(n)f(n) la macchina ha solo un numero finito cc di configurazioni diverse. Se fa più di cc passi ne ha ripetuta una, quindi è in un ciclo e la si può fermare in "no". Un contatore fino a cc sta in O(f(n))O(f(n)) celle.

  1. Contare le configurazioni. Una configurazione è data da stato, contenuto del nastro e posizione del cursore. Come nella dispensa, consideriamo un nastro di lavoro lungo al più f(n)f(n): gli stati sono ∣K∣|K|, i contenuti possibili al più ∣Σ∣f(n)|\Sigma|^{f(n)}, le posizioni del cursore al più f(n)+1f(n)+1. Quindi le configurazioni sono al più c=∣K∣⋅∣Σ∣f(n)⋅(f(n)+1)c = |K| \cdot |\Sigma|^{f(n)} \cdot (f(n)+1). Con più nastri, e con la posizione del cursore di input, si aggiungono fattori dello stesso tipo e il ragionamento non cambia.
  2. Oltre cc passi c'è un ciclo. Una computazione di più di cc passi attraversa più di cc configurazioni, quindi (principio dei cassetti) ne ripete una. Se MM è deterministica, da quel punto ripete lo stesso tratto per sempre e non risponderà mai. Se MM è nondeterministica, una computazione che accetta si può accorciare togliendo il tratto tra le due ripetizioni; quindi, se x∈Lx \in L, c'è una computazione che accetta entro cc passi.
  3. La macchina M′M'. Simula MM contando i passi; se il contatore arriva a cc e MM non si è fermata, M′M' si ferma in "no". Per il punto 2 le computazioni troncate non servono per accettare, quindi M′M' decide lo stesso linguaggio LL, e ogni sua computazione termina.
  4. Il contatore. ff è propria, quindi M′M' può prima eseguire MfM_f e ottenere un metro di f(n)f(n) celle. Il contatore è fatto così: una cella con ∣K∣|K| simboli possibili, f(n)f(n) celle con simboli di Σ\Sigma (un numero in base ∣Σ∣|\Sigma|), e f(n)+1f(n)+1 celle usate in unario. Il suo valore massimo è proprio cc. A ogni passo simulato M′M' incrementa il contatore; quando trabocca, forza il "no".
  5. Spazio. Metro e contatore occupano O(f(n))O(f(n)) celle, la simulazione di MM al più f(n)f(n): in tutto O(f(n))O(f(n)).

Classi

PSPACEEXP

Dove: dispensa cap. 4, p. 22; slide Lez. 4

Capitolo 6 · Classi complementari

proposizione

Proposizione (le classi deterministiche sono chiuse per complemento)

chiesto in 2 domandedimostrato nel corso

Se CC è una classe deterministica TIME(f(n))\mathrm{TIME}(f(n)) o SPACE(f(n))\mathrm{SPACE}(f(n)), allora C=coCC = \mathrm{co}C; per esempio P=coP\htmlData{term=P}{\mathrm{P}} = \mathrm{coP}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Basta scambiare gli stati "yes" e "no" della macchina deterministica.

All'esame

Serve a dire che P⊆coNP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=coNP}{\mathrm{coNP}} e che, se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, allora anche NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

Da scrivere all'esame

SÌ: le classi deterministiche di tempo e spazio sono chiuse per complemento (per esempio P=coP\htmlData{term=P}{\mathrm{P}} = \mathrm{coP}): basta scambiare "yes" e "no" nella MdT deterministica, con lo stesso budget.

Dimostrazione

Idea: in una macchina deterministica basta scambiare gli stati "yes" e "no": la computazione è la stessa, cambia solo la risposta finale.

  1. Sia C=TIME(f(n))C = \mathrm{TIME}(f(n)) oppure SPACE(f(n))\mathrm{SPACE}(f(n)), e sia L∈CL \in C: esiste una MdT deterministica MM che decide LL entro il budget f(n)f(n). "Decide" vuol dire che su ogni input xx si ferma, in "yes" se x∈Lx \in L e in "no" se x∉Lx \notin L.
  2. Sia M′M' la macchina ottenuta da MM scambiando nel programma δ\delta gli stati "yes" e "no": ogni transizione che portava in "yes" ora porta in "no", e viceversa.
  3. Su ogni input M′M' fa esattamente le stesse mosse di MM, perché la macchina è deterministica e ha una sola computazione. Quindi usa lo stesso tempo e lo stesso spazio, e si ferma nello stato opposto.
  4. Perciò x∈L‾x \in \overline{L} (il complemento di LL)   ⟺  x∉L  ⟺  M(x)=no  ⟺  M′(x)=yes\iff x \notin L \iff M(x) = \text{no} \iff M'(x) = \text{yes}. Cioè M′M' decide L‾\overline{L} entro lo stesso budget: L‾∈C\overline{L} \in C.
  5. Da qui le due inclusioni. Se L∈coCL \in \mathrm{co}C, allora LL è il complemento di un linguaggio di CC, e per il punto 4 sta in CC: coC⊆C\mathrm{co}C \subseteq C. Se L∈CL \in C, per il punto 4 L‾∈C\overline{L} \in C, quindi LL, che è il complemento di L‾\overline{L}, sta in coC\mathrm{co}C: C⊆coCC \subseteq \mathrm{co}C. Dunque C=coCC = \mathrm{co}C.
  6. P è l'unione delle classi TIME(nk)\mathrm{TIME}(n^k), ognuna chiusa per complemento, quindi P=coP\htmlData{term=P}{\mathrm{P}} = \mathrm{coP}.

Con una macchina nondeterministica il trucco non funziona: scambiando "yes" e "no" si accetterebbe quando esiste una computazione che rifiuta, mentre per il complemento servirebbe che tutte rifiutino.

Dove serve nelle tracce

F05 n. 2 · F08 n. 3

Dove: dispensa cap. 6, p. 25; slide Lez. 4

Capitolo 7 · Teorema di gerarchia

lemma

Lemma 1 (limite superiore per HfH_f)

per l'oraledimostrato nel corso

Per f(n)≥nf(n) \ge n propria, il linguaggio Hf={M;x:M accetta x in al piuˋ f(∣x∣) passi}H_f = \{M;x : M \text{ accetta } x \text{ in al più } f(|x|) \text{ passi}\} sta in TIME(f(n)3)\mathrm{TIME}(f(n)^3).

Idea, frase per l'esame e dimostrazione +

Intuizione

Una macchina universale con una "sveglia" lunga f(∣x∣)f(|x|) simula MM passo per passo, e ogni passo costa O(f(n)2)O(f(n)^2).

Da scrivere all'esame

Per il Lemma 1, Hf∈TIME(f(n)3)H_f \in \mathrm{TIME}(f(n)^3): una macchina universale con una sveglia lunga f(∣x∣)f(|x|) simula MM su xx spendendo O(f(n)2)O(f(n)^2) per ogni passo.

Dimostrazione

Idea: una macchina universale UfU_f simula MM su xx passo per passo, con una "sveglia" lunga f(∣x∣)f(|x|) che le dice quando smettere. Ogni passo simulato costa O(f(n)2)O(f(n)^2) e i passi sono al più f(n)f(n), quindi il totale è O(f(n)3)O(f(n)^3); lo speedup lineare toglie la costante.

  1. Ingredienti. UfU_f ha 4 nastri e combina macchine già viste: la MdT universale UU, la simulazione di kk nastri su uno solo, lo speedup lineare e la macchina MfM_f della funzione propria ff. Sia nn la lunghezza dell'input M;xM;x.
  2. Sveglia. UfU_f esegue MfM_f su xx e scrive sul quarto nastro f(∣x∣)f(|x|) simboli, che faranno da sveglia. Costa O(∣x∣+f(∣x∣))=O(f(n))O(|x| + f(|x|)) = O(f(n)) passi, perché ∣x∣≤n|x| \le n e ff non decresce.
  3. Preparazione. UfU_f copia la descrizione di MM sul terzo nastro, lascia sul primo nastro la codifica di ▹x\triangleright x e scrive sul secondo la codifica dello stato iniziale. Controlla anche che MM sia la descrizione corretta di una MdT, e se non lo è rifiuta. Tutto in O(n+f(n))=O(f(n))O(n + f(n)) = O(f(n)) passi, perché f(n)≥nf(n) \ge n.
  4. Simulazione di un passo. I nastri di MM sono scritti uno dopo l'altro sul primo nastro di UfU_f, come nella simulazione multinastro. Con una prima scansione UfU_f raccoglie i simboli letti dai cursori di MM e li scrive sul secondo nastro, dopo lo stato. Poi cerca sul terzo nastro la transizione di MM che corrisponde, e con una seconda scansione applica le modifiche sul primo nastro. Infine sposta di una cella il cursore della sveglia.
  5. Costo di un passo. MM ha kMk_M nastri, ciascuno lungo al più f(∣x∣)f(|x|) celle, e ogni stato o simbolo di MM è codificato con ℓM\ell_M bit. Il primo nastro è lungo O(kM⋅ℓM⋅f(∣x∣))O(k_M \cdot \ell_M \cdot f(|x|)) e un passo costa O(ℓM⋅kM2⋅f(∣x∣))O(\ell_M \cdot k_M^2 \cdot f(|x|)), più O(n)O(n) per la ricerca sul terzo nastro. Sia ℓM\ell_M sia kMk_M sono al più log⁡n\log n: la codifica di uno stato o simbolo ha circa log⁡(∣Σ∣+∣K∣+6)\log(|\Sigma|+|K|+6) bit, e il programma ha almeno una riga per ogni combinazione di kMk_M simboli, quindi la descrizione di MM è lunga almeno 2kM2^{k_M}. Allora ℓM⋅kM2≤log⁡3n=O(n)=O(f(n))\ell_M \cdot k_M^2 \le \log^3 n = O(n) = O(f(n)), e un passo costa O(f(n)2)O(f(n)^2), con una costante che non dipende da MM.
  6. Risposta. Se la simulazione arriva in "yes" prima che la sveglia finisca, UfU_f accetta; se MM rifiuta, o se la sveglia arriva in fondo (sono passati f(∣x∣)f(|x|) passi), UfU_f rifiuta. Questo è esattamente il test "MM accetta xx in al più f(∣x∣)f(|x|) passi", quindi UfU_f decide HfH_f.
  7. Tempo totale. Al più f(∣x∣)≤f(n)f(|x|) \le f(n) passi simulati, ciascuno in O(f(n)2)O(f(n)^2), più O(f(n))O(f(n)) di preparazione: O(f(n)3)O(f(n)^3). Con lo speedup lineare (trattare più simboli come uno solo) si scende ad al più f(n)3f(n)^3 passi: Hf∈TIME(f(n)3)H_f \in \mathrm{TIME}(f(n)^3).

Dove: dispensa cap. 7, p. 26; slide Lez. 5

lemma

Lemma 2 (limite inferiore per HfH_f)

per l'oraledimostrato nel corso

Hf∉TIME(f(⌊n/2⌋))H_f \notin \mathrm{TIME}(f(\lfloor n/2 \rfloor)).

Idea, frase per l'esame e dimostrazione +

Intuizione

Diagonalizzazione: se una macchina decidesse HfH_f così in fretta, la macchina DfD_f che "fa il contrario" sulla propria descrizione porterebbe a una contraddizione.

Da scrivere all'esame

Per il Lemma 2, Hf∉TIME(f(⌊n/2⌋))H_f \notin \mathrm{TIME}(f(\lfloor n/2 \rfloor)): la macchina diagonale DfD_f, che fa il contrario sulla propria descrizione, porterebbe a una contraddizione.

Dimostrazione

Idea: per assurdo. Se una macchina decidesse HfH_f così in fretta, potremmo costruire una macchina DfD_f che, sulla propria descrizione, fa il contrario di ciò che dice quella macchina: DfD_f non potrebbe né accettare né rifiutare se stessa.

  1. Ipotesi assurda. Supponiamo che una MdT, chiamiamola MHM_H, decida HfH_f in tempo f(⌊n/2⌋)f(\lfloor n/2 \rfloor), dove ⌊n/2⌋\lfloor n/2 \rfloor è la parte intera di n/2n/2.
  2. La macchina diagonale. DfD_f, su input la descrizione MM di una macchina, esegue MHM_H sull'input M;MM;M (cioè chiede: "MM accetta la propria descrizione entro f(∣M∣)f(|M|) passi?") e risponde il contrario: se MH(M;M)=yesM_H(M;M) = \text{yes} allora "no", altrimenti "yes".
  3. Tempo di DfD_f. Se ∣M∣=n|M| = n, l'input M;MM;M è lungo 2n+12n+1, quindi MHM_H impiega f(⌊(2n+1)/2⌋)=f(n)f(\lfloor (2n+1)/2 \rfloor) = f(n) passi. Dunque DfD_f, che è una MdT deterministica, si ferma sempre entro f(n)f(n) passi (trascurando, come dispensa e libro, il tempo lineare per duplicare l'input).
  4. Caso Df(Df)=yesD_f(D_f) = \text{yes}. Per come è fatta DfD_f, MH(Df;Df)=noM_H(D_f;D_f) = \text{no}, cioè Df;Df∉HfD_f;D_f \notin H_f. Per definizione di HfH_f, DfD_f non accetta la propria descrizione entro f(n)f(n) passi. Ma DfD_f si ferma sempre entro f(n)f(n) passi (punto 3), quindi la rifiuta: Df(Df)=noD_f(D_f) = \text{no}. Contraddizione.
  5. Caso Df(Df)=noD_f(D_f) = \text{no}. Allora MH(Df;Df)=yesM_H(D_f;D_f) = \text{yes}, cioè Df;Df∈HfD_f;D_f \in H_f: DfD_f accetta la propria descrizione entro f(n)f(n) passi, cioè Df(Df)=yesD_f(D_f) = \text{yes}. Contraddizione.
  6. Conclusione. DfD_f si ferma sempre, quindi uno dei due casi deve valere, ma entrambi sono impossibili. L'ipotesi del punto 1 è falsa: Hf∉TIME(f(⌊n/2⌋))H_f \notin \mathrm{TIME}(f(\lfloor n/2 \rfloor)).

Dove: dispensa cap. 7, p. 27; slide Lez. 5

teorema

Teorema di gerarchia per il tempo (Teorema 7.1)

★ chiesto in 30 domandedimostrato nel corso

Se f(n)≥nf(n) \ge n è una funzione propria, allora TIME(f(n))⊊TIME(f(2n+1)3)\mathrm{TIME}(f(n)) \subsetneq \mathrm{TIME}(f(2n+1)^3). È stato dimostrato anche il risultato più forte TIME(f(n))⊊TIME(f(n)⋅log⁡2f(n))\mathrm{TIME}(f(n)) \subsetneq \mathrm{TIME}(f(n) \cdot \log^2 f(n)).

Idea, frase per l'esame e dimostrazione +

Intuizione

Con abbastanza tempo in più si risolvono problemi nuovi: con g(n)=f(2n+1)g(n) = f(2n+1), HgH_g sta nella classe grande (Lemma 1) ma non in quella piccola (Lemma 2).

All'esame

Serve a separare classi di tempo, per esempio a dimostrare P⊊EXP\htmlData{term=P}{\mathrm{P}} \subsetneq \htmlData{term=EXP}{\mathrm{EXP}}.

Da scrivere all'esame

Per il teorema di gerarchia per il tempo, se f(n)≥nf(n) \ge n è propria allora TIME(f(n))⊊TIME(f(2n+1)3)\mathrm{TIME}(f(n)) \subsetneq \mathrm{TIME}(f(2n+1)^3): con abbastanza tempo in più si risolvono problemi nuovi.

Dimostrazione

Idea: usiamo il linguaggio HgH_g con g(n)=f(2n+1)g(n) = f(2n+1). Il Lemma 1 lo mette nella classe grande TIME(f(2n+1)3)\mathrm{TIME}(f(2n+1)^3); il Lemma 2 lo esclude da TIME(g(⌊n/2⌋))\mathrm{TIME}(g(\lfloor n/2 \rfloor)), che contiene la classe piccola TIME(f(n))\mathrm{TIME}(f(n)).

  1. Inclusione. ff è propria, quindi non decresce, e f(n)≥nf(n) \ge n. Allora f(n)≤f(2n+1)≤f(2n+1)3f(n) \le f(2n+1) \le f(2n+1)^3 (l'ultimo passo vale perché f(2n+1)≥1f(2n+1) \ge 1). Una macchina che sta nel budget f(n)f(n) sta anche nel budget più grande: TIME(f(n))⊆TIME(f(2n+1)3)\mathrm{TIME}(f(n)) \subseteq \mathrm{TIME}(f(2n+1)^3).
  2. La funzione gg. Poniamo g(n)=f(2n+1)g(n) = f(2n+1). Anche gg è propria (si calcola 2n+12n+1 e poi si usa MfM_f) e g(n)≥ng(n) \ge n, quindi i due lemmi valgono per gg.
  3. Lemma 1 per gg. Hg∈TIME(g(n)3)=TIME(f(2n+1)3)H_g \in \mathrm{TIME}(g(n)^3) = \mathrm{TIME}(f(2n+1)^3): HgH_g sta nella classe grande.
  4. Una disuguaglianza. 2⌊n/2⌋+12\lfloor n/2 \rfloor + 1 vale n+1n+1 se nn è pari e nn se nn è dispari, quindi è sempre ≥n\ge n. Poiché ff non decresce, g(⌊n/2⌋)=f(2⌊n/2⌋+1)≥f(n)g(\lfloor n/2 \rfloor) = f(2\lfloor n/2 \rfloor+1) \ge f(n). Dunque TIME(f(n))⊆TIME(g(⌊n/2⌋))\mathrm{TIME}(f(n)) \subseteq \mathrm{TIME}(g(\lfloor n/2 \rfloor)).
  5. Lemma 2 per gg. Hg∉TIME(g(⌊n/2⌋))H_g \notin \mathrm{TIME}(g(\lfloor n/2 \rfloor)). Se HgH_g stesse in TIME(f(n))\mathrm{TIME}(f(n)), per il punto 4 starebbe anche in TIME(g(⌊n/2⌋))\mathrm{TIME}(g(\lfloor n/2 \rfloor)): impossibile. Quindi Hg∉TIME(f(n))H_g \notin \mathrm{TIME}(f(n)).
  6. Conclusione. HgH_g sta in TIME(f(2n+1)3)\mathrm{TIME}(f(2n+1)^3) ma non in TIME(f(n))\mathrm{TIME}(f(n)); con il punto 1 l'inclusione è stretta: TIME(f(n))⊊TIME(f(2n+1)3)\mathrm{TIME}(f(n)) \subsetneq \mathrm{TIME}(f(2n+1)^3).

Il risultato più forte TIME(f(n))⊊TIME(f(n)⋅log⁡2f(n))\mathrm{TIME}(f(n)) \subsetneq \mathrm{TIME}(f(n) \cdot \log^2 f(n)) è solo citato nel corso (Problema 7.4.8 del Papadimitriou), senza prova.

Classi

PEXP

Dove: dispensa cap. 7, p. 28; slide Lez. 5. La versione con log⁡2f(n)\log^2 f(n) è citata senza prova (Problema 7.4.8 del Papadimitriou).

teorema

Teorema (separazione di P ed EXP)

★ chiesto in 12 domandedimostrato nel corso

P⊊EXP\htmlData{term=P}{\mathrm{P}} \subsetneq \htmlData{term=EXP}{\mathrm{EXP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

P⊆TIME(2n)\htmlData{term=P}{\mathrm{P}} \subseteq \mathrm{TIME}(2^n) e, per la gerarchia, TIME(2n)⊊TIME((22n+1)3)⊆TIME(2n2)⊆EXP\mathrm{TIME}(2^n) \subsetneq \mathrm{TIME}((2^{2n+1})^3) \subseteq \mathrm{TIME}(2^{n^2}) \subseteq \htmlData{term=EXP}{\mathrm{EXP}}.

All'esame

Serve a rispondere NO a "P=EXP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=EXP}{\mathrm{EXP}}?" e a escludere riduzioni da problemi completi per EXP (o classi più grandi, come NEXP) verso problemi in P.

Da scrivere all'esame

P⊊EXP\htmlData{term=P}{\mathrm{P}} \subsetneq \htmlData{term=EXP}{\mathrm{EXP}}: per il teorema di gerarchia TIME(2n)⊊TIME(26n+3)⊆EXP\mathrm{TIME}(2^n) \subsetneq \mathrm{TIME}(2^{6n+3}) \subseteq \htmlData{term=EXP}{\mathrm{EXP}}, e P⊆TIME(2n)\htmlData{term=P}{\mathrm{P}} \subseteq \mathrm{TIME}(2^n), quindi P⊊EXP\htmlData{term=P}{\mathrm{P}} \subsetneq \htmlData{term=EXP}{\mathrm{EXP}}.

Dimostrazione

Idea: tutto P sta dentro TIME(2n)\mathrm{TIME}(2^n), e il teorema di gerarchia trova in EXP un problema che non sta in TIME(2n)\mathrm{TIME}(2^n); quindi quel problema non sta in P.

  1. P⊆TIME(2n)\htmlData{term=P}{\mathrm{P}} \subseteq \mathrm{TIME}(2^n). Ogni polinomio nkn^k prima o poi diventa più piccolo di 2n2^n; per i pochi nn più piccoli la differenza è solo una costante, che per lo speedup lineare non conta. Quindi ogni TIME(nk)\mathrm{TIME}(n^k) sta in TIME(2n)\mathrm{TIME}(2^n), e così la loro unione P.
  2. TIME(2n)⊆EXP\mathrm{TIME}(2^n) \subseteq \htmlData{term=EXP}{\mathrm{EXP}}. Per definizione EXP è l'unione delle classi TIME(2nk)\mathrm{TIME}(2^{n^k}), e 2n2^n è il caso k=1k = 1. Con il punto 1, P⊆EXP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}.
  3. Gerarchia. f(n)=2nf(n) = 2^n è una funzione propria e 2n≥n2^n \ge n, quindi vale il teorema di gerarchia per il tempo: TIME(2n)⊊TIME((22n+1)3)=TIME(26n+3)\mathrm{TIME}(2^n) \subsetneq \mathrm{TIME}((2^{2n+1})^3) = \mathrm{TIME}(2^{6n+3}).
  4. Il gradino sta in EXP. 6n+3≤n26n + 3 \le n^2 per n≥7n \ge 7, quindi, a meno di costanti, TIME(26n+3)⊆TIME(2n2)⊆EXP\mathrm{TIME}(2^{6n+3}) \subseteq \mathrm{TIME}(2^{n^2}) \subseteq \htmlData{term=EXP}{\mathrm{EXP}}.
  5. Conclusione. Per i punti 3 e 4 esiste un linguaggio L∈EXPL \in \htmlData{term=EXP}{\mathrm{EXP}} con L∉TIME(2n)L \notin \mathrm{TIME}(2^n). Per il punto 1, L∉PL \notin \htmlData{term=P}{\mathrm{P}} (altrimenti starebbe in TIME(2n)\mathrm{TIME}(2^n)). Quindi P≠EXP\htmlData{term=P}{\mathrm{P}} \neq \htmlData{term=EXP}{\mathrm{EXP}} e, con il punto 2, P⊊EXP\htmlData{term=P}{\mathrm{P}} \subsetneq \htmlData{term=EXP}{\mathrm{EXP}}.

Classi

PEXP

Dove: dispensa cap. 7, p. 28; slide Lez. 5

teorema

Teorema di gerarchia per lo spazio (Teorema 7.2)

chiesto in 7 domande

Se ff è una funzione propria, allora SPACE(f(n))⊊SPACE(f(n)⋅log⁡f(n))\mathrm{SPACE}(f(n)) \subsetneq \mathrm{SPACE}(f(n) \cdot \log f(n)).

Idea, frase per l'esame e dimostrazione +

Intuizione

Stessa diagonalizzazione del tempo, con versioni dei due lemmi per lo spazio; il gradino è più basso perché simulare costa poca memoria in più.

All'esame

Serve a separare classi di spazio: per esempio da SPACE(log⁡n)⊊SPACE(log⁡n⋅log⁡log⁡n)⊆PSPACE\mathrm{SPACE}(\log n) \subsetneq \mathrm{SPACE}(\log n \cdot \log\log n) \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} si ricava L⊊PSPACE\htmlData{term=L}{\mathrm{L}} \subsetneq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Da scrivere all'esame

Per il teorema di gerarchia per lo spazio, con ff propria SPACE(f(n))⊊SPACE(f(n)⋅log⁡f(n))\mathrm{SPACE}(f(n)) \subsetneq \mathrm{SPACE}(f(n) \cdot \log f(n)); per esempio L⊊PSPACE\htmlData{term=L}{\mathrm{L}} \subsetneq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Schema della dimostrazione

Idea: è la stessa diagonalizzazione del tempo. Una macchina DD, su input la descrizione di una macchina MM, simula MM dentro un recinto di f(n)⋅log⁡f(n)f(n) \cdot \log f(n) celle e fa il contrario. Il fattore log⁡f(n)\log f(n) in più paga la simulazione di qualunque macchina fissata, che costa solo una costante in più.

  1. Ipotesi. ff è propria e, come è implicito nell'enunciato, cresce almeno come log⁡n\log n (per budget costanti l'enunciato sarebbe falso, per la compressione dello spazio). Allora anche f(n)⋅log⁡f(n)f(n) \cdot \log f(n) si può calcolare come metro.
  2. La macchina DD. Su un input ww lungo nn: (a) segna un recinto di f(n)⋅log⁡f(n)f(n) \cdot \log f(n) celle; se in seguito deve uscirne, rifiuta. (b) Controlla che ww sia la descrizione di una macchina MM seguita da un numero qualsiasi di zeri; altrimenti rifiuta. (c) Simula MM sull'input ww, codificando ogni simbolo di MM in binario. (d) Conta i passi simulati: per il teorema di terminazione, una macchina con budget di spazio f(n)f(n) che fa più di ∣K∣⋅∣Σ∣f(n)⋅(f(n)+1)|K| \cdot |\Sigma|^{f(n)} \cdot (f(n)+1) passi è in un ciclo, e un contatore fino a quel numero occupa O(f(n))O(f(n)) celle; se il contatore trabocca, DD rifiuta. (e) Se la simulazione finisce, DD risponde il contrario di MM.
  3. DD sta nella classe grande. DD non esce mai dal recinto e si ferma sempre, quindi il suo linguaggio L(D)∈SPACE(f(n)⋅log⁡f(n))L(D) \in \mathrm{SPACE}(f(n) \cdot \log f(n)).
  4. L(D)L(D) non sta nella classe piccola. Supponiamo per assurdo che una macchina MM decida L(D)L(D) entro il budget di spazio f(n)f(n); per il teorema di terminazione possiamo supporre che si fermi sempre. Simulare MM costa ℓM⋅f(n)\ell_M \cdot f(n) celle (ℓM\ell_M = bit per codificare un simbolo di MM, una costante che dipende solo da MM) più O(f(n))O(f(n)) per il contatore. Poiché log⁡f(n)\log f(n) cresce senza limite, per nn abbastanza grande questo spazio è minore di f(n)⋅log⁡f(n)f(n) \cdot \log f(n).
  5. Contraddizione. Prendiamo ww = descrizione di MM seguita da abbastanza zeri da rendere nn così grande. Su ww, DD completa la simulazione e risponde il contrario di MM. Ma MM decide L(D)L(D), quindi M(w)=D(w)M(w) = D(w). Assurdo.
  6. Conclusione. SPACE(f(n))⊆SPACE(f(n)⋅log⁡f(n))\mathrm{SPACE}(f(n)) \subseteq \mathrm{SPACE}(f(n) \cdot \log f(n)) perché il budget è più grande, e per i punti 3-5 l'inclusione è stretta.

Il corso non dà la prova (rimanda al Teorema 7.2 e al Problema 7.4.9 del Papadimitriou); questo è lo schema standard.

Dove serve nelle tracce

F07 n. 5 · F08 n. 3 · G20v1 n. 7 · LU22 n. 5 · GE23 n. 3 · MA23 n. 5 · LU24 n. 5

Classi

LPSPACE

Dove: dispensa cap. 7, p. 29; slide Lez. 5. Né la dispensa né le slide danno la prova (rimandano al Teorema 7.2 e al Problema 7.4.9 del Papadimitriou). La conseguenza L⊊PSPACE\htmlData{term=L}{\mathrm{L}} \subsetneq \htmlData{term=PSPACE}{\mathrm{PSPACE}} è ricavata negli appunti della Lez. 5.

Capitolo 8 · Gerarchie nondeterministiche

teorema

Gerarchie nondeterministiche

chiesto in 4 domande

NTIME(nc)⊊NTIME(nd)\mathrm{NTIME}(n^c) \subsetneq \mathrm{NTIME}(n^d) per ogni coppia di costanti 1≤c<d1 \le c \lt d. Per lo spazio, per ogni funzione crescente hh (anche lentissima): NSPACE(log⁡n)⊊NSPACE(log⁡n⋅h(n))\mathrm{NSPACE}(\log n) \subsetneq \mathrm{NSPACE}(\log n \cdot h(n)), NSPACE(nk)⊊NSPACE(nk⋅h(n))\mathrm{NSPACE}(n^k) \subsetneq \mathrm{NSPACE}(n^k \cdot h(n)), NSPACE(2n)⊊NSPACE(2n⋅h(n))\mathrm{NSPACE}(2^n) \subsetneq \mathrm{NSPACE}(2^n \cdot h(n)), NSPACE(22n)⊊NSPACE(22n+1)\mathrm{NSPACE}(2^{2^n}) \subsetneq \mathrm{NSPACE}(2^{2^{n+1}}).

Idea, frase per l'esame e dimostrazione +

Intuizione

Le gerarchie nondeterministiche sono molto più fitte di quelle deterministiche: basta pochissimo in più per avere problemi nuovi.

Da scrivere all'esame

Per le gerarchie nondeterministiche NTIME(nc)⊊NTIME(nd)\mathrm{NTIME}(n^c) \subsetneq \mathrm{NTIME}(n^d) per 1≤c<d1 \le c \lt d: per esempio NTIME(n)⊊NTIME(n2)\mathrm{NTIME}(n) \subsetneq \mathrm{NTIME}(n^2), quindi le due classi sono diverse.

Schema della dimostrazione

Idea: si usa ancora la diagonalizzazione, ma una macchina nondeterministica non può semplicemente "fare il contrario": per rifiutare dove un'altra accetta dovrebbe controllare che tutte le computazioni rifiutano, cioè risolvere il complemento. Per lo spazio questo ostacolo si supera; per il tempo si aggira con una diagonalizzazione "ritardata".

  1. Tempo: perché il metodo deterministico non basta. Una macchina nondeterministica veloce decide un linguaggio in NTIME(nc)\mathrm{NTIME}(n^c), ma il suo complemento non è noto essere in NTIME(nd)\mathrm{NTIME}(n^d) (è la questione NP contro coNP). Quindi la macchina diagonale non può rovesciare la risposta su ogni input.
  2. Tempo: diagonalizzazione ritardata. La macchina diagonale DD lavora su input 1n1^n (nn uni). A ogni macchina MiM_i dell'elenco assegna un intervallo di lunghezze da aia_i a bib_i, con bib_i esponenzialmente più grande di aia_i. Per ai≤n<bia_i \le n \lt b_i, DD su 1n1^n copia la risposta di MiM_i su 1n+11^{n+1}, simulandola nondeterministicamente per ncn^c passi: copiare è facile anche per una macchina nondeterministica. Per n=bin = b_i, DD su 1bi1^{b_i} calcola in modo deterministico, provando tutte le scelte, la risposta di MiM_i su 1ai1^{a_i} e la rovescia. Questo costa circa 2aic2^{a_i^c} passi, che è polinomiale in bib_i perché bib_i è enorme. Così DD lavora in tempo ndn^d.
  3. Tempo: la contraddizione. Se MiM_i decidesse L(D)L(D) in tempo ncn^c, allora sull'intervallo varrebbe D(1ai)=Mi(1ai+1)=D(1ai+1)=…=D(1bi)D(1^{a_i}) = M_i(1^{a_i+1}) = D(1^{a_i+1}) = \ldots = D(1^{b_i}), e quest'ultima risposta è il contrario di Mi(1ai)=D(1ai)M_i(1^{a_i}) = D(1^{a_i}). Assurdo. (Ogni macchina compare infinite volte nell'elenco, così si scavalcano le costanti della simulazione.) Dunque NTIME(nc)⊊NTIME(nd)\mathrm{NTIME}(n^c) \subsetneq \mathrm{NTIME}(n^d).
  4. Spazio. Per il teorema di Immerman e Szelepcsényi lo spazio nondeterministico (almeno log⁡n\log n) è chiuso per complemento. Quindi la macchina diagonale può rovesciare la risposta anche nondeterministicamente, e la prova della gerarchia di spazio deterministica si ripete, con un gradino più fitto: se f(n)=o(g(n))f(n) = o(g(n)) (cioè f(n)/g(n)f(n)/g(n) tende a 0) e f(n+1)=O(g(n))f(n+1) = O(g(n)), allora NSPACE(f(n))⊊NSPACE(g(n))\mathrm{NSPACE}(f(n)) \subsetneq \mathrm{NSPACE}(g(n)).
  5. Gli esempi. Con hh crescente, quindi illimitata, log⁡n/(log⁡n⋅h(n))=1/h(n)\log n / (\log n \cdot h(n)) = 1/h(n) tende a 0, e lo stesso vale per nkn^k e 2n2^n (per 2n2^n si controlla anche 2n+1=2⋅2n=O(2n⋅h(n))2^{n+1} = 2 \cdot 2^n = O(2^n \cdot h(n))). Per 22n2^{2^n} invece f(n+1)=(22n)2f(n+1) = (2^{2^n})^2 è molto più grande di 22n⋅h(n)2^{2^n} \cdot h(n): per questo il gradino scelto è 22n+12^{2^{n+1}}, che soddisfa entrambe le condizioni.

Il corso enuncia questi risultati senza prova (articoli citati nella nota 7.4.10 del Papadimitriou); questo è uno schema delle prove standard.

Dove serve nelle tracce

F03 n. 4 · F07 n. 4 · MZ22 n. 4 · LU24 n. 5

Classi

NLNP

Dove: dispensa cap. 8, p. 29; slide Lez. 5

Capitolo 9 · Tempo dato lo spazio

teorema

Tempo dato lo spazio (Hopcroft, Paul e Valiant)

chiesto in 3 domande

TIME(f(n))⊆SPACE(f(n))\mathrm{TIME}(f(n)) \subseteq \mathrm{SPACE}(f(n)); più precisamente TIME(f(n))⊆SPACE(f(n)/log⁡f(n))\mathrm{TIME}(f(n)) \subseteq \mathrm{SPACE}(f(n) / \log f(n)).

Idea, frase per l'esame e dimostrazione +

Intuizione

Ogni cella usata è costata almeno un passo per raggiungerla, quindi lo spazio non supera mai il tempo.

All'esame

Dà P⊆PSPACE\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}; se un problema non si risolve in spazio polinomiale non si risolve neanche in tempo polinomiale.

Da scrivere all'esame

SÌ: TIME(f(n))⊆SPACE(f(n))\mathrm{TIME}(f(n)) \subseteq \mathrm{SPACE}(f(n)), perché ogni cella usata costa almeno un passo per raggiungerla; per esempio P⊆PSPACE\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Schema della dimostrazione

Idea: a ogni passo una testina si sposta di al più una cella, quindi in f(n)f(n) passi la macchina non può raggiungere più di f(n)f(n) celle nuove. Lo spazio usato non supera mai il tempo.

  1. Sia L∈TIME(f(n))L \in \mathrm{TIME}(f(n)): una MdT deterministica MM decide LL facendo al più f(n)f(n) passi su ogni input lungo nn. Qui f(n)f(n) è il budget di tempo.
  2. Una cella di un nastro di lavoro viene usata solo quando la testina ci arriva sopra (è l'equivalente di una "new" o di una "malloc"). La testina parte dalla prima cella e a ogni passo si sposta di al più una posizione. Quindi dopo tt passi ha toccato al più t+1t + 1 celle.
  3. Con al più f(n)f(n) passi, ogni nastro di lavoro usa al più f(n)+1f(n) + 1 celle; con un numero costante di nastri lo spazio totale è O(f(n))O(f(n)). Le costanti moltiplicative non contano (compressione lineare dello spazio), quindi la stessa MM rispetta un budget di spazio f(n)f(n): L∈SPACE(f(n))L \in \mathrm{SPACE}(f(n)).
  4. Raffinamento f(n)/log⁡f(n)f(n) / \log f(n) (Hopcroft, Paul e Valiant, 1975; nel corso è solo citato, Problema 7.4.17 del Papadimitriou). Schema: si divide il tempo in intervalli di bb passi e ogni nastro in blocchi di bb celle. Il contenuto di un blocco alla fine di un intervallo dipende solo da un numero costante di blocchi alla fine degli intervalli precedenti: si ottiene un grafo delle dipendenze con circa f(n)/bf(n)/b nodi. Un argomento di "gioco dei sassolini" (pebbling) mostra che i nodi di questo grafo si possono ricalcolare tenendo in memoria contemporaneamente solo O((f(n)/b)/log⁡(f(n)/b))O((f(n)/b) / \log(f(n)/b)) blocchi. Ogni blocco occupa bb celle, e scegliendo bb in modo opportuno lo spazio totale diventa O(f(n)/log⁡f(n))O(f(n) / \log f(n)).

Conseguenza: con f(n)f(n) polinomiale si ha P⊆PSPACE\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}; un problema che non si risolve in spazio polinomiale non si risolve neanche in tempo polinomiale.

Dove serve nelle tracce

G20v1 n. 6 · MZ22 n. 7 · SE23 n. 7

Classi

PPSPACE

Dove: dispensa cap. 9, p. 29; slide Lez. 5. TIME(f)⊆SPACE(f)\mathrm{TIME}(f) \subseteq \mathrm{SPACE}(f) è giustificato nelle slide; il raffinamento con log⁡f(n)\log f(n) è citato senza prova (Problema 7.4.17 del Papadimitriou).

Capitolo 10 · Spazio dato il tempo

teorema

Spazio dato il tempo

★ chiesto in 25 domandedimostrato nel corso

SPACE(f(n))⊆TIME(kf(n))\mathrm{SPACE}(f(n)) \subseteq \mathrm{TIME}(k^{f(n)}) per una costante kk; in particolare PSPACE⊆EXP\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Una macchina con spazio f(n)f(n) ha un numero di configurazioni esponenziale in f(n)f(n): se fa più passi di così è in un ciclo.

All'esame

Dà PSPACE⊆EXP\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}} (non si sa se l'inclusione è stretta).

Da scrivere all'esame

SPACE(f(n))⊆TIME(kf(n))\mathrm{SPACE}(f(n)) \subseteq \mathrm{TIME}(k^{f(n)}), perché una macchina con budget di spazio f(n)f(n) ha al più kf(n)k^{f(n)} configurazioni; quindi PSPACE⊆EXP\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}.

Dimostrazione

Idea: con un budget di spazio limitato la macchina ha solo un numero finito di "fotografie" possibili (configurazioni), esponenziale nel budget. Una macchina deterministica che si ferma non ripete mai una fotografia, quindi fa al più tanti passi quante sono le configurazioni.

  1. Sia L∈SPACE(f(n))L \in \mathrm{SPACE}(f(n)): una MdT deterministica MM con kk nastri decide LL usando al più f(n)f(n) celle per nastro di lavoro (f(n)f(n) è il budget di spazio). Come sempre nel corso per lo spazio, f(n)≥log⁡nf(n) \ge \log n.
  2. Una configurazione di MM è tutto ciò che serve per proseguire la computazione: lo stato, la posizione della testina sull'input (che non cambia mai contenuto) e, per ogni nastro di lavoro, il contenuto e la posizione della testina.
  3. Contiamo le configurazioni: al più ∣K∣|K| stati (KK = insieme degli stati) per n+1n + 1 posizioni sull'input per, su ogni nastro di lavoro, ∣Σ∣f(n)|\Sigma|^{f(n)} contenuti (Σ\Sigma = alfabeto) e f(n)f(n) posizioni. Poiché f(n)≥log⁡nf(n) \ge \log n, si ha n+1≤2f(n)+1n + 1 \le 2^{f(n)+1}, e inoltre f(n)≤2f(n)f(n) \le 2^{f(n)}; quindi il totale NN è al più k1f(n)k_1^{f(n)} per una costante k1k_1 che dipende solo da MM (non dall'input).
  4. MM è deterministica: ogni configurazione determina in modo unico la successiva. Se MM passasse due volte dalla stessa configurazione, da lì in poi ripeterebbe la stessa sequenza all'infinito, cioè non si fermerebbe mai.
  5. Ma MM decide LL, quindi si ferma su ogni input. Allora tutte le configurazioni attraversate sono diverse, e i passi sono al più N≤k1f(n)N \le k_1^{f(n)}. (Le slide lo dicono anche così: se una macchina supera NN passi è in ciclo, e si può fermarla con "no".)
  6. Quindi L∈TIME(kf(n))L \in \mathrm{TIME}(k^{f(n)}) con k=k1k = k_1.

Con f(n)=njf(n) = n^j si ottiene knj=2njlog⁡kk^{n^j} = 2^{n^j \log k}, che è ancora esponenziale: PSPACE⊆EXP\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}} (non si sa se l'inclusione è stretta).

Classi

PSPACEEXP

Dove: dispensa cap. 10, p. 29; slide Lez. 5

Capitolo 11 · Deterministico vs nondeterministico (Savitch)

proposizione

Teorema 7.4 (a)

per l'oraledimostrato nel corso

TIME(f(n))⊆NTIME(f(n))\mathrm{TIME}(f(n)) \subseteq \mathrm{NTIME}(f(n)) e SPACE(f(n))⊆NSPACE(f(n))\mathrm{SPACE}(f(n)) \subseteq \mathrm{NSPACE}(f(n)).

Idea, frase per l'esame e dimostrazione +

Intuizione

Le MdT deterministiche sono casi particolari di quelle nondeterministiche.

All'esame

Inclusioni di base come P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}, L⊆NL\htmlData{term=L}{\mathrm{L}} \subseteq \htmlData{term=NL}{\mathrm{NL}} e PSPACE⊆NPSPACE\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \mathrm{NPSPACE}.

Da scrivere all'esame

SÌ, per il Teorema 7.4 (a): una MdT deterministica è un caso particolare di nondeterministica, quindi TIME(f(n))⊆NTIME(f(n))\mathrm{TIME}(f(n)) \subseteq \mathrm{NTIME}(f(n)) e SPACE(f(n))⊆NSPACE(f(n))\mathrm{SPACE}(f(n)) \subseteq \mathrm{NSPACE}(f(n)).

Dimostrazione

Idea: una MdT deterministica è una MdT nondeterministica che, in ogni situazione, ha una sola scelta.

  1. Una MdT deterministica MM ha una funzione di transizione δ\delta che associa a ogni coppia (stato, simbolo letto) un'unica azione. Una MdT nondeterministica ha invece una relazione Δ\Delta che può associare a una coppia più azioni.
  2. Prendiamo come Δ\Delta proprio δ\delta (una sola azione per coppia). Otteniamo una MdT nondeterministica NN che fa esattamente le stesse mosse di MM.
  3. NN ha un solo ramo di computazione, identico alla computazione di MM. Una MdT nondeterministica accetta se almeno un ramo arriva a "yes": qui c'è un solo ramo, quindi NN accetta xx se e solo se MM accetta xx. Le due macchine decidono lo stesso linguaggio.
  4. Le risorse sono le stesse: il tempo di NN è la lunghezza del suo unico ramo, cioè il tempo di MM, al più f(n)f(n) (budget di tempo); le celle usate sono le stesse, al più f(n)f(n) (budget di spazio).
  5. Quindi L∈TIME(f(n))L \in \mathrm{TIME}(f(n)) implica L∈NTIME(f(n))L \in \mathrm{NTIME}(f(n)), e L∈SPACE(f(n))L \in \mathrm{SPACE}(f(n)) implica L∈NSPACE(f(n))L \in \mathrm{NSPACE}(f(n)).

Prendendo l'unione sui budget polinomiali o logaritmici: P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}, L⊆NL\htmlData{term=L}{\mathrm{L}} \subseteq \htmlData{term=NL}{\mathrm{NL}}, PSPACE⊆NPSPACE\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \mathrm{NPSPACE}, EXP⊆NEXP\htmlData{term=EXP}{\mathrm{EXP}} \subseteq \htmlData{term=NEXP}{\mathrm{NEXP}}. Il nondeterminismo non toglie problemi, al più ne aggiunge.

Classi

PNPLNL

Dove: slide Lez. 5; dispensa cap. 11, p. 32 (usato nel corollario PSPACE = NPSPACE)

teorema

Teorema 7.4 (b)

chiesto in 3 domandedimostrato nel corso

NTIME(f(n))⊆SPACE(f(n))\mathrm{NTIME}(f(n)) \subseteq \mathrm{SPACE}(f(n)).

Idea, frase per l'esame e dimostrazione +

Intuizione

Si provano le sequenze di scelte una alla volta riusando lo stesso spazio: ogni computazione è lunga al più f(n)f(n).

All'esame

Dà NP⊆PSPACE\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Da scrivere all'esame

SÌ, per il Teorema 7.4 (b) NTIME(f(n))⊆SPACE(f(n))\mathrm{NTIME}(f(n)) \subseteq \mathrm{SPACE}(f(n)) (si provano i rami uno alla volta riusando lo spazio); per esempio NP⊆PSPACE\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Dimostrazione

Idea: si provano tutti i rami della macchina nondeterministica uno alla volta, cancellando e riusando lo stesso spazio. Ogni ramo è lungo al più f(n)f(n) passi, quindi usa al più f(n)f(n) celle.

  1. Sia L∈NTIME(f(n))L \in \mathrm{NTIME}(f(n)): una MdT nondeterministica NN decide LL e ogni suo ramo fa al più f(n)f(n) passi (budget di tempo f(n)f(n)). Sia dd il grado di nondeterminismo di NN: il numero massimo di scelte possibili in una coppia (stato, simbolo). dd è una costante che dipende solo da NN.
  2. Un ramo è individuato dalla sequenza delle scelte fatte: una sequenza di al più f(n)f(n) interi tra 1 e dd. Ogni intero occupa log⁡d\log d simboli, quindi una sequenza occupa O(f(n)⋅log⁡d)=O(f(n))O(f(n) \cdot \log d) = O(f(n)) celle, perché dd è costante.
  3. Lungo un singolo ramo NN usa al più f(n)f(n) celle per nastro: serve almeno un passo per ogni cella nuova (come in TIME(f(n))⊆SPACE(f(n))\mathrm{TIME}(f(n)) \subseteq \mathrm{SPACE}(f(n))).
  4. La MdT deterministica MM fa così: genera le sequenze di scelte una dopo l'altra (come un contatore in base dd con f(n)f(n) cifre). Per ciascuna cancella i nastri di lavoro e simula NN seguendo quelle scelte. Se la simulazione arriva a "yes", MM accetta. Se nessuna sequenza porta a "yes", MM rifiuta.
  5. Correttezza: NN accetta xx se e solo se almeno un ramo arriva a "yes", cioè se e solo se almeno una sequenza fa accettare MM.
  6. Spazio: in ogni momento MM tiene la sequenza corrente, O(f(n))O(f(n)), più lo spazio della simulazione di un ramo, O(f(n))O(f(n)), che viene riusato dal ramo successivo. In totale O(f(n))O(f(n)), cioè L∈SPACE(f(n))L \in \mathrm{SPACE}(f(n)). (Il tempo di MM invece è esponenziale, circa df(n)d^{f(n)} rami, ma qui conta solo lo spazio.)

Con f(n)f(n) polinomiale: NP⊆PSPACE\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Dove serve nelle tracce

F04 n. 5 · G20v1 n. 6 · SE23 n. 7

Classi

NPPSPACE

Dove: dispensa cap. 11, p. 30; slide Lez. 5

teorema

Teorema 7.4 (c)

chiesto in 5 domandedimostrato nel corso

NSPACE(f(n))⊆TIME(klog⁡n+f(n))\mathrm{NSPACE}(f(n)) \subseteq \mathrm{TIME}(k^{\log n + f(n)}).

Idea, frase per l'esame e dimostrazione +

Intuizione

Si risolve REACHABILITY sul grafo delle configurazioni, che ha un numero di nodi esponenziale in log⁡n+f(n)\log n + f(n).

All'esame

Con f(n)=log⁡nf(n) = \log n dà NL⊆P\htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}}.

Da scrivere all'esame

SÌ, per il Teorema 7.4 (c) NSPACE(f(n))⊆TIME(klog⁡n+f(n))\mathrm{NSPACE}(f(n)) \subseteq \mathrm{TIME}(k^{\log n + f(n)}) (REACHABILITY sul grafo delle configurazioni); con f(n)=log⁡nf(n) = \log n dà NL⊆P\htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}}.

Dimostrazione

Idea (metodo della raggiungibilità): si costruisce il grafo delle configurazioni della macchina nondeterministica; xx è accettato se e solo se dalla configurazione iniziale si raggiunge una configurazione che accetta. Il grafo ha clog⁡n+f(n)c^{\log n + f(n)} nodi e REACHABILITY si risolve in tempo polinomiale nel numero di nodi.

  1. Sia NN una MdT nondeterministica con kk nastri che decide LL con budget di spazio f(n)f(n). Una configurazione di NN è (q,w1,u1,…,wk,uk)(q, w_1, u_1, \ldots, w_k, u_k): lo stato qq e, per ogni nastro, la parte a sinistra della testina wiw_i e quella a destra uiu_i.
  2. Si può accorciare: il nastro di input contiene sempre xx, quindi basta la posizione i≤ni \le n della sua testina; il nastro di output non serve (basta fermarsi in "yes" o "no"). Resta (q,i,w2,u2,…,wk−1,uk−1)(q, i, w_2, u_2, \ldots, w_{k-1}, u_{k-1}), dove ogni nastro di lavoro è lungo al più f(n)f(n) per il budget di spazio.
  3. Il numero di configurazioni è al più ∣K∣⋅(n+1)⋅∣Σ∣(2k−2)f(n)|K| \cdot (n + 1) \cdot |\Sigma|^{(2k-2) f(n)} (KK = stati, Σ\Sigma = alfabeto). Poiché n+1≤2log⁡n+1n + 1 \le 2^{\log n + 1}, questo è al più c1log⁡n+f(n)c_1^{\log n + f(n)} per una costante c1c_1 che dipende solo da NN.
  4. Grafo delle configurazioni G(N,x)G(N, x): nodi = configurazioni; arco da C1C_1 a C2C_2 se NN passa da C1C_1 a C2C_2 con una mossa. Allora x∈L  ⟺  Nx \in L \iff N ha una computazione che accetta   ⟺  \iff in G(N,x)G(N, x) c'è un cammino dalla configurazione iniziale C0C_0 a una configurazione con stato "yes".
  5. REACHABILITY su un grafo con mm nodi si risolve in tempo O(m2)O(m^2) (visita del grafo). Con m=c1log⁡n+f(n)m = c_1^{\log n + f(n)} il tempo è c2⋅(c12)log⁡n+f(n)=O(klog⁡n+f(n))c_2 \cdot (c_1^2)^{\log n + f(n)} = O(k^{\log n + f(n)}) per una costante kk.
  6. Il grafo non va scritto in anticipo: quando l'algoritmo chiede se (C1,C2)(C_1, C_2) è un arco, si simula una mossa di NN da C1C_1 (C1C_1 determina tutte le possibili successive). Questo costa tempo polinomiale nella lunghezza O(log⁡n+f(n))O(\log n + f(n)) di una configurazione, che non cambia il limite.

Quindi NSPACE(f(n))⊆TIME(klog⁡n+f(n))\mathrm{NSPACE}(f(n)) \subseteq \mathrm{TIME}(k^{\log n + f(n)}). Con f(n)=log⁡nf(n) = \log n: k2log⁡n=n2log⁡kk^{2 \log n} = n^{2 \log k}, un polinomio, quindi NL⊆P\htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}}.

Dove serve nelle tracce

F02 n. 6 · F06 n. 7 · F12 n. 1 · G20v3 n. 7 · SP n. 5

Classi

NLP

Dove: dispensa cap. 11, p. 30; slide Lez. 5. La dispensa omette la prova; le slide della Lez. 5 la svolgono.

corollario

Corollario (catena L⊆NL⊆P⊆NP⊆PSPACE\htmlData{term=L}{\mathrm{L}} \subseteq \htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}})

★ chiesto in 13 domande

L⊆NL⊆P⊆NP⊆PSPACE\htmlData{term=L}{\mathrm{L}} \subseteq \htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si ottiene mettendo insieme il Teorema 7.4 (a), (b) e (c).

All'esame

È la catena da citare nelle risposte SÌ "per inclusione".

Da scrivere all'esame

Per la catena L⊆NL⊆P⊆NP⊆PSPACE\htmlData{term=L}{\mathrm{L}} \subseteq \htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}, che segue dal Teorema 7.4 (a), (b) e (c).

Schema della dimostrazione

Idea: ogni anello della catena è un caso particolare del Teorema 7.4, con il budget scelto in modo opportuno.

  1. L⊆NL\htmlData{term=L}{\mathrm{L}} \subseteq \htmlData{term=NL}{\mathrm{NL}}. L=SPACE(log⁡n)\htmlData{term=L}{\mathrm{L}} = \mathrm{SPACE}(\log n) e NL=NSPACE(log⁡n)\htmlData{term=NL}{\mathrm{NL}} = \mathrm{NSPACE}(\log n). Per il Teorema 7.4 (a) con budget di spazio f(n)=log⁡nf(n) = \log n: SPACE(log⁡n)⊆NSPACE(log⁡n)\mathrm{SPACE}(\log n) \subseteq \mathrm{NSPACE}(\log n).
  2. NL⊆P\htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}}. Per il Teorema 7.4 (c) con f(n)=log⁡nf(n) = \log n: NSPACE(log⁡n)⊆TIME(klog⁡n+log⁡n)\mathrm{NSPACE}(\log n) \subseteq \mathrm{TIME}(k^{\log n + \log n}). Ora k2log⁡n=(2log⁡k)2log⁡n=n2log⁡kk^{2 \log n} = (2^{\log k})^{2 \log n} = n^{2 \log k}, che è un polinomio perché kk è una costante. Quindi NL⊆P\htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}}.
  3. P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}. P è l'unione dei TIME(nj)\mathrm{TIME}(n^j) e NP l'unione degli NTIME(nj)\mathrm{NTIME}(n^j). Per il Teorema 7.4 (a) ogni TIME(nj)⊆NTIME(nj)\mathrm{TIME}(n^j) \subseteq \mathrm{NTIME}(n^j).
  4. NP⊆PSPACE\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}. Per il Teorema 7.4 (b) ogni NTIME(nj)⊆SPACE(nj)\mathrm{NTIME}(n^j) \subseteq \mathrm{SPACE}(n^j), che è contenuto in PSPACE (unione degli SPACE(nj)\mathrm{SPACE}(n^j)).
  5. Mettendo insieme i quattro passi: L⊆NL⊆P⊆NP⊆PSPACE\htmlData{term=L}{\mathrm{L}} \subseteq \htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Per il teorema di gerarchia di spazio L⊊PSPACE\htmlData{term=L}{\mathrm{L}} \subsetneq \htmlData{term=PSPACE}{\mathrm{PSPACE}}, quindi almeno una di queste inclusioni è stretta, ma non si sa quale.

Dove: dispensa cap. 11, p. 30; slide Lez. 5. Nelle slide è lasciato come esercizio.

teorema

Teorema di Savitch (Teorema 7.5)

chiesto in 7 domandedimostrato nel corso

REACHABILITY∈SPACE(log⁡2n)\htmlData{term=problem:REACH}{\mathrm{REACHABILITY}} \in \mathrm{SPACE}(\log^2 n).

Idea, frase per l'esame e dimostrazione +
Un cammino viene diviso in due sottocammini tramite il vertice centrale verde.
Per raggiungere yy da xx in al più 2i2^i passi, cerca un punto medio zz e verifica x→zx \to z e z→yz \to y in al più 2i−12^{i-1} passi. Prova i punti medi uno alla volta, riusando lo spazio.

Intuizione

Un cammino lungo al più 2i2^i da xx a yy ha un punto di mezzo zz: si prova ogni zz ricorsivamente riusando lo spazio; la ricorsione è profonda log⁡n\log n e ogni livello usa O(log⁡n)O(\log n) celle.

All'esame

È la base dei corollari NSPACE(f(n))⊆SPACE(f(n)2)\mathrm{NSPACE}(f(n)) \subseteq \mathrm{SPACE}(f(n)^2) e PSPACE=NPSPACE\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \mathrm{NPSPACE}.

Da scrivere all'esame

Per il teorema di Savitch REACHABILITY∈SPACE(log⁡2n)\htmlData{term=problem:REACH}{\mathrm{REACHABILITY}} \in \mathrm{SPACE}(\log^2 n): si cerca ricorsivamente il punto di mezzo del cammino, con ricorsione profonda log⁡n\log n e O(log⁡n)O(\log n) bit per livello.

Dimostrazione

Idea: un cammino da xx a yy lungo al più 2i2^i ha un nodo di mezzo zz, da cui xx e yy distano al più 2i−12^{i-1}. Si prova ogni zz, uno alla volta, risolvendo ricorsivamente le due metà e riusando lo spazio. La ricorsione è profonda log⁡n\log n e ogni livello ricorda solo O(log⁡n)O(\log n) bit.

  1. Il predicato. Sia GG un grafo con nn nodi, xx e yy due nodi, i≥0i \ge 0. PATH(x,y,i)\mathrm{PATH}(x, y, i) vale se in GG c'è un cammino da xx a yy lungo al più 2i2^i. Se yy è raggiungibile da xx, c'è un cammino senza nodi ripetuti, quindi lungo al più n≤2⌈log⁡n⌉n \le 2^{\lceil \log n \rceil}. Perciò REACHABILITY equivale a decidere PATH(x,y,⌈log⁡n⌉)\mathrm{PATH}(x, y, \lceil \log n \rceil).
  2. Caso base i=0i = 0. Un cammino lungo al più 20=12^0 = 1 esiste se x=yx = y oppure se (x,y)(x, y) è un arco: basta guardare una casella della matrice di adiacenza sul nastro di input.
  3. Passo ricorsivo i≥1i \ge 1. PATH(x,y,i)\mathrm{PATH}(x, y, i) vale se e solo se esiste un nodo zz con PATH(x,z,i−1)\mathrm{PATH}(x, z, i-1) e PATH(z,y,i−1)\mathrm{PATH}(z, y, i-1). Perché: se c'è un cammino lungo al più 2i2^i, il nodo zz a metà lo divide in due pezzi lunghi al più 2i−12^{i-1}; viceversa, attaccando due cammini lunghi al più 2i−12^{i-1} si ottiene un cammino lungo al più 2⋅2i−1=2i2 \cdot 2^{i-1} = 2^i.
  4. La macchina. Ha il nastro di input (la matrice di GG, solo lettura) e due nastri di lavoro. Il primo fa da pila dei record di attivazione: contiene triple (x,y,i)(x, y, i) scritte in binario, con il problema corrente più a destra. Il secondo è spazio di appoggio di O(log⁡n)O(\log n) celle (contatore per enumerare i nodi).
  5. Come si esegue la ricorsione. Per ogni nodo zz, uno dopo l'altro: si aggiunge in cima la tripla (x,z,i−1)(x, z, i-1) e la si risolve ricorsivamente. Se la risposta è no, si cancella la tripla e si passa allo zz successivo. Se è sì, si sovrascrive con (z,y,i−1)(z, y, i-1) (yy si legge dalla tripla a sinistra) e la si risolve. Se è no, si cancella e si passa allo zz successivo; se è sì, confrontando con la tripla a sinistra la macchina capisce che era la seconda chiamata, cancella e risponde sì a PATH(x,y,i)\mathrm{PATH}(x, y, i). Se nessuno zz funziona, risponde no.
  6. Correttezza. Per induzione su ii: per i=0i = 0 vale il passo 2; se la macchina risponde bene per i−1i-1, allora per il passo 3 risponde bene per ii.
  7. Spazio. Ogni chiamata ricorsiva abbassa ii di 1 partendo da ⌈log⁡n⌉\lceil \log n \rceil, quindi sulla pila ci sono al più ⌈log⁡n⌉\lceil \log n \rceil (+1+1) triple. Ogni tripla contiene due nodi (log⁡n\log n bit ciascuno) e i≤log⁡ni \le \log n: al più 3log⁡n3 \log n simboli. Quando una chiamata finisce la sua tripla viene cancellata, così lo spazio per i vari zz è riusato. Totale: ⌈log⁡n⌉⋅3log⁡n+log⁡n=O(log⁡2n)\lceil \log n \rceil \cdot 3 \log n + \log n = O(\log^2 n).

Quindi REACHABILITY∈SPACE(log⁡2n)\htmlData{term=problem:REACH}{\mathrm{REACHABILITY}} \in \mathrm{SPACE}(\log^2 n). Attenzione: il tempo è circa nlog⁡nn^{\log n}, non polinomiale; Savitch risparmia spazio, non tempo.

Dove serve nelle tracce

F08 n. 2 · F13 n. 5 · F13 n. 7 · G20v3 n. 4 · FE23 n. 6 · E26 n. 1 · ND n. 1

Classi

NLPSPACE

Problemi

REACHABILITY

Dove: dispensa cap. 11, p. 30; slide Lez. 5

corollario

Corollario di Savitch (spazio nondeterministico)

chiesto in 7 domandedimostrato nel corso

Per ogni funzione propria f(n)≥log⁡nf(n) \ge \log n: NSPACE(f(n))⊆SPACE(f(n)2)\mathrm{NSPACE}(f(n)) \subseteq \mathrm{SPACE}(f(n)^2).

Idea, frase per l'esame e dimostrazione +

Intuizione

Si applica l'algoritmo di Savitch al grafo delle configurazioni, che ha cf(n)c^{f(n)} nodi: log⁡2(cf(n))=O(f(n)2)\log^2(c^{f(n)}) = O(f(n)^2).

All'esame

Togliere il nondeterminismo costa solo un quadrato nello spazio, mentre nel tempo (per quanto si sa) costa un esponenziale.

Da scrivere all'esame

SÌ, per il corollario di Savitch NSPACE(f(n))⊆SPACE(f(n)2)\mathrm{NSPACE}(f(n)) \subseteq \mathrm{SPACE}(f(n)^2) per f(n)≥log⁡nf(n) \ge \log n propria; per esempio NL⊆SPACE(log⁡2n)\htmlData{term=NL}{\mathrm{NL}} \subseteq \mathrm{SPACE}(\log^2 n).

Dimostrazione

Idea: xx è accettato se e solo se nel grafo delle configurazioni c'è un cammino dalla configurazione iniziale a quella che accetta. Si applica l'algoritmo di Savitch a questo grafo, che ha cf(n)c^{f(n)} nodi, senza mai scriverlo: lo spazio è log⁡2(cf(n))=O(f(n)2)\log^2(c^{f(n)}) = O(f(n)^2).

  1. Sia L∈NSPACE(f(n))L \in \mathrm{NSPACE}(f(n)): una MdT nondeterministica NN decide LL con budget di spazio f(n)f(n), dove f(n)≥log⁡nf(n) \ge \log n è una funzione propria (calcolabile in spazio O(f(n))O(f(n))).
  2. Configurazioni. Come nel Teorema 7.4 (c), una configurazione di NN su xx è descritta da stato, posizione sull'input e contenuto dei nastri di lavoro: O(log⁡n+f(n))=O(f(n))O(\log n + f(n)) = O(f(n)) simboli, perché f(n)≥log⁡nf(n) \ge \log n. Il numero di configurazioni è al più clog⁡n+f(n)≤(c2)f(n)c^{\log n + f(n)} \le (c^2)^{f(n)}.
  3. Riduzione a raggiungibilità. x∈Lx \in L se e solo se nel grafo delle configurazioni G(N,x)G(N, x) c'è un cammino dalla configurazione iniziale C0C_0 a una che accetta. Possiamo supporre che NN, prima di accettare, cancelli i nastri e riporti le testine all'inizio: allora c'è un'unica configurazione che accetta, CyesC_{\text{yes}}.
  4. Savitch senza scrivere il grafo. Eseguiamo l'algoritmo di Savitch con x=C0x = C_0, y=Cyesy = C_{\text{yes}} e i=⌈log⁡(numero di configurazioni)⌉=O(f(n))i = \lceil \log (\text{numero di configurazioni}) \rceil = O(f(n)). I nodi zz da provare sono tutte le stringhe lunghe O(f(n))O(f(n)): per enumerarle serve conoscere f(n)f(n), ed è per questo che ff deve essere propria. Quando, nel caso base, serve sapere se (C,C′)(C, C') è un arco, non si consulta una matrice: si controlla se C′C' segue da CC con una mossa di NN, leggendo il simbolo di xx sotto la testina e la relazione Δ\Delta. Questo usa spazio O(f(n))O(f(n)).
  5. Spazio. La pila ha O(f(n))O(f(n)) triple (profondità della ricorsione) e ogni tripla contiene due configurazioni e un intero, cioè O(f(n))O(f(n)) simboli. Totale O(f(n))⋅O(f(n))=O(f(n)2)O(f(n)) \cdot O(f(n)) = O(f(n)^2); in formula, log⁡2(cf(n))=(f(n)⋅log⁡c)2=O(f(n)2)\log^2(c^{f(n)}) = (f(n) \cdot \log c)^2 = O(f(n)^2). Lo spazio per il controllo degli archi, O(f(n))O(f(n)), è minore.

Quindi NSPACE(f(n))⊆SPACE(f(n)2)\mathrm{NSPACE}(f(n)) \subseteq \mathrm{SPACE}(f(n)^2): togliere il nondeterminismo costa al più un quadrato nello spazio.

Dove serve nelle tracce

F08 n. 2 · F13 n. 5 · F13 n. 7 · G20v3 n. 4 · FE23 n. 6 · E26 n. 1 · ND n. 1

Classi

NLPSPACE

Dove: dispensa cap. 11, p. 31; slide Lez. 5

corollario

Corollario: PSPACE=NPSPACE\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \mathrm{NPSPACE}

chiesto in 7 domandedimostrato nel corso

PSPACE=NPSPACE\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \mathrm{NPSPACE}: il nondeterminismo non aggiunge problemi risolubili in spazio polinomiale.

Idea, frase per l'esame e dimostrazione +

Intuizione

Il quadrato di un polinomio è ancora un polinomio.

All'esame

Serve a rispondere SÌ a "NPSPACE⊆PSPACE\mathrm{NPSPACE} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}?" e a dire che un problema PSPACE-completo e uno NPSPACE-completo si riducono l'uno all'altro.

Da scrivere all'esame

SÌ: NPSPACE⊆PSPACE\mathrm{NPSPACE} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} per il corollario di Savitch (NSPACE(nk)⊆SPACE(n2k)\mathrm{NSPACE}(n^k) \subseteq \mathrm{SPACE}(n^{2k})), quindi PSPACE=NPSPACE\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \mathrm{NPSPACE}.

Dimostrazione

Idea: un'inclusione è banale; per l'altra, il corollario di Savitch trasforma un budget di spazio polinomiale nondeterministico in un budget al quadrato deterministico, e il quadrato di un polinomio è ancora un polinomio.

  1. PSPACE⊆NPSPACE\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \mathrm{NPSPACE}. PSPACE è l'unione degli SPACE(nk)\mathrm{SPACE}(n^k) e NPSPACE l'unione degli NSPACE(nk)\mathrm{NSPACE}(n^k). Per il Teorema 7.4 (a), SPACE(nk)⊆NSPACE(nk)\mathrm{SPACE}(n^k) \subseteq \mathrm{NSPACE}(n^k) per ogni kk.
  2. NPSPACE⊆PSPACE\mathrm{NPSPACE} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}. Sia L∈NPSPACEL \in \mathrm{NPSPACE}: allora L∈NSPACE(nk)L \in \mathrm{NSPACE}(n^k) per qualche kk, cioè ha un budget di spazio nkn^k.
  3. Il budget nkn^k è una funzione propria e vale nk≥log⁡nn^k \ge \log n, quindi si può applicare il corollario di Savitch: NSPACE(nk)⊆SPACE((nk)2)=SPACE(n2k)\mathrm{NSPACE}(n^k) \subseteq \mathrm{SPACE}((n^k)^2) = \mathrm{SPACE}(n^{2k}).
  4. n2kn^{2k} è ancora un polinomio, quindi SPACE(n2k)⊆PSPACE\mathrm{SPACE}(n^{2k}) \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} e L∈PSPACEL \in \htmlData{term=PSPACE}{\mathrm{PSPACE}}.
  5. Le due inclusioni danno PSPACE=NPSPACE\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \mathrm{NPSPACE}.

Conseguenze: un problema è PSPACE-completo se e solo se è NPSPACE-completo. Per il tempo la situazione è diversa: se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} non si sa.

Dove serve nelle tracce

F13 n. 7 · F14 n. 3 · LU22 n. 4 · FE23 n. 5 · MA23 n. 1 · E26 n. 7 · ND n. 1

Classi

PSPACE

Dove: dispensa cap. 11, p. 32; dispensa cap. 14, p. 57 (esercizio 3); slide Lez. 5

Capitolo 12 · Riduzioni (Cook-Levin)

proposizione

Proposizione (composizione di riduzioni)

chiesto in 3 domandedimostrato nel corso

Se RR è una riduzione da L1L_1 a L2L_2 e R′R' è una riduzione da L2L_2 a L3L_3, allora R′∘RR' \circ R è una riduzione da L1L_1 a L3L_3 (ancora in spazio logaritmico).

Idea, frase per l'esame e dimostrazione +

Intuizione

R(x)R(x) non si scrive per intero: ogni volta che serve un suo simbolo lo si ricalcola, tenendo solo un contatore di O(log⁡n)O(\log n) bit.

All'esame

Le riduzioni sono transitive: per mostrare che BB è NP-completo basta ridurre a BB un problema già NP-completo.

Da scrivere all'esame

SÌ, perché le riduzioni (in spazio logaritmico) si compongono: se L1L_1 si riduce a L2L_2 e L2L_2 a L3L_3, allora L1L_1 si riduce a L3L_3.

Dimostrazione

Idea: che R′(R(x))R'(R(x)) dia la risposta giusta è immediato. Il problema è lo spazio: R(x)R(x) è troppo lungo per essere scritto in spazio logaritmico. Allora non lo si scrive mai: ogni volta che serve un suo simbolo lo si ricalcola, ricordando solo la posizione con un contatore di O(log⁡n)O(\log n) bit.

  1. Correttezza. x∈L1  ⟺  R(x)∈L2x \in L_1 \iff R(x) \in L_2 (perché RR è una riduzione)   ⟺  R′(R(x))∈L3\iff R'(R(x)) \in L_3 (perché R′R' è una riduzione, applicata alla stringa R(x)R(x)).
  2. Il problema. Siano MRM_R e MR′M_{R'} le macchine che calcolano RR e R′R' in spazio logaritmico. L'idea ingenua è calcolare R(x)R(x) su un nastro di lavoro e poi eseguire MR′M_{R'} su di esso; ma R(x)R(x) può essere molto più lungo di log⁡n\log n (n=∣x∣n = |x|), quindi lo spazio non sarebbe più logaritmico.
  3. Lunghezza di R(x)R(x). MRM_R lavora in spazio O(log⁡n)O(\log n), quindi ha un numero polinomiale di configurazioni e si ferma in tempo polinomiale. Allora ∣R(x)∣≤nc|R(x)| \le n^c per una costante cc, e una posizione in R(x)R(x) si scrive in binario con O(log⁡n)O(\log n) bit.
  4. Il trucco. La macchina composta MM simula MR′M_{R'} e tiene in un contatore ii la posizione della testina di input di MR′M_{R'} (cioè la posizione in R(x)R(x)). Se la testina va a destra, ii aumenta di 1 e MM fa proseguire MRM_R su xx (su nastri separati) finché produce il simbolo successivo, che è quello letto da MR′M_{R'}. Se la testina resta ferma, MM ricorda il simbolo letto. Se va a sinistra, ii diminuisce di 1 e MM riesegue MRM_R su xx dall'inizio, contando i simboli prodotti senza scriverli, finché arriva all'ii-esimo.
  5. Spazio. Il contatore ii e il contatore dei simboli prodotti: O(log⁡nc)=O(log⁡n)O(\log n^c) = O(\log n). Nastri di lavoro di MRM_R: O(log⁡n)O(\log n). Nastri di lavoro di MR′M_{R'}: O(log⁡∣R(x)∣)=O(log⁡n)O(\log |R(x)|) = O(\log n). Totale O(log⁡n)O(\log n). Il tempo cresce per i ricalcoli, ma resta polinomiale e comunque non conta.

Quindi R′∘RR' \circ R è una riduzione da L1L_1 a L3L_3: le riduzioni sono transitive. Per mostrare che BB è NP-completo basta allora mostrare B∈NPB \in \htmlData{term=NP}{\mathrm{NP}} e ridurre a BB un problema già NP-completo AA: ogni problema di NP si riduce ad AA, e componendo si riduce a BB.

Dove serve nelle tracce

F02 n. 2 · MZ22 n. 6 · LU22 n. 3

Dove: dispensa cap. 12, p. 34; appunti Lez. 7

proposizione

Chiusura delle classi rispetto alle riduzioni

★ chiesto in 39 domande

P, NP, coNP, L, NL, PSPACE ed EXP sono chiuse rispetto alle riduzioni: se LL sta nella classe e L′L' si riduce a LL, anche L′L' sta nella classe.

Idea, frase per l'esame e dimostrazione +

Intuizione

Le riduzioni lavorano in spazio logaritmico, quindi in tempo polinomiale: premetterle a un algoritmo non fa uscire dalla classe.

All'esame

È la mossa base delle risposte "solo se": se un problema completo per CC stesse in DD (chiusa), allora C⊆DC \subseteq D.

Da scrivere all'esame

Solo se C⊆DC \subseteq D: DD è chiusa rispetto alle riduzioni, quindi se un problema CC-completo stesse in DD, tutti i problemi di CC (che si riducono a lui) starebbero in DD.

Schema della dimostrazione

Idea: per decidere L′L' si calcola R(x)R(x) e poi si esegue su R(x)R(x) l'algoritmo per LL. La riduzione costa solo spazio logaritmico (quindi tempo polinomiale e output di lunghezza polinomiale), un costo che tutte queste classi possono permettersi.

  1. Situazione. LL sta nella classe CC, e RR è una riduzione da L′L' a LL: x∈L′  ⟺  R(x)∈Lx \in L' \iff R(x) \in L, con RR calcolabile in spazio O(log⁡n)O(\log n). Come nella composizione di riduzioni, RR si calcola in tempo polinomiale e ∣R(x)∣≤nc|R(x)| \le n^c.
  2. P, NP. Si calcola R(x)R(x) in tempo polinomiale, poi si esegue l'algoritmo per LL (deterministico per P, nondeterministico per NP) in tempo q(∣R(x)∣)≤q(nc)q(|R(x)|) \le q(n^c). Un polinomio di un polinomio è un polinomio, quindi L′∈PL' \in \htmlData{term=P}{\mathrm{P}} (o NP).
  3. EXP. Uguale: il tempo è 2(nc)j=2ncj2^{(n^c)^j} = 2^{n^{cj}}, ancora esponenziale.
  4. PSPACE. Si scrive R(x)R(x) (ncn^c celle) e si esegue l'algoritmo per LL in spazio q(nc)q(n^c): polinomiale.
  5. L, NL. Qui R(x)R(x) non si può scrivere (è troppo lungo). Si usa il trucco della composizione di riduzioni: si simula la macchina per LL e, ogni volta che legge l'ii-esimo simbolo di R(x)R(x), lo si ricalcola eseguendo RR da capo. Contatori e nastri: O(log⁡n)+O(log⁡∣R(x)∣)=O(log⁡n)O(\log n) + O(\log |R(x)|) = O(\log n). Per NL la macchina per LL è nondeterministica, ma i ricalcoli di RR sono deterministici, quindi tutto resta nondeterministico in spazio logaritmico.
  6. coNP. L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}} vuol dire che il complemento di LL sta in NP. La stessa RR dà x∉L′  ⟺  R(x)∉Lx \notin L' \iff R(x) \notin L, cioè riduce il complemento di L′L' al complemento di LL. Per il punto 2 il complemento di L′L' sta in NP, quindi L′∈coNPL' \in \htmlData{term=coNP}{\mathrm{coNP}}.
  7. Conseguenza 1 (le risposte "solo se"). Se LL è CC-completo, DD è chiusa rispetto alle riduzioni e L∈DL \in D, allora C⊆DC \subseteq D. Perché: ogni L′∈CL' \in C si riduce a LL (LL è CC-hard), L∈DL \in D, e DD è chiusa, quindi L′∈DL' \in D. Esempi: un problema NP-completo in P dà NP⊆P\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=P}{\mathrm{P}}, cioè P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}; un problema PSPACE-completo in NP dà NP=PSPACE\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}.
  8. Conseguenza 2. Se LL è CC-completo e C′⊆CC' \subseteq C, allora LL è C′C'-hard: ogni problema di C′C' sta anche in CC, quindi si riduce a LL. Esempio: SAT è hard per P e per NL. Attenzione: per essere C′C'-completo serve anche L∈C′L \in C', che in generale non si sa.

Il ragionamento non si applica a classi con budget fisso come TIME(n2)\mathrm{TIME}(n^2): R(x)R(x) può essere lungo ncn^c e il budget va calcolato su quella lunghezza.

Dove: dispensa cap. 12, p. 35; appunti Lez. 7

proposizione

Proposizione (un problema completo per due classi)

per l'oraledimostrato nel corso

Se C1C_1 e C2C_2 sono chiuse rispetto alle riduzioni e un linguaggio LL è completo per entrambe, allora C1=C2C_1 = C_2.

Idea, frase per l'esame e dimostrazione +

Intuizione

Ogni problema di C1C_1 si riduce a LL, che sta in C2C_2, quindi sta in C2C_2; e viceversa.

All'esame

Per esempio: un problema sia NP-completo sia coNP-completo darebbe NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

Da scrivere all'esame

Solo se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}: un linguaggio completo per due classi chiuse rispetto alle riduzioni le fa coincidere.

Dimostrazione

Idea: tutto C1C_1 si riduce a LL, che sta in C2C_2; la chiusura di C2C_2 porta tutto C1C_1 dentro C2C_2. Per simmetria vale anche il contrario.

  1. Ricordiamo: LL è CC-completo se L∈CL \in C (appartenenza) e ogni linguaggio di CC si riduce a LL (difficoltà). CC è chiusa rispetto alle riduzioni se, quando L∈CL \in C e L′L' si riduce a LL, anche L′∈CL' \in C.
  2. C1⊆C2C_1 \subseteq C_2. Sia L′∈C1L' \in C_1. Poiché LL è C1C_1-completo, L′L' si riduce a LL. Poiché LL è anche C2C_2-completo, in particolare L∈C2L \in C_2. Poiché C2C_2 è chiusa rispetto alle riduzioni, L′∈C2L' \in C_2.
  3. C2⊆C1C_2 \subseteq C_1. Stesso ragionamento scambiando i ruoli: ogni L′∈C2L' \in C_2 si riduce a LL (C2C_2-completo), L∈C1L \in C_1 (C1C_1-completo), e C1C_1 è chiusa, quindi L′∈C1L' \in C_1.
  4. Le due inclusioni danno C1=C2C_1 = C_2.

Esempio d'esame: NP e coNP sono chiuse rispetto alle riduzioni; quindi un problema sia NP-completo sia coNP-completo darebbe NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}. Per questo si crede che nessun problema sia entrambe le cose.

Classi

NPcoNP

Dove: dispensa cap. 12, p. 35; appunti Lez. 7

corollario

Corollario (classe piccola con un problema completo per la grande)

per l'oraledimostrato nel corso

Se C1⊆C2C_1 \subseteq C_2, C1C_1 è chiusa rispetto alle riduzioni e contiene un problema C2C_2-completo, allora C1=C2C_1 = C_2.

Idea, frase per l'esame e dimostrazione +

Intuizione

Tutto C2C_2 si riduce a quel problema, e la chiusura di C1C_1 porta tutto dentro C1C_1.

All'esame

Per esempio: un problema NP-completo sta in P solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}; QSAT sta in NP solo se NP=PSPACE\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Da scrivere all'esame

Solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}: P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} ed è chiusa rispetto alle riduzioni, quindi se contenesse un problema NP-completo sarebbe P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.

Dimostrazione

Idea: tutto C2C_2 si riduce al problema C2C_2-completo LL, che sta in C1C_1; la chiusura di C1C_1 porta tutto C2C_2 dentro C1C_1. L'altra inclusione è un'ipotesi.

  1. Ipotesi: C1⊆C2C_1 \subseteq C_2; C1C_1 è chiusa rispetto alle riduzioni; L∈C1L \in C_1 ed LL è C2C_2-completo (ogni linguaggio di C2C_2 si riduce a LL). Resta da mostrare C2⊆C1C_2 \subseteq C_1.
  2. Per assurdo, supponiamo che esista L′∈C2L' \in C_2 con L′∉C1L' \notin C_1.
  3. Poiché LL è C2C_2-completo e L′∈C2L' \in C_2, L′L' si riduce a LL.
  4. Poiché L∈C1L \in C_1 e C1C_1 è chiusa rispetto alle riduzioni, L′∈C1L' \in C_1. Questo contraddice il passo 2.
  5. Quindi C2⊆C1C_2 \subseteq C_1; insieme all'ipotesi C1⊆C2C_1 \subseteq C_2 si ottiene C1=C2C_1 = C_2.

Esempi: P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} e P è chiusa, quindi un problema NP-completo sta in P solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}. NP⊆PSPACE\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} e NP è chiusa, quindi QSAT (PSPACE-completo) sta in NP solo se NP=PSPACE\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}. Letto al contrario: se P≠NP\htmlData{term=P}{\mathrm{P}} \neq \htmlData{term=NP}{\mathrm{NP}}, nessun problema NP-completo sta in P.

Classi

PNPPSPACE

Dove: dispensa cap. 12, p. 36; appunti Lez. 7

teorema

Teorema di Cook-Levin

★ chiesto in 11 domandedimostrato nel corso

SAT è NP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Una computazione nondeterministica polinomiale si descrive con una tabella p(n)×p(n)p(n) \times p(n), e la tabella si scrive come una formula in CNF che è soddisfacibile se e solo se esiste una computazione che accetta.

All'esame

È il primo problema NP-completo: tutte le altre prove di NP-completezza partono da SAT con catene di riduzioni.

Da scrivere all'esame

SAT è NP-completo per il teorema di Cook-Levin: ogni problema in NP si riduce a SAT, e SAT∈NP\htmlData{term=problem:SAT}{\mathrm{SAT}} \in \htmlData{term=NP}{\mathrm{NP}}.

Dimostrazione

Idea: SAT sta in NP perché un'assegnazione si indovina e si controlla in fretta. Per la difficoltà, la computazione di una macchina NP si scrive come una tabella p(n)×p(n)p(n) \times p(n) (righe = tempi, colonne = celle); una formula in CNF descrive la tabella e impone che sia una computazione corretta che accetta.

  1. SAT∈NP\htmlData{term=problem:SAT}{\mathrm{SAT}} \in \htmlData{term=NP}{\mathrm{NP}}. Data φ\varphi in CNF, una MdT nondeterministica sceglie un valore per ogni variabile e controlla in tempo polinomiale che ogni clausola abbia un letterale vero.
  2. Impostazione. Sia L∈NPL \in \htmlData{term=NP}{\mathrm{NP}}, decisa da una MdT nondeterministica MM a un nastro con budget di tempo polinomiale p(n)p(n). Stati q1,…,qrq_1, \dots, q_r (q1q_1 iniziale), simboli σ1,…,σl\sigma_1, \dots, \sigma_l (σ2\sigma_2 è il blank). Sia T=p(n)T = p(n): in TT passi la testina tocca al più TT celle, quindi bastano TT righe e TT colonne. Supponiamo che MM, arrivata in "yes", resti ferma lì fino al tempo TT (si aggiungono a Δ\Delta mosse che non cambiano nulla): così accettare vuol dire "stato yes al tempo TT".
  3. Variabili. Ps,tiP^i_{s,t} = "al tempo tt la cella ss contiene σi\sigma_i"; QtiQ^i_t = "al tempo tt lo stato è qiq_i"; Ss,tS_{s,t} = "al tempo tt la testina è sulla cella ss". Sono O(T2)O(T^2) variabili, un numero polinomiale.
  4. Esattamente uno. Per ogni tt: (S1,t∨⋯∨ST,t)(S_{1,t} \lor \dots \lor S_{T,t}) (almeno una posizione) e (¬Ss,t∨¬Ss′,t)(\neg S_{s,t} \lor \neg S_{s',t}) per ogni s≠s′s \neq s' (non due). Clausole analoghe impongono esattamente un simbolo per cella e tempo, ed esattamente uno stato per tempo. Così ogni riga descrive una sola configurazione.
  5. Riga iniziale. Clausole di un letterale: Q11,S1,1,P1,1i1,…,Pn,1inQ^1_1, S_{1,1}, P^{i_1}_{1,1}, \dots, P^{i_n}_{n,1} per l'input x=σi1⋯σinx = \sigma_{i_1} \cdots \sigma_{i_n}, e Ps,12P^2_{s,1} (blank) per le celle ss da n+1n+1 a TT.
  6. Le celle lontane dalla testina non cambiano. (¬Ss,t∧Ps,ti)⇒Ps,t+1i(\neg S_{s,t} \land P^i_{s,t}) \Rightarrow P^i_{s,t+1}, che in CNF è la clausola (Ss,t∨¬Ps,ti∨Ps,t+1i)(S_{s,t} \lor \neg P^i_{s,t} \lor P^i_{s,t+1}).
  7. Mosse lecite. Per ogni combinazione (qi,σj,qk,σm,←)(q_i, \sigma_j, q_k, \sigma_m, \leftarrow) che NON è in Δ\Delta e per ogni s,ts, t, vietiamo che accada: ¬(Qti∧Ss,t∧Ps,tj∧Qt+1k∧Ps,t+1m∧Ss−1,t+1)\neg(Q^i_t \land S_{s,t} \land P^j_{s,t} \land Q^k_{t+1} \land P^m_{s,t+1} \land S_{s-1,t+1}), cioè la clausola (¬Qti∨¬Ss,t∨¬Ps,tj∨¬Qt+1k∨¬Ps,t+1m∨¬Ss−1,t+1)(\neg Q^i_t \lor \neg S_{s,t} \lor \neg P^j_{s,t} \lor \neg Q^k_{t+1} \lor \neg P^m_{s,t+1} \lor \neg S_{s-1,t+1}). Lo stesso per →\rightarrow (con Ss+1,t+1S_{s+1,t+1}) e per −- (con Ss,t+1S_{s,t+1}). Si aggiunge (¬Ss,t∨Ss−1,t+1∨Ss,t+1∨Ss+1,t+1)(\neg S_{s,t} \lor S_{s-1,t+1} \lor S_{s,t+1} \lor S_{s+1,t+1}): la testina si sposta di al più una cella. Così il passaggio da una riga alla successiva segue per forza una mossa di Δ\Delta.
  8. Accettazione. La clausola QTyesQ^{\text{yes}}_T.
  9. Se x∈Lx \in L, R(x)R(x) è soddisfacibile. MM ha una computazione che accetta xx; diamo a ogni variabile il valore che descrive quella computazione (prolungata fino a TT restando in yes). Ogni clausola è vera per costruzione.
  10. Se R(x)R(x) è soddisfacibile, x∈Lx \in L. Per il passo 4 ogni riga tt descrive una configurazione CtC_t; per il passo 5 C1C_1 è quella iniziale su xx; per i passi 6 e 7 ogni Ct+1C_{t+1} segue da CtC_t con una mossa di Δ\Delta; per il passo 8 lo stato finale è yes. Quindi C1,…,CTC_1, \dots, C_T è una computazione di MM che accetta xx.
  11. Spazio logaritmico. Le clausole sono O(T3)O(T^3), un numero polinomiale, e si stampano una alla volta usando pochi contatori (ss, tt, indici di simboli e stati) che arrivano al più a T=p(n)T = p(n): ciascuno ha O(log⁡n)O(\log n) bit.

Quindi ogni L∈NPL \in \htmlData{term=NP}{\mathrm{NP}} si riduce a SAT, e SAT∈NP\htmlData{term=problem:SAT}{\mathrm{SAT}} \in \htmlData{term=NP}{\mathrm{NP}}: SAT è NP-completo.

Dove serve nelle tracce

F04 n. 1 · F05 n. 6 · F12 n. 2 · F12 n. 5 · F13 n. 3 · F14 n. 6 · L18 n. 5 · GE23 n. 5 · FE23 n. 2 · SE23 n. 1 · ND n. 7

Classi

NP

Problemi

SAT

Dove: dispensa cap. 12, p. 36; appunti Lez. 7. La dispensa dà anche la versione con i circuiti (ogni L∈NPL \in \htmlData{term=NP}{\mathrm{NP}} si riduce a CIRCUIT SAT, che si riduce a SAT); il riepilogo del cap. 22 elenca anche CIRCUIT SAT come NP-completo.

teorema

3-SAT è NP-completo

chiesto in 1 domanda

3-SAT (SAT con clausole di 3 letterali) è NP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si riduce SAT a 3-SAT, spezzando le clausole lunghe con variabili nuove.

All'esame

È il punto di partenza più comodo per le riduzioni ai problemi su grafi e insiemi.

Da scrivere all'esame

3-SAT è NP-completo (SAT si riduce a 3-SAT spezzando le clausole lunghe con variabili nuove), quindi ogni problema in NP si riduce a 3-SAT.

Schema della dimostrazione

Idea: 3-SAT sta in NP come SAT. Per la difficoltà riduciamo SAT a 3-SAT: ogni clausola diventa un gruppo di clausole con esattamente 3 letterali; le clausole lunghe si spezzano con variabili nuove che fanno da "catena" tra i pezzi.

  1. 3-SAT∈NP\htmlData{term=problem:SAT3}{\mathrm{3\text{-}SAT}} \in \htmlData{term=NP}{\mathrm{NP}}. È un caso particolare di SAT: si indovina un'assegnazione e la si controlla in tempo polinomiale.
  2. Clausole corte. Un letterale è una variabile o la sua negazione. (ℓ)(\ell) diventa (ℓ∨ℓ∨ℓ)(\ell \lor \ell \lor \ell) e (ℓ1∨ℓ2)(\ell_1 \lor \ell_2) diventa (ℓ1∨ℓ2∨ℓ2)(\ell_1 \lor \ell_2 \lor \ell_2): ripetere un letterale non cambia il significato. Le clausole da 3 restano uguali.
  3. Clausole lunghe. C=(ℓ1∨⋯∨ℓk)C = (\ell_1 \lor \dots \lor \ell_k) con k≥4k \ge 4 diventa, con variabili nuove y1,…,yk−3y_1, \dots, y_{k-3} usate solo qui: (ℓ1∨ℓ2∨y1)∧(¬y1∨ℓ3∨y2)∧(¬y2∨ℓ4∨y3)∧⋯∧(¬yk−3∨ℓk−1∨ℓk)(\ell_1 \lor \ell_2 \lor y_1) \land (\neg y_1 \lor \ell_3 \lor y_2) \land (\neg y_2 \lor \ell_4 \lor y_3) \land \dots \land (\neg y_{k-3} \lor \ell_{k-1} \lor \ell_k).
  4. Se CC è vera, i pezzi si possono soddisfare tutti. Sia ℓj\ell_j un letterale vero. Rendiamo vere le yy dei pezzi prima di quello che contiene ℓj\ell_j (yhy_h vera per h≤j−2h \le j-2) e false le altre. Allora i pezzi prima sono soddisfatti dalla loro yy positiva, il pezzo di ℓj\ell_j da ℓj\ell_j, i pezzi dopo dalla loro ¬y\neg y.
  5. Se tutti gli ℓi\ell_i sono falsi, i pezzi non si possono soddisfare tutti. Il primo pezzo obbliga y1y_1 vera; allora il secondo obbliga y2y_2 vera; e così via fino a yk−3y_{k-3} vera. Ma allora l'ultimo pezzo (¬yk−3∨ℓk−1∨ℓk)(\neg y_{k-3} \lor \ell_{k-1} \lor \ell_k) è falso.
  6. Equivalenza. Se φ\varphi è soddisfacibile, per il passo 4 l'assegnazione si estende alle yy e soddisfa R(φ)R(\varphi). Se R(φ)R(\varphi) è soddisfatta, per il passo 5 ogni clausola originale ha un letterale vero, quindi la stessa assegnazione (senza le yy) soddisfa φ\varphi.
  7. Spazio logaritmico. Si scorrono le clausole una alla volta, con un contatore per numerare le variabili nuove: O(log⁡n)O(\log n) bit. R(φ)R(\varphi) ha lunghezza lineare in φ\varphi.

Ogni problema di NP si riduce a SAT (Cook-Levin) e SAT a 3-SAT; componendo le riduzioni, 3-SAT è NP-completo.

Dove serve nelle tracce

F03 n. 3

Classi

NP

Problemi

SAT · 3-SAT

Dove: dispensa cap. 12, p. 39; appunti Lez. 8. La dispensa dice solo che si riduce SAT a 3-SAT; la tecnica di spezzare le clausole è descritta negli appunti.

proposizione

2-SAT∈P\htmlData{term=problem:SAT2}{\mathrm{2\text{-}SAT}} \in \htmlData{term=P}{\mathrm{P}}

chiesto in 6 domande

2-SAT (SAT con clausole di 2 letterali) si risolve in tempo polinomiale.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si riduce alla ricerca di cicli in un grafo di dimensione lineare: con due letterali per clausola le scelte sono obbligate.

All'esame

Contrasto classico con 3-SAT; per esempio la riduzione da 2-SAT a CLIQUE esiste perché 2-SAT∈P\htmlData{term=problem:SAT2}{\mathrm{2\text{-}SAT}} \in \htmlData{term=P}{\mathrm{P}} e CLIQUE è NP-completo.

Da scrivere all'esame

SÌ: 2-SAT∈P⊆NP\htmlData{term=problem:SAT2}{\mathrm{2\text{-}SAT}} \in \htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} (si cercano cicli x⇝¬x⇝xx \leadsto \neg x \leadsto x nel grafo delle implicazioni), quindi si riduce a ogni problema NP-completo, per esempio CLIQUE.

Schema della dimostrazione

Idea: una clausola (a∨b)(a \lor b) equivale alle due implicazioni ¬a⇒b\neg a \Rightarrow b e ¬b⇒a\neg b \Rightarrow a. Le scriviamo come archi di un grafo sui letterali; la formula è insoddisfacibile esattamente quando, per qualche variabile xx, da xx si arriva a ¬x\neg x e da ¬x\neg x si torna a xx (un ciclo che passa per xx e ¬x\neg x).

  1. Grafo delle implicazioni. Data φ\varphi con nn variabili e clausole di 2 letterali, il grafo G(φ)G(\varphi) ha 2n2n nodi, uno per ogni letterale xix_i e ¬xi\neg x_i. Per ogni clausola (a∨b)(a \lor b) mettiamo gli archi ¬a→b\neg a \to b e ¬b→a\neg b \to a (con ¬¬x=x\neg\neg x = x). La dimensione è lineare in φ\varphi.
  2. Gli archi propagano la verità. Se un'assegnazione soddisfa φ\varphi e c'è l'arco ¬a→b\neg a \to b, allora ¬a\neg a vero vuol dire aa falso, e la clausola (a∨b)(a \lor b) obbliga bb vero. Seguendo un cammino ℓ⇝ℓ′\ell \leadsto \ell' (⇝\leadsto = "c'è un cammino"), se ℓ\ell è vero lo è anche ℓ′\ell'.
  3. Simmetria. Gli archi vengono a coppie: c'è u→vu \to v se e solo se c'è ¬v→¬u\neg v \to \neg u. Quindi se c'è un cammino ℓ⇝ℓ′\ell \leadsto \ell' c'è anche ¬ℓ′⇝¬ℓ\neg \ell' \leadsto \neg \ell.
  4. Se x⇝¬xx \leadsto \neg x e ¬x⇝x\neg x \leadsto x, φ\varphi è insoddisfacibile. Se xx è vero, per il passo 2 anche ¬x\neg x è vero: assurdo. Se xx è falso, ¬x\neg x è vero e quindi anche xx: assurdo.
  5. Altrimenti φ\varphi è soddisfacibile. Finché resta una variabile senza valore, scegliamo un suo letterale ℓ\ell senza cammino ℓ⇝¬ℓ\ell \leadsto \neg \ell (esiste, perché per ipotesi uno dei due cammini manca) e rendiamo veri ℓ\ell e tutti i letterali raggiungibili da ℓ\ell. Non nasce contraddizione: se da ℓ\ell si raggiungesse ¬y\neg y oltre a yy, per la simmetria y⇝¬ℓy \leadsto \neg \ell, quindi ℓ⇝y⇝¬ℓ\ell \leadsto y \leadsto \neg \ell, contro la scelta di ℓ\ell; e se si raggiungesse un letterale mm già reso falso, per simmetria ¬m⇝¬ℓ\neg m \leadsto \neg \ell con ¬m\neg m già vero, quindi ℓ\ell avrebbe già un valore. Alla fine l'insieme dei letterali veri è chiuso rispetto agli archi, quindi ogni clausola (a∨b)(a \lor b) è vera: se aa è falso, ¬a\neg a è vero e l'arco ¬a→b\neg a \to b rende vero bb.
  6. Tempo polinomiale. Per ogni variabile xx si controlla con due visite del grafo (REACHABILITY) se x⇝¬xx \leadsto \neg x e ¬x⇝x\neg x \leadsto x: O(n)O(n) visite su un grafo di dimensione lineare.

Quindi 2-SAT∈P\htmlData{term=problem:SAT2}{\mathrm{2\text{-}SAT}} \in \htmlData{term=P}{\mathrm{P}}.

Dove serve nelle tracce

F01 n. 7 · F06 n. 2 · G17 n. 2 · GE23 n. 3 · MA23 n. 1 · ND n. 1

Classi

P

Problemi

2-SAT · SAT

Dove: dispensa cap. 12, p. 39; dispensa cap. 13, p. 51 (esercizio 2); appunti Lez. 8

proposizione

HORN-SAT in tempo lineare

Una formula di Horn (clausole con al più un letterale positivo) è soddisfacibile se e solo se ha un'assegnazione che la soddisfa calcolabile in tempo lineare; quindi HORN-SAT∈P\mathrm{HORN\text{-}SAT} \in \htmlData{term=P}{\mathrm{P}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si rendono veri solo i letterali obbligati dalle clausole.

All'esame

Altro caso di SAT ristretto che diventa facile.

Da scrivere all'esame

SÌ: HORN-SAT∈P\mathrm{HORN\text{-}SAT} \in \htmlData{term=P}{\mathrm{P}}, perché si rendono vere solo le variabili obbligate dalle clausole e poi si controllano le clausole negative, in tempo lineare.

Schema della dimostrazione

Idea: si parte con tutte le variabili false e si rende vera una variabile solo quando una clausola obbliga a farlo. Le variabili rese vere lo sono in ogni assegnazione che soddisfa la formula; quindi se così la formula non è soddisfatta, non lo è in nessun modo.

  1. Forma delle clausole. Con al più un letterale positivo, una clausola di Horn è di uno di due tipi: (¬x1∨⋯∨¬xk∨y)(\neg x_1 \lor \dots \lor \neg x_k \lor y), cioè l'implicazione (x1∧⋯∧xk)⇒y(x_1 \land \dots \land x_k) \Rightarrow y (con k=0k = 0 è il fatto "yy vera"); oppure (¬x1∨⋯∨¬xk)(\neg x_1 \lor \dots \lor \neg x_k), tutta negativa: "le xix_i non sono tutte vere".
  2. Algoritmo. Poni tutte le variabili false. Finché esiste un'implicazione con tutte le xix_i vere e yy falsa, rendi yy vera. Alla fine controlla le clausole negative: se sono tutte vere rispondi "soddisfacibile" (con l'assegnazione trovata), altrimenti "insoddisfacibile".
  3. Termina. Ogni giro rende vera una variabile nuova e nessuna torna falsa: al più nn giri, con nn variabili.
  4. Invariante. Ogni variabile resa vera è vera in ogni assegnazione che soddisfa φ\varphi. Per induzione sui giri: yy diventa vera solo quando x1,…,xkx_1, \dots, x_k sono già vere, e per induzione lo sono in ogni assegnazione che soddisfa φ\varphi; allora quella clausola obbliga anche yy.
  5. Correttezza. Se alla fine le clausole negative sono vere, l'assegnazione soddisfa tutto: le implicazioni perché il ciclo si è fermato (nessuna è violata), le negative per il controllo. Se invece una clausola negativa (¬x1∨⋯∨¬xk)(\neg x_1 \lor \dots \lor \neg x_k) è falsa, le sue xix_i sono tutte vere e, per l'invariante, sono vere in ogni assegnazione che soddisfa φ\varphi: quella clausola sarebbe sempre falsa, quindi nessuna assegnazione soddisfa φ\varphi.
  6. Tempo. Così com'è, l'algoritmo fa al più nn scansioni della formula: tempo O(n⋅∣φ∣)O(n \cdot |\varphi|), polinomiale. Per il tempo lineare si tiene, per ogni clausola, un contatore delle premesse ancora false e, per ogni variabile, l'elenco delle clausole in cui è premessa: quando una variabile diventa vera si aggiornano solo quelle clausole, e ogni letterale viene guardato un numero costante di volte.

Quindi HORN-SAT∈P\mathrm{HORN\text{-}SAT} \in \htmlData{term=P}{\mathrm{P}} (anzi si risolve in tempo lineare).

Classi

P

Problemi

HORNSAT

Dove: dispensa cap. 12, p. 39; appunti Lez. 8

Capitolo 13 · Problemi in NP

proposizione

Proposizione 9.1 (certificati succinti)

chiesto in 4 domandedimostrato nel corso

L∈NPL \in \htmlData{term=NP}{\mathrm{NP}} se e solo se esiste una relazione RR decidibile in tempo polinomiale e polinomialmente bilanciata (∣y∣≤∣x∣k|y| \le |x|^k) tale che L={x:(x,y)∈R per qualche y}L = \{x : (x, y) \in R \text{ per qualche } y\}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Il certificato yy è la registrazione di una computazione che accetta: è corto e si controlla in tempo polinomiale.

All'esame

Serve a dimostrare che un problema sta in NP ("indovina e verifica") e a scrivere un certificato succinto negli esercizi.

Da scrivere all'esame

Sta in NP per la Proposizione 9.1: ha un certificato di lunghezza polinomiale che si verifica in tempo polinomiale (indovina e verifica).

Dimostrazione

Idea: "indovina e verifica". Se ogni x∈Lx \in L ha un certificato yy corto e controllabile in fretta, una MdT nondeterministica lo indovina e lo controlla. Viceversa, per una macchina NP il certificato è la registrazione di una sua computazione che accetta.

  1. Termini. RR è un insieme di coppie di stringhe (x,y)(x, y). È decidibile in tempo polinomiale se una MdT deterministica, data x;yx;y, decide in tempo polinomiale se (x,y)∈R(x, y) \in R. È polinomialmente bilanciata se (x,y)∈R(x, y) \in R implica ∣y∣≤∣x∣k|y| \le |x|^k per una costante kk: il certificato yy è corto rispetto a xx.
  2. (⇐\Leftarrow) Dalla relazione alla macchina. Data xx, la MdT nondeterministica MM scrive, scegliendo un simbolo alla volta, una stringa yy lunga al più ∣x∣k|x|^k (ogni ramo scrive una yy diversa). Poi esegue in modo deterministico l'algoritmo polinomiale su x;yx;y e accetta se (x,y)∈R(x, y) \in R.
  3. Correttezza: un ramo accetta   ⟺  \iff esiste yy con (x,y)∈R(x, y) \in R   ⟺  \iff x∈Lx \in L. Tempo: ∣x∣k|x|^k passi per scrivere yy più un polinomio in ∣x∣+∣y∣≤∣x∣+∣x∣k|x| + |y| \le |x| + |x|^k per verificarla, quindi polinomiale. Perciò L∈NPL \in \htmlData{term=NP}{\mathrm{NP}}.
  4. (⇒\Rightarrow) Dalla macchina alla relazione. Sia NN una MdT nondeterministica che decide LL con budget di tempo ∣x∣k|x|^k. Definiamo (x,y)∈R(x, y) \in R se e solo se yy codifica una computazione di NN su xx che accetta (la sequenza delle configurazioni).
  5. RR è bilanciata: la computazione ha al più ∣x∣k|x|^k passi e ogni configurazione è lunga O(∣x∣k)O(|x|^k) (in ∣x∣k|x|^k passi non si usano più celle), quindi ∣y∣|y| è polinomiale in ∣x∣|x|.
  6. RR è decidibile in tempo polinomiale: si controlla che la prima configurazione sia quella iniziale su xx, che ogni configurazione segua dalla precedente con una mossa di Δ\Delta (un controllo locale) e che l'ultima abbia stato "yes". Tutto in tempo lineare in ∣y∣|y|.
  7. Infine x∈Lx \in L   ⟺  \iff NN ha una computazione che accetta xx   ⟺  \iff esiste yy con (x,y)∈R(x, y) \in R, cioè L={x:(x,y)∈R per qualche y}L = \{x : (x, y) \in R \text{ per qualche } y\}.

Negli esercizi: per mostrare che un problema sta in NP basta dire qual è il certificato yy, perché è lungo al più polinomiale e come si controlla in tempo polinomiale.

Dove serve nelle tracce

F03 n. 4 · F14 n. 4 · LU24 n. 4 · SP n. 4

Classi

NP

Dove: dispensa cap. 13, p. 40; appunti Lez. 8

teorema

MAX2SAT è NP-completo

per l'oraledimostrato nel corso

Dato un insieme di clausole con 2 letterali e un intero KK, decidere se si possono soddisfare almeno KK clausole è NP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Ogni clausola di 3SAT diventa un gruppo di 10 clausole di 2 letterali: se ne soddisfano al più 7, e 7 esattamente quando la clausola originale è vera (obiettivo K=7mK = 7m).

All'esame

Mostra che 2-SAT è facile ma la sua versione di massimizzazione è difficile.

Da scrivere all'esame

MAX2SAT è NP-completo (riduzione da 3SAT: 10 clausole per ogni clausola, obiettivo K=7mK = 7m), anche se 2-SAT∈P\htmlData{term=problem:SAT2}{\mathrm{2\text{-}SAT}} \in \htmlData{term=P}{\mathrm{P}}.

Dimostrazione

Idea: ogni clausola di 3SAT diventa un gruppo di 10 clausole con 2 letterali; in un gruppo se ne possono soddisfare al più 7, ed esattamente 7 solo quando la clausola originale è vera. Con obiettivo K=7mK = 7m, raggiungere KK equivale a soddisfare tutta la formula.

  1. MAX2SAT∈NP\htmlData{term=problem:MAX2SAT}{\mathrm{MAX2SAT}} \in \htmlData{term=NP}{\mathrm{NP}}. Certificato: un'assegnazione. Si contano le clausole soddisfatte e si confronta con KK, in tempo polinomiale.
  2. Il gruppo. Le dieci clausole sono: (x)(y)(z)(w)(x)(y)(z)(w); (¬x∨¬y)(¬y∨¬z)(¬z∨¬x)(\neg x \lor \neg y)(\neg y \lor \neg z)(\neg z \lor \neg x); (x∨¬w)(y∨¬w)(z∨¬w)(x \lor \neg w)(y \lor \neg w)(z \lor \neg w). Sono simmetriche in x,y,zx, y, z: conta solo quante di queste tre sono vere. Contiamo le clausole soddisfatte per riga (prima + seconda + terza), scegliendo ww al meglio:
    • x,y,zx, y, z tutte vere: con ww vera 4+0+3=74 + 0 + 3 = 7 (con ww falsa 6);
    • due vere: con ww vera 3+2+2=73 + 2 + 2 = 7, con ww falsa 2+2+3=72 + 2 + 3 = 7;
    • una vera: con ww falsa 1+3+3=71 + 3 + 3 = 7 (con ww vera 6);
    • nessuna vera: con ww falsa 0+3+3=60 + 3 + 3 = 6 (con ww vera 4).
    Quindi mai più di 7; esattamente 7 (con ww scelta bene) se (x∨y∨z)(x \lor y \lor z) è vera; al più 6 se è falsa.
  3. Riduzione. Data un'istanza φ\varphi di 3SAT con mm clausole Ci=(α∨β∨γ)C_i = (\alpha \lor \beta \lor \gamma) (α,β,γ\alpha, \beta, \gamma letterali), per ogni CiC_i aggiungiamo a R(φ)R(\varphi) il gruppo con α,β,γ\alpha, \beta, \gamma al posto di x,y,zx, y, z e una variabile nuova wiw_i, propria di CiC_i, al posto di ww. R(φ)R(\varphi) ha 10m10m clausole; l'obiettivo è K=7mK = 7m.
  4. Se φ\varphi è soddisfacibile, si raggiunge KK. Prendiamo un'assegnazione che soddisfa φ\varphi: in ogni CiC_i almeno un letterale è vero, quindi scegliendo wiw_i come nel passo 2 ogni gruppo dà 7 clausole: 7m7m in totale.
  5. Se si raggiunge KK, φ\varphi è soddisfacibile. Ogni gruppo dà al più 7 clausole e ci sono mm gruppi; per arrivare a 7m7m ogni gruppo deve darne esattamente 7. Un gruppo la cui CiC_i fosse falsa ne darebbe al più 6; quindi ogni CiC_i è vera e la stessa assegnazione soddisfa φ\varphi.
  6. Spazio logaritmico. I gruppi si scrivono uno alla volta con un contatore ii: O(log⁡n)O(\log n) bit.

3SAT è NP-completo e si riduce a MAX2SAT; con il passo 1, MAX2SAT è NP-completo. Contrasto: soddisfare tutte le clausole con 2 letterali (2-SAT) è in P, massimizzarne il numero è NP-completo.

Classi

NP

Problemi

MAX2SAT

Dove: dispensa cap. 13, p. 41; appunti Lez. 8

teorema

INDEPENDENT SET è NP-completo

per l'oraledimostrato nel corso

Dato un grafo GG e un intero KK, decidere se GG ha un insieme indipendente di KK nodi è NP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Riduzione da 3SAT: un triangolo per ogni clausola e un arco tra letterali opposti; un insieme indipendente di mm nodi sceglie un letterale vero per clausola.

All'esame

È il punto di partenza per CLIQUE e NODE COVER.

Da scrivere all'esame

INDEPENDENT SET è NP-completo (riduzione da 3SAT: un triangolo per clausola, archi tra letterali opposti, K=mK = m).

Dimostrazione

Idea: si riduce 3SAT. Ogni clausola diventa un triangolo (un nodo per letterale) e i letterali opposti si collegano con un arco: un insieme indipendente con un nodo per triangolo sceglie, senza contraddizioni, un letterale vero per clausola.

  1. INDEPENDENT SET∈NP\htmlData{term=problem:IS}{\mathrm{INDEPENDENT\ SET}} \in \htmlData{term=NP}{\mathrm{NP}}. Il certificato è l'insieme II di KK nodi. Si controlla in tempo polinomiale che II abbia KK nodi e che nessuna coppia di nodi di II sia collegata da un arco (al più K2K^2 controlli).
  2. Costruzione. Sia φ\varphi (fi) una formula di 3SAT con mm clausole C1,…,CmC_1, \dots, C_m, dove Ci=(αi1∨αi2∨αi3)C_i = (\alpha_{i1} \lor \alpha_{i2} \lor \alpha_{i3}) e ogni αij\alpha_{ij} è una variabile o una variabile negata. Si costruisce il grafo G=(V,E)G = (V, E) (VV è l'insieme dei nodi, EE quello degli archi) con un nodo vijv_{ij} per ogni letterale di ogni clausola, quindi 3m3m nodi, e due tipi di archi: (a) i tre nodi della stessa clausola formano un triangolo; (b) due nodi di clausole diverse sono collegati se i loro letterali sono opposti (xx e ¬x\neg x). L'obiettivo è K=mK = m. La costruzione confronta solo coppie di letterali: spazio logaritmico.
  3. Osservazione chiave. In un triangolo ogni nodo è collegato agli altri due, quindi un insieme indipendente contiene al più un nodo per triangolo. Ci sono mm triangoli, quindi un insieme indipendente di mm nodi ne prende esattamente uno da ciascun triangolo.
  4. Se esiste II indipendente con mm nodi, φ\varphi è soddisfacibile. Si rendono veri i letterali che etichettano i nodi di II (le variabili rimaste libere prendono un valore qualsiasi). L'assegnazione è coerente: due letterali opposti sono collegati da un arco di tipo (b), quindi non stanno entrambi in II. Soddisfa φ\varphi: per il passo 3, II ha un nodo in ogni triangolo, cioè un letterale vero in ogni clausola.
  5. Se φ\varphi è soddisfacibile, esiste II indipendente con mm nodi. Si fissa un'assegnazione che soddisfa φ\varphi e in ogni clausola si sceglie un letterale vero; si prende il nodo corrispondente. I nodi scelti sono mm, uno per triangolo, quindi tra loro non ci sono archi di tipo (a); non ci sono nemmeno archi di tipo (b), perché sono tutti letterali veri e due letterali opposti non sono mai veri insieme.

Quindi φ∈3SAT  ⟺  (G,m)∈INDEPENDENT SET\varphi \in \mathrm{3SAT} \iff (G, m) \in \htmlData{term=problem:IS}{\mathrm{INDEPENDENT\ SET}}, e INDEPENDENT SET è NP-completo.

Classi

NP

Dove: dispensa cap. 13, p. 42; appunti Lez. 8

corollario

Corollario: CLIQUE e NODE COVER sono NP-completi

★ chiesto in 8 domandedimostrato nel corso

CLIQUE e NODE COVER sono NP-completi.

Idea, frase per l'esame e dimostrazione +

Intuizione

Una cricca di GG è un insieme indipendente del grafo complementare; II è indipendente se e solo se V−IV - I è una copertura dei nodi.

All'esame

CLIQUE è il problema NP-completo più usato negli esercizi sulle riduzioni.

Da scrivere all'esame

CLIQUE e NODE COVER sono NP-completi: una cricca di GG è un insieme indipendente del grafo complementare, e II è indipendente se e solo se V−IV - I è una copertura dei nodi.

Dimostrazione

Idea: entrambi sono INDEPENDENT SET “travestito”, quindi basta riscrivere l'istanza.

  1. Appartenenza a NP. Per CLIQUE il certificato è un insieme di KK nodi: si controlla che ogni coppia sia collegata da un arco. Per NODE COVER il certificato è un insieme CC di al più BB nodi (BB è il budget): si controlla che ogni arco abbia almeno un estremo in CC. Entrambi i controlli sono polinomiali.
  2. Grafo complementare. Dato G=(V,E)G = (V, E) (nodi VV, archi EE), il complementare Gˉ\bar G ha gli stessi nodi e ha l'arco [i,j][i, j] esattamente quando GG non ce l'ha. Si costruisce in spazio logaritmico.
  3. INDEPENDENT SET si riduce a CLIQUE. La riduzione manda (G,K)(G, K) in (Gˉ,K)(\bar G, K). Infatti II è indipendente in GG   ⟺  \iff nessuna coppia di nodi di II è un arco di GG   ⟺  \iff ogni coppia di nodi di II è un arco di Gˉ\bar G   ⟺  \iff II è una cricca di Gˉ\bar G. Quindi GG ha un insieme indipendente di KK nodi se e solo se Gˉ\bar G ha una cricca di KK nodi.
  4. Lemma per NODE COVER. II è indipendente   ⟺  \iff V−IV - I è una copertura dei nodi (ogni arco ha un estremo in V−IV - I). Infatti un arco [i,j][i, j] resta scoperto da V−IV - I esattamente quando ii e jj stanno entrambi in II, cioè quando II non è indipendente.
  5. INDEPENDENT SET si riduce a NODE COVER. Con nn nodi, la riduzione manda (G,K)(G, K) in (G,B)(G, B) con B=n−KB = n - K (se K>nK \gt n la risposta è NO e si produce un'istanza NO fissa). Se II è indipendente con KK nodi, V−IV - I è una copertura con n−Kn - K nodi (passo 4). Viceversa, se CC è una copertura con al più n−Kn - K nodi, le si aggiungono nodi fino ad averne esattamente n−Kn - K (aggiungere nodi non scopre nessun arco); allora V−CV - C ha KK nodi ed è indipendente (passo 4).

INDEPENDENT SET è NP-completo e si riduce a entrambi i problemi, che stanno in NP: quindi CLIQUE e NODE COVER sono NP-completi.

Dove serve nelle tracce

F02 n. 3 · F04 n. 1 · F04 n. 2 · F07 n. 6 · L18 n. 6 · G20v4 n. 7 · ND n. 6 · SP n. 4

Classi

NP

Problemi

CLIQUE · NODE COVER

Dove: dispensa cap. 13, p. 44; appunti Lez. 8

teorema

HAMILTON PATH è NP-completo

chiesto in 3 domande

Decidere se un grafo ha un cammino che passa per ogni nodo esattamente una volta è NP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Sta in NP perché un cammino proposto si controlla in tempo lineare; la difficoltà si mostra riducendo 3SAT.

All'esame

Problema NP-completo ricorrente; il suo complemento è coNP-completo.

Da scrivere all'esame

HAMILTON PATH è NP-completo (in NP perché un cammino proposto si verifica in tempo lineare, NP-difficile per riduzione da 3SAT), quindi il suo complemento è coNP-completo.

Schema della dimostrazione

Idea: che HAMILTON PATH stia in NP è immediato (si controlla il cammino proposto). Per la difficoltà, omessa nel corso, si riduce 3SAT (schema dal Papadimitriou): una catena di gadget sceglie i valori delle variabili, un triangolo per clausola controlla che la clausola sia vera, e dei gadget “XOR” rendono coerenti le due parti.

Attenzione alla definizione: un cammino hamiltoniano visita ogni nodo esattamente una volta e non deve tornare al nodo di partenza.

  1. HAMILTON PATH∈NP\htmlData{term=problem:HP}{\mathrm{HAMILTON\ PATH}} \in \htmlData{term=NP}{\mathrm{NP}}. Il certificato è una sequenza di nn nodi (nn è il numero di nodi del grafo). Si controlla in tempo lineare che ogni nodo compaia esattamente una volta e che due nodi consecutivi siano collegati da un arco.
  2. Gadget di scelta. Per ogni variabile xix_i si mettono due nodi uniti da due collegamenti alternativi: uno significa “xix_i vera”, l'altro “xix_i falsa”. I gadget sono messi in fila in una catena: un cammino hamiltoniano che percorre la catena usa, per ogni variabile, esattamente uno dei due collegamenti, cioè sceglie un valore.
  3. Gadget XOR. Esiste un piccolo sottografo che lega due archi in modo che ogni cammino hamiltoniano ne attraversi esattamente uno. Serve a collegare le scelte delle variabili alle clausole.
  4. Gadget di clausola. Per ogni clausola si mette un triangolo, con un lato per ciascuno dei suoi tre letterali. Il lato del letterale xix_i è legato con un XOR al collegamento “xix_i falsa” della catena (per il letterale ¬xi\neg x_i, al collegamento “xix_i vera”). Così un lato è attraversato esattamente quando il suo letterale è falso.
  5. Chiusura. I nodi di tutti i triangoli e l'ultimo nodo della catena sono collegati tutti tra loro, e si aggiungono due nodi di estremità che obbligano il cammino a partire dall'inizio della catena e a finire nella zona dei triangoli. Il grafo ha dimensione polinomiale in φ\varphi (la formula) e si costruisce in spazio logaritmico.
  6. Se c'è un cammino hamiltoniano, φ\varphi è soddisfacibile. Percorrendo la catena il cammino fissa un'assegnazione (passo 2). Non può attraversare tutti e tre i lati di un triangolo, perché chiuderebbe un ciclo e un cammino non ne contiene. Quindi in ogni triangolo almeno un lato non è attraversato, cioè (passo 4) almeno un letterale della clausola è vero.
  7. Se φ\varphi è soddisfacibile, c'è un cammino hamiltoniano. Si percorre la catena scegliendo i collegamenti secondo l'assegnazione; gli XOR fissano quali lati dei triangoli vanno attraversati, e in ogni triangolo almeno un lato resta libero (letterale vero). Si visitano allora i nodi di ogni triangolo usando i lati attraversati e gli archi aggiunti al passo 5 per passare al triangolo successivo, fino al nodo finale.

Quindi 3SAT si riduce a HAMILTON PATH, che è NP-completo.

Dove serve nelle tracce

F03 n. 1 · F03 n. 7 · SP n. 4

Classi

NP

Dove: dispensa cap. 13, p. 44; appunti Lez. 8. La dispensa mostra solo l'appartenenza a NP; per la difficoltà dice soltanto "si riduce 3SAT".

teorema

TSP(D) è NP-completo

chiesto in 5 domandedimostrato nel corso

Data una matrice delle distanze tra nn città e un budget BB, decidere se esiste un giro di tutte le città di costo al più BB è NP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Ogni nodo del grafo diventa una città, a distanza 1 se c'è l'arco e 2 se non c'è: un giro di costo nn esiste se e solo se il grafo ha un ciclo hamiltoniano.

All'esame

Problema NP-completo ricorrente; servono solo distanze 1 e 2, quindi è NP-completo in senso forte.

Da scrivere all'esame

TSP(D) è NP-completo, anche in senso forte: HAMILTON CYCLE vi si riduce con distanza 1 sugli archi, 2 altrove e budget B=nB = n.

Dimostrazione

Idea: si riduce HAMILTON CYCLE (il grafo ha un ciclo che passa per ogni nodo una volta e torna all'inizio?) a TSP(D). I nodi diventano città, a distanza 1 se c'è l'arco e 2 se non c'è, con budget B=nB = n: un giro costa nn solo se usa esclusivamente archi del grafo.

  1. TSP(D)∈NP\htmlData{term=problem:TSPD}{\mathrm{TSP(D)}} \in \htmlData{term=NP}{\mathrm{NP}}. Il certificato è un giro, cioè un ordine delle nn città. Si controlla che ogni città compaia una volta e che la somma delle nn distanze (compreso il ritorno alla prima città) sia ≤B\le B. Tempo polinomiale.
  2. HAMILTON CYCLE è NP-completo. Sta in NP come HAMILTON PATH (si controlla il ciclo proposto). È NP-difficile perché HAMILTON PATH vi si riduce: dato GG si aggiunge un nodo nuovo uu collegato a tutti i nodi. Se GG ha un cammino hamiltoniano v1,…,vnv_1, \dots, v_n, allora u,v1,…,vn,uu, v_1, \dots, v_n, u è un ciclo hamiltoniano del nuovo grafo. Viceversa, togliendo uu da un ciclo hamiltoniano del nuovo grafo resta un cammino che tocca tutti i nodi di GG usando solo archi di GG.
  3. Costruzione. Dato GG con nn nodi, si creano nn città e si pone dijd_{ij} (distanza tra le città ii e jj) =1= 1 se [i,j][i, j] è un arco di GG, =2= 2 altrimenti; il budget è B=nB = n. Ogni casella della matrice dipende da un solo arco: la riduzione si calcola in spazio logaritmico.
  4. Ogni giro costa almeno nn. Un giro di nn città ha esattamente nn tratte, ognuna di costo almeno 1. Quindi costo ≤n\le n   ⟺  \iff costo =n= n   ⟺  \iff ogni tratta costa 1   ⟺  \iff ogni tratta è un arco di GG.
  5. Correttezza. Se GG ha un ciclo hamiltoniano, percorrerlo come giro usa solo archi: costo n≤Bn \le B. Se esiste un giro di costo ≤n\le n, per il passo 4 tutte le sue tratte sono archi di GG, quindi quel giro è un ciclo hamiltoniano di GG.

Quindi TSP(D) è NP-completo. La riduzione usa solo le distanze 1 e 2, cioè numeri piccoli: TSP(D) è NP-completo anche in senso forte.

Dove serve nelle tracce

F03 n. 2 · F08 n. 7 · F14 n. 2 · F14 n. 4 · F14 n. 7

Classi

NP

Dove: dispensa cap. 13, p. 44; appunti Lez. 8

teorema

3-COLORING è NP-completo (2-COLORING∈P\mathrm{2\text{-}COLORING} \in \htmlData{term=P}{\mathrm{P}})

★ chiesto in 10 domandedimostrato nel corso

Decidere se un grafo si colora con 3 colori senza nodi adiacenti dello stesso colore è NP-completo; con 2 colori il problema è in P.

Idea, frase per l'esame e dimostrazione +

Intuizione

Riduzione da 3SAT con due gadget: uno codifica il valore vero/falso dei letterali, l'altro l'OR di una clausola.

All'esame

Esempio classico del salto da 2 a 3: 2-COLORING in P, 3-COLORING NP-completo.

Da scrivere all'esame

3-COLORING è NP-completo (riduzione da 3SAT con un gadget per i valori di verità e un gadget OR), mentre 2-COLORING è in P.

Dimostrazione

Idea: 2-COLORING si risolve colorando “a cascata”. Per 3-COLORING si riduce 3SAT con due gadget: un triangolo che dà un nome ai tre colori (Vero, Falso, Neutro) e obbliga ogni letterale a essere VV o FF, e un gadget OR la cui uscita può essere VV solo se uno degli ingressi è VV.

  1. 2-COLORING∈P\mathrm{2\text{-}COLORING} \in \htmlData{term=P}{\mathrm{P}} (il corso lo afferma senza prova). In ogni componente connessa si colora un nodo; i suoi vicini sono obbligati ad avere l'altro colore, i loro vicini il primo, e così via (visita in ampiezza). Il grafo è 2-colorabile se e solo se questa colorazione obbligata non crea conflitti: tempo lineare.
  2. 3-COLORING∈NP\mathrm{3\text{-}COLORING} \in \htmlData{term=NP}{\mathrm{NP}}. Il certificato è un colore per ogni nodo; si controlla che ogni arco abbia estremi di colori diversi. Tempo polinomiale.
  3. 1° gadget: valori di verità. Si mette un triangolo di nodi V,F,NV, F, N (vero, falso, neutro): in ogni 3-colorazione hanno tre colori diversi, e chiamiamo i colori con i loro nomi. Per ogni variabile xx si mettono due nodi xx e ¬x\neg x, collegati tra loro e al nodo NN. Allora xx e ¬x\neg x non sono NN e sono diversi tra loro: uno è VV e l'altro FF. Colorare questi nodi equivale a scegliere un'assegnazione di verità.
  4. 2° gadget: OR. Dati due nodi di ingresso pp e qq, si aggiunge un triangolo a,b,oa, b, o con aa collegato a pp e bb collegato a qq; oo è l'uscita. (i) Se pp e qq sono entrambi FF, allora aa e bb non sono FF, quindi sono VV e NN in qualche ordine, e oo deve essere FF. (ii) Se pp o qq è VV, il gadget si può colorare con o=Vo = V: per esempio, se p=Vp = V si pone a=Fa = F, b=Nb = N, o=Vo = V (se invece q=Vq = V, simmetricamente a=Na = N, b=Fb = F).
  5. Clausole. Per la clausola (ℓ1∨ℓ2∨ℓ3)(\ell_1 \lor \ell_2 \lor \ell_3) si mettono due OR in cascata: il primo ha ingressi ℓ1\ell_1 e ℓ2\ell_2; il secondo ha ingressi l'uscita del primo e ℓ3\ell_3. L'uscita finale è collegata ai nodi FF e NN, quindi deve essere VV. Il grafo ha dimensione lineare nella formula φ\varphi.
  6. Se il grafo è 3-colorabile, φ\varphi è soddisfacibile. Si prende l'assegnazione letta al passo 3. Se una clausola avesse i tre letterali FF, per (i) l'uscita del primo OR sarebbe FF e, di nuovo per (i), anche l'uscita finale: impossibile, perché è VV. Quindi ogni clausola ha un letterale vero.
  7. Se φ\varphi è soddisfacibile, il grafo è 3-colorabile. Si colorano V,F,NV, F, N e i letterali secondo l'assegnazione. In ogni clausola c'è un letterale VV. Se è ℓ1\ell_1 o ℓ2\ell_2, per (ii) il primo OR ha uscita VV e allora anche il secondo ha uscita VV. Altrimenti ℓ1\ell_1 e ℓ2\ell_2 sono FF, il primo OR si colora con uscita FF (come in (i)) e il secondo ha uscita VV per (ii), perché ℓ3=V\ell_3 = V.

Quindi 3SAT si riduce a 3-COLORING, che è NP-completo.

Dove serve nelle tracce

F04 n. 3 · F12 n. 2 · F14 n. 1 · G20v1 n. 4 · MA23 n. 2 · MA23 n. 7 · SE23 n. 6 · LU24 n. 2 · ND n. 1 · ND n. 4

Classi

PNP

Problemi

2-COL · 3-COL

Dove: dispensa cap. 13, p. 44; appunti Lez. 8. Che 2-COLORING sia in P è solo affermato, senza prova.

teorema

TRIPARTITE MATCHING è NP-completo

Dati tre insiemi BB, GG, HH di nn elementi e una relazione T⊆B×G×HT \subseteq B \times G \times H, decidere se esistono nn terne di TT senza componenti in comune è NP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Con le coppie (matching bipartito) il problema è facile; con le terne diventa difficile.

All'esame

È il punto di partenza per i problemi su insiemi.

Da scrivere all'esame

TRIPARTITE MATCHING è NP-completo (riduzione da 3SAT, prova omessa nel corso), quindi lo sono anche le sue generalizzazioni come EXACT COVER BY 3-SETS.

Schema della dimostrazione

Idea: che il problema stia in NP è immediato. Per la difficoltà, omessa nel corso, si riduce 3SAT (schema dal Papadimitriou): ogni variabile diventa un “anello” di terne che si completa solo in due modi (vero o falso); ogni clausola diventa una coppia ragazzo-ragazza che trova casa solo se un suo letterale è vero; alcune coppie “di raccolta” occupano le case avanzate.

  1. In NP. Il certificato sono nn terne: si controlla che stiano in TT e che non abbiano componenti in comune.
  2. Preparazione. Sia φ\varphi una formula 3SAT con mm clausole di tre letterali: ci sono 3m3m occorrenze di letterali. Ogni occorrenza della variabile xx riceve due case: una che resta libera quando xx è vera e una che resta libera quando xx è falsa.
  3. Gadget della variabile xx. Se xx compare kk volte, si mettono kk ragazzi b1,…,bkb_1, \dots, b_k, kk ragazze g1,…,gkg_1, \dots, g_k e le sue 2k2k case h1,…,h2kh_1, \dots, h_{2k} ad anello, con le terne (bj,gj,h2j−1)(b_j, g_j, h_{2j-1}) e (bj,gj+1,h2j)(b_j, g_{j+1}, h_{2j}), dove gk+1=g1g_{k+1} = g_1. Questi ragazzi e ragazze non compaiono altrove. Se b1b_1 usa la prima terna, g2g_2 può andare solo con b2b_2, che deve usare anche lui la prima terna, e così via lungo l'anello; lo stesso vale per la seconda terna. Quindi ci sono solo due modi di sistemare il gadget: occupare tutte le case dispari (restano libere le pari: “xx vera”) oppure tutte le pari (restano libere le dispari: “xx falsa”).
  4. Gadget di clausola. Per ogni clausola si aggiungono un ragazzo e una ragazza, con tre terne: una per ogni letterale, verso la casa della sua occorrenza che è libera quando il letterale è vero (per xx una casa pari, per ¬x\neg x una dispari). La coppia trova casa solo se almeno un letterale è vero.
  5. Raccolta. Le case sono 2⋅3m=6m2 \cdot 3m = 6m; i gadget delle variabili ne occupano 3m3m e le clausole mm, quindi ne avanzano 2m2m. Si aggiungono 2m2m coppie “di raccolta”, ognuna con una terna verso ogni casa. Ora ragazzi, ragazze e case sono tutti 6m6m. La costruzione è polinomiale.
  6. Se φ\varphi è soddisfacibile, c'è un matching. Si sistema ogni gadget secondo l'assegnazione; ogni clausola prende la casa libera di un suo letterale vero (clausole diverse usano occorrenze diverse, quindi case diverse); le coppie di raccolta prendono le 2m2m case rimaste.
  7. Se c'è un matching, φ\varphi è soddisfacibile. Dal modo in cui è sistemato ogni gadget si legge il valore della variabile (passo 3). Ogni coppia di clausola ha una casa, e quella casa è libera solo se il letterale corrispondente è vero: ogni clausola è soddisfatta.

Classi

NP

Dove: dispensa cap. 13, p. 47; appunti Lez. 8

corollario

Corollario: EXACT COVER BY 3-SETS, SET COVERING e SET PACKING sono NP-completi

per l'oraledimostrato nel corso

EXACT COVER BY 3-SETS, SET COVERING e SET PACKING sono NP-completi.

Idea, frase per l'esame e dimostrazione +

Intuizione

Sono tutti generalizzazioni di TRIPARTITE MATCHING: se un caso particolare è difficile, lo è anche il problema generale.

Da scrivere all'esame

EXACT COVER BY 3-SETS, SET COVERING e SET PACKING sono NP-completi perché generalizzano TRIPARTITE MATCHING, che è NP-completo.

Dimostrazione

Idea: TRIPARTITE MATCHING è un caso particolare di EXACT COVER BY 3-SETS, che a sua volta è un caso particolare sia di SET COVERING sia di SET PACKING. Se un caso particolare è NP-completo, lo è anche il problema più generale: la riduzione consiste solo nel riscrivere l'istanza.

  1. Tutti in NP. Il certificato è la lista degli insiemi scelti; si controlla in tempo polinomiale che siano disgiunti e/o che la loro unione sia l'universo UU, e che il loro numero rispetti il budget BB o l'obiettivo KK.
  2. TRIPARTITE MATCHING → EXACT COVER BY 3-SETS. Data l'istanza (B,G,H,T)(B, G, H, T) si pone U=B∪G∪HU = B \cup G \cup H (elementi tutti distinti, quindi ∣U∣=3n|U| = 3n, cioè m=nm = n) e la famiglia FF delle terne di TT, ognuna vista come insieme {b,g,h}\{b, g, h\} di 3 elementi. nn terne senza componenti in comune sono nn insiemi disgiunti di 3 elementi, quindi coprono 3n3n elementi, cioè tutto UU; viceversa una copertura esatta è fatta di nn terne disgiunte. Quindi matching   ⟺  \iff copertura esatta.
  3. EXACT COVER BY 3-SETS → SET COVERING. Stessa famiglia, budget B=mB = m. Una copertura esatta usa mm insiemi. Viceversa, se al più mm insiemi di 3 elementi coprono UU, che ha 3m3m elementi, devono essere esattamente mm e disgiunti: altrimenti la loro unione avrebbe meno di 3m3m elementi.
  4. EXACT COVER BY 3-SETS → SET PACKING. Stessa famiglia, obiettivo K=mK = m. Una copertura esatta dà mm insiemi disgiunti. Viceversa, mm insiemi disgiunti di 3 elementi contengono in tutto 3m3m elementi, quindi la loro unione è tutto UU: è una copertura esatta.

Le trasformazioni si calcolano in spazio logaritmico e TRIPARTITE MATCHING è NP-completo: quindi i tre problemi sono NP-completi.

Classi

NP

Dove: dispensa cap. 13, p. 47; appunti Lez. 8

proposizione

INTEGER PROGRAMMING è NP-completo

Decidere se un sistema di disuguaglianze lineari a coefficienti interi ha una soluzione intera è NP-completo; senza il vincolo di interi (LINEAR PROGRAMMING) il problema è in P.

Idea, frase per l'esame e dimostrazione +

Intuizione

Tutti i problemi visti si scrivono come disuguaglianze lineari sugli interi (per esempio SET COVERING); la parte difficile è dimostrare che il problema sta in NP.

Da scrivere all'esame

INTEGER PROGRAMMING è NP-completo (per esempio SET COVERING si scrive come disuguaglianze su variabili 0/1), mentre LINEAR PROGRAMMING è in P.

Schema della dimostrazione

Idea: la difficoltà è facile, perché SET COVERING (come quasi tutti i problemi visti) si scrive come sistema di disuguaglianze su variabili intere 0/1. La parte difficile, omessa nel corso, è l'appartenenza a NP: bisogna garantire che, se c'è una soluzione intera, ce ne sia una abbastanza “corta” da fare da certificato.

  1. Riduzione da SET COVERING. Data la famiglia S1,…,SnS_1, \dots, S_n di sottoinsiemi di UU e il budget BB, si usa una variabile xix_i per ogni insieme con 0≤xi≤10 \le x_i \le 1: sugli interi xix_i vale 1 se SiS_i è scelto e 0 altrimenti. Per ogni elemento uu di UU si scrive la somma delle xix_i con u∈Siu \in S_i ≥1\ge 1 (uu è coperto), e poi x1+⋯+xn≤Bx_1 + \dots + x_n \le B (al più BB insiemi). In forma compatta Ax≥1Ax \ge 1, dove AA ha una riga per ogni elemento e una colonna per ogni insieme (la colonna ii è il vettore di bit di SiS_i).
  2. Correttezza. Le soluzioni intere del sistema sono esattamente i vettori 0/1 che indicano al più BB insiemi con unione UU. Quindi il sistema ha soluzione intera   ⟺  \iff l'istanza di SET COVERING è SÌ. Il sistema si scrive in spazio logaritmico: INTEGER PROGRAMMING è NP-difficile.
  3. Perché l'appartenenza a NP non è ovvia. L'idea naturale è “indovina una soluzione intera e verificala”. Ma in generale le variabili non sono limitate a 0/1: a priori le soluzioni potrebbero contenere solo numeri enormi, con più cifre di quante ne possa avere un certificato polinomiale.
  4. Il risultato che serve (note del libro). Se un sistema di disuguaglianze lineari a coefficienti interi ha una soluzione intera, ne ha anche una le cui componenti sono al più esponenziali nella dimensione dell'istanza (dipendono dal numero di variabili, di vincoli e dal coefficiente più grande). Il motivo è che si può partire dai “vertici” del sistema, che per la regola di Cramer sono rapporti di determinanti e hanno un numero polinomiale di cifre.
  5. Conclusione. Il certificato è quella soluzione piccola: ha un numero polinomiale di bit e si verifica sostituendola nelle disuguaglianze in tempo polinomiale. Quindi INTEGER PROGRAMMING∈NP\htmlData{term=problem:IP}{\mathrm{INTEGER\ PROGRAMMING}} \in \htmlData{term=NP}{\mathrm{NP}} ed è NP-completo.
  6. LINEAR PROGRAMMING∈P\htmlData{term=problem:LP}{\mathrm{LINEAR\ PROGRAMMING}} \in \htmlData{term=P}{\mathrm{P}}. Senza il vincolo di interi il problema si risolve in tempo polinomiale (algoritmo dell'ellissoide); il corso lo afferma soltanto.

Classi

PNP

Dove: dispensa cap. 13, p. 47; appunti Lez. 8. La dispensa mostra solo la difficoltà; l'appartenenza a NP è rimandata alle note del libro.

teorema

KNAPSACK è NP-completo

per l'oraledimostrato nel corso

Dati nn oggetti con peso e valore interi, un limite di peso WW e un obiettivo KK, decidere se si possono scegliere oggetti di peso totale ≤W\le W e valore ≥K\ge K è NP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Riduzione da EXACT COVER BY 3-SETS: ogni insieme diventa un numero scritto in base n+1n+1, così le somme non hanno riporti; servono però numeri esponenzialmente grandi.

All'esame

È l'unico NP-completo del capitolo che non lo è in senso forte.

Da scrivere all'esame

KNAPSACK è NP-completo (riduzione da EXACT COVER BY 3-SETS con numeri in base n+1n + 1), ma non in senso forte: la riduzione crea numeri di valore esponenziale.

Dimostrazione

Idea: basta mostrare NP-completo il caso particolare con valore = peso e K=WK = W, cioè trovare dei numeri con somma esattamente KK. Lo si fa riducendo EXACT COVER BY 3-SETS: ogni insieme diventa un numero le cui cifre dicono quali elementi contiene, scritto in base n+1n + 1 perché nelle somme non ci siano riporti.

  1. KNAPSACK∈NP\htmlData{term=problem:KNAP}{\mathrm{KNAPSACK}} \in \htmlData{term=NP}{\mathrm{NP}}. Il certificato è l'insieme SS degli oggetti scelti; si controlla in tempo polinomiale che la somma dei pesi wiw_i sia ≤W\le W e quella dei valori viv_i sia ≥K\ge K.
  2. Caso particolare. Se vi=wiv_i = w_i per ogni ii e K=WK = W, le due condizioni diventano “somma ≤K\le K” e “somma ≥K\ge K”, cioè somma esattamente KK. Questo caso è un'istanza di KNAPSACK: se è NP-difficile, lo è anche KNAPSACK.
  3. Costruzione. Data un'istanza di EXACT COVER BY 3-SETS con insiemi S1,…,SnS_1, \dots, S_n su U={1,…,3m}U = \{1, \dots, 3m\}, si vede ogni SiS_i come un vettore di 3m3m bit (il bit jj vale 1 se j∈Sij \in S_i) e lo si legge come numero in base n+1n + 1: wi=somma di (n+1)3m−j per j∈Siw_i = \text{somma di } (n+1)^{3m-j} \text{ per } j \in S_i. Si pone K=(n+1)0+(n+1)1+⋯+(n+1)3m−1K = (n+1)^0 + (n+1)^1 + \dots + (n+1)^{3m-1}, cioè il numero con 3m3m cifre tutte uguali a 1 (l'intero universo UU).
  4. Perché la base n+1n + 1. In base 2 ci sarebbero riporti: 0011+0101+0111=11110011 + 0101 + 0111 = 1111, anche se {3,4}\{3, 4\}, {2,4}\{2, 4\}, {2,3,4}\{2, 3, 4\} non sono disgiunti. In base n+1n + 1, sommando alcuni degli nn numeri, la cifra in posizione jj vale quanti insiemi scelti contengono jj: al più nn, quindi meno della base n+1n + 1, e non c'è mai riporto.
  5. Correttezza. Senza riporti, la somma dei numeri scelti è KK se e solo se ogni cifra vale esattamente 1, cioè se e solo se ogni elemento di UU sta in esattamente uno degli insiemi scelti: è proprio una copertura esatta.
  6. Dimensione. Ogni numero ha 3m3m cifre in base n+1n + 1, quindi O(mlog⁡n)O(m \log n) bit: la riduzione è polinomiale (anzi in spazio logaritmico), anche se il valore dei numeri è esponenziale.

Quindi KNAPSACK è NP-completo. I numeri costruiti sono esponenziali: per questo la prova non dice nulla sul caso con numeri piccoli, che infatti si risolve con l'algoritmo pseudopolinomiale O(nW)O(nW).

Classi

NP

Problemi

KNAPSACK

Dove: dispensa cap. 13, p. 48; appunti Lez. 8

proposizione

Proposizione (KNAPSACK in tempo O(nW)O(nW))

per l'oraledimostrato nel corso

Ogni istanza di KNAPSACK si risolve in tempo O(nW)O(nW), dove nn è il numero di oggetti e WW il limite di peso.

Idea, frase per l'esame e dimostrazione +

Intuizione

Programmazione dinamica su una tabella n×Wn \times W; ma WW può essere esponenziale nella lunghezza dell'input (circa nlog⁡Wn \log W), quindi l'algoritmo è solo pseudopolinomiale.

All'esame

Non dimostra P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}: il tempo è polinomiale nel valore dei numeri, non nella loro lunghezza.

Da scrivere all'esame

KNAPSACK si risolve in tempo O(nW)O(nW), ma è un algoritmo pseudopolinomiale (WW è esponenziale nella lunghezza dell'input), quindi non implica P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.

Dimostrazione

Idea: programmazione dinamica. Si riempie una tabella che, per ogni numero di oggetti considerati e ogni limite di peso, ricorda il massimo valore ottenibile; ogni casella costa un numero costante di operazioni.

  1. Tabella. Per 0≤i≤n0 \le i \le n e 0≤w≤W0 \le w \le W, V(w,i)V(w, i) è il massimo valore ottenibile scegliendo tra i primi ii oggetti con peso totale al più ww. Le caselle sono (n+1)(W+1)(n + 1)(W + 1), cioè O(nW)O(nW).
  2. Inizio. V(w,0)=0V(w, 0) = 0 per ogni ww: senza oggetti il valore è 0.
  3. Passo. V(w,i+1)=max⁡{V(w,i), vi+1+V(w−wi+1,i)}V(w, i+1) = \max\{V(w, i),\ v_{i+1} + V(w - w_{i+1}, i)\}, dove il secondo termine si usa solo se wi+1≤ww_{i+1} \le w. Vale perché una scelta ottima tra i primi i+1i+1 oggetti o non prende l'oggetto i+1i+1, e allora è una scelta ottima tra i primi ii con limite ww; oppure lo prende, e allora il resto è una scelta tra i primi ii con il peso rimasto w−wi+1w - w_{i+1}, e conviene che sia ottima.
  4. Ordine e costo. Si calcolano le caselle per ii crescente: ognuna usa due caselle della colonna precedente, già pronte, e un numero costante di operazioni. Tempo totale O(nW)O(nW).
  5. Risposta. L'istanza è SÌ se e solo se V(W,n)≥KV(W, n) \ge K. (La dispensa parla di peso “esattamente ww” e guarda se qualche casella è ≥K\ge K; partendo da V(w,0)=0V(w, 0) = 0 per ogni ww si ottiene di fatto la versione “al più ww”, e la risposta è la stessa.)
  6. Perché non dimostra P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}. WW si scrive in binario con circa log⁡W\log W bit, quindi la lunghezza dell'input è circa nlog⁡Wn \log W. Il tempo O(nW)O(nW) è polinomiale nel valore WW ma esponenziale nella sua lunghezza (W=2log⁡WW = 2^{\log W}): l'algoritmo è solo pseudopolinomiale.

Classi

NP

Problemi

KNAPSACK

Dove: dispensa cap. 13, p. 49; appunti Lez. 8

proposizione

NP-completezza in senso forte

Un problema che resta NP-completo anche quando i numeri nell'input hanno valore polinomiale (strongly NP-complete) non ha algoritmi pseudopolinomiali, a meno che P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}. Tutti gli NP-completi del capitolo lo sono in senso forte, tranne KNAPSACK.

Idea, frase per l'esame e dimostrazione +

Intuizione

Se i numeri sono piccoli, un algoritmo pseudopolinomiale diventa polinomiale.

Da scrivere all'esame

Un problema NP-completo in senso forte non ha algoritmi pseudopolinomiali a meno che P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}; tutti gli NP-completi visti lo sono, tranne KNAPSACK.

Schema della dimostrazione

Idea: se i numeri di un'istanza hanno valore polinomiale nella sua lunghezza, un algoritmo pseudopolinomiale, che è polinomiale nel valore dei numeri, diventa un algoritmo polinomiale vero e proprio.

  1. Definizioni. Un algoritmo è pseudopolinomiale se impiega tempo q(∣x∣,M)q(|x|, M), con qq polinomio, dove ∣x∣|x| è la lunghezza dell'istanza e MM il valore del numero più grande che contiene. Un problema LL è NP-completo in senso forte se, per un polinomio pp, resta NP-completo la sua restrizione LpL_p alle istanze con numeri di valore al più p(∣x∣)p(|x|).
  2. L'algoritmo sulla restrizione. Supponiamo che LL abbia un algoritmo pseudopolinomiale AA. Per decidere LpL_p si controlla prima che i numeri siano ≤p(∣x∣)\le p(|x|) (tempo polinomiale), poi si esegue AA. Su queste istanze M≤p(∣x∣)M \le p(|x|), quindi AA impiega tempo q(∣x∣,p(∣x∣))q(|x|, p(|x|)), che è un polinomio in ∣x∣|x|. Dunque Lp∈PL_p \in \htmlData{term=P}{\mathrm{P}}.
  3. Conseguenza. LpL_p è NP-completo, quindi ogni problema di NP vi si riduce; P è chiusa rispetto alle riduzioni, quindi NP⊆P\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=P}{\mathrm{P}}, cioè P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.
  4. Gli NP-completi del capitolo sono forti. In SAT, CLIQUE, HAMILTON PATH, TRIPARTITE MATCHING ecc. i numeri sono solo nomi di nodi o indici di variabili, di valore al più la lunghezza dell'istanza; TSP(D) è NP-completo già con distanze 1 e 2. Le loro riduzioni producono solo numeri piccoli, quindi restano NP-completi ristretti a numeri polinomiali.
  5. L'eccezione KNAPSACK. La sua riduzione da EXACT COVER BY 3-SETS crea numeri di valore esponenziale, e KNAPSACK ha l'algoritmo pseudopolinomiale O(nW)O(nW). Per i passi 2-3, se fosse NP-completo in senso forte avremmo P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.

Classi

PNP

Problemi

KNAPSACK

Dove: dispensa cap. 13, p. 50; appunti Lez. 8

Capitolo 14 · coNP

teorema

VALIDITY è coNP-completo

chiesto in 7 domandedimostrato nel corso

VALIDITY (la formula è vera per ogni assegnazione?) è coNP-completo; lo è anche HAMILTON PATH COMPLEMENT (il grafo non ha cammini hamiltoniani?).

Idea, frase per l'esame e dimostrazione +

Intuizione

Se L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}}, il suo complemento si riduce a SAT con una RR; allora R′(x)=¬R(x)R'(x) = \neg R(x) riduce LL a VALIDITY.

All'esame

È il coNP-completo di riferimento: per esempio una riduzione da SAT a VALIDITY esiste solo se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

Da scrivere all'esame

VALIDITY è coNP-completo (se RR riduce L‾\overline{L} a SAT, R′(x)=¬R(x)R'(x) = \neg R(x) riduce LL a VALIDITY), quindi una riduzione da SAT a VALIDITY implicherebbe NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

Dimostrazione

Idea: VALIDITY è il “negativo” di SAT: una formula è valida se e solo se la sua negazione è insoddisfacibile. Quindi una riduzione verso SAT, seguita da una negazione, diventa una riduzione verso VALIDITY.

  1. VALIDITY∈coNP\htmlData{term=problem:VALIDITY}{\mathrm{VALIDITY}} \in \htmlData{term=coNP}{\mathrm{coNP}}. Il suo complemento (le formule non valide) sta in NP: il certificato è un'assegnazione che rende falsa la formula, e si verifica in tempo polinomiale. Una formula valida non ha un tale certificato.
  2. Partenza. Sia LL un linguaggio qualsiasi di coNP. Per definizione il suo complemento L‾\overline{L} (le stringhe che non stanno in LL) sta in NP. SAT è NP-completo, quindi esiste una riduzione RR da L‾\overline{L} a SAT: per ogni xx, x∈L‾x \in \overline{L}   ⟺  \iff R(x)R(x) è soddisfacibile.
  3. Nuova riduzione. Si pone R′(x)=¬R(x)R'(x) = \neg R(x): si calcola R(x)R(x) e si aggiungono una negazione e una coppia di parentesi, sempre in spazio logaritmico.
  4. Correttezza. x∈L  ⟺  x∉L‾x \in L \iff x \notin \overline{L}   ⟺  \iff R(x)R(x) non è soddisfacibile   ⟺  \iff ogni assegnazione rende R(x)R(x) falsa   ⟺  \iff ogni assegnazione rende ¬R(x)\neg R(x) vera   ⟺  \iff R′(x)∈VALIDITYR'(x) \in \htmlData{term=problem:VALIDITY}{\mathrm{VALIDITY}}.
  5. Conclusione per VALIDITY. Ogni L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}} si riduce a VALIDITY, che sta in coNP: VALIDITY è coNP-completo.
  6. HAMILTON PATH COMPLEMENT. Sta in coNP perché il suo complemento, HAMILTON PATH, sta in NP. Se L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}}, allora L‾∈NP\overline{L} \in \htmlData{term=NP}{\mathrm{NP}} si riduce a HAMILTON PATH (NP-completo) con una riduzione RR: x∈L‾x \in \overline{L}   ⟺  \iff R(x)R(x) ha un cammino hamiltoniano. Negando, x∈Lx \in L   ⟺  \iff R(x)R(x) non ha cammini hamiltoniani: la stessa RR riduce LL a HAMILTON PATH COMPLEMENT, che è quindi coNP-completo.

Dove serve nelle tracce

F12 n. 2 · F12 n. 5 · F14 n. 2 · G20v2 n. 3 · LU22 n. 1 · SE23 n. 1 · ND n. 7

Classi

coNP

Dove: dispensa cap. 14, p. 53; appunti Lez. 8

proposizione

Proposizione A (riduzioni e complementi)

per l'oraledimostrato nel corso

Se RR è una riduzione da LL a L′L', allora RR è anche una riduzione dal complemento di LL al complemento di L′L'.

Idea, frase per l'esame e dimostrazione +

Intuizione

x∈L  ⟺  R(x)∈L′x \in L \iff R(x) \in L' equivale a x∉L  ⟺  R(x)∉L′x \notin L \iff R(x) \notin L'.

All'esame

Strumento per dimostrare le Proposizioni B, C e D.

Da scrivere all'esame

Per la Proposizione A, una riduzione RR da LL a L′L' è anche una riduzione dal complemento di LL al complemento di L′L'.

Dimostrazione

Idea: la definizione di riduzione è un “se e solo se”, e un “se e solo se” resta vero se si negano entrambi i lati.

  1. Ipotesi. RR è una riduzione da LL a L′L': si calcola in spazio logaritmico e, per ogni stringa xx, x∈L  ⟺  R(x)∈L′x \in L \iff R(x) \in L'.
  2. Negazione. Se due affermazioni sono equivalenti, lo sono anche le loro negazioni: x∉L  ⟺  R(x)∉L′x \notin L \iff R(x) \notin L'.
  3. Complementi. Il complemento L‾\overline{L} di LL è l'insieme delle stringhe che non stanno in LL. Quindi x∉Lx \notin L significa x∈L‾x \in \overline{L}, e R(x)∉L′R(x) \notin L' significa R(x)∈L′‾R(x) \in \overline{L'}. Il passo 2 diventa x∈L‾  ⟺  R(x)∈L′‾x \in \overline{L} \iff R(x) \in \overline{L'}.
  4. Conclusione. RR è la stessa funzione, quindi si calcola ancora in spazio logaritmico, e soddisfa la condizione per i complementi: è una riduzione da L‾\overline{L} a L′‾\overline{L'}.

Dove: dispensa cap. 14, p. 53; appunti Lez. 8

proposizione

Proposizione B (complemento di un NP-completo)

chiesto in 5 domandedimostrato nel corso

Se LL è NP-completo, allora il suo complemento è coNP-completo (e viceversa).

Idea, frase per l'esame e dimostrazione +

Intuizione

Per la Proposizione A le stesse riduzioni funzionano sui complementi.

All'esame

Dà subito problemi coNP-completi: UNSAT, HAMILTON PATH COMPLEMENT, il complemento di TSP(D) e così via.

Da scrivere all'esame

Per la Proposizione B il complemento di un problema NP-completo è coNP-completo (per esempio UNSAT e HAMILTON PATH COMPLEMENT).

Dimostrazione

Idea: per la Proposizione A le riduzioni verso LL diventano riduzioni verso il suo complemento L‾\overline{L}; e i problemi di coNP sono esattamente i complementi dei problemi di NP.

  1. L‾∈coNP\overline{L} \in \htmlData{term=coNP}{\mathrm{coNP}}. LL è NP-completo, quindi L∈NPL \in \htmlData{term=NP}{\mathrm{NP}}; per definizione di coNP (i linguaggi il cui complemento sta in NP), L‾∈coNP\overline{L} \in \htmlData{term=coNP}{\mathrm{coNP}}.
  2. Riduzione di partenza. Sia L′L' un linguaggio qualsiasi di coNP. Allora il suo complemento L′‾\overline{L'} sta in NP e, poiché LL è NP-completo, esiste una riduzione RR da L′‾\overline{L'} a LL.
  3. Proposizione A. RR è anche una riduzione dal complemento di L′‾\overline{L'} al complemento di LL. Il complemento del complemento è il linguaggio di partenza, quindi RR riduce L′L' a L‾\overline{L}.
  4. Conclusione. Ogni L′∈coNPL' \in \htmlData{term=coNP}{\mathrm{coNP}} si riduce a L‾\overline{L}, che sta in coNP: L‾\overline{L} è coNP-completo.
  5. Viceversa. Se L‾\overline{L} è coNP-completo, lo stesso ragionamento con NP e coNP scambiati (il complemento di un problema di coNP sta in NP) mostra che LL è NP-completo.

Dove serve nelle tracce

F12 n. 2 · F14 n. 2 · G20v2 n. 3 · LU22 n. 1 · ND n. 7

Classi

NPcoNP

Dove: dispensa cap. 14, p. 54; appunti Lez. 8

proposizione

Proposizione C (chiusura dei complementi)

per l'oraledimostrato nel corso

Se una classe CC è chiusa rispetto alle riduzioni, anche coC\mathrm{co}C lo è.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si applica la chiusura di CC ai complementi, usando la Proposizione A.

All'esame

Per esempio coNP è chiusa rispetto alle riduzioni perché lo è NP.

Da scrivere all'esame

Per la Proposizione C, se una classe C\mathcal{C} è chiusa rispetto alle riduzioni lo è anche coC\mathrm{co}\mathcal{C} (per esempio coNP, perché NP lo è).

Dimostrazione

Idea: si passa ai complementi con la Proposizione A, si usa la chiusura di C\mathcal{C} e si torna indietro.

  1. Definizione. C\mathcal{C} è chiusa rispetto alle riduzioni se: L∈CL \in \mathcal{C} e L′L' si riduce a LL ⇒\Rightarrow L′∈CL' \in \mathcal{C}. Bisogna mostrare lo stesso per coC\mathrm{co}\mathcal{C}: se L∈coCL \in \mathrm{co}\mathcal{C} e RR è una riduzione da L′L' a LL, allora L′∈coCL' \in \mathrm{co}\mathcal{C}.
  2. Passaggio ai complementi. L∈coCL \in \mathrm{co}\mathcal{C} significa, per definizione, che il complemento L‾\overline{L} sta in C\mathcal{C}.
  3. Proposizione A. RR è anche una riduzione da L′‾\overline{L'} (complemento di L′L') a L‾\overline{L}.
  4. Chiusura di C\mathcal{C}. L‾∈C\overline{L} \in \mathcal{C}, L′‾\overline{L'} si riduce a L‾\overline{L} e C\mathcal{C} è chiusa, quindi L′‾∈C\overline{L'} \in \mathcal{C}.
  5. Conclusione. Il complemento di L′L' sta in C\mathcal{C}, quindi per definizione L′∈coCL' \in \mathrm{co}\mathcal{C}: coC\mathrm{co}\mathcal{C} è chiusa rispetto alle riduzioni.

Classi

NPcoNP

Dove: dispensa cap. 14, p. 54; appunti Lez. 8

proposizione

Proposizione D (un CC-completo in coC\mathrm{co}C)

★ chiesto in 18 domandedimostrato nel corso

Se CC è chiusa rispetto alle riduzioni e un problema CC-completo sta in coC\mathrm{co}C, allora C=coCC = \mathrm{co}C.

Idea, frase per l'esame e dimostrazione +

Intuizione

Tutto CC si riduce a quel problema, che sta in coC\mathrm{co}C, chiusa per la Proposizione C: quindi C⊆coCC \subseteq \mathrm{co}C, e per simmetria coC⊆C\mathrm{co}C \subseteq C.

All'esame

Se un problema NP-completo stesse in coNP (o un coNP-completo in NP), allora NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

Da scrivere all'esame

Per la Proposizione D, se un problema NP-completo stesse in coNP (o un coNP-completo in NP), allora NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

Dimostrazione

Idea: tutto C\mathcal{C} si riduce al problema completo LL; poiché LL sta in coC\mathrm{co}\mathcal{C}, che è chiusa, tutto C\mathcal{C} finisce in coC\mathrm{co}\mathcal{C}. L'inclusione opposta si ottiene passando ai complementi.

  1. Ipotesi. C\mathcal{C} è chiusa rispetto alle riduzioni, LL è C\mathcal{C}-completo e L∈coCL \in \mathrm{co}\mathcal{C}. Per la Proposizione C anche coC\mathrm{co}\mathcal{C} è chiusa.
  2. C⊆coC\mathcal{C} \subseteq \mathrm{co}\mathcal{C}. Sia L′∈CL' \in \mathcal{C}. Poiché LL è C\mathcal{C}-completo, L′L' si riduce a LL. Poiché L∈coCL \in \mathrm{co}\mathcal{C} e coC\mathrm{co}\mathcal{C} è chiusa, L′∈coCL' \in \mathrm{co}\mathcal{C}.
  3. coC⊆C\mathrm{co}\mathcal{C} \subseteq \mathcal{C}, prima parte. Sia L′∈coCL' \in \mathrm{co}\mathcal{C}, cioè il suo complemento L′‾\overline{L'} sta in C\mathcal{C}. Poiché LL è C\mathcal{C}-completo, esiste una riduzione RR da L′‾\overline{L'} a LL; per la Proposizione A, RR è anche una riduzione da L′L' a L‾\overline{L}.
  4. coC⊆C\mathrm{co}\mathcal{C} \subseteq \mathcal{C}, seconda parte. L∈coCL \in \mathrm{co}\mathcal{C} significa L‾∈C\overline{L} \in \mathcal{C}. Quindi L′L' si riduce a L‾∈C\overline{L} \in \mathcal{C} e, poiché C\mathcal{C} è chiusa, L′∈CL' \in \mathcal{C}.
  5. Conclusione. Dalle due inclusioni, C=coC\mathcal{C} = \mathrm{co}\mathcal{C}.

La dispensa ottiene il passo 3 passando per la Proposizione B (L‾\overline{L} è coC\mathrm{co}\mathcal{C}-completo); il ragionamento è lo stesso, scritto qui in modo diretto. Applicazione: NP è chiusa, quindi se un problema NP-completo stesse in coNP si avrebbe NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

Classi

NPcoNP

Dove: dispensa cap. 14, p. 54; appunti Lez. 8

proposizione

Se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} allora NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}

per l'oraledimostrato nel corso

Se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, allora anche NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

P è chiusa per complemento: NP=P=coP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=P}{\mathrm{P}} = \mathrm{coP} = \htmlData{term=coNP}{\mathrm{coNP}}.

All'esame

Le risposte "solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}" portano con sé anche NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}; il viceversa non è noto.

Da scrivere all'esame

Se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} allora NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}, perché P è chiusa per complemento: NP=P=coP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=P}{\mathrm{P}} = \mathrm{coP} = \htmlData{term=coNP}{\mathrm{coNP}}.

Dimostrazione

Idea: P è chiusa per complemento, quindi se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} anche il complemento di ogni problema di NP sta in NP.

  1. P è chiusa per complemento. Se L∈PL \in \htmlData{term=P}{\mathrm{P}}, una macchina deterministica MM decide LL in tempo polinomiale e si ferma sempre con SÌ o NO. Scambiando le due risposte si ottiene una macchina, con lo stesso budget di tempo, che decide L‾\overline{L} (il complemento di LL). Quindi L‾∈P\overline{L} \in \htmlData{term=P}{\mathrm{P}}, cioè coP=P\mathrm{coP} = \htmlData{term=P}{\mathrm{P}}.
  2. coNP⊆NP\htmlData{term=coNP}{\mathrm{coNP}} \subseteq \htmlData{term=NP}{\mathrm{NP}}. Supponiamo P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} e sia L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}}. Allora L‾∈NP=P\overline{L} \in \htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=P}{\mathrm{P}}, quindi per il passo 1 L∈P=NPL \in \htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.
  3. NP⊆coNP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=coNP}{\mathrm{coNP}}. Sia L∈NP=PL \in \htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=P}{\mathrm{P}}. Per il passo 1 L‾∈P=NP\overline{L} \in \htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, quindi per definizione L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}}.
  4. Conclusione. NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}; in breve, NP=P=coP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=P}{\mathrm{P}} = \mathrm{coP} = \htmlData{term=coNP}{\mathrm{coNP}}.

Lo scambio di risposte non funziona per una macchina nondeterministica: lì SÌ vuol dire “almeno un ramo accetta”, e la sua negazione è “tutti i rami rifiutano”. Per questo il viceversa non è noto: potrebbe essere NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}} anche con P≠NP\htmlData{term=P}{\mathrm{P}} \neq \htmlData{term=NP}{\mathrm{NP}}.

Classi

PNPcoNP

Dove: dispensa cap. 14, p. 54; appunti Lez. 4

proposizione

Proposizione P⊆NP∩coNP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} \cap \htmlData{term=coNP}{\mathrm{coNP}}

chiesto in 6 domandedimostrato nel corso

P⊆NP∩coNP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} \cap \htmlData{term=coNP}{\mathrm{coNP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Se L∈PL \in \htmlData{term=P}{\mathrm{P}} anche il suo complemento è in P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}, quindi L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}}; e L∈P⊆NPL \in \htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}.

All'esame

Un problema in P ha sia certificati succinti sia squalifiche succinte; esistono problemi in NP∩coNP\htmlData{term=NP}{\mathrm{NP}} \cap \htmlData{term=coNP}{\mathrm{coNP}} non noti in P.

Da scrivere all'esame

P⊆NP∩coNP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} \cap \htmlData{term=coNP}{\mathrm{coNP}}: ogni problema in P sta in NP e, poiché P è chiusa per complemento, anche in coNP.

Dimostrazione

Idea: un problema di P sta in NP perché una macchina deterministica è un caso particolare di macchina nondeterministica; sta in coNP perché P è chiusa per complemento.

  1. Sia L∈PL \in \htmlData{term=P}{\mathrm{P}}.
  2. L∈NPL \in \htmlData{term=NP}{\mathrm{NP}}. Una macchina deterministica è una macchina nondeterministica con una sola scelta a ogni passo, quindi P⊆NP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}.
  3. L‾∈P\overline{L} \in \htmlData{term=P}{\mathrm{P}}. P è chiusa per complemento: scambiando le risposte SÌ e NO della macchina deterministica, che si ferma sempre, si decide il complemento L‾\overline{L} con lo stesso budget di tempo.
  4. L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}}. Dal passo 3, L‾∈P⊆NP\overline{L} \in \htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}}; per definizione di coNP (i linguaggi il cui complemento sta in NP), L∈coNPL \in \htmlData{term=coNP}{\mathrm{coNP}}.
  5. Conclusione. Dai passi 2 e 4, L∈NP∩coNPL \in \htmlData{term=NP}{\mathrm{NP}} \cap \htmlData{term=coNP}{\mathrm{coNP}}. Poiché LL era qualsiasi, P⊆NP∩coNP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NP}{\mathrm{NP}} \cap \htmlData{term=coNP}{\mathrm{coNP}}.

Dove serve nelle tracce

F02 n. 4 · F03 n. 4 · F07 n. 4 · G20v2 n. 3 · MZ22 n. 1 · ND n. 7

Dove: dispensa cap. 14, p. 55; appunti Lez. 8

Capitolo 15 · Problemi di ottimizzazione (DP)

proposizione

EXACT TSP è NP-hard (varianti di TSP)

per l'oraledimostrato nel corso

Le quattro varianti TSP(D), EXACT TSP, TSP COST e TSP si riducono ciascuna alla successiva; in particolare EXACT TSP è NP-hard. Lo si mostra riducendo HAMILTON CYCLE a EXACT TSP (il grafo ha un ciclo hamiltoniano se e solo se il giro ottimo costa esattamente nn).

Idea, frase per l'esame e dimostrazione +

Intuizione

Chi sa trovare il giro ottimo sa anche dire quanto costa, e quindi se costa esattamente BB o al più BB.

All'esame

EXACT TSP non sembra stare né in NP né in coNP: è il problema che motiva la classe DP.

Da scrivere all'esame

EXACT TSP è NP-hard: con distanze 1 sugli archi e 2 altrove, GG ha un ciclo hamiltoniano se e solo se il giro ottimo costa esattamente nn.

Dimostrazione

Idea: ogni variante sa rispondere a quella prima (chi trova il giro ottimo ne conosce il costo, e chi conosce il costo sa dire se è esattamente BB). Per la difficoltà di EXACT TSP si usa la riduzione con distanze 1 e 2, partendo da HAMILTON CYCLE con B=nB = n.

  1. Le varianti. TSP(D): esiste un giro di costo ≤B\le B? EXACT TSP: il giro ottimo costa esattamente BB? TSP COST: quanto costa il giro ottimo? TSP: trovare un giro ottimo.
  2. EXACT TSP → TSP COST → TSP (banali). Se si sa trovare un giro ottimo (TSP), sommando le sue nn tratte si ottiene il costo ottimo (TSP COST). Se si conosce il costo ottimo cc (TSP COST), si risponde a EXACT TSP confrontando cc con BB.
  3. HAMILTON CYCLE si riduce a EXACT TSP. Dato GG con nn nodi, si costruiscono nn città con dijd_{ij} (distanza tra ii e jj) =1= 1 se [i,j][i, j] è un arco di GG e 2 altrimenti, e si pone B=nB = n. Ogni giro ha nn tratte di costo almeno 1, quindi il giro ottimo costa almeno nn, ed esattamente nn se e solo se esiste un giro fatto solo di archi di GG, cioè un ciclo hamiltoniano. Quindi GG ha un ciclo hamiltoniano   ⟺  \iff il giro ottimo costa esattamente nn.
  4. Perché serve un ciclo e non un cammino. Partendo da HAMILTON PATH nessun valore di BB funziona: un triangolo ha un cammino hamiltoniano e il suo giro ottimo costa 3=n3 = n, mentre il grafo aa–bb–cc ha un cammino hamiltoniano ma il giro ottimo costa 1+1+2=4=n+11 + 1 + 2 = 4 = n + 1. Un cammino hamiltoniano non fissa il costo ottimo (può essere nn o n+1n + 1); un ciclo hamiltoniano sì.
  5. EXACT TSP è NP-hard. HAMILTON CYCLE è NP-completo (HAMILTON PATH vi si riduce aggiungendo un nodo collegato a tutti gli altri, come nella prova di TSP(D)). Ogni problema di NP, in particolare TSP(D), si riduce a HAMILTON CYCLE e quindi, componendo le riduzioni (una composizione di riduzioni è una riduzione), a EXACT TSP. Così si ottiene anche il primo anello TSP(D) → EXACT TSP.

Classi

NPDP

Dove: dispensa cap. 15, p. 58; slide Lez. 9

teorema

SAT-UNSAT è DP-completo

chiesto in 2 domandedimostrato nel corso

Date due formule φ\varphi e φ′\varphi' in CNF con 3 letterali per clausola, decidere se φ\varphi è soddisfacibile e φ′\varphi' no è DP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Sta in DP perché è l'intersezione di un problema NP (φ\varphi soddisfacibile) e di uno coNP (φ′\varphi' insoddisfacibile); per la difficoltà, se L=L1∩L2L = L_1 \cap L_2 si usa R(x)=(R1(x),R2(x))R(x) = (R_1(x), R_2(x)) con le riduzioni a SAT.

All'esame

È il DP-completo di riferimento: per esempio SAT-UNSAT si riduce a QSAT3\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_3 perché DP⊆Δ2P⊆Σ2P⊆Σ3P\htmlData{term=DP}{\mathrm{DP}} \subseteq \htmlData{term=Δ2}{\Delta_2^{\mathrm{P}}} \subseteq \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}} \subseteq \htmlData{term=Σ3}{\Sigma_3^{\mathrm{P}}}.

Da scrivere all'esame

SAT-UNSAT è DP-completo e DP⊆Δ2P⊆Σ2P∩Π2P\htmlData{term=DP}{\mathrm{DP}} \subseteq \htmlData{term=Δ2}{\Delta_2^{\mathrm{P}}} \subseteq \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}} \cap \htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}: quindi si riduce a ogni problema ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}- o ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}-completo con i≥2i \ge 2 (per esempio QSAT3\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_3).

Dimostrazione

Idea: SAT-UNSAT chiede due cose insieme, una di tipo NP (φ\varphi è soddisfacibile) e una di tipo coNP (φ′\varphi' non lo è). Per la difficoltà, le due condizioni di un qualsiasi problema di DP si traducono ciascuna in una formula, con le riduzioni a SAT, e si mettono in coppia.

  1. Ricordiamo la definizione. L∈DPL \in \htmlData{term=DP}{\mathrm{DP}} se esistono L1∈NPL_1 \in \htmlData{term=NP}{\mathrm{NP}} e L2∈coNPL_2 \in \htmlData{term=coNP}{\mathrm{coNP}} con L=L1∩L2L = L_1 \cap L_2 (∩\cap = intersezione: xx deve stare in entrambi).
  2. SAT-UNSAT sta in DP. Prendiamo L1={(φ,φ′):φ eˋ soddisfacibile}L_1 = \{(\varphi, \varphi') : \varphi \text{ è soddisfacibile}\} e L2={(φ,φ′):φ′ eˋ insoddisfacibile}L_2 = \{(\varphi, \varphi') : \varphi' \text{ è insoddisfacibile}\}. L1L_1 è 3-SAT sulla prima formula (la seconda si ignora), quindi sta in NP: il certificato è un assegnamento che soddisfa φ\varphi. L2L_2 è il complemento di 3-SAT sulla seconda formula, quindi sta in coNP. Le istanze "sì" di SAT-UNSAT sono esattamente quelle in L1∩L2L_1 \cap L_2.
  3. Difficoltà: cosa sappiamo di un LL qualsiasi in DP. Solo che L=L1∩L2L = L_1 \cap L_2 con L1∈NPL_1 \in \htmlData{term=NP}{\mathrm{NP}} e L2∈coNPL_2 \in \htmlData{term=coNP}{\mathrm{coNP}}. Allora il complemento L2‾\overline{L_2} sta in NP.
  4. Due riduzioni. 3-SAT è NP-completo, quindi esistono una riduzione R1R_1 da L1L_1 a 3-SAT e una riduzione R2R_2 da L2‾\overline{L_2} a 3-SAT. Dunque x∈L1x \in L_1   ⟺  \iff R1(x)R_1(x) è soddisfacibile, e x∈L2‾x \in \overline{L_2}   ⟺  \iff R2(x)R_2(x) è soddisfacibile, cioè x∈L2x \in L_2   ⟺  \iff R2(x)R_2(x) è insoddisfacibile.
  5. La riduzione. Poniamo R(x)=(R1(x),R2(x))R(x) = (R_1(x), R_2(x)). Si calcola eseguendo prima R1R_1 e poi R2R_2, quindi resta una riduzione in spazio logaritmico.
  6. Correttezza. R(x)∈SAT-UNSATR(x) \in \htmlData{term=problem:SATUNSAT}{\mathrm{SAT\text{-}UNSAT}}   ⟺  \iff R1(x)R_1(x) è soddisfacibile e R2(x)R_2(x) no   ⟺  \iff x∈L1x \in L_1 e x∈L2x \in L_2   ⟺  \iff x∈Lx \in L.

Ogni problema di DP si riduce a SAT-UNSAT, che sta in DP: SAT-UNSAT è DP-completo.

Dove serve nelle tracce

F07 n. 2 · GE23 n. 5

Classi

DP

Problemi

SAT-UNSAT

Dove: dispensa cap. 15, p. 59; slide Lez. 9

proposizione

Altri problemi DP-completi

chiesto in 3 domande

Sono DP-completi anche EXACT TSP (la difficoltà si ottiene riducendo SAT-UNSAT), CRITICAL SAT, CRITICAL HAMILTON PATH e CRITICAL 3-COLORING. UNIQUE SAT sta in DP, ma non si sa se sia DP-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Sono tutte domande "esatte" o "critiche" che combinano una parte sì (NP) e una parte no (coNP) sulla stessa istanza.

Da scrivere all'esame

Le versioni esatte e critiche (EXACT TSP, CRITICAL SAT, …) sono DP-complete: intersezione di un problema NP e di uno coNP, e SAT-UNSAT si riduce a esse.

Schema della dimostrazione

Idea: per l'appartenenza a DP si scrive ogni problema come "una parte sì" (in NP) e "una parte no" (in coNP) sulla stessa istanza; la difficoltà si ottiene riducendo SAT-UNSAT. Il corso dà solo gli enunciati; qui c'è lo schema della prova standard (Papadimitriou, cap. 17).

  1. EXACT TSP∈DP\htmlData{term=problem:EXACT}{\mathrm{EXACT\ TSP}} \in \htmlData{term=DP}{\mathrm{DP}}. "Il tour ottimo costa esattamente BB" equivale a: costo ottimo ≤B\le B (è TSP(D), in NP: il certificato è un tour di costo ≤B\le B) e costo ottimo ≥B\ge B (in coNP: il complemento "esiste un tour di costo <B\lt B" sta in NP).
  2. CRITICAL SAT∈DP\mathrm{CRITICAL\ SAT} \in \htmlData{term=DP}{\mathrm{DP}}. "φ\varphi è insoddisfacibile" sta in coNP. "Togliendo una qualsiasi clausola diventa soddisfacibile" sta in NP: il certificato è una lista di assegnamenti, uno per ogni clausola tolta; sono tante quante le clausole, quindi la lista è lunga un polinomio e si verifica in tempo polinomiale.
  3. CRITICAL HAMILTON PATH\mathrm{CRITICAL\ HAMILTON\ PATH} e CRITICAL 3-COLORING∈DP\mathrm{CRITICAL\ 3\text{-}COLORING} \in \htmlData{term=DP}{\mathrm{DP}}. Stesso schema: "il grafo non ha un cammino hamiltoniano" (o "non è 3-colorabile") sta in coNP; "dopo ogni modifica permessa la proprietà vale" sta in NP, perché le modifiche possibili sono al più n2n^2 (nn = numero di nodi) e per ciascuna basta un certificato (un cammino, una colorazione).
  4. UNIQUE SAT∈DP\mathrm{UNIQUE\ SAT} \in \htmlData{term=DP}{\mathrm{DP}}. "φ\varphi ha almeno un assegnamento che la soddisfa" sta in NP; "ne ha al più uno" sta in coNP, perché il complemento "ne ha almeno due" sta in NP (certificato: due assegnamenti diversi). Non si conosce una riduzione da SAT-UNSAT, quindi non si sa se sia DP-completo.
  5. Difficoltà di EXACT TSP (schema). Data (φ,φ′)(\varphi, \varphi'), si usa la riduzione da 3-SAT a HAMILTON PATH, modificata in modo che il grafo ottenuto abbia sempre un cammino che "salta" un solo arco: nell'istanza TSP (distanze 1 sugli archi, 2 altrove) il costo ottimo è NN se φ\varphi è soddisfacibile e N+1N + 1 se no. Si fa lo stesso per φ′\varphi' raddoppiando le distanze: costo 2N′2N' oppure 2N′+22N' + 2. Unendo le due istanze in una, il costo ottimo è la somma (più una costante fissa per il collegamento), e i quattro casi danno quattro valori diversi: +0+0, +1+1, +2+2, +3+3. Si sceglie BB uguale al valore del caso "φ\varphi soddisfacibile, φ′\varphi' no" (+2+2).
  6. Difficoltà degli altri. Si ottiene con riduzioni da SAT-UNSAT più tecniche, dello stesso tipo: si costruisce un'istanza la cui parte "sì" codifica φ\varphi e la parte "no" codifica φ′\varphi'.

Dove serve nelle tracce

F14 n. 2 · G20v5 n. 7 · GE23 n. 7

Classi

DP

Dove: dispensa cap. 15, p. 60; slide Lez. 9

Capitolo 16 · Macchine con oracolo

proposizione

Proposizione (oracoli NP-completi equivalenti)

per l'oraledimostrato nel corso

Per ogni linguaggio LL NP-completo, PL=PSAT\htmlData{term=P}{\mathrm{P}}^L = \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=problem:SAT}{\mathrm{SAT}}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Ogni domanda all'oracolo LL si traduce con una riduzione in una domanda a SAT, e viceversa, con costo polinomiale.

All'esame

Per questo si scrive PNP\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}, NPNP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}}, EXPNP\htmlData{term=EXP}{\mathrm{EXP}}^{\htmlData{term=NP}{\mathrm{NP}}} invece di PSAT\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=problem:SAT}{\mathrm{SAT}}}, NPTSP(D)\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=problem:TSPD}{\mathrm{TSP(D)}}}, EXPCLIQUE\htmlData{term=EXP}{\mathrm{EXP}}^{\htmlData{term=problem:CLIQUE}{\mathrm{CLIQUE}}}.

Da scrivere all'esame

Per ogni LL NP-completo PL=PSAT=PNP\htmlData{term=P}{\mathrm{P}}^L = \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=problem:SAT}{\mathrm{SAT}}} = \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}: le domande all'oracolo si traducono con una riduzione polinomiale, quindi conta solo la classe dell'oracolo.

Dimostrazione

Idea: due problemi NP-completi si riducono l'uno all'altro; quindi ogni domanda fatta all'oracolo LL si può tradurre in una domanda a SAT (e viceversa) spendendo solo tempo polinomiale.

  1. Le riduzioni esistono. LL è in NP e SAT è NP-completo, quindi esiste una riduzione RR da LL a SAT: w∈L  ⟺  R(w)∈SATw \in L \iff R(w) \in \htmlData{term=problem:SAT}{\mathrm{SAT}}. Viceversa SAT è in NP e LL è NP-completo, quindi esiste una riduzione R′R' da SAT a LL. Entrambe si calcolano in tempo polinomiale; chiamiamo q(n)q(n) il budget di tempo di RR.
  2. PL⊆PSAT\htmlData{term=P}{\mathrm{P}}^L \subseteq \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=problem:SAT}{\mathrm{SAT}}}. Sia MLM^L una macchina deterministica con oracolo LL che lavora con budget di tempo p(n)p(n) (un polinomio). Costruiamo M′M' con oracolo SAT: fa esattamente come MM, ma quando MM sta per interrogare l'oracolo su una stringa ww, M′M' calcola R(w)R(w), la scrive sul nastro di query e interroga SAT. La risposta è la stessa, perché w∈L  ⟺  R(w)∈SATw \in L \iff R(w) \in \htmlData{term=problem:SAT}{\mathrm{SAT}}, quindi M′M' accetta esattamente gli stessi input di MM.
  3. Il costo resta polinomiale. In p(n)p(n) passi MM fa al più p(n)p(n) domande, e ogni domanda è lunga al più p(n)p(n) (non si possono scrivere più simboli dei passi fatti). Tradurre una domanda costa al più q(p(n))q(p(n)) passi. In totale M′M' impiega al più p(n)+p(n)⋅q(p(n))p(n) + p(n) \cdot q(p(n)) passi: un polinomio, perché composizioni e prodotti di polinomi sono polinomi.
  4. PSAT⊆PL\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=problem:SAT}{\mathrm{SAT}}} \subseteq \htmlData{term=P}{\mathrm{P}}^L. Stesso argomento con la riduzione R′R' al posto di RR.

Quindi PL=PSAT\htmlData{term=P}{\mathrm{P}}^L = \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=problem:SAT}{\mathrm{SAT}}}: conta solo la classe dell'oracolo e si scrive PNP\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}. Lo stesso ragionamento vale per NPL\htmlData{term=NP}{\mathrm{NP}}^L, EXPL\htmlData{term=EXP}{\mathrm{EXP}}^L e ogni classe il cui budget assorbe il costo delle riduzioni.

Classi

Δ2P

Problemi

SAT

Dove: dispensa cap. 16, p. 63; slide Lez. 9

proposizione

Proposizione CD=CcoDC^D = C^{\mathrm{co}D}

per l'oraledimostrato nel corso

Per ogni classe CC e ogni classe di oracoli DD: CD=CcoDC^D = C^{\mathrm{co}D}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Basta scambiare gli stati qYESq_{\mathrm{YES}} e qNOq_{\mathrm{NO}}: l'oracolo è una scatola nera che risponde in un passo.

All'esame

Per questo non si scrivono PcoNP\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=coNP}{\mathrm{coNP}}} o NPcoNP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=coNP}{\mathrm{coNP}}}: per esempio NPcoNP=NPNP=Σ2P\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=coNP}{\mathrm{coNP}}} = \htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}.

Da scrivere all'esame

CD=CcoD\mathcal{C}^{\mathcal{D}} = \mathcal{C}^{\mathrm{co}\mathcal{D}} (basta scambiare qYESq_{\mathrm{YES}} e qNOq_{\mathrm{NO}}): per esempio NPcoNP=NPNP=Σ2P\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=coNP}{\mathrm{coNP}}} = \htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}.

Dimostrazione

Idea: l'oracolo è una scatola nera che risponde "sì" o "no" in un passo. Chiedere "w∈Aw \in A?" oppure "w∈A‾w \in \overline{A}?" (A‾\overline{A} = complemento di AA) dà la stessa informazione: basta leggere la risposta al contrario, cioè scambiare gli stati qYESq_{\mathrm{YES}} e qNOq_{\mathrm{NO}}.

  1. Punto di partenza. Sia L∈CDL \in \mathcal{C}^{\mathcal{D}}: esistono un linguaggio A∈DA \in \mathcal{D} e una macchina MAM^A, del tipo e con il budget (di tempo o di spazio) della classe C\mathcal{C}, che decide LL.
  2. La nuova macchina. Costruiamo M′M' uguale a MM, ma con qYESq_{\mathrm{YES}} e qNOq_{\mathrm{NO}} scambiati nella tabella di transizione: ciò che MM fa dopo aver ricevuto qYESq_{\mathrm{YES}}, M′M' lo fa dopo aver ricevuto qNOq_{\mathrm{NO}}, e viceversa. Diamo a M′M' l'oracolo A‾\overline{A}, che sta in coD\mathrm{co}\mathcal{D}.
  3. Le due computazioni coincidono. Per ogni domanda ww vale w∈A  ⟺  w∉A‾w \in A \iff w \notin \overline{A}. Quindi quando MAM^A riceve qYESq_{\mathrm{YES}}, M′A‾M'^{\overline{A}} riceve qNOq_{\mathrm{NO}} e, per lo scambio, fa la stessa mossa; lo stesso per l'altra risposta. Passo dopo passo le due macchine fanno le stesse cose.
  4. Stesse risorse. M′M' ha lo stesso tipo di MM (deterministica o no) e usa gli stessi passi e lo stesso spazio, quindi rispetta il budget di C\mathcal{C}. Dunque L∈CcoDL \in \mathcal{C}^{\mathrm{co}\mathcal{D}}, e CD⊆CcoD\mathcal{C}^{\mathcal{D}} \subseteq \mathcal{C}^{\mathrm{co}\mathcal{D}}.
  5. Verso opposto. Si ripete lo stesso argomento partendo da coD\mathrm{co}\mathcal{D}: il complemento di un linguaggio di coD\mathrm{co}\mathcal{D} sta in D\mathcal{D}. Quindi CcoD⊆CD\mathcal{C}^{\mathrm{co}\mathcal{D}} \subseteq \mathcal{C}^{\mathcal{D}}.

Per questo non si scrivono PcoNP\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=coNP}{\mathrm{coNP}}} o NPcoNP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=coNP}{\mathrm{coNP}}}: sono PNP\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}} e NPNP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}}.

Classi

Δ2PΣ2P

Dove: dispensa cap. 16, p. 63; slide Lez. 9

proposizione

Oracoli inutili e DP⊆PNP\htmlData{term=DP}{\mathrm{DP}} \subseteq \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}

★ chiesto in 10 domandedimostrato nel corso

PP=P\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=P}{\mathrm{P}}} = \htmlData{term=P}{\mathrm{P}} e NPP=NP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=P}{\mathrm{P}}} = \htmlData{term=NP}{\mathrm{NP}}; inoltre DP⊆PNP\htmlData{term=DP}{\mathrm{DP}} \subseteq \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}. Non si sa se NPNP=NP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=NP}{\mathrm{NP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Un oracolo in P si esegue "in linea" con costo polinomiale; una domanda NP e una coNP si risolvono con due chiamate a un oracolo NP.

All'esame

Colloca DP dentro Δ2P=PNP\htmlData{term=Δ2}{\Delta_2^{\mathrm{P}}} = \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}, per esempio per le riduzioni da SAT-UNSAT verso i livelli più alti di PH.

Da scrivere all'esame

PP=P\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=P}{\mathrm{P}}} = \htmlData{term=P}{\mathrm{P}} e NPP=NP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=P}{\mathrm{P}}} = \htmlData{term=NP}{\mathrm{NP}} (oracolo eseguito in linea); DP⊆PNP=Δ2P⊆Σ2P∩Π2P\htmlData{term=DP}{\mathrm{DP}} \subseteq \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=Δ2}{\Delta_2^{\mathrm{P}}} \subseteq \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}} \cap \htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}, perché bastano due domande a un oracolo NP.

Dimostrazione

Idea: un oracolo in P non serve, perché la sua risposta si può calcolare "in linea" con un costo polinomiale. Un problema di DP si risolve con due domande a un oracolo NP, quindi DP⊆PNP=Δ2P\htmlData{term=DP}{\mathrm{DP}} \subseteq \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=Δ2}{\Delta_2^{\mathrm{P}}}.

  1. P⊆PP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=P}{\mathrm{P}}} e NP⊆NPP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=P}{\mathrm{P}}}. Una macchina con oracolo può semplicemente non usarlo.
  2. PP⊆P\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=P}{\mathrm{P}}} \subseteq \htmlData{term=P}{\mathrm{P}}. Sia MAM^A deterministica con budget di tempo p(n)p(n) e oracolo A∈PA \in \htmlData{term=P}{\mathrm{P}}, deciso da una macchina MAM_A con budget q(n)q(n). Costruiamo M′M' senza oracolo: fa come MM, ma al posto di ogni domanda ww esegue MAM_A su ww come sottoprogramma e prosegue con la risposta ottenuta. Le domande sono al più p(n)p(n), ognuna lunga al più p(n)p(n), e ognuna costa al più q(p(n))q(p(n)): in totale p(n)+p(n)⋅q(p(n))p(n) + p(n) \cdot q(p(n)) passi, un polinomio.
  3. NPP⊆NP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=P}{\mathrm{P}}} \subseteq \htmlData{term=NP}{\mathrm{NP}}. Stessa costruzione con MM non deterministica: il sottoprogramma MAM_A è deterministico e dà la risposta giusta su ogni ramo, e ogni ramo resta polinomiale.
  4. Perché non funziona con NPNP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}}. Se l'oracolo è in NP, eseguirlo in linea vuol dire indovinare un certificato. Questo basta per le risposte "sì", ma una risposta "no" richiede di escludere tutti i certificati, e una macchina non deterministica non sa farlo in tempo polinomiale (a meno che NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}). Per questo non si sa se NPNP=NP\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=NP}{\mathrm{NP}}.
  5. DP⊆PNP\htmlData{term=DP}{\mathrm{DP}} \subseteq \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}. Sia L=L1∩L2L = L_1 \cap L_2 con L1∈NPL_1 \in \htmlData{term=NP}{\mathrm{NP}}, L2∈coNPL_2 \in \htmlData{term=coNP}{\mathrm{coNP}}. Come per SAT-UNSAT esistono riduzioni R1R_1 da L1L_1 a SAT e R2R_2 dal complemento di L2L_2 a SAT. La macchina deterministica con oracolo SAT: calcola R1(x)R_1(x) e chiede; se la risposta è "no" rifiuta; altrimenti calcola R2(x)R_2(x) e chiede; accetta se e solo se la risposta è "no". Sono due domande e tempo polinomiale, e accetta   ⟺  \iff x∈L1x \in L_1 e x∈L2x \in L_2.
  6. Dove sta PNP\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}. Per definizione Δ2P=PΣ1P=PNP\htmlData{term=Δ2}{\Delta_2^{\mathrm{P}}} = \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}}} = \htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}}. Una macchina deterministica è un caso particolare di macchina non deterministica, quindi PNP⊆NPNP=Σ2P\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}} \subseteq \htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}. Inoltre PNP\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}} è chiusa per complemento (si scambiano accettazione e rifiuto della macchina deterministica), quindi PNP⊆coNPNP=Π2P\htmlData{term=P}{\mathrm{P}}^{\htmlData{term=NP}{\mathrm{NP}}} \subseteq \htmlData{term=coNP}{\mathrm{coNP}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}.

Conclusione da ricordare: DP⊆Δ2P⊆Σ2P∩Π2P\htmlData{term=DP}{\mathrm{DP}} \subseteq \htmlData{term=Δ2}{\Delta_2^{\mathrm{P}}} \subseteq \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}} \cap \htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}, e quindi DP⊆ΣiP∩ΠiP\htmlData{term=DP}{\mathrm{DP}} \subseteq \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} \cap \Pi_i^{\htmlData{term=P}{\mathrm{P}}} per ogni i≥2i \ge 2.

Classi

PNPDPΔ2P

Dove: dispensa cap. 16, p. 63; slide Lez. 9

Capitolo 17 · Gerarchia polinomiale

teorema

Teorema 17.8 (certificati per ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}})

per l'oraledimostrato nel corso

Per ogni i≥1i \ge 1, L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} se e solo se esiste una relazione RR polinomialmente bilanciata, con {x;y:(x,y)∈R}\{x;y : (x, y) \in R\} in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}, tale che L={x:esiste y con (x,y)∈R}L = \{x : \text{esiste } y \text{ con } (x, y) \in R\}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Ogni livello aggiunge un "esiste" davanti a un controllo del livello di sotto; per i=1i = 1 è la Proposizione 9.1 su NP.

All'esame

È la base della prova del collasso (Teorema 17.9) e dell'appartenenza di QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i a ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}.

Da scrivere all'esame

Per il Teorema 17.8, L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} sse L={x:∃y (x,y)∈R}L = \{x : \exists y\ (x, y) \in R\} con RR polinomialmente bilanciata e verificabile in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}.

Dimostrazione

Idea: per induzione su ii. Il certificato yy di xx è la descrizione di una computazione accettante della macchina con oracolo: le sue scelte non deterministiche e, per ogni domanda all'oracolo con risposta "sì", un certificato di quella risposta. Notazione: ΣiP=NPΣi−1P\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} = \htmlData{term=NP}{\mathrm{NP}}^{\Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}} (macchine non deterministiche polinomiali con oracolo nel livello sotto), ΠiP=coΣiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}} = \mathrm{co}\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}; RR è polinomialmente bilanciata se (x,y)∈R(x, y) \in R implica ∣y∣≤∣x∣k|y| \le |x|^k per un kk fisso; "x;yx;y" è la coppia scritta come un'unica stringa.

  1. Caso base i=1i = 1. Σ1P=NP\htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}} = \htmlData{term=NP}{\mathrm{NP}} e Π0P=P\Pi_0^{\mathrm{P}} = \htmlData{term=P}{\mathrm{P}}: l'enunciato dice che L∈NPL \in \htmlData{term=NP}{\mathrm{NP}} se e solo se ha certificati corti verificabili in tempo polinomiale. È la Proposizione 9.1.
  2. Passo, verso "se". Supponiamo che RR esista e sia A={x;y:(x,y)∈R}∈Πi−1PA = \{x;y : (x, y) \in R\} \in \Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}; allora il complemento A‾\overline{A} sta in Σi−1P\Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}. La macchina per LL: (a) indovina yy con ∣y∣≤∣x∣k|y| \le |x|^k, in tempo polinomiale perché RR è bilanciata; (b) chiede all'oracolo A‾\overline{A} se x;y∈A‾x;y \in \overline{A}; (c) accetta se la risposta è "no", cioè se (x,y)∈R(x, y) \in R. Esiste un ramo che accetta   ⟺  \iff esiste yy con (x,y)∈R(x, y) \in R   ⟺  \iff x∈Lx \in L. È una macchina non deterministica polinomiale con oracolo in Σi−1P\Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}, quindi L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}.
  3. Passo, verso "solo se": i dati. Sia L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}, decisa da MKM^K non deterministica con budget di tempo p(n)p(n) e oracolo K∈Σi−1PK \in \Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}. Per ipotesi di induzione K={z:esiste w con (z,w)∈S}K = \{z : \text{esiste } w \text{ con } (z, w) \in S\}, con SS polinomialmente bilanciata e {z;w:(z,w)∈S}∈Πi−2P\{z;w : (z, w) \in S\} \in \Pi_{i-2}^{\htmlData{term=P}{\mathrm{P}}}.
  4. Il certificato. yy contiene le scelte non deterministiche di MM su xx e, per ogni domanda zjz_j con risposta "sì", un wjw_j con (zj,wj)∈S(z_j, w_j) \in S. Le scelte sono al più p(n)p(n), le domande al più p(n)p(n) e lunghe al più p(n)p(n), i wjw_j lunghi al più p(n)kp(n)^k: ∣y∣|y| è polinomiale. Poniamo (x,y)∈R(x, y) \in R   ⟺  \iff yy descrive una computazione accettante di MKM^K su xx con risposte dell'oracolo corrette. Allora x∈Lx \in L   ⟺  \iff esiste yy con (x,y)∈R(x, y) \in R.
  5. Resta: {x;y:(x,y)∈R}∈Πi−1P\{x;y : (x, y) \in R\} \in \Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}. Si simula MM seguendo le scelte scritte in yy e si controllano le risposte. Per le risposte "sì": verificare (zj,wj)∈S(z_j, w_j) \in S è un problema di Πi−2P\Pi_{i-2}^{\htmlData{term=P}{\mathrm{P}}}, cioè una domanda (con risposta letta al contrario) a un oracolo di Σi−2P\Sigma_{i-2}^{\htmlData{term=P}{\mathrm{P}}}; questa parte è un calcolo deterministico polinomiale con oracolo in Σi−2P\Sigma_{i-2}^{\htmlData{term=P}{\mathrm{P}}}, che sta in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}. Per le risposte "no": serve zj∉Kz_j \notin K, e il complemento di KK sta in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}.
  6. Mettere insieme i controlli. Sono un numero polinomiale di condizioni, tutte in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}. Una macchina di tipo Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}} accetta quando tutti i suoi rami accettano, quindi può eseguire i controlli uno dopo l'altro: accetta su tutti i rami   ⟺  \iff ogni controllo è superato. Quindi la congiunzione sta in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}.

Così RR ha tutte le proprietà richieste e l'induzione è completa.

Classi

ΣiPΠiP

Dove: dispensa cap. 17, p. 64; slide Lez. 9. La dispensa omette la prova; le slide della Lez. 9 la danno per induzione su ii.

corollario

Corollario 1 del Teorema 17.8 (certificati per ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}})

per l'oraledimostrato nel corso

Per ogni i≥1i \ge 1, L∈ΠiPL \in \Pi_i^{\htmlData{term=P}{\mathrm{P}}} se e solo se esiste una relazione RR polinomialmente bilanciata, con {x;y:(x,y)∈R}\{x;y : (x, y) \in R\} in Σi−1P\Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}, tale che L={x:per ogni y con ∣y∣≤∣x∣k, (x,y)∈R}L = \{x : \text{per ogni } y \text{ con } |y| \le |x|^k,\ (x, y) \in R\}.

Idea, frase per l'esame e dimostrazione +

Intuizione

ΠiP=coΣiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}} = \mathrm{co}\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}: complementando, "esiste" diventa "per ogni".

Da scrivere all'esame

Per il Corollario 1 del Teorema 17.8, L∈ΠiPL \in \Pi_i^{\htmlData{term=P}{\mathrm{P}}} sse L={x:∀y (x,y)∈R}L = \{x : \forall y\ (x, y) \in R\} con RR polinomialmente bilanciata e verificabile in Σi−1P\Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}.

Dimostrazione

Idea: ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}} (il livello Pi i della gerarchia) è esattamente coΣiP\mathrm{co}\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}, l'insieme dei complementi dei linguaggi di ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}. Complementando la caratterizzazione del Teorema 17.8, "esiste yy" diventa "per ogni yy" e la verifica passa da Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}} a Σi−1P\Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}.

  1. Solo se. Sia L∈ΠiPL \in \Pi_i^{\htmlData{term=P}{\mathrm{P}}}. Allora il complemento L‾\overline{L} sta in ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}, e per il Teorema 17.8 esiste R‾\overline{R} polinomialmente bilanciata (∣y∣≤∣x∣k|y| \le |x|^k) con {x;y:(x,y)∈R‾}∈Πi−1P\{x;y : (x, y) \in \overline{R}\} \in \Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}} e L‾={x:esiste y con (x,y)∈R‾}\overline{L} = \{x : \text{esiste } y \text{ con } (x, y) \in \overline{R}\}.
  2. Negazione. x∈L  ⟺  x∉L‾x \in L \iff x \notin \overline{L}   ⟺  \iff nessun yy va bene   ⟺  \iff per ogni yy con ∣y∣≤∣x∣k|y| \le |x|^k vale (x,y)∉R‾(x, y) \notin \overline{R}. Il limite ∣y∣≤∣x∣k|y| \le |x|^k non toglie nulla, perché R‾\overline{R} contiene solo coppie con yy corto.
  3. La nuova relazione. Poniamo R={(x,y):∣y∣≤∣x∣k e (x,y)∉R‾}R = \{(x, y) : |y| \le |x|^k \text{ e } (x, y) \notin \overline{R}\}. È polinomialmente bilanciata per costruzione, e L={x:per ogni y con ∣y∣≤∣x∣k, (x,y)∈R}L = \{x : \text{per ogni } y \text{ con } |y| \le |x|^k,\ (x, y) \in R\}.
  4. Classe della verifica. Verificare (x,y)∈R(x, y) \in R significa controllare la lunghezza (tempo polinomiale) e rispondere "no" al problema {x;y:(x,y)∈R‾}\{x;y : (x, y) \in \overline{R}\}, che sta in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}. Il complemento di un problema di Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}} sta in Σi−1P\Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}, e aggiungere un controllo polinomiale non cambia la classe. Quindi {x;y:(x,y)∈R}∈Σi−1P\{x;y : (x, y) \in R\} \in \Sigma_{i-1}^{\htmlData{term=P}{\mathrm{P}}}.
  5. Se. Al contrario, se LL ha questa forma, il suo complemento è {x:esiste y corto con (x,y)∉R}\{x : \text{esiste } y \text{ corto con } (x, y) \notin R\}: la relazione "yy corto e (x,y)∉R(x, y) \notin R" è bilanciata e verificabile in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}, quindi per il Teorema 17.8 L‾∈ΣiP\overline{L} \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} e L∈ΠiPL \in \Pi_i^{\htmlData{term=P}{\mathrm{P}}}.

Qui il limite ∣y∣≤∣x∣k|y| \le |x|^k va scritto esplicitamente: con "per ogni" non lo garantisce più la relazione.

Classi

ΣiPΠiP

Dove: dispensa cap. 17, p. 64; slide Lez. 9

corollario

Corollario 2 del Teorema 17.8 (forma con i quantificatori)

chiesto in 1 domandadimostrato nel corso

Per ogni i≥1i \ge 1, L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} se e solo se esiste una relazione RR polinomialmente bilanciata e decidibile in tempo polinomiale tale che L={x:∃y1∀y2∃y3…Qyi con (x,y1,…,yi)∈R}L = \{x : \exists y_1 \forall y_2 \exists y_3 \ldots Q y_i \text{ con } (x, y_1, \ldots, y_i) \in R\}, dove QQ è ∃\exists se ii è dispari e ∀\forall se ii è pari.

Idea, frase per l'esame e dimostrazione +

Intuizione

Il livello di un problema nella gerarchia è il numero di alternanze di quantificatori davanti a un controllo polinomiale.

All'esame

Si usa per collocare un problema in ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} contando i quantificatori, e per mostrare che QSATi∈ΣiP\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}.

Da scrivere all'esame

Per il Corollario 2 del Teorema 17.8, L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} sse L={x:∃y1 ∀y2…Qyi R(x,y1,…,yi)}L = \{x : \exists y_1\, \forall y_2 \dots Q y_i\ R(x, y_1, \dots, y_i)\} con RR polinomiale: il livello è il numero di alternanze.

Dimostrazione

Idea: si applicano a ripetizione il Teorema 17.8 e il Corollario 1: ogni volta un livello Σ\Sigma diventa "∃\exists + verifica nel livello Π\Pi di sotto" e un livello Π\Pi diventa "∀\forall + verifica nel livello Σ\Sigma di sotto", fino ad arrivare al livello 0, che è P.

  1. Cosa si dimostra. Per induzione su ii dimostriamo insieme due cose: (Σ\Sigma) L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} sse L={x:∃y1 ∀y2…Qyi (x,y1,…,yi)∈R}L = \{x : \exists y_1\, \forall y_2 \dots Q y_i\ (x, y_1, \dots, y_i) \in R\}; (Π\Pi) L∈ΠiPL \in \Pi_i^{\htmlData{term=P}{\mathrm{P}}} sse vale la stessa forma con i quantificatori scambiati (∀y1 ∃y2…\forall y_1\, \exists y_2 \dots). In entrambe RR è polinomialmente bilanciata (ogni ∣yj∣≤∣x∣k|y_j| \le |x|^k) e decidibile in tempo polinomiale. La (Π\Pi) segue dalla (Σ\Sigma) complementando: L‾\overline{L} ha la forma (Σ\Sigma) con la relazione R‾\overline{R}, e negare scambia ∃\exists e ∀\forall e sostituisce R‾\overline{R} con il suo complemento, ancora polinomiale.
  2. Caso base i=1i = 1. L={x:∃y1 (x,y1)∈R}L = \{x : \exists y_1\ (x, y_1) \in R\} con RR polinomiale: è la caratterizzazione di NP=Σ1P\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}} (Proposizione 9.1).
  3. Passo (solo se). Sia L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}. Per il Teorema 17.8, L={x:∃y1 (x,y1)∈R1}L = \{x : \exists y_1\ (x, y_1) \in R_1\} con {x;y1:(x,y1)∈R1}∈Πi−1P\{x;y_1 : (x, y_1) \in R_1\} \in \Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}. Per l'ipotesi di induzione (forma Π\Pi) questo linguaggio è {x;y1:∀y2 ∃y3…((x;y1),y2,…,yi)∈R′}\{x;y_1 : \forall y_2\, \exists y_3 \dots ((x;y_1), y_2, \dots, y_i) \in R'\} con R′R' polinomiale. Basta porre (x,y1,…,yi)∈R  ⟺  ((x;y1),y2,…,yi)∈R′(x, y_1, \dots, y_i) \in R \iff ((x;y_1), y_2, \dots, y_i) \in R'.
  4. Le lunghezze restano polinomiali. ∣y1∣≤∣x∣k1|y_1| \le |x|^{k_1} e ogni yjy_j successivo è polinomiale in ∣x;y1∣|x;y_1|, quindi in ∣x∣|x|: un polinomio di un polinomio è un polinomio.
  5. Passo (se). Se LL ha la forma ∃y1 ∀y2…\exists y_1\, \forall y_2 \dots, il linguaggio {x;y1:∀y2 ∃y3⋯∈R}\{x;y_1 : \forall y_2\, \exists y_3 \dots \in R\} ha la forma (Π\Pi) con i−1i - 1 quantificatori, quindi sta in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}} per l'ipotesi di induzione. Per il Teorema 17.8 (verso "se"), L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}.

L'ultimo quantificatore QQ è ∃\exists se ii è dispari e ∀\forall se ii è pari, perché i quantificatori si alternano partendo da ∃\exists.

Dove serve nelle tracce

G20v3 n. 2

Dove: dispensa cap. 17, p. 65; slide Lez. 9

teorema

Teorema 17.9 (collasso di PH)

★ chiesto in 23 domandedimostrato nel corso

Se per qualche i≥1i \ge 1 vale ΣiP=ΠiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} = \Pi_i^{\htmlData{term=P}{\mathrm{P}}}, allora per ogni j>ij \gt i: ΣjP=ΠjP=ΔjP=ΣiP\Sigma_j^{\htmlData{term=P}{\mathrm{P}}} = \Pi_j^{\htmlData{term=P}{\mathrm{P}}} = \Delta_j^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}, cioè la gerarchia polinomiale collassa al livello ii.

Idea, frase per l'esame e dimostrazione +

Intuizione

Basta mostrare Σi+1P=ΣiP\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}: due "esiste" consecutivi si fondono in uno solo, poi si ripete salendo.

All'esame

È lo strumento delle risposte "solo se PH collassa": per esempio una riduzione da QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i al suo complemento esiste solo se PH collassa al livello ii.

Da scrivere all'esame

Per il Teorema 17.9, se ΣiP=ΠiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} = \Pi_i^{\htmlData{term=P}{\mathrm{P}}} allora PH collassa al livello ii: per esempio una riduzione da QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i al suo complemento esiste solo se PH collassa al livello ii.

Dimostrazione

Idea: un problema di Σi+1P\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}} è "esiste yy" davanti a una verifica in ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}. Se ΠiP=ΣiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}, quella verifica comincia a sua volta con un "esiste zz"; i due "esiste" consecutivi si fondono in uno solo (si indovina la coppia y;zy;z) e si torna a ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}. Poi si ripete salendo.

  1. Basta un livello. Vale sempre ΣiP⊆Σi+1P\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} \subseteq \Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}}. Mostriamo che, se ΣiP=ΠiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} = \Pi_i^{\htmlData{term=P}{\mathrm{P}}}, vale anche Σi+1P⊆ΣiP\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}} \subseteq \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}. Da qui: Πi+1P=coΣi+1P=coΣiP=ΠiP=ΣiP\Pi_{i+1}^{\htmlData{term=P}{\mathrm{P}}} = \mathrm{co}\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}} = \mathrm{co}\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} = \Pi_i^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}; e Δi+1P=PΣiP\Delta_{i+1}^{\htmlData{term=P}{\mathrm{P}}} = \htmlData{term=P}{\mathrm{P}}^{\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}} sta tra ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} e Σi+1P\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}}, quindi è anch'esso uguale a ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}. In particolare Σi+1P=Πi+1P\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}} = \Pi_{i+1}^{\htmlData{term=P}{\mathrm{P}}}: l'ipotesi vale al livello i+1i + 1, e ripetendo l'argomento (induzione su jj) si ottiene ΣjP=ΠjP=ΔjP=ΣiP\Sigma_j^{\htmlData{term=P}{\mathrm{P}}} = \Pi_j^{\htmlData{term=P}{\mathrm{P}}} = \Delta_j^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} per ogni j>ij \gt i.
  2. Primo "esiste". Sia L∈Σi+1PL \in \Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}}. Per il Teorema 17.8 esiste RR polinomialmente bilanciata con L={x:esiste y con (x,y)∈R}L = \{x : \text{esiste } y \text{ con } (x, y) \in R\} e il linguaggio {x;y:(x,y)∈R}\{x;y : (x, y) \in R\} in ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}.
  3. Uso dell'ipotesi. Poiché ΠiP=ΣiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}, il linguaggio {x;y:(x,y)∈R}\{x;y : (x, y) \in R\} sta in ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}. Applichiamo di nuovo il Teorema 17.8, con input la stringa x;yx;y: esiste SS polinomialmente bilanciata, con verifica in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}, tale che (x,y)∈R  ⟺  (x, y) \in R \iff esiste zz con (x;y,z)∈S(x;y, z) \in S.
  4. Fusione dei due "esiste". Quindi x∈L  ⟺  x \in L \iff esistono yy e zz con (x;y,z)∈S(x;y, z) \in S. Definiamo S′={(x,y;z):(x;y,z)∈S}S' = \{(x, y;z) : (x;y, z) \in S\}: contiene le stesse stringhe, solo raggruppate diversamente, quindi la sua verifica è lo stesso problema e sta ancora in Πi−1P\Pi_{i-1}^{\htmlData{term=P}{\mathrm{P}}}. E x∈L  ⟺  x \in L \iff esiste una stringa y;zy;z con (x,y;z)∈S′(x, y;z) \in S'.
  5. S′S' è polinomialmente bilanciata. ∣y∣≤∣x∣k1|y| \le |x|^{k_1} e ∣z∣≤∣x;y∣k2|z| \le |x;y|^{k_2}, quindi ∣y;z∣=O(∣x∣k1k2)|y;z| = O(|x|^{k_1 k_2}): un polinomio in ∣x∣|x|.
  6. Conclusione del passo. Per il Teorema 17.8 (verso "se") applicato a S′S', L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}. Quindi Σi+1P⊆ΣiP\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}} \subseteq \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}.

Per i=1i = 1 la verifica di S′S' sta in Π0P=P\Pi_0^{\mathrm{P}} = \htmlData{term=P}{\mathrm{P}} e tutto funziona allo stesso modo. Risultato: PH=ΣiP\htmlData{term=PH}{\mathrm{PH}} = \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}, cioè la gerarchia "collassa al livello ii".

Dove: dispensa cap. 17, p. 65; slide Lez. 9

corollario

Corollario (collasso al primo livello)

★ chiesto in 10 domandedimostrato nel corso

Se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, o anche solo NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}, la gerarchia polinomiale collassa al primo livello.

Idea, frase per l'esame e dimostrazione +

Intuizione

È il Teorema 17.9 con i=1i = 1.

All'esame

Senza una prova di P≠NP\htmlData{term=P}{\mathrm{P}} \neq \htmlData{term=NP}{\mathrm{NP}} non si può dimostrare che PH sia davvero una gerarchia; serve per le risposte "solo se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}".

Da scrivere all'esame

Se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}} (in particolare se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}) allora, per il Teorema 17.9 con i=1i = 1, PH collassa al primo livello: PH=NP\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=NP}{\mathrm{NP}}.

Dimostrazione

Idea: è il Teorema 17.9 con i=1i = 1, perché Σ1P=NP\htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}} = \htmlData{term=NP}{\mathrm{NP}} e Π1P=coNP\htmlData{term=Π1}{\Pi_1^{\mathrm{P}}} = \htmlData{term=coNP}{\mathrm{coNP}}.

  1. Caso NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}. Al primo livello della gerarchia Σ1P=NP\htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}} = \htmlData{term=NP}{\mathrm{NP}} e Π1P=coNP\htmlData{term=Π1}{\Pi_1^{\mathrm{P}}} = \htmlData{term=coNP}{\mathrm{coNP}}. L'ipotesi NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}} dice quindi Σ1P=Π1P\htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}} = \htmlData{term=Π1}{\Pi_1^{\mathrm{P}}}, che è l'ipotesi del Teorema 17.9 con i=1i = 1. Il teorema dà, per ogni j>1j \gt 1, ΣjP=ΠjP=ΔjP=NP\Sigma_j^{\htmlData{term=P}{\mathrm{P}}} = \Pi_j^{\htmlData{term=P}{\mathrm{P}}} = \Delta_j^{\htmlData{term=P}{\mathrm{P}}} = \htmlData{term=NP}{\mathrm{NP}}: tutta la gerarchia è uguale a NP.
  2. Caso P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}. P è chiusa per complemento (una macchina deterministica si complementa scambiando accettazione e rifiuto), quindi coP=P\mathrm{coP} = \htmlData{term=P}{\mathrm{P}}. Allora coNP=coP=P=NP\htmlData{term=coNP}{\mathrm{coNP}} = \mathrm{coP} = \htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, cioè vale NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}} e si applica il caso precedente. Anzi, qui la gerarchia è tutta uguale a P.

Conseguenza: finché non si dimostra P≠NP\htmlData{term=P}{\mathrm{P}} \neq \htmlData{term=NP}{\mathrm{NP}} (anzi NP≠coNP\htmlData{term=NP}{\mathrm{NP}} \neq \htmlData{term=coNP}{\mathrm{coNP}}), non si può dimostrare che i livelli di PH siano davvero distinti.

Dove serve nelle tracce

F03 n. 1 · F03 n. 7 · F04 n. 1 · F04 n. 7 · F12 n. 2 · F12 n. 5 · F14 n. 2 · G20v1 n. 4 · LU22 n. 7 · ND n. 6

Classi

PNPcoNPPH

Dove: dispensa cap. 17, p. 66; slide Lez. 9

teorema

Teorema (CIRC SAT e CIRC VALIDITY)

chiesto in 3 domandedimostrato nel corso

Nella logica della Circumscription, decidere se un modello di KB soddisfa φ\varphi (CIRC SAT) è Σ2P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}-completo; decidere se KB⊨Mφ\mathit{KB} \models_M \varphi (CIRC VALIDITY) è Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

È SAT più una minimizzazione degli "anormali": esiste un modello tale che nessun altro modello è più normale, cioè ∃∀\exists\forall, secondo livello.

All'esame

Esempio di problema completo al 2° livello: CLIQUE si riduce a CIRC SAT, mentre il contrario farebbe collassare PH al primo livello.

Da scrivere all'esame

CIRC SAT è Σ2P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}-completo (∃\exists un modello, ∀\forall modello più normale): CLIQUE vi si riduce perché NP⊆Σ2P\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}; il contrario farebbe collassare PH al primo livello.

Dimostrazione

Idea: CIRC SAT chiede se esiste un assegnamento TT che soddisfa KB\mathit{KB} e φ\varphi e tale che nessun altro assegnamento sia più normale: un ∃\exists seguito da un ∀\forall, quindi Σ2P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}. Per la difficoltà si riduce QSAT2\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_2 costruendo una KB\mathit{KB} i cui modelli minimi "scelgono" le xx e sono costretti a soddisfare φ\varphi per ogni scelta delle yy. (Circumscription, non CIRCUIT SAT.)

Notazione: MM è l'insieme delle proposizioni "anormali"; T′<MTT' \lt_M T (T′T' strettamente più normale) se ogni p∈Mp \in M falsa in TT è falsa anche in T′T' e almeno una vera in TT è falsa in T′T'. Un modello di KB\mathit{KB} è un TT con T⊨KBT \models \mathit{KB} (TT soddisfa KB\mathit{KB}) e nessun T′⊨KBT' \models \mathit{KB} con T′<MTT' \lt_M T.

  1. Appartenenza. Il problema "TT non è un modello MM-minimo di KB\mathit{KB}" sta in NP: si indovina T′T' e si verifica in tempo polinomiale che T′⊨KBT' \models \mathit{KB} e T′<MTT' \lt_M T. L'algoritmo per CIRC SAT indovina TT, verifica in tempo polinomiale T⊨KBT \models \mathit{KB} e T⊨φT \models \varphi, chiede all'oracolo se TT non è minimo e accetta se la risposta è "no". È in NPNP=Σ2P\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}.
  2. Riduzione. Data Φ=∃x1…xn ∀y1…ym φ\Phi = \exists x_1 \dots x_n\, \forall y_1 \dots y_m\, \varphi, poniamo KB={xi∨xi′, yj∨yj′, φ→(yj∧yj′)}\mathit{KB} = \{x_i \lor x'_i,\ y_j \lor y'_j,\ \varphi \to (y_j \land y'_j)\} con xi′,yj′x'_i, y'_j nuove, MM = tutte le proposizioni, domanda φ\varphi.
  3. Due proprietà di ogni modello TT. (a) Esattamente una tra xix_i e xi′x'_i è vera: almeno una per la clausola; se fossero vere entrambe, rendendo falsa xi′x'_i (che compare solo nella sua clausola) KB\mathit{KB} resterebbe soddisfatta con un T′T' più normale. (b) Se T⊨φT \models \varphi, allora tutte le yj,yj′y_j, y'_j sono vere, per le formule φ→yj∧yj′\varphi \to y_j \land y'_j.
  4. Φ\Phi vera ⇒\Rightarrow φ\varphi vera in un modello. Sia TxT_x un assegnamento delle xx tale che ogni estensione alle yy soddisfi φ\varphi. TT: le xx come TxT_x, xi′=¬xix'_i = \neg x_i, tutte le yj,yj′y_j, y'_j vere. T⊨φT \models \varphi (estende TxT_x) e T⊨KBT \models \mathit{KB}. Minimo: se T′⊨KBT' \models \mathit{KB} e T′T' è almeno tanto normale, su ogni coppia xi,xi′x_i, x'_i non può spegnere l'unica vera (violerebbe la clausola), quindi coincide con TT sulle xx; allora T′⊨φT' \models \varphi qualunque siano le sue yy, e per (b) ha tutte le y,y′y, y' vere: T′=TT' = T.
  5. φ\varphi vera in un modello TT ⇒\Rightarrow Φ\Phi vera. Sia TxT_x la parte di TT sulle xx. Per assurdo un'estensione TxyT_{xy} falsifica φ\varphi. T′T': xx e x′x' come in TT, yy come TxyT_{xy}, yj′=¬yjy'_j = \neg y_j. T′⊨KBT' \models \mathit{KB}: le clausole valgono e le implicazioni sono vere perché φ\varphi è falsa. Ma per (b) TT ha tutte le y,y′y, y' vere, mentre T′T' ne ha una sola per coppia: T′<MTT' \lt_M T, contro la minimalità di TT.
  6. CIRC VALIDITY. KB⊨Mφ  ⟺  \mathit{KB} \models_M \varphi \iff nessun modello soddisfa ¬φ  ⟺  (KB,¬φ)∉CIRC SAT\neg\varphi \iff (\mathit{KB}, \neg\varphi) \notin \htmlData{term=problem:CIRC}{\mathrm{CIRC\ SAT}}. È il complemento di CIRC SAT, quindi Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo (Π2P=coΣ2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}} = \mathrm{co}\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}).

Dove serve nelle tracce

F03 n. 5 · G20v3 n. 1 · G20v4 n. 2

Classi

Σ2PΠ2P

Problemi

SAT · VALIDITY · CIRC SAT

Dove: dispensa cap. 17, pp. 69–70; slide Lez. 9. La dispensa omette la prova (riduzione da QSAT2\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_2); le slide della Lez. 9 la svolgono per CIRC SAT.

teorema

Teorema 17.10 (QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i è ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}-completo)

★ chiesto in 30 domandedimostrato nel corso

Decidere se è vera una QBF ∃X1∀X2∃X3…QXi φ\exists X_1 \forall X_2 \exists X_3 \ldots Q X_i\, \varphi con i blocchi alternati di quantificatori (QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i) è ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}-completo; il suo complemento è ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Il numero di alternanze di quantificatori coincide con il livello della gerarchia; la difficoltà si mostra come nel Teorema di Cook.

All'esame

Dà un problema completo per ogni livello: QSAT2→QSAT4\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_2 \to \htmlData{term=problem:QSAT}{\mathrm{QSAT}}_4 sì; QSAT4→QSAT2\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_4 \to \htmlData{term=problem:QSAT}{\mathrm{QSAT}}_2 solo se PH collassa al 2° livello.

Da scrivere all'esame

Per il Teorema 17.10 QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i è ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}-completo e il complemento ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}-completo: QSAT2\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_2 si riduce a QSAT4\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_4 (Σ2P⊆Σ4P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}} \subseteq \htmlData{term=Σ4}{\Sigma_4^{\mathrm{P}}}); il contrario solo se PH collassa al 2° livello.

Dimostrazione

Idea: l'appartenenza viene dal Corollario 2 del Teorema 17.8, perché QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i ha già la forma ∃∀∃…\exists\forall\exists\dots con una verifica polinomiale. Per la difficoltà si fa come nel Teorema di Cook: la verifica polinomiale RR diventa una formula; le variabili che descrivono y1,…,yiy_1, \dots, y_i si quantificano come nel Corollario 2, e le altre variabili della tabella di Cook si aggiungono con un ∃\exists che si fonde con l'ultimo blocco.

  1. Appartenenza. Data x=∃X1 ∀X2…QXi φx = \exists X_1\, \forall X_2 \dots Q X_i\, \varphi, sia yjy_j un assegnamento di verità al blocco XjX_j, e (x,y1,…,yi)∈R  ⟺  y1,…,yi(x, y_1, \dots, y_i) \in R \iff y_1, \dots, y_i soddisfano φ\varphi. RR è polinomialmente bilanciata (un assegnamento è lungo al più ∣x∣|x|) e si decide in tempo polinomiale valutando φ\varphi. xx è vera   ⟺  ∃y1 ∀y2…Qyi (x,y1,…,yi)∈R\iff \exists y_1\, \forall y_2 \dots Q y_i\, (x, y_1, \dots, y_i) \in R, quindi per il Corollario 2 QSATi∈ΣiP\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}, e il complemento sta in ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}.
  2. Complemento. ¬(∃X1 ∀X2…φ)  ⟺  ∀X1 ∃X2…¬φ\neg(\exists X_1\, \forall X_2 \dots \varphi) \iff \forall X_1\, \exists X_2 \dots \neg\varphi. Quindi co-QSATi\mathrm{co\text{-}QSAT}_i è "decidere se è vera una QBF con ii blocchi alternati che comincia con ∀\forall". Una riduzione da LL a QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i è anche una riduzione da L‾\overline{L} a co-QSATi\mathrm{co\text{-}QSAT}_i, e ΠiP=coΣiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}} = \mathrm{co}\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}: basta dimostrare la completezza di uno dei due, l'altra segue.
  3. Difficoltà, ii dispari. Sia L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}. Per il Corollario 2, L={x:∃y1 ∀y2…∃yi (x,y1,…,yi)∈R}L = \{x : \exists y_1\, \forall y_2 \dots \exists y_i\, (x, y_1, \dots, y_i) \in R\}, con ∣yj∣≤∣x∣k|y_j| \le |x|^k e RR decisa da una macchina deterministica MRM_R con budget di tempo polinomiale.
  4. La formula di Cook. Come nel Teorema di Cook, la computazione di MRM_R sull'input x;y1;… ;yix;y_1;\dots;y_i si descrive con una formula φ\varphi, costruita in spazio logaritmico. Le variabili della prima riga del nastro sono: quelle di xx, fissate a costanti; un gruppo Y1Y_1 che rappresenta y1y_1; …; un gruppo YiY_i che rappresenta yiy_i. VV è l'insieme di tutte le altre (righe successive, stati, posizioni della testina). Per Cook, fissati i valori di Y1,…,YiY_1, \dots, Y_i, esiste un valore di VV che soddisfa φ  ⟺  MR\varphi \iff M_R accetta   ⟺  (x,y1,…,yi)∈R\iff (x, y_1, \dots, y_i) \in R.
  5. La QBF. Quindi x∈L  ⟺  ∃Y1 ∀Y2…∃Yi ∃V φx \in L \iff \exists Y_1\, \forall Y_2 \dots \exists Y_i\, \exists V\, \varphi. Poiché ii è dispari l'ultimo blocco è ∃\exists, e ∃Yi ∃V\exists Y_i\, \exists V è un unico blocco: la formula ha esattamente ii blocchi alternati, cioè è un'istanza di QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i. QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i è ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}-difficile, e per il punto 2 co-QSATi\mathrm{co\text{-}QSAT}_i è ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}-difficile.
  6. Difficoltà, ii pari. Partendo da ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} l'ultimo blocco sarebbe ∀Yi\forall Y_i seguito da ∃V\exists V: un'alternanza in più. Si parte allora da L∈ΠiPL \in \Pi_i^{\htmlData{term=P}{\mathrm{P}}}: per il Corollario 1 applicato a ripetizione, L={x:∀y1 ∃y2…∃yi (x,y1,…,yi)∈R}L = \{x : \forall y_1\, \exists y_2 \dots \exists y_i\, (x, y_1, \dots, y_i) \in R\} con RR polinomiale. Con la stessa costruzione x∈L  ⟺  ∀Y1 ∃Y2…∃Yi ∃V φx \in L \iff \forall Y_1\, \exists Y_2 \dots \exists Y_i\, \exists V\, \varphi; ora l'ultimo blocco è ∃\exists e si fonde con ∃V\exists V: ii blocchi che cominciano con ∀\forall, un'istanza di co-QSATi\mathrm{co\text{-}QSAT}_i. Quindi co-QSATi\mathrm{co\text{-}QSAT}_i è ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}-difficile e, per il punto 2, QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i è ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}-difficile.

Con l'appartenenza: QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i è ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}-completo e il suo complemento è ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}-completo, per ogni i≥1i \ge 1.

Classi

ΣiPΠiP

Problemi

QSATi · co-QSATi

Dove: dispensa cap. 17, p. 70; slide Lez. 9. La dispensa lo chiama solo "Theorem" e omette la prova; il numero 17.10 e la prova vengono dalle slide della Lez. 9. Il riepilogo del cap. 22 elenca anche il complemento di QSATi\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_i come ΠiP\Pi_i^{\htmlData{term=P}{\mathrm{P}}}-completo (la barra del complemento si perde nell'estrazione del testo).

teorema

STRATEGIC COMPANIES è Σ2P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}-completo

chiesto in 1 domandadimostrato nel corso

Una società è strategica se appartiene ad almeno un gruppo che produce tutte le merci, include le società controllate dalle società scelte e non può essere ridotto mantenendo queste condizioni. Decidere se una società è strategica è Σ2P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}-completo; il suo complemento è Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

"Esiste un insieme C′C' che contiene la società e tale che nessun suo sottoinsieme proprio va bene": un ∃\exists seguito da un ∀\forall, come QSAT2\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_2.

All'esame

Altro problema completo al 2° livello negli esercizi di riduzione (per esempio CLIQUE si riduce al complemento di STRATEGIC COMPANIES perché Σ1P⊆Π2P\htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}} \subseteq \htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}).

Da scrivere all'esame

STRATEGIC COMPANIES è Σ2P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}-completo e il complemento Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo: CLIQUE si riduce al complemento perché Σ1P⊆Π2P\htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}} \subseteq \htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}; il contrario farebbe collassare PH al primo livello.

Dimostrazione

Idea: cc è strategica se esiste un insieme C′C' che la contiene, va bene, e nessun suo sottoinsieme proprio va bene: ∃\exists seguito da ∀\forall, quindi Σ2P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}. La difficoltà si mostra riducendo QSAT2\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_2: le società-letterale delle xx codificano un assegnamento, e una società speciale ww obbliga a tenere tutte le società-letterale delle yy.

Notazione: C′⊆CC' \subseteq C va bene se (1) le società di C′C' producono tutte le merci GG, e (2) chiusura: se un insieme di controllo Oj(c)O_j(c) è tutto in C′C', allora c∈C′c \in C'. cc è strategica se sta in un C′C' che va bene ed è minimo (nessun C′′⊊C′C'' \subsetneq C' va bene).

  1. Appartenenza. "C′C' non è minimo" sta in NP: si indovina C′′⊊C′C'' \subsetneq C' e si verificano (1) e (2) in tempo polinomiale. L'algoritmo indovina C′C' con c∈C′c \in C', verifica (1) e (2), chiede all'oracolo se C′C' non è minimo e accetta se la risposta è "no": NPNP=Σ2P\htmlData{term=NP}{\mathrm{NP}}^{\htmlData{term=NP}{\mathrm{NP}}} = \htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}.
  2. Riduzione. Sia Φ=∃x1…xn ∀y1…ym φ\Phi = \exists x_1 \dots x_n\, \forall y_1 \dots y_m\, \varphi con φ\varphi disgiunzione di termini L1∧L2∧L3L_1 \land L_2 \land L_3 (resta Σ2P\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}-difficile: è la negazione della forma CNF data dalla prova del Teorema 17.10). Società: xi,¬xi,yj,¬yj,wx_i, \neg x_i, y_j, \neg y_j, w. Merci gxi,gyjg_{x_i}, g_{y_j}, ciascuna prodotta solo dai due letterali della sua variabile. Controlli: xix_i e ¬xi\neg x_i controllate solo da sé stesse (nessun vincolo); yj,¬yjy_j, \neg y_j controllate da {w}\{w\} (se w∈C′w \in C' tutte le yy-letterali sono in C′C'); ww controllata da ogni {L1,L2,L3}\{L_1, L_2, L_3\} termine di φ\varphi. Si chiede se ww è strategica.
  3. Φ\Phi vera ⇒\Rightarrow ww strategica. Sia TT sulle xx tale che ogni estensione soddisfi φ\varphi. C′C' = letterali delle xx veri in TT, tutte le yj,¬yjy_j, \neg y_j, e ww. C′C' va bene. Minimo: sia C′′⊊C′C'' \subsetneq C' che va bene. Deve avere gli stessi letterali delle xx (sono gli unici produttori delle gxg_x), quindi perde qualche yy-letterale o ww; se w∈C′′w \in C'' la chiusura rimette tutte le yy-letterali, quindi w∉C′′w \notin C''. Per ogni jj C′′C'' contiene yjy_j o ¬yj\neg y_j: sia TyT_y con yjy_j vera   ⟺  yj∈C′′\iff y_j \in C''. T∪TyT \cup T_y soddisfa φ\varphi, quindi un termine è vero e i suoi tre letterali veri stanno tutti in C′′C'': la chiusura impone w∈C′′w \in C''. Assurdo.
  4. ww strategica ⇒\Rightarrow Φ\Phi vera. Sia C′C' minimo con w∈C′w \in C'; per la chiusura contiene tutte le yy-letterali, e per la minimalità un solo letterale per ogni xix_i (l'altro si potrebbe togliere). TT: xix_i vera   ⟺  xi∈C′\iff x_i \in C'. Per assurdo un'estensione TyT_y rende φ\varphi falsa. C′′C'' = letterali delle xx di C′C' più i letterali delle yy veri in TyT_y, senza ww. C′′⊊C′C'' \subsetneq C' produce tutte le merci; la chiusura per le yy vale perché w∉C′′w \notin C''; quella per ww vale perché ogni termine ha un letterale falso, che non sta in C′′C''. Quindi C′′C'' va bene: contro la minimalità di C′C'.
  5. Complemento. Poiché Π2P=coΣ2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}} = \mathrm{co}\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}}, il complemento di STRATEGIC COMPANIES è Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo.

Dove serve nelle tracce

G20v5 n. 2

Classi

Σ2PΠ2P

Dove: dispensa cap. 17, p. 70; dispensa cap. 22, p. 85; slide Lez. 9. La dispensa omette la prova (riduzione da QSAT2\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_2); le slide della Lez. 9 la svolgono. Nell'esercizio 3 del cap. 17 e nel riepilogo del cap. 22 la versione Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completa è il complemento (barra persa nell'estrazione del testo).

teorema

Teorema 17.11 (niente problemi PH-completi)

chiesto in 4 domandedimostrato nel corso

Se esistesse un problema PH-completo, la gerarchia polinomiale collasserebbe a un livello finito.

Idea, frase per l'esame e dimostrazione +

Intuizione

Un problema PH-completo starebbe in qualche ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}}; tutto Σi+1P\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}} si ridurrebbe a lui e, poiché ogni livello è chiuso rispetto alle riduzioni, Σi+1P=ΣiP\Sigma_{i+1}^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_i^{\htmlData{term=P}{\mathrm{P}}}.

All'esame

Serve per le risposte "solo se PH collassa" sui problemi completi per tutta PH.

Da scrivere all'esame

Per il Teorema 17.11 un problema PH-completo farebbe collassare PH a un livello finito: quindi un problema completo per PH (o per PSPACE in PH) esiste solo se PH collassa.

Dimostrazione

Idea: un problema PH-completo LL starebbe in un livello finito ΣkP\Sigma_k^{\htmlData{term=P}{\mathrm{P}}} (perché PH è l'unione dei livelli). Tutti i problemi del livello sopra si ridurrebbero a LL, e i livelli sono chiusi rispetto alle riduzioni: il livello k+1k+1 schiaccerebbe sul livello kk.

  1. LL sta in un livello. PH=⋃i≥0ΣiP\htmlData{term=PH}{\mathrm{PH}} = \bigcup_{i \ge 0} \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} (unione di tutti i livelli). Se LL è PH-completo, L∈PHL \in \htmlData{term=PH}{\mathrm{PH}}, quindi esiste k≥0k \ge 0 con L∈ΣkPL \in \Sigma_k^{\htmlData{term=P}{\mathrm{P}}}.
  2. Tutto il livello sopra si riduce a LL. Sia L′∈Σk+1PL' \in \Sigma_{k+1}^{\htmlData{term=P}{\mathrm{P}}}. Poiché Σk+1P⊆PH\Sigma_{k+1}^{\htmlData{term=P}{\mathrm{P}}} \subseteq \htmlData{term=PH}{\mathrm{PH}} e LL è PH-difficile, esiste una riduzione RR da L′L' a LL: x∈L′  ⟺  R(x)∈Lx \in L' \iff R(x) \in L.
  3. I livelli sono chiusi rispetto alle riduzioni. Per decidere L′L' si calcola R(x)R(x) (tempo polinomiale) e poi si esegue la macchina che decide LL nel budget di ΣkP\Sigma_k^{\htmlData{term=P}{\mathrm{P}}} su R(x)R(x), che è lunga un polinomio in ∣x∣|x|. Il totale resta nel budget di ΣkP\Sigma_k^{\htmlData{term=P}{\mathrm{P}}}, quindi L′∈ΣkPL' \in \Sigma_k^{\htmlData{term=P}{\mathrm{P}}}.
  4. Il livello k+1k+1 è uguale al livello kk. Dal punto 3, Σk+1P⊆ΣkP\Sigma_{k+1}^{\htmlData{term=P}{\mathrm{P}}} \subseteq \Sigma_k^{\htmlData{term=P}{\mathrm{P}}}, e l'inclusione opposta vale sempre: Σk+1P=ΣkP\Sigma_{k+1}^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_k^{\htmlData{term=P}{\mathrm{P}}}.
  5. Collasso. ΣkP⊆Πk+1P\Sigma_k^{\htmlData{term=P}{\mathrm{P}}} \subseteq \Pi_{k+1}^{\htmlData{term=P}{\mathrm{P}}} (ogni livello contiene quelli sotto), quindi Σk+1P=ΣkP⊆Πk+1P\Sigma_{k+1}^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_k^{\htmlData{term=P}{\mathrm{P}}} \subseteq \Pi_{k+1}^{\htmlData{term=P}{\mathrm{P}}}. Complementando, Πk+1P⊆Σk+1P\Pi_{k+1}^{\htmlData{term=P}{\mathrm{P}}} \subseteq \Sigma_{k+1}^{\htmlData{term=P}{\mathrm{P}}}. Dunque Σk+1P=Πk+1P\Sigma_{k+1}^{\htmlData{term=P}{\mathrm{P}}} = \Pi_{k+1}^{\htmlData{term=P}{\mathrm{P}}} e per il Teorema 17.9 PH=Σk+1P=ΣkP\htmlData{term=PH}{\mathrm{PH}} = \Sigma_{k+1}^{\htmlData{term=P}{\mathrm{P}}} = \Sigma_k^{\htmlData{term=P}{\mathrm{P}}}: la gerarchia collassa a un livello finito.

Dove serve nelle tracce

F02 n. 7 · G16 n. 1 · MA23 n. 2 · ND n. 6

Classi

PHΣiP

Dove: dispensa cap. 17, p. 70; slide Lez. 9

proposizione

Proposizione 17.1 (PH⊆PSPACE\htmlData{term=PH}{\mathrm{PH}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}})

★ chiesto in 18 domandedimostrato nel corso

PH⊆PSPACE\htmlData{term=PH}{\mathrm{PH}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Per ogni livello si provano tutti i certificati y1,…,yiy_1, \ldots, y_i uno alla volta riusando lo spazio: sono di lunghezza polinomiale.

All'esame

Ogni problema di PH si riduce a QSAT; non si sa se PH=PSPACE\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Da scrivere all'esame

PH⊆PSPACE\htmlData{term=PH}{\mathrm{PH}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} (Proposizione 17.1): quindi ogni problema di PH, per esempio QSAT3\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_3, si riduce a QSAT, che è PSPACE-completo.

Dimostrazione

Idea: un problema di ΣiP\Sigma_i^{\htmlData{term=P}{\mathrm{P}}} è "∃y1 ∀y2…\exists y_1\, \forall y_2 \dots con una verifica polinomiale", e i certificati yjy_j sono corti. Una macchina deterministica può provare tutti i certificati uno alla volta, riusando lo stesso spazio: ci mette moltissimo tempo, ma poco spazio.

  1. Forma del problema. Sia L∈PHL \in \htmlData{term=PH}{\mathrm{PH}}. Allora L∈ΣiPL \in \Sigma_i^{\htmlData{term=P}{\mathrm{P}}} per qualche ii (per i=0i = 0, L∈P⊆PSPACEL \in \htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} e non c'è nulla da fare). Per il Corollario 2 del Teorema 17.8, L={x:∃y1 ∀y2…Qyi (x,y1,…,yi)∈R}L = \{x : \exists y_1\, \forall y_2 \dots Q y_i\, (x, y_1, \dots, y_i) \in R\} con RR decidibile in tempo polinomiale e ogni ∣yj∣≤∣x∣k|y_j| \le |x|^k.
  2. Valutazione ricorsiva. Per decidere "∃y1…\exists y_1 \dots" si provano tutti gli y1y_1 di lunghezza ≤∣x∣k\le |x|^k, in ordine, come si incrementa un contatore; per ognuno si valuta ricorsivamente il resto "∀y2…\forall y_2 \dots"; si risponde sì appena un y1y_1 funziona. Per "∀yj\forall y_j" si risponde sì solo se tutti funzionano. All'ultimo livello si verifica (x,y1,…,yi)∈R(x, y_1, \dots, y_i) \in R.
  3. Spazio per i certificati. In ogni momento bastano: il valore corrente di ciascun yjy_j (al più ∣x∣k|x|^k simboli) e, per ogni livello jj, un'informazione su cosa si sta facendo (cercarne uno giusto o provarli tutti). ii è una costante fissata da LL, quindi in tutto O(i⋅∣x∣k)O(i \cdot |x|^k): un polinomio. Passando al certificato successivo si riusa lo stesso spazio.
  4. Spazio per la verifica. La verifica di RR gira con un budget di tempo polinomiale, e una macchina non può usare più celle dei passi che fa: anche lo spazio è polinomiale, e si riusa a ogni verifica.

Il tempo è esponenziale (si provano tutti i certificati), ma lo spazio è polinomiale: L∈PSPACEL \in \htmlData{term=PSPACE}{\mathrm{PSPACE}}. Quindi PH⊆PSPACE\htmlData{term=PH}{\mathrm{PH}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}; non si sa se l'inclusione sia stretta.

Classi

PHPSPACE

Dove: dispensa cap. 17, p. 71; slide Lez. 9. La dispensa la enuncia senza prova; le slide della Lez. 9 danno la prova (cenni).

corollario

Corollario di 17.11 (PH=PSPACE⇒\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}} \Rightarrow collasso)

chiesto in 4 domandedimostrato nel corso

Se PH=PSPACE\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}, allora la gerarchia polinomiale collassa a un livello finito.

Idea, frase per l'esame e dimostrazione +

Intuizione

PSPACE ha problemi completi (QSAT): se PH fosse uguale a PSPACE ne avrebbe anche lei, e per il Teorema 17.11 collasserebbe.

All'esame

Per questo si pensa che PH≠PSPACE\htmlData{term=PH}{\mathrm{PH}} \neq \htmlData{term=PSPACE}{\mathrm{PSPACE}}; per esempio QSAT si riduce a QSAT3\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_3 solo se PH collassa.

Da scrivere all'esame

Se PH=PSPACE\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}, QSAT sarebbe PH-completo e PH collasserebbe (Teorema 17.11): quindi QSAT si riduce a QSAT3\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_3 solo se PH collassa al 3° livello.

Dimostrazione

Idea: PSPACE ha un problema completo (QSAT). Se PH fosse uguale a PSPACE, QSAT sarebbe completo anche per PH, e il Teorema 17.11 dice che allora PH collassa.

  1. QSAT∈PH\htmlData{term=problem:QSAT}{\mathrm{QSAT}} \in \htmlData{term=PH}{\mathrm{PH}}. Se PH=PSPACE\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}, poiché QSAT∈PSPACE\htmlData{term=problem:QSAT}{\mathrm{QSAT}} \in \htmlData{term=PSPACE}{\mathrm{PSPACE}} si ha QSAT∈PH\htmlData{term=problem:QSAT}{\mathrm{QSAT}} \in \htmlData{term=PH}{\mathrm{PH}}.
  2. QSAT è PH-difficile. Ogni L∈PHL \in \htmlData{term=PH}{\mathrm{PH}} sta in PSPACE (perché PH=PSPACE\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}) e QSAT è PSPACE-completo, quindi LL si riduce a QSAT.
  3. QSAT è PH-completo. Dai punti 1 e 2.
  4. Collasso. Per il Teorema 17.11, se esiste un problema PH-completo la gerarchia collassa a un livello finito kk. In più, in questo caso si avrebbe PSPACE=PH=ΣkP\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \htmlData{term=PH}{\mathrm{PH}} = \Sigma_k^{\htmlData{term=P}{\mathrm{P}}}.

Poiché si crede che i livelli di PH siano tutti distinti, si crede anche che PH≠PSPACE\htmlData{term=PH}{\mathrm{PH}} \neq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Dove serve nelle tracce

F04 n. 1 · F08 n. 3 · L18 n. 1 · G20v4 n. 4

Classi

PHPSPACE

Dove: dispensa cap. 17, p. 71; slide Lez. 9

teorema

QSAT è PSPACE-completo

★ chiesto in 8 domandedimostrato nel corso

Decidere se una QBF qualsiasi (senza limite alle alternanze di quantificatori) è vera è PSPACE-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Sta in PSPACE con una valutazione ricorsiva che riusa lo spazio; per la difficoltà si codifica la raggiungibilità sul grafo delle configurazioni con QBF piccole, come il predicato PATH di Savitch.

All'esame

È il PSPACE-completo di riferimento: per esempio QSAT3\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_3 si riduce a QSAT perché Σ3P⊆PSPACE\htmlData{term=Σ3}{\Sigma_3^{\mathrm{P}}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Da scrivere all'esame

QSAT è PSPACE-completo: QSAT3\htmlData{term=problem:QSAT}{\mathrm{QSAT}}_3 si riduce a QSAT perché Σ3P⊆PSPACE\htmlData{term=Σ3}{\Sigma_3^{\mathrm{P}}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}, mentre il contrario implicherebbe PSPACE=Σ3P\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \htmlData{term=Σ3}{\Sigma_3^{\mathrm{P}}} e il collasso di PH.

Dimostrazione

Idea: QSAT sta in PSPACE perché si valuta la QBF ricorsivamente, provando prima p=falsop = \text{falso} e poi p=verop = \text{vero} nello stesso spazio. Per la difficoltà, "la macchina in spazio polinomiale accetta" diventa una domanda di raggiungibilità sul grafo delle configurazioni, che si scrive con una QBF piccola usando il trucco del punto di mezzo di Savitch, più un ∀\forall che permette di scrivere una sola copia della formula.

  1. Appartenenza. Algoritmo Truth su Q1p1…Qnpn φQ_1 p_1 \dots Q_n p_n\, \varphi: se n=0n = 0 valuta φ\varphi; altrimenti calcola b0=Truthb_0 = \mathrm{Truth} del resto con p1=falsop_1 = \text{falso}, poi b1b_1 con p1=verop_1 = \text{vero}, riusando lo spazio; restituisce b0∨b1b_0 \lor b_1 se Q1=∃Q_1 = \exists, b0∧b1b_0 \land b_1 se Q1=∀Q_1 = \forall. La ricorsione è profonda nn e ogni livello ricorda due bit e i valori assegnati: spazio O(n2)O(n^2) più la valutazione di φ\varphi, polinomiale.
  2. Difficoltà: impostazione. Sia L∈PSPACEL \in \htmlData{term=PSPACE}{\mathrm{PSPACE}}, deciso da MM con budget di spazio ncn^c; supponiamo che MM, prima di accettare, cancelli i nastri, così c'è una sola configurazione accettante. Una configurazione si descrive con m=O(nc)m = O(n^c) bit, quindi ce ne sono al più 2m2^m, e x∈L  ⟺  x \in L \iff nel grafo delle configurazioni c'è un cammino di lunghezza ≤2m\le 2^m dalla configurazione iniziale a quella accettante.
  3. ψ0\psi_0. Per blocchi X,YX, Y di mm variabili, ψ0(X,Y)\psi_0(X, Y) è vera   ⟺  X\iff X e YY codificano configurazioni uguali o tali che YY segue XX in un passo. Si scrive come nel Teorema di Cook con una tabella di sole due righe: dimensione polinomiale in mm.
  4. Tentativo ingenuo. ψi+1(X,Y)=∃Z [ψi(X,Z)∧ψi(Z,Y)]\psi_{i+1}(X, Y) = \exists Z\, [\psi_i(X, Z) \land \psi_i(Z, Y)] è corretta (un cammino lungo ≤2i+1\le 2^{i+1} ha un punto di mezzo ZZ), ma ψi\psi_i compare due volte: la dimensione raddoppia a ogni passo e ψm\psi_m sarebbe esponenziale.
  5. Il trucco. ψi+1(X,Y)=∃Z ∀A ∀B [((A=X∧B=Z)∨(A=Z∧B=Y))→ψi(A,B)]\psi_{i+1}(X, Y) = \exists Z\, \forall A\, \forall B\, [((A = X \land B = Z) \lor (A = Z \land B = Y)) \to \psi_i(A, B)]. Il ∀\forall percorre tutte le coppie (A,B)(A, B), ma l'implicazione è significativa solo per le due coppie (X,Z)(X, Z) e (Z,Y)(Z, Y): quindi è vera   ⟺  \iff esiste ZZ con ψi(X,Z)∧ψi(Z,Y)\psi_i(X, Z) \land \psi_i(Z, Y). Ora ψi\psi_i compare una sola volta: ∣ψi+1∣=∣ψi∣+O(m)|\psi_{i+1}| = |\psi_i| + O(m), quindi ∣ψm∣=O(m2)|\psi_m| = O(m^2), polinomiale.
  6. La riduzione. x↦ψm(C0,Cacc)x \mapsto \psi_m(C_0, C_{\mathrm{acc}}), con XX e YY sostituiti dalle costanti delle configurazioni iniziale e accettante; i quantificatori si portano tutti in testa (le variabili sono tutte diverse). x∈L  ⟺  x \in L \iff la QBF è vera. La costruzione è ripetitiva e usa solo contatori per gli indici delle variabili, quindi si fa in spazio logaritmico.

Le alternanze di quantificatori crescono con mm: per questo QSAT non sta in un livello fisso di PH (a meno di collassi).

Dove serve nelle tracce

F05 n. 7 · F07 n. 7 · G16 n. 6 · F13 n. 6 · L18 n. 1 · L18 n. 4 · FE23 n. 3 · SE23 n. 3

Classi

PSPACE

Problemi

QSAT

Dove: dispensa cap. 17, p. 71; slide Lez. 9. La dispensa omette la prova; le slide della Lez. 9 la svolgono.

proposizione

Complemento di HAMILTON PATH: coNP-completo, Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo solo se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}

Il complemento di HAMILTON PATH è coNP-completo, quindi sta in coNP=Π1P\htmlData{term=coNP}{\mathrm{coNP}} = \htmlData{term=Π1}{\Pi_1^{\mathrm{P}}}. È anche Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo se e solo se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}; QSAT si riduce a esso solo se PH collassa al primo livello.

Idea, frase per l'esame e dimostrazione +

Intuizione

Se un problema di coNP fosse completo per il secondo livello, tutto il secondo livello cadrebbe in coNP: la gerarchia si fermerebbe al primo livello.

All'esame

Nell'esercizio 3 del cap. 17: il complemento di HAMILTON PATH si tratta come coNP-completo, e una riduzione da QSAT a esso farebbe collassare PH al primo livello.

Da scrivere all'esame

Il complemento di HAMILTON PATH è coNP-completo, non Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo (lo sarebbe solo se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}): QSAT vi si riduce solo se PSPACE=coNP\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \htmlData{term=coNP}{\mathrm{coNP}} e PH collassa al primo livello.

Dimostrazione

Idea: il complemento di HAMILTON PATH è coNP-completo; se fosse anche Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo, il secondo livello coinciderebbe con il primo, cioè NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}.

  1. Il punto di partenza. HAMILTON PATH è NP-completo: il certificato è il cammino, verificabile in tempo polinomiale. Quindi il suo complemento sta in coNP=Π1P\htmlData{term=coNP}{\mathrm{coNP}} = \htmlData{term=Π1}{\Pi_1^{\mathrm{P}}} ed è coNP-completo (Proposizione B, cap. 14; riepilogo del cap. 22).
  2. Cosa seguirebbe dalla Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completezza. Se il complemento di HAMILTON PATH fosse Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo, ogni problema di Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}} si ridurrebbe a un problema di coNP. coNP è chiusa rispetto alle riduzioni, quindi Π2P⊆coNP⊆Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}} \subseteq \htmlData{term=coNP}{\mathrm{coNP}} \subseteq \htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}, cioè Π2P=Π1P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}} = \htmlData{term=Π1}{\Pi_1^{\mathrm{P}}}.
  3. Questo è un collasso. Complementando, Σ2P=Σ1P=NP\htmlData{term=Σ2}{\Sigma_2^{\mathrm{P}}} = \htmlData{term=Σ1}{\Sigma_1^{\mathrm{P}}} = \htmlData{term=NP}{\mathrm{NP}}. Inoltre NP⊆Π2P\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=Π2}{\Pi_2^{\mathrm{P}}} (ogni livello contiene quelli sotto) =coNP= \htmlData{term=coNP}{\mathrm{coNP}}, e complementando coNP⊆NP\htmlData{term=coNP}{\mathrm{coNP}} \subseteq \htmlData{term=NP}{\mathrm{NP}}: dunque NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}} e PH collassa al primo livello (Corollario del Teorema 17.9).
  4. Il viceversa. Se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}, allora PH=NP=coNP\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}} e ogni problema coNP-completo è anche Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo. Quindi il complemento di HAMILTON PATH è Π2P\htmlData{term=Π2}{\Pi_2^{\mathrm{P}}}-completo esattamente se NP=coNP\htmlData{term=NP}{\mathrm{NP}} = \htmlData{term=coNP}{\mathrm{coNP}}, che si crede falso.
  5. Conseguenza per l'esercizio 3 del cap. 17. HAMILTON PATH (complemento) → QSAT: sì, perché coNP⊆PSPACE\htmlData{term=coNP}{\mathrm{coNP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}. QSAT → complemento di HAMILTON PATH: solo se PSPACE⊆coNP\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=coNP}{\mathrm{coNP}}; allora PH=PSPACE=coNP=NP\htmlData{term=PH}{\mathrm{PH}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}} = \htmlData{term=coNP}{\mathrm{coNP}} = \htmlData{term=NP}{\mathrm{NP}}, cioè PH collassa al primo livello.

Classi

coNPΠ2P

Dove: dispensa cap. 17, p. 74 (esercizio 3)

Capitolo 18 · Query su database

teorema

Teorema (complessità delle query ai database relazionali)

Per le query booleane in algebra relazionale la combined complexity e la expression complexity sono PSPACE-complete, la data complexity è L-completa. Per le query congiuntive (senza unioni né negazioni) combined ed expression complexity sono NP-complete, la data complexity è AC0\mathrm{AC}^0-completa.

Idea, frase per l'esame e dimostrazione +

Intuizione

Se la query è fissa e varia solo il database, il problema diventa molto più facile.

Da scrivere all'esame

Per le query in algebra relazionale combined ed expression complexity sono PSPACE-complete e la data complexity è in L\htmlData{term=L}{\mathrm{L}}; per le query congiuntive NP-complete e AC0\mathrm{AC}^0.

Schema della dimostrazione

Idea: una query booleana in algebra relazionale equivale a una formula della logica del primo ordine (con ∃,∀,¬,∧,∨\exists, \forall, \neg, \land, \lor) valutata sul database. Se la query è parte dell'input, le sue alternanze di quantificatori codificano una QBF (PSPACE); se la query è fissa, ha un numero costante di variabili e si valuta con pochi contatori (spazio logaritmico). Le slide dicono che questi risultati non sono nel libro: qui c'è solo lo schema.

  1. Combined complexity in PSPACE. Si valuta la formula ricorsivamente, come l'algoritmo Truth per QSAT: per ogni quantificatore si provano uno alla volta gli elementi del database, riusando lo spazio. La profondità è al più la lunghezza della query e ogni livello ricorda un elemento: spazio polinomiale.
  2. Expression (e quindi combined) complexity PSPACE-difficile. Si fissa il database con dominio {0,1}\{0, 1\} e una relazione T={1}T = \{1\} ("è vero"). Una QBF Q1p1…Qnpn φQ_1 p_1 \dots Q_n p_n\, \varphi diventa la query Q1p1…Qnpn φ′Q_1 p_1 \dots Q_n p_n\, \varphi', dove φ′\varphi' si ottiene sostituendo ogni pp con T(p)T(p). La query è vera sul database   ⟺  \iff la QBF è vera: QSAT si riduce al problema con database fisso.
  3. Data complexity in L\htmlData{term=L}{\mathrm{L}}. Con la query fissa, il numero kk di variabili è una costante. Si valutano i quantificatori con kk cicli annidati sugli elementi del database: kk contatori di O(log⁡n)O(\log n) bit (nn = dimensione del database), e ogni atomo si controlla scorrendo l'input. Spazio O(log⁡n)O(\log n). (La completezza dipende dal tipo di riduzioni usato: il contenuto da ricordare è il limite superiore L⊆P\htmlData{term=L}{\mathrm{L}} \subseteq \htmlData{term=P}{\mathrm{P}}.)
  4. Query congiuntive, combined complexity in NP. Una query congiuntiva è ∃x1…xk\exists x_1 \dots x_k (congiunzione di atomi). Il certificato è un valore per ogni variabile; si verifica in tempo polinomiale che ogni atomo sia nel database.
  5. Query congiuntive, NP-difficile anche con database fisso. Da 3-COLORING: database fisso con la relazione EE = coppie di colori diversi tra {r,g,b}\{r, g, b\}. Dato un grafo, la query è ∃x1…xn⋀E(xi,xj)\exists x_1 \dots x_n \bigwedge E(x_i, x_j) su tutti gli archi [i,j][i, j]: è vera   ⟺  \iff il grafo è 3-colorabile. Quindi expression e combined complexity sono NP-complete.
  6. Query congiuntive, data complexity AC0\mathrm{AC}^0. Con la query fissa, la risposta è un grande "oppure" sulle nkn^k scelte delle variabili, ciascuna un "e" di controlli sul database: un circuito di profondità costante e dimensione polinomiale, cioè AC0⊆L\mathrm{AC}^0 \subseteq \htmlData{term=L}{\mathrm{L}}.

Classi

LNPPSPACE

Dove: dispensa cap. 18, p. 75; slide Lez. 9. Le slide precisano che questi risultati non sono nel libro di riferimento.

Capitolo 19 · Giochi

teorema

Teorema 19.3 (GEOGRAPHY è PSPACE-completo)

chiesto in 5 domande

Dato un grafo, decidere se il primo giocatore ha una strategia vincente a GEOGRAPHY a partire dal nodo 1 è PSPACE-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Le mosse alternate dei due giocatori corrispondono ai quantificatori alternati ∃∀∃…\exists\forall\exists\ldots di una QBF.

All'esame

Esercizio d'esame: GEOGRAPHY si riduce a QSAT; un unico kk che limiti le alternanze per tutte le istanze esisterebbe solo se PH e PSPACE collassassero a ΣkP\Sigma_k^{\htmlData{term=P}{\mathrm{P}}}.

Da scrivere all'esame

SÌ: GEOGRAPHY è PSPACE-completo (Teorema 19.3), quindi si riduce a QSAT; un kk fisso di alternanze per tutte le istanze esisterebbe solo se PH e PSPACE collassassero a ΣkP\Sigma_k^{\htmlData{term=P}{\mathrm{P}}}.

Schema della dimostrazione

Idea: GEOGRAPHY sta in PSPACE perché l'albero delle partite si esplora in profondità riusando lo spazio; è PSPACE-difficile perché una partita può imitare la valutazione di una formula quantificata (QSAT): il primo giocatore fa la parte di ∃\exists, il secondo quella di ∀\forall.

  1. Regole precise. C'è un grafo orientato G=(V,E)G = (V, E) (VV = nodi, EE = archi) e si parte dal nodo 1. A turno ogni giocatore sceglie un nodo non ancora usato collegato da un arco all'ultimo nodo detto; chi non può muovere perde. Il divieto di ripetere (una città non si dice due volte) serve: grazie a esso una partita dura al più ∣V∣|V| mosse (∣V∣|V| = numero di nodi).
  2. GEOGRAPHY∈PSPACE\htmlData{term=problem:GEO}{\mathrm{GEOGRAPHY}} \in \htmlData{term=PSPACE}{\mathrm{PSPACE}}. Procedura ricorsiva: il giocatore di turno vince se esiste una mossa verso un nodo libero vv tale che l'avversario, ripartendo da vv, non vince. La ricorsione è profonda al più ∣V∣|V| e ogni livello ricorda solo il nodo scelto e il prossimo successore da provare: spazio O(∣V∣log⁡∣V∣)O(|V| \log |V|), polinomiale. È la stessa forma "esiste una mossa tale che per ogni risposta…" di una QBF.
  3. Riduzione da QSAT: le variabili. Sia φ=∃x1∀x2∃x3…∃xn ψ\varphi = \exists x_1 \forall x_2 \exists x_3 \dots \exists x_n\, \psi con ψ\psi in forma normale congiuntiva (aggiungendo variabili fittizie si ottiene che i quantificatori alternino e l'ultimo sia ∃\exists). Per ogni variabile si mette un "rombo": dal nodo in alto si scende a sinistra (xix_i vera) o a destra (xix_i falsa) e ci si ricongiunge in basso. I rombi sono in catena; con nodi di raccordo si fa in modo che nel rombo ii scelga il primo giocatore se xix_i ha ∃\exists, il secondo se ha ∀\forall. Percorrere la catena = scegliere un'assegnazione nell'ordine dei quantificatori.
  4. Le clausole. Dal fondo dell'ultimo rombo il secondo giocatore va su un nodo-clausola CjC_j ("questa clausola è falsa"); poi il primo va su un nodo-letterale di CjC_j ("questo letterale è vero"). Il nodo-letterale xix_i ha un solo arco, verso il lato "vera" del rombo ii; ¬xi\neg x_i verso il lato "falsa".
  5. Chi vince. Ora tocca al secondo giocatore. Se il letterale è vero, quel nodo del rombo è già stato usato: lui non può muovere e perde. Se è falso, ci va, ma da lì l'unica uscita è il fondo del rombo, già usato: il primo non può muovere e perde. Quindi il primo vince il finale sse ogni clausola ha un letterale vero, cioè sse ψ\psi è vera con l'assegnazione scelta.
  6. Conclusione. Il primo giocatore ha una strategia vincente sse esiste un valore di x1x_1 tale che per ogni valore di x2x_2… ψ\psi è vera, cioè sse φ\varphi è vera. Il grafo è lineare nella dimensione di φ\varphi e si costruisce in spazio logaritmico; QSAT è PSPACE-completo, quindi lo è anche GEOGRAPHY.

Dove serve nelle tracce

F05 n. 5 · MZ22 n. 2 · GE23 n. 3 · MA23 n. 3 · LU24 n. 2

Classi

PSPACE

Problemi

GEOGRAPHY

Dove: dispensa cap. 19, p. 76; slide Lez. 9. Il numero 19.3 viene dalle slide; la dispensa lo chiama solo "Theorem".

teorema

Teorema 19.4 (GO è PSPACE-completo)

Data una scacchiera n×nn \times n e una configurazione, decidere se un giocatore ha una strategia vincente a GO è PSPACE-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Come per GEOGRAPHY, le strategie di gioco corrispondono all'alternanza dei quantificatori.

Da scrivere all'esame

GO generalizzato (n×nn \times n) è PSPACE-completo (Teorema 19.4): dire se il nero ha una strategia vincente equivale a valutare una QBF, quindi è in P solo se P=PSPACE\htmlData{term=P}{\mathrm{P}} = \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Schema della dimostrazione

Idea: come per GEOGRAPHY, una strategia vincente è un'alternanza "esiste una mia mossa tale che per ogni risposta…": si sta in PSPACE esplorando l'albero di gioco, e si è PSPACE-difficili perché sulla scacchiera si può disegnare una partita di GEOGRAPHY (Lichtenstein e Sipser, 1980).

  1. Il problema. Data una scacchiera n×nn \times n e una configurazione, il giocatore che muove (il nero nelle slide, il primo giocatore nella dispensa: è lo stesso se muove il nero) ha una strategia vincente?
  2. Appartenenza a PSPACE. Si suppone, come nella formulazione del teorema, che la partita duri un numero di mosse polinomiale in nn. Allora si valuta l'albero di gioco in profondità come per GEOGRAPHY: ogni livello della ricorsione memorizza una scacchiera (n2n^2 caselle) e la mossa in prova, e la profondità è polinomiale, quindi lo spazio è polinomiale. (Senza questo limite, con tutte le regole del ko le partite possono durare un numero esponenziale di mosse, e il problema diventa EXP-completo: per questo il limite serve.)
  3. Difficoltà: da quale problema si parte. Si riduce GEOGRAPHY ristretto a grafi planari (disegnabili senza incroci), con ogni nodo di grado al più 3: resta PSPACE-completo, perché i rombi della prova per GEOGRAPHY si possono disegnare in questa forma.
  4. Nodi e archi sulla scacchiera. Ogni arco diventa un "corridoio" di pietre e ogni nodo un incrocio di corridoi. Giocare all'ingresso di un corridoio minaccia di catturare un grande gruppo: l'avversario è costretto a rispondere in un punto preciso, altrimenti perde quel gruppo. Così le uniche mosse sensate sono quelle che percorrono un arco del grafo, e un nodo già usato corrisponde a un corridoio già chiuso.
  5. Chi vince. Alla fine c'è un gruppo enorme la cui cattura decide il punteggio: il giocatore che in GEOGRAPHY resta senza mosse perde quel gruppo e quindi la partita. Dunque il nero vince a GO sse il primo giocatore vince a GEOGRAPHY sul grafo di partenza.
  6. Conclusione. La configurazione ha dimensione polinomiale nel grafo e si costruisce in spazio logaritmico; insieme al punto 2, GO generalizzato è PSPACE-completo.

Classi

PSPACE

Dove: dispensa cap. 19, p. 77; slide Lez. 9. Il numero 19.4 viene dalle slide (che parlano del nero); la dispensa parla del primo giocatore.

Capitolo 20 · Crittografia e function problems

proposizione

FSAT è FNP-completo

chiesto in 2 domande

FSAT (trovare un'assegnazione che soddisfa una formula, oppure rispondere "no") è completo per FNP rispetto alle riduzioni tra function problems (coppie RR, SS calcolabili in spazio logaritmico).

Idea, frase per l'esame e dimostrazione +

Intuizione

È la versione "trova la soluzione" di SAT.

Da scrivere all'esame

FSAT è FNP-completo (ogni problema di FNP si riduce a FSAT con la costruzione di Cook-Levin), quindi FSAT∈FP\mathrm{FSAT} \in \mathrm{FP} se e solo se FP=FNP\mathrm{FP} = \mathrm{FNP}.

Schema della dimostrazione

Idea: FSAT sta in FNP perché controllare un'assegnazione è facile; ogni problema di FNP si traduce, con la costruzione di Cook-Levin, in una formula le cui assegnazioni che la soddisfano hanno "scritto dentro" una soluzione.

Richiamo: un problema FLF_L sta in FNP se L∈NPL \in \htmlData{term=NP}{\mathrm{NP}} con una relazione RLR_L (coppie istanza-certificato) polinomialmente bilanciata e decidibile in tempo polinomiale; FLF_L chiede, data xx, un yy con (x,y)∈RL(x, y) \in R_L, oppure "no".

  1. FSAT∈FNP\mathrm{FSAT} \in \mathrm{FNP}. La relazione RR contiene le coppie (φ,T)(\varphi, T) in cui TT è un'assegnazione delle variabili di φ\varphi che rende vera φ\varphi. È bilanciata (TT non è più lunga di φ\varphi) e si decide in tempo polinomiale valutando φ\varphi con i valori di TT.
  2. Un problema qualsiasi di FNP. Sia FL∈FNPF_L \in \mathrm{FNP} e sia MM una MdT deterministica che decide RLR_L in tempo polinomiale; i certificati sono lunghi al più p(∣x∣)p(|x|), con pp polinomio.
  3. La funzione RR (istanze). Data xx, si costruisce la formula φx\varphi_x della prova di Cook-Levin che descrive la tabella di computazione di MM sull'input (x,y)(x, y): i simboli di xx sono fissati, quelli di yy sono lasciati come variabili libere y1,…,yp(∣x∣)y_1, \dots, y_{p(|x|)}. φx\varphi_x è soddisfacibile sse esiste un yy che MM accetta. Come in Cook-Levin, la tabella è regolare e φx\varphi_x si scrive in spazio logaritmico.
  4. "No" sse "no". xx non ha soluzione sse nessun yy è accettato da MM sse φx\varphi_x è insoddisfacibile, cioè sse FSAT risponde "no" su φx\varphi_x.
  5. La funzione SS (soluzioni). Se TT soddisfa φx\varphi_x, TT descrive una computazione accettante di MM su (x,y)(x, y) per un certo yy. SS legge da TT i valori delle variabili y1,…,yp(∣x∣)y_1, \dots, y_{p(|x|)} e li scrive: basta un contatore, quindi spazio logaritmico. Poiché MM accetta, (x,S(T))∈RL(x, S(T)) \in R_L: S(T)S(T) è una soluzione di xx.

Quindi FSAT∈FNP\mathrm{FSAT} \in \mathrm{FNP} e ogni problema di FNP si riduce a FSAT: FSAT è FNP-completo.

Dove serve nelle tracce

F01 n. 6 · F13 n. 2

Classi

NP

Dove: dispensa cap. 20, p. 80; appunti Lez. 10

proposizione

Proposizione (FSAT e SAT)

per l'oraledimostrato nel corso

FSAT si risolve in tempo polinomiale se e solo se SAT si risolve in tempo polinomiale.

Idea, frase per l'esame e dimostrazione +

Intuizione

Con un algoritmo per SAT si fissano le variabili una alla volta: si prova xi=verox_i = \text{vero} e si chiede se la formula resta soddisfacibile.

All'esame

Trovare una soluzione costa quanto decidere se esiste.

Da scrivere all'esame

Per la Proposizione su FSAT e SAT, FSAT si risolve in tempo polinomiale sse SAT∈P\htmlData{term=problem:SAT}{\mathrm{SAT}} \in \htmlData{term=P}{\mathrm{P}}: con un decisore per SAT si fissano le variabili una alla volta.

Dimostrazione

Idea: chi sa trovare un'assegnazione sa anche dire se esiste; al contrario, con un decisore per SAT si fissano le variabili una alla volta, chiedendo ogni volta se la formula resta soddisfacibile.

  1. (⇒\Rightarrow) FSAT polinomiale ⇒\Rightarrow SAT polinomiale. Sia MM una MdT deterministica che risolve FSAT in tempo polinomiale. M′M' fa come MM, ma quando MM stampa un'assegnazione M′M' risponde "sì", e quando MM risponde "no" anche M′M' risponde "no". È corretto perché MM stampa un'assegnazione esattamente quando φ\varphi è soddisfacibile; il tempo è quello di MM.
  2. (⇐\Leftarrow) L'algoritmo. Sia AA un algoritmo deterministico polinomiale per SAT e φ(x1,…,xn)\varphi(x_1, \dots, x_n) l'input. A′A' chiede ad AA se φ\varphi è soddisfacibile; se no risponde "no". Altrimenti, per i=1,…,ni = 1, \dots, n: chiede ad AA se φ(T[1],…,T[i−1],vero,xi+1,…,xn)\varphi(T[1], \dots, T[i-1], \text{vero}, x_{i+1}, \dots, x_n) è soddisfacibile; se sì pone T[i]=veroT[i] = \text{vero}, altrimenti T[i]=falsoT[i] = \text{falso}. Alla fine restituisce TT.
  3. Perché è corretto. Vale sempre questa proprietà: dopo il passo ii, la formula φ(T[1],…,T[i],xi+1,…,xn)\varphi(T[1], \dots, T[i], x_{i+1}, \dots, x_n) è soddisfacibile. All'inizio è vera perché AA ha detto "sì". Al passo ii: se con xi=verox_i = \text{vero} la formula resta soddisfacibile, la proprietà vale; altrimenti ogni assegnazione che soddisfa la formula del passo prima ha xi=falsox_i = \text{falso}, e almeno una ne esiste, quindi con xi=falsox_i = \text{falso} resta soddisfacibile.
  4. Fine. Dopo il passo nn tutte le variabili hanno un valore e la formula, ancora soddisfacibile, è semplicemente vera: TT soddisfa φ\varphi.
  5. Tempo. A′A' chiama AA n+1n + 1 volte, ogni volta su una formula non più lunga di φ\varphi (sostituire costanti non la allunga), e n≤∣φ∣n \le |\varphi|: il tempo totale è polinomiale.

Classi

PNP

Problemi

SAT

Dove: dispensa cap. 20, p. 81; appunti Lez. 10

teorema

Teorema FP=FNP  ⟺  P=NP\mathrm{FP} = \mathrm{FNP} \iff \htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}

chiesto in 4 domandedimostrato nel corso

FP=FNP\mathrm{FP} = \mathrm{FNP} se e solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Se FP=FNP\mathrm{FP} = \mathrm{FNP}, FSAT è polinomiale, quindi anche SAT e allora P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}; se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} i function problems di NP e di P coincidono.

All'esame

Le risposte "solo se FP=FNP\mathrm{FP} = \mathrm{FNP}" equivalgono a "solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}".

Da scrivere all'esame

FP=FNP\mathrm{FP} = \mathrm{FNP} sse P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} (FSAT è FNP-completo e polinomiale sse SAT∈P\htmlData{term=problem:SAT}{\mathrm{SAT}} \in \htmlData{term=P}{\mathrm{P}}), quindi "solo se FP=FNP\mathrm{FP} = \mathrm{FNP}" equivale a "solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}".

Dimostrazione

Idea: FSAT fa da ponte. Se FP=FNP\mathrm{FP} = \mathrm{FNP}, FSAT è polinomiale, quindi anche SAT e allora P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}; se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, SAT è polinomiale, quindi anche FSAT e, essendo FSAT FNP-completo, ogni problema di FNP.

Richiamo: FP sono i function problem risolti in tempo polinomiale deterministico; FNP quelli associati a un L∈NPL \in \htmlData{term=NP}{\mathrm{NP}} (trovare un certificato yy per xx, oppure dire "no"). FP⊆FNP\mathrm{FP} \subseteq \mathrm{FNP} vale sempre.

  1. (⇒\Rightarrow) FP=FNP⇒P=NP\mathrm{FP} = \mathrm{FNP} \Rightarrow \htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}. FSAT∈FNP\mathrm{FSAT} \in \mathrm{FNP}, quindi per ipotesi FSAT∈FP\mathrm{FSAT} \in \mathrm{FP}: si risolve in tempo polinomiale deterministico.
  2. Per la proposizione su FSAT e SAT, allora SAT∈P\htmlData{term=problem:SAT}{\mathrm{SAT}} \in \htmlData{term=P}{\mathrm{P}} (basta ignorare l'assegnazione trovata e rispondere "sì").
  3. SAT è NP-completo (Cook): ogni L∈NPL \in \htmlData{term=NP}{\mathrm{NP}} si riduce a SAT, e una riduzione in spazio logaritmico richiede tempo polinomiale; quindi ogni L∈NPL \in \htmlData{term=NP}{\mathrm{NP}} sta in P. Dunque P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.
  4. (⇐\Leftarrow) P=NP⇒FP=FNP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} \Rightarrow \mathrm{FP} = \mathrm{FNP}. La dispensa dice: se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} i problemi associati a P e a NP sono gli stessi (con la sua definizione di FP è immediato). Vediamolo in concreto: se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} allora SAT∈P\htmlData{term=problem:SAT}{\mathrm{SAT}} \in \htmlData{term=P}{\mathrm{P}}, e per la proposizione FSAT si risolve in tempo polinomiale.
  5. Sia FLF_L un problema qualsiasi di FNP. FSAT è FNP-completo, quindi ci sono RR e SS calcolabili in spazio logaritmico (dunque in tempo polinomiale) con: xx ha soluzione sse R(x)R(x) è soddisfacibile, e se TT soddisfa R(x)R(x) allora S(T)S(T) è una soluzione di xx.
  6. Algoritmo per FLF_L: calcola R(x)R(x), risolvi FSAT su R(x)R(x); se la risposta è "no" rispondi "no", altrimenti restituisci S(T)S(T). Sono tre passi polinomiali in fila: FL∈FPF_L \in \mathrm{FP}. Quindi FNP⊆FP\mathrm{FNP} \subseteq \mathrm{FP} e, con FP⊆FNP\mathrm{FP} \subseteq \mathrm{FNP}, FP=FNP\mathrm{FP} = \mathrm{FNP}.

Dove serve nelle tracce

F03 n. 6 · MZ22 n. 5 · E26 n. 3 · E26 n. 5

Classi

PNP

Dove: dispensa cap. 20, p. 81; appunti Lez. 10

Capitolo 21 · Oltre PSPACE

teorema

Teorema 20.1 (padding: P=NP⇒EXP=NEXP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} \Rightarrow \htmlData{term=EXP}{\mathrm{EXP}} = \htmlData{term=NEXP}{\mathrm{NEXP}})

chiesto in 5 domandedimostrato nel corso

Se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, allora EXP=NEXP\htmlData{term=EXP}{\mathrm{EXP}} = \htmlData{term=NEXP}{\mathrm{NEXP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si allunga ogni input xx fino a lunghezza 2∣x∣k2^{|x|^k} con simboli di riempimento: il tempo esponenziale diventa polinomiale nella nuova lunghezza, si usa P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} e poi si torna indietro.

All'esame

Nella forma contronominale: se EXP≠NEXP\htmlData{term=EXP}{\mathrm{EXP}} \neq \htmlData{term=NEXP}{\mathrm{NEXP}} allora P≠NP\htmlData{term=P}{\mathrm{P}} \neq \htmlData{term=NP}{\mathrm{NP}}.

Da scrivere all'esame

Per il Teorema 20.1 (padding) P=NP⇒EXP=NEXP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}} \Rightarrow \htmlData{term=EXP}{\mathrm{EXP}} = \htmlData{term=NEXP}{\mathrm{NEXP}}; quindi, per contronominale, se EXP≠NEXP\htmlData{term=EXP}{\mathrm{EXP}} \neq \htmlData{term=NEXP}{\mathrm{NEXP}} allora P≠NP\htmlData{term=P}{\mathrm{P}} \neq \htmlData{term=NP}{\mathrm{NP}}.

Dimostrazione

Idea (padding, cioè riempimento): si allunga ogni input xx con simboli di riempimento fino a lunghezza 2∣x∣k2^{|x|^k}. Il budget di tempo esponenziale in ∣x∣|x| diventa polinomiale nella nuova lunghezza; lì si usa P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, poi si toglie il riempimento.

  1. Partenza. Sia L∈NEXPL \in \htmlData{term=NEXP}{\mathrm{NEXP}}: una MdT nondeterministica NN decide LL con budget di tempo 2nk2^{n^k} (n=∣x∣n = |x| = lunghezza dell'input).
  2. Il linguaggio allungato. Con un simbolo nuovo ⊓\sqcap ("semi-blank") si pone L′={ x⊓2∣x∣k−∣x∣:x∈L }L' = \{\, x \sqcap^{2^{|x|^k} - |x|} : x \in L \,\}: ogni xx è seguita da tanti ⊓\sqcap da arrivare a lunghezza esattamente 2∣x∣k2^{|x|^k}.
  3. L′∈NPL' \in \htmlData{term=NP}{\mathrm{NP}}. Su un input yy, N′N' controlla che yy sia della forma giusta: una xx senza ⊓\sqcap seguita solo da ⊓\sqcap, di lunghezza totale 2∣x∣k2^{|x|^k} (si calcola 2∣x∣k2^{|x|^k} in binario e si conta: tempo polinomiale in ∣y∣|y|); se no rifiuta. Poi simula NN su xx leggendo ⊓\sqcap come un blank. La simulazione richiede tempo 2∣x∣k=∣y∣2^{|x|^k} = |y|: lineare nella lunghezza dell'input. Quindi N′N' è nondeterministica e polinomiale, e accetta yy sse x∈Lx \in L.
  4. Si usa l'ipotesi. P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}, quindi L′∈PL' \in \htmlData{term=P}{\mathrm{P}}: c'è una MdT deterministica M′M' che decide L′L' in tempo ∣y∣l|y|^l per un ll fisso.
  5. Si torna a LL. La MdT deterministica MM, su input xx: (fase 1) scrive y=xy = x seguita dai ⊓\sqcap, in tempo O(p(∣x∣)⋅2∣x∣k)O(p(|x|) \cdot 2^{|x|^k}), dove pp è il costo polinomiale di gestire i contatori; (fase 2) esegue M′M' su yy, in tempo (2∣x∣k)l=2l⋅∣x∣k(2^{|x|^k})^l = 2^{l \cdot |x|^k}. Entrambe le fasi sono esponenziali.
  6. Correttezza. x∈Lx \in L sse y∈L′y \in L' sse M′M' accetta yy sse MM accetta xx. Quindi L∈EXPL \in \htmlData{term=EXP}{\mathrm{EXP}}.

Ogni LL di NEXP sta in EXP, cioè NEXP⊆EXP\htmlData{term=NEXP}{\mathrm{NEXP}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}; EXP⊆NEXP\htmlData{term=EXP}{\mathrm{EXP}} \subseteq \htmlData{term=NEXP}{\mathrm{NEXP}} vale sempre. Dunque EXP=NEXP\htmlData{term=EXP}{\mathrm{EXP}} = \htmlData{term=NEXP}{\mathrm{NEXP}}.

Dove serve nelle tracce

F01 n. 5 · F03 n. 7 · F08 n. 3 · G20v4 n. 4 · E26 n. 5

Dove: dispensa cap. 21, p. 83; appunti Lez. 10

Capitolo 22 · Riepilogo della complessità dei problemi

proposizione

Problemi NEXP-completi

chiesto in 7 domande

SUCCINCT CIRCUIT SAT e SCHÖNFINKEL-BERNAYS SAT (soddisfacibilità di formule del primo ordine senza simboli di funzione, senza uguaglianza e in forma normale prenessa) sono NEXP-completi.

Idea, frase per l'esame e dimostrazione +

Intuizione

Per Schönfinkel-Bernays bastano modelli piccoli, ma i controlli da fare sono in numero esponenziale.

All'esame

Un problema NEXP-completo non si riduce a un problema in P, perché P⊊EXP⊆NEXP\htmlData{term=P}{\mathrm{P}} \subsetneq \htmlData{term=EXP}{\mathrm{EXP}} \subseteq \htmlData{term=NEXP}{\mathrm{NEXP}}.

Da scrivere all'esame

SÌ/NO: SUCCINCT CIRCUIT SAT e SCHÖNFINKEL-BERNAYS SAT sono NEXP-completi; non si riducono a un problema in P perché P⊊EXP⊆NEXP\htmlData{term=P}{\mathrm{P}} \subsetneq \htmlData{term=EXP}{\mathrm{EXP}} \subseteq \htmlData{term=NEXP}{\mathrm{NEXP}} (gerarchia di tempo).

Schema della dimostrazione

Idea: SUCCINCT CIRCUIT SAT è CIRCUIT SAT su un circuito esponenziale descritto in poco spazio: è la versione "in grande" di Cook-Levin. Per SCHÖNFINKEL-BERNAYS SAT bastano modelli piccoli, ma i controlli sono esponenziali; la difficoltà si ottiene riducendo SUCCINCT CIRCUIT SAT.

  1. SUCCINCT CIRCUIT SAT. L'input è un circuito CC: dato in ingresso il numero binario ii (nn bit) di una porta di un circuito enorme C′C' (fino a 2n2^n porte), CC restituisce il tipo della porta ii e i numeri delle porte che la alimentano. Domanda: C′C' è soddisfacibile?
  2. È in NEXP. Si calcola tutta la descrizione di C′C' interrogando CC per ogni ii (2n2^n volte), si indovina un input di C′C' e lo si valuta: tempo nondeterministico esponenziale.
  3. È NEXP-difficile. Sia LL deciso da NN nondeterministica in tempo 2nk2^{n^k}. La prova di Cook-Levin (versione circuiti) dà, per xx, un circuito Cx′C'_x grande 2nk×2nk2^{n^k} \times 2^{n^k}, soddisfacibile sse x∈Lx \in L. Ma Cx′C'_x è regolarissimo: dal numero di una porta (riga, colonna, ruolo) i suoi predecessori si ottengono con semplici operazioni aritmetiche e guardando xx. Un circuito CxC_x di dimensione polinomiale fa questi calcoli e si scrive in spazio logaritmico: è la riduzione.
  4. SCHÖNFINKEL-BERNAYS SAT: forma. φ=∃x1…∃xk ∀y1…∀yh ψ\varphi = \exists x_1 \dots \exists x_k\, \forall y_1 \dots \forall y_h\, \psi, con ψ\psi senza quantificatori, senza funzioni e senza uguaglianza.
  5. Modelli piccoli. Si sostituiscono le xix_i con kk costanti nuove (skolemizzazione: la formula resta soddisfacibile o no). Se c'è un modello, restringerlo agli elementi nominati dalle costanti ne dà ancora uno, perché le formule solo ∀\forall restano vere nei sotto-modelli. Basta quindi cercare modelli con al più kk elementi (almeno uno).
  6. È in NEXP. Si indovina il modello: per ogni predicato di arietà rr (numero di argomenti) la sua tabella su krk^r tuple, al più ∣φ∣∣φ∣=2∣φ∣log⁡∣φ∣|\varphi|^{|\varphi|} = 2^{|\varphi| \log |\varphi|}; poi si controlla ψ\psi su tutti i khk^h valori delle yy. Tutto in tempo esponenziale in ∣φ∣|\varphi|.
  7. È NEXP-difficile (riduzione da SUCCINCT CIRCUIT SAT). Due costanti fanno da bit 0 e 1; un predicato G(z1,…,zn)G(z_1, \dots, z_n) vuol dire "la porta di numero z1…znz_1 \dots z_n di C′C' vale 1". La parte ∀\forall dice: per ogni numero di porta zz, per ogni z′,z′′z', z'' e per ogni valore ww delle porte interne di CC, se ww è il calcolo corretto di CC su zz (si controlla porta per porta, senza quantificatori) e CC dice che zz è un AND con predecessori z′,z′′z', z'', allora G(z)  ⟺  G(z′)∧G(z′′)G(z) \iff G(z') \land G(z''); lo stesso per OR e NOT, e la porta d'uscita vale 1. La formula è polinomiale in CC, ha prefisso ∃…∃∀…∀\exists \dots \exists \forall \dots \forall e ha un modello sse C′C' ha un input che lo rende vero.

Dove serve nelle tracce

F01 n. 5 · F08 n. 3 · G20v3 n. 3 · G20v4 n. 4 · GE23 n. 3 · FE23 n. 1 · E26 n. 2

Classi

NEXP

Dove: dispensa cap. 13, p. 51 (esercizio 2); dispensa cap. 22, p. 85; appunti Lez. 10. Gli appunti precisano il prefisso dei quantificatori (∃…∃∀…∀\exists\ldots\exists\forall\ldots\forall) del frammento di Schönfinkel-Bernays, che la dispensa non indica.

proposizione

Indecidibilità del primo ordine

chiesto in 3 domande

La validità delle formule del primo ordine sta in RE ma non in R; la soddisfacibilità del primo ordine sta in coRE ma non in R.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si possono elencare tutte le dimostrazioni e prima o poi si trova quella di una formula valida, ma nessun algoritmo si ferma sempre; la soddisfacibilità è il complemento della validità (φ soddisfacibile  ⟺  ¬φ non valida\varphi \text{ soddisfacibile} \iff \neg\varphi \text{ non valida}).

All'esame

Sono i problemi indecidibili in cima alla scala, sopra ogni classe di complessità del corso.

Da scrivere all'esame

La validità del primo ordine sta in RE ma non in R\htmlData{term=R}{\mathrm{R}}, la soddisfacibilità in coRE ma non in R\htmlData{term=R}{\mathrm{R}}: sono indecidibili, quindi sopra ogni classe di complessità del corso.

Schema della dimostrazione

Idea: le formule valide si possono elencare cercando le loro dimostrazioni (completezza di Gödel), quindi la validità è semi-decidibile; non è decidibile perché si potrebbe decidere l'arresto di una MdT (Church-Turing). La soddisfacibilità è il complemento della validità.

Richiamo: RE = problemi per cui esiste una MdT che si ferma con "sì" sulle istanze sì (sulle altre può non fermarsi); R\htmlData{term=R}{\mathrm{R}} = problemi decidibili (la MdT si ferma sempre); coRE = complementi dei problemi in RE; R=RE∩coRE\htmlData{term=R}{\mathrm{R}} = \htmlData{term=RE}{\mathrm{RE}} \cap \htmlData{term=coRE}{\mathrm{coRE}}.

  1. Validità ∈RE\in \htmlData{term=RE}{\mathrm{RE}}. Per il teorema di completezza di Gödel, φ\varphi è valida (vera in ogni modello) sse ha una dimostrazione in un sistema di regole fissato. Le dimostrazioni sono stringhe finite: una MdT le elenca tutte, una dopo l'altra, e controlla meccanicamente se ciascuna è una dimostrazione corretta di φ\varphi. Se φ\varphi è valida, prima o poi la trova e si ferma con "sì"; se non lo è, cerca per sempre.
  2. Validità ∉R\notin \htmlData{term=R}{\mathrm{R}}: la riduzione. Data una MdT MM e un input xx, si scrive una formula φM,x=Ax→H\varphi_{M,x} = \mathit{Ax} \to H, dove Ax\mathit{Ax} sono assiomi che descrivono il calcolo di MM su xx (un predicato dice "al passo tt la MdT è nello stato qq, con la testina in posizione pp, e sul nastro c'è…", più gli assiomi che legano il passo tt al passo successivo secondo le transizioni di MM) e HH dice "in qualche passo si raggiunge lo stato di arresto".
  3. Se MM si ferma su xx, in ogni modello degli assiomi le configurazioni seguono passo passo quelle vere, quindi anche quella di arresto (dopo un numero finito di passi): φM,x\varphi_{M,x} è valida.
  4. Se MM non si ferma, il modello "vero" (i passi sono i numeri naturali e le configurazioni sono quelle reali del calcolo) rende veri gli assiomi ma non HH: φM,x\varphi_{M,x} non è valida.
  5. Conclusione per la validità. MM si ferma su xx sse φM,x\varphi_{M,x} è valida. Il problema dell'arresto non è in R\htmlData{term=R}{\mathrm{R}}, quindi neppure la validità.
  6. Soddisfacibilità. φ\varphi è soddisfacibile sse ¬φ\neg\varphi non è valida. Quindi la soddisfacibilità è il complemento della validità (a meno di tradurre φ\varphi in ¬φ\neg\varphi): sta in coRE. Non sta in R\htmlData{term=R}{\mathrm{R}}, perché R\htmlData{term=R}{\mathrm{R}} è chiuso per complemento e la validità non è in R\htmlData{term=R}{\mathrm{R}}. (Di conseguenza non sta neppure in RE: altrimenti starebbe in RE∩coRE=R\htmlData{term=RE}{\mathrm{RE}} \cap \htmlData{term=coRE}{\mathrm{coRE}} = \htmlData{term=R}{\mathrm{R}}.)

Dove serve nelle tracce

F06 n. 6 · G20v4 n. 6 · SE23 n. 2

Classi

RREcoRE

Dove: dispensa cap. 22, p. 85; appunti Lez. 10. La dispensa lo riporta solo nel riepilogo del cap. 22. Il collegamento con il teorema di completezza di Gödel (validità in RE) e il nome "teorema di Church-Turing" (validità non in R) vengono dagli appunti della Lez. 10.

proposizione

2-SAT è P-completo se e solo se P=NL\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NL}{\mathrm{NL}}

2-SAT sta in NL (ed è NL-completo), quindi in P. È P-completo se e solo se P=NL\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NL}{\mathrm{NL}}, che è una questione aperta: per esempio PRIMES si riduce a 2-SAT in spazio logaritmico solo se PRIMES∈NL\htmlData{term=problem:PRIMES}{\mathrm{PRIMES}} \in \htmlData{term=NL}{\mathrm{NL}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Un problema di NL non può essere difficile per tutto P, a meno che P e NL coincidano.

All'esame

All'esame di 2-SAT si dice che sta in P (anzi in NL); le riduzioni da un problema qualsiasi di P a 2-SAT non sono garantite.

Da scrivere all'esame

Di 2-SAT si sa solo che è in P (anzi NL-completo); essere P-completo equivarrebbe a P=NL\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NL}{\mathrm{NL}}, questione aperta, quindi la riduzione da un problema di P non è garantita.

Dimostrazione

Idea: di 2-SAT si sa che sta in NL (spazio logaritmico nondeterministico) ed è NL-completo; dire che è anche P-completo equivale a dire P=NL\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NL}{\mathrm{NL}}, che è un problema aperto.

  1. Quello che si sa: 2-SAT∈P\htmlData{term=problem:SAT2}{2\text{-}\mathrm{SAT}} \in \htmlData{term=P}{\mathrm{P}} (anzi ∈NL\in \htmlData{term=NL}{\mathrm{NL}}). Da una formula con clausole di 2 letterali si costruisce il grafo delle implicazioni: la clausola (a∨b)(a \lor b) dà gli archi ¬a→b\neg a \to b e ¬b→a\neg b \to a. La formula è insoddisfacibile sse per qualche variabile xx c'è un cammino da xx a ¬x\neg x e uno da ¬x\neg x a xx (dispensa cap. 12: "ricerca di cicli in un grafo"). Cercare un cammino è REACHABILITY, che sta in NL; il complemento si gestisce con NL=coNL\htmlData{term=NL}{\mathrm{NL}} = \mathrm{coNL}. Quindi 2-SAT∈NL⊆P\htmlData{term=problem:SAT2}{2\text{-}\mathrm{SAT}} \in \htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}}.
  2. Cosa vorrebbe dire "P-completo". Ogni problema di P si ridurrebbe a 2-SAT con una riduzione in spazio logaritmico (quelle del corso).
  3. Conseguenza. Allora per ogni L∈PL \in \htmlData{term=P}{\mathrm{P}}: si calcola la riduzione in spazio logaritmico e si risolve 2-SAT in NL; componendo si resta in NL (NL è chiuso per riduzioni in spazio logaritmico). Quindi P⊆NL\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=NL}{\mathrm{NL}}, cioè P=NL\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NL}{\mathrm{NL}} (NL⊆P\htmlData{term=NL}{\mathrm{NL}} \subseteq \htmlData{term=P}{\mathrm{P}} vale sempre).
  4. Viceversa. Se P=NL\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NL}{\mathrm{NL}}, ogni problema di P sta in NL e si riduce a 2-SAT, che è NL-completo: 2-SAT sarebbe P-completo. Quindi "2-SAT P-completo" vale sse P=NL\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NL}{\mathrm{NL}}.
  5. All'esame. P=NL\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NL}{\mathrm{NL}} è una questione aperta, quindi la P-completezza di 2-SAT non si può usare. Per esempio non si può dire che PRIMES si riduce a 2-SAT in spazio logaritmico: si sa solo che PRIMES∈P\htmlData{term=problem:PRIMES}{\mathrm{PRIMES}} \in \htmlData{term=P}{\mathrm{P}}.

All'esame di 2-SAT si dice solo che sta in P.

Classi

PNL

Problemi

2-SAT · PRIMES

Dove: dispensa cap. 22, p. 84; dispensa cap. 14, p. 55 (esercizio 1)

proposizione

PRIMES∈P\htmlData{term=problem:PRIMES}{\mathrm{PRIMES}} \in \htmlData{term=P}{\mathrm{P}} e MAX-FLOW P-completo (riepilogo)

★ chiesto in 8 domande

Il riepilogo della dispensa elenca PRIMES∈P\htmlData{term=problem:PRIMES}{\mathrm{PRIMES}} \in \htmlData{term=P}{\mathrm{P}} e MAX-FLOW P-completo.

Idea, frase per l'esame e dimostrazione +

Intuizione

Sono fatti citati senza prova e usati negli esercizi sulle riduzioni.

All'esame

Per esempio: da MAX FLOW a 3-COLORING la riduzione esiste (MAX FLOW∈P\htmlData{term=problem:MAXFLOW}{\mathrm{MAX\ FLOW}} \in \htmlData{term=P}{\mathrm{P}}, 3-COLORING NP-completo); da 3-COLORING a MAX FLOW solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.

Da scrivere all'esame

PRIMES∈P\htmlData{term=problem:PRIMES}{\mathrm{PRIMES}} \in \htmlData{term=P}{\mathrm{P}} e MAX FLOW∈P\htmlData{term=problem:MAXFLOW}{\mathrm{MAX\ FLOW}} \in \htmlData{term=P}{\mathrm{P}} (è P-completo); 3-COLORING è NP-completo, quindi da MAX FLOW a 3-COLORING la riduzione esiste, al contrario solo se P=NP\htmlData{term=P}{\mathrm{P}} = \htmlData{term=NP}{\mathrm{NP}}.

Schema della dimostrazione

Idea: sono due risultati famosi che il corso cita senza prova. PRIMES∈P\htmlData{term=problem:PRIMES}{\mathrm{PRIMES}} \in \htmlData{term=P}{\mathrm{P}} (Agrawal, Kayal, Saxena, 2002) si basa su un'identità tra polinomi che vale solo per i primi; MAX-FLOW sta in P grazie ai cammini aumentanti ed è P-difficile perché un flusso può simulare un circuito.

PRIMES∈P\htmlData{term=problem:PRIMES}{\mathrm{PRIMES}} \in \htmlData{term=P}{\mathrm{P}}

  1. Dimensione dell'input. Il numero NN è scritto in binario, con circa log⁡N\log N cifre: provare tutti i divisori fino a N\sqrt{N} richiede tempo esponenziale nella lunghezza. Serve un algoritmo polinomiale in log⁡N\log N.
  2. Identità chiave. Per aa primo con NN: NN è primo sse (X+a)N=XN+a(X + a)^N = X^N + a modulo NN, come polinomi in XX. Se NN è primo, i coefficienti binomiali intermedi sono multipli di NN e aN=aa^N = a (Fermat); se NN è composto, qualche coefficiente non si annulla.
  3. Renderla veloce. Il polinomio ha N+1N + 1 coefficienti, troppi. Si controlla l'identità modulo Xr−1X^r - 1, con rr piccolo (polinomiale in log⁡N\log N), per pochi valori di aa; con i quadrati ripetuti ogni controllo costa tempo polinomiale in log⁡N\log N. Prima si escludono le potenze perfette e i fattori ≤r\le r.
  4. Correttezza. Un argomento algebrico (in campi finiti) mostra che, se tutti i controlli passano, NN è primo. In totale il tempo è polinomiale in log⁡N\log N.

MAX-FLOW è P-completo (versione di decisione: in una rete con capacità, sorgente ss, pozzo tt e un numero KK, esiste un flusso di valore ≥K\ge K?)

  1. In P. Ford-Fulkerson con cammini aumentanti più corti (Edmonds-Karp): ogni aumento si trova con una visita in ampiezza e gli aumenti sono O(∣V∣⋅∣E∣)O(|V| \cdot |E|) (VV = nodi, EE = archi), indipendentemente dalle capacità: tempo polinomiale.
  2. P-difficile (Goldschlager, Shaw, Staples, 1982). Si riduce in spazio logaritmico il problema P-completo di valutare un circuito monotono (solo AND e OR). Ogni porta diventa un nodo, ogni filo un arco con capacità potenze di 2 scelte in base alla posizione della porta; un nodo di scarico assorbe il flusso in eccesso delle porte false. Così nel flusso massimo un filo è pieno sse la sua porta vale 1, e il circuito dà 1 sse il flusso massimo raggiunge una soglia KK calcolabile.

Dove serve nelle tracce

F01 n. 2 · F02 n. 1 · F03 n. 2 · G16 n. 1 · MZ22 n. 7 · GE23 n. 4 · E26 n. 5 · E26 n. 7

Classi

P

Problemi

MAX FLOW · PRIMES

Dove: dispensa cap. 22, p. 84; dispensa cap. 13, p. 51 (esercizio 2); dispensa cap. 14, pp. 55–57 (esercizi)

Extra · Algoritmi probabilistici e quantistici (Lez. 6, solo slide)

teorema

Teorema 11.3 (NP⊆PP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PP}{\mathrm{PP}})

chiesto in 3 domandedimostrato nel corso

NP⊆PP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}, dove PP è la classe dei problemi decisi in tempo polinomiale da MdT che accettano a maggioranza dei run.

Idea, frase per l'esame e dimostrazione +

Intuizione

Si trasforma la macchina nondeterministica per LL in una che accetta a maggioranza e risponde come lei.

All'esame

Si pensa che il contrario non valga.

Da scrivere all'esame

NP⊆PP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PP}{\mathrm{PP}} (Teorema 11.3): aggiungendo metà run che accettano sempre, un solo run accettante basta per la maggioranza; il contrario si pensa che non valga.

Dimostrazione

Cosa vuol dire: una MdT nondeterministica accetta xx a maggioranza se più della metà dei suoi run (computazioni) su xx termina con "yes"; con i run equiprobabili, "yes" è la risposta più probabile scegliendone uno a caso. PP è la classe dei problemi decisi così in tempo polinomiale.

Idea: si affianca alla macchina per LL un blocco di run che dicono tutti "yes" e sono esattamente metà: così basta un solo run accettante della macchina originale per superare la metà.

  1. Partenza. Sia L∈NPL \in \htmlData{term=NP}{\mathrm{NP}}, decisa da una MdT NN standardizzata in tempo p(n)p(n), con pp polinomio. "Standardizzata" vuol dire che ogni run fa esattamente p(n)p(n) scelte binarie: i run sono esattamente 2p(n)2^{p(n)}. x∈Lx \in L sse almeno un run di NN accetta.
  2. La nuova macchina N′N'. Un nuovo stato iniziale fa una scelta tra due rami: (a) eseguire NN; (b) fare p(n)p(n) scelte binarie a vuoto e terminare sempre con "yes".
  3. Il conteggio. Ciascun ramo produce 2p(n)2^{p(n)} run, quindi N′N' ha 2p(n)+12^{p(n)+1} run. Accettare a maggioranza vuol dire avere più di 2p(n)2^{p(n)} run "yes", cioè almeno 2p(n)+12^{p(n)} + 1.
  4. Perché N′N' risponde come NN. Il ramo (b) dà esattamente 2p(n)2^{p(n)} "yes": precisamente la metà, non di più. La maggioranza c'è quindi sse il ramo (a) aggiunge almeno un "yes", cioè sse almeno un run di NN accetta xx, cioè sse x∈Lx \in L.
  5. Tempo. N′N' fa una scelta in più di NN: tempo p(n)+1p(n) + 1, polinomiale. Quindi L∈PPL \in \htmlData{term=PP}{\mathrm{PP}}.

Poiché LL era un qualsiasi problema di NP, NP⊆PP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}.

Dove serve nelle tracce

F05 n. 2 · G20v2 n. 4 · FE23 n. 2

Classi

NP

Dove: slide Lez. 6. Solo nelle slide della Lez. 6 (algoritmi probabilistici), non nella dispensa. PP non è tra le classi della mappa: si indica la classe collegata.

teorema

Teorema (PP⊆PSPACE\htmlData{term=PP}{\mathrm{PP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}})

chiesto in 7 domandedimostrato nel corso

PP⊆PSPACE\htmlData{term=PP}{\mathrm{PP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Una macchina deterministica esegue uno alla volta tutti i 2nc2^{n^c} run, riusando lo spazio, e conta i "yes" e i "no" con contatori di ncn^c bit.

All'esame

Insieme agli altri risultati dà BQP⊆PSPACE\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Da scrivere all'esame

PP⊆PSPACE\htmlData{term=PP}{\mathrm{PP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}: una MdT deterministica prova tutti i run uno alla volta riusando lo spazio e conta i "yes" con contatori binari di ncn^c cifre.

Dimostrazione

Cosa vuol dire: L∈PPL \in \htmlData{term=PP}{\mathrm{PP}} se una MdT nondeterministica polinomiale accetta xx a maggioranza, cioè con più della metà dei run che terminano in "yes", esattamente quando x∈Lx \in L.

Idea: invece di scegliere un run a caso, una macchina deterministica li prova tutti, uno dopo l'altro, riusando lo stesso spazio, e conta i "yes" e i "no". I contatori sono piccoli perché in binario anche un numero esponenziale occupa poche cifre.

  1. Partenza. Sia L∈PPL \in \htmlData{term=PP}{\mathrm{PP}}: una MdT NN standardizzata accetta a maggioranza in tempo ncn^c (nn = lunghezza dell'input). Ogni run fa ncn^c scelte binarie, quindi i run sono 2nc2^{n^c}.
  2. La macchina MM. MM è deterministica ed esegue tutti i run di NN uno alla volta. Un run è individuato dalla sequenza delle sue ncn^c scelte: MM la tiene sul nastro e la fa avanzare come un contatore binario per passare al run successivo.
  3. Uso del nastro. Il nastro contiene: l'input xx; il contatore dei "yes"; il contatore dei "no"; la sequenza di scelte del run corrente; lo spazio di lavoro del run.
  4. Contatori: O(nc)O(n^c). I conteggi arrivano al più a 2nc2^{n^c}, che in binario richiede nc+1n^c + 1 cifre.
  5. Scelte: O(nc)O(n^c). Sono ncn^c simboli.
  6. Lavoro: O(nc)O(n^c). Un run fa al più ncn^c passi, quindi tocca al più ncn^c celle. Finito un run, MM aggiorna il contatore giusto e cancella lo spazio di lavoro, che viene riusato dal run successivo.
  7. Risposta. Esauriti i run, MM accetta sse i "yes" sono più dei "no": è proprio l'accettazione a maggioranza di NN, quindi MM decide LL.

In totale MM usa spazio O(nc)O(n^c) (il tempo è esponenziale, ma non importa): L∈SPACE(nc)⊆PSPACEL \in \mathrm{SPACE}(n^c) \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}. Quindi PP⊆PSPACE\htmlData{term=PP}{\mathrm{PP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Dove serve nelle tracce

F05 n. 5 · F12 n. 3 · F12 n. 7 · G17 n. 5 · G20v3 n. 6 · GE23 n. 2 · LU24 n. 1

Classi

PSPACE

Dove: slide Lez. 6. Solo nelle slide della Lez. 6, non nella dispensa.

proposizione

Proposizioni P⊆BPP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=BPP}{\mathrm{BPP}} e BPP⊆PP\htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}

chiesto in 3 domandedimostrato nel corso

P⊆BPP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=BPP}{\mathrm{BPP}} e BPP⊆PP\htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Una MdT deterministica ha un solo run, quindi la risposta giusta ha il 100% dei voti; la maggioranza qualificata di BPP è in particolare una maggioranza semplice.

Da scrivere all'esame

P⊆BPP⊆PP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}: un run deterministico è il 100% delle risposte, e la maggioranza qualificata (3/43/4) di BPP è in particolare una maggioranza semplice.

Dimostrazione

Cosa vuol dire: L∈BPPL \in \htmlData{term=BPP}{\mathrm{BPP}} (errore limitato) se una MdT nondeterministica polinomiale standardizzata, quando x∈Lx \in L, ha almeno 3/43/4 dei run che accettano, e quando x∉Lx \notin L almeno 3/43/4 dei run che rifiutano: un run scelto a caso sbaglia con probabilità al più 1/41/4, ben lontana da 1/21/2. In PP basta invece la maggioranza semplice (più della metà dei run).

Idea: una macchina deterministica ha un solo run, quindi la risposta giusta ha il 100% dei voti; e una maggioranza di 3/43/4 è, in particolare, una maggioranza semplice.

  1. P⊆BPP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=BPP}{\mathrm{BPP}}. Sia L∈PL \in \htmlData{term=P}{\mathrm{P}}, decisa da una MdT deterministica MM in tempo polinomiale. MM è un caso particolare di MdT nondeterministica, che genera sempre un solo run.
  2. Se x∈Lx \in L, l'unico run accetta: accetta il 100% dei run, che è almeno 3/43/4. Se x∉Lx \notin L, l'unico run rifiuta: rifiuta il 100% dei run. Quindi MM soddisfa la definizione di BPP e L∈BPPL \in \htmlData{term=BPP}{\mathrm{BPP}}.
  3. BPP⊆PP\htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}. Sia L∈BPPL \in \htmlData{term=BPP}{\mathrm{BPP}} con la sua macchina NN. Si usa la stessa NN come macchina per PP.
  4. Se x∈Lx \in L, almeno 3/43/4 dei run accettano, e 3/4>1/23/4 \gt 1/2: NN accetta a maggioranza.
  5. Se x∉Lx \notin L, almeno 3/43/4 dei run rifiutano, quindi accettano al più 1/41/4 dei run, meno della metà: NN non accetta a maggioranza.
  6. Quindi x∈Lx \in L sse NN accetta xx a maggioranza, nello stesso tempo polinomiale: L∈PPL \in \htmlData{term=PP}{\mathrm{PP}}.

Dove serve nelle tracce

F12 n. 4 · F12 n. 7 · LU22 n. 6

Classi

P

Dove: slide Lez. 6. Solo nelle slide della Lez. 6, non nella dispensa. BPP e PP non sono tra le classi della mappa completa: stanno nella mappa della scheda Probabilistiche.

proposizione

Riduzione dell'errore in BPP

chiesto in 6 domandedimostrato nel corso

In BPP la soglia 3/43/4 è convenzionale: con 2k+12k + 1 ripetizioni e voto di maggioranza l'errore scende sotto qualunque ε\varepsilon, con kk che dipende solo da ε\varepsilon (per esempio, partendo da 3/43/4, k=⌈−8ln⁡ε⌉k = \lceil -8 \ln \varepsilon \rceil). In PP invece le ripetizioni necessarie possono essere esponenziali.

Idea, frase per l'esame e dimostrazione +

Intuizione

Con una maggioranza "chiara" ogni ripetizione rende sempre più improbabile che vinca la risposta sbagliata.

All'esame

Distingue BPP (errore riducibile con poche ripetizioni) da PP (nessun metodo noto in tempo polinomiale).

Da scrivere all'esame

In BPP 2k+12k + 1 ripetizioni con voto di maggioranza portano l'errore sotto ε\varepsilon, con k=⌈−8ln⁡ε⌉k = \lceil -8 \ln \varepsilon \rceil costante; in PP il vantaggio può essere esponenzialmente piccolo e le ripetizioni esponenziali.

Dimostrazione

Cosa vuol dire: in BPP (errore limitato) ogni esecuzione dà la risposta giusta con probabilità almeno 1/2+δ1/2 + \delta, con δ>0\delta \gt 0 fisso (il "vantaggio"; con la soglia 3/43/4, δ=1/4\delta = 1/4). In PP (maggioranza semplice) la risposta giusta è solo più probabile di quella sbagliata, e il vantaggio può essere piccolissimo. (Le slide chiamano ε\varepsilon anche il vantaggio; qui lo chiamo δ\delta per non confonderlo con l'errore voluto ε\varepsilon.)

Idea: si ripete l'algoritmo e si prende la risposta più frequente. Se il vantaggio δ\delta è fisso, l'errore della maggioranza scende in modo esponenziale col numero di ripetizioni, quindi bastano poche ripetizioni (un numero costante); se δ\delta è esponenzialmente piccolo, come può accadere in PP, ne servono un numero esponenziale.

  1. La nuova macchina. NkN_k esegue NN 2k+12k + 1 volte, con scelte indipendenti, e risponde come la maggioranza delle risposte. Il numero dispari evita i pareggi. NkN_k sbaglia solo se almeno k+1k + 1 esecuzioni su 2k+12k + 1 sbagliano.
  2. Il limite di Chernoff (slide). Se ogni esecuzione è giusta con probabilità 1/2+δ1/2 + \delta, la probabilità che la maggioranza di 2k+12k + 1 esecuzioni sia sbagliata è al più e−2δ2ke^{-2\delta^2 k}. Perché scende: in media le risposte giuste superano la metà di circa δ⋅(2k+1)\delta \cdot (2k + 1), che cresce come kk, mentre le oscillazioni casuali crescono solo come k\sqrt{k}; Chernoff dice che la probabilità di uno scarto così grande cala in modo esponenziale.
  3. Il conto partendo da 3/43/4. δ=1/4\delta = 1/4, quindi l'errore è al più e−2⋅(1/16)⋅k=e−k/8e^{-2 \cdot (1/16) \cdot k} = e^{-k/8}. Vogliamo e−k/8≤εe^{-k/8} \le \varepsilon: prendendo il logaritmo, −k/8≤ln⁡ε-k/8 \le \ln \varepsilon, cioè k≥−8ln⁡εk \ge -8 \ln \varepsilon. Basta k=⌈−8ln⁡ε⌉k = \lceil -8 \ln \varepsilon \rceil. Esempio: per ε=1/100\varepsilon = 1/100, −8ln⁡(0,01)≈36,8-8 \ln(0{,}01) \approx 36{,}8, quindi k=37k = 37 e 75 ripetizioni.
  4. La soglia 3/43/4 è convenzionale. Partendo da un qualsiasi 1/2+δ1/2 + \delta, per arrivare a errore 1/41/4 serve e−2δ2k≤1/4e^{-2\delta^2 k} \le 1/4, cioè k≥ln⁡2/δ2k \ge \ln 2 / \delta^2. Qualunque soglia ss con 1/2<s≤11/2 \lt s \le 1 dà la stessa classe BPP.
  5. Costo. kk dipende solo da ε\varepsilon e da δ\delta, non dall'input: il tempo viene moltiplicato per la costante 2k+12k + 1 e resta polinomiale.
  6. Perché in PP non funziona. In PP la maggioranza può essere minima, per esempio 2nk+12^{n^k} + 1 run "yes" contro 2nk−12^{n^k} - 1 run "no": la probabilità di risposta giusta è 1/2+1/2nk+11/2 + 1/2^{n^k+1}, cioè δ=2−(nk+1)\delta = 2^{-(n^k+1)}, che dipende da nn e diventa piccolissimo. Il limite e−2δ2k≤εe^{-2\delta^2 k} \le \varepsilon richiede k≥ln⁡(1/ε)/(2δ2)=ln⁡(1/ε)⋅22nk+1k \ge \ln(1/\varepsilon)/(2\delta^2) = \ln(1/\varepsilon) \cdot 2^{2n^k+1}: un numero esponenziale di ripetizioni, quindi tempo esponenziale. Non si conosce un altro modo polinomiale per ridurre l'errore in PP.

Dove serve nelle tracce

F07 n. 3 · F08 n. 6 · F14 n. 5 · G20v5 n. 6 · MA23 n. 7 · SP n. 1

Dove: slide Lez. 6; appunti Lez. 11. Solo nelle slide della Lez. 6, non nella dispensa.

teorema

Teoremi BPP⊆BQP⊆PP\htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}

★ chiesto in 8 domande

BPP⊆BQP\htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=BQP}{\mathrm{BQP}} e BQP⊆PP\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}; di conseguenza P⊆BQP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=BQP}{\mathrm{BQP}} e BQP⊆PSPACE\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Idea, frase per l'esame e dimostrazione +

Intuizione

Le macchine quantistiche generalizzano le distribuzioni di probabilità di BPP, e la condizione di accettazione di PP è ancora più debole.

All'esame

Simulare un algoritmo quantistico richiede al più spazio polinomiale; si pensa che NP⊈BQP\htmlData{term=NP}{\mathrm{NP}} \not\subseteq \htmlData{term=BQP}{\mathrm{BQP}}.

Da scrivere all'esame

BPP⊆BQP⊆PP⊆PSPACE\htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PP}{\mathrm{PP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}: un algoritmo quantistico si simula in spazio polinomiale, quindi i problemi PSPACE-completi stanno in BQP solo se PSPACE=BQP\htmlData{term=PSPACE}{\mathrm{PSPACE}} = \htmlData{term=BQP}{\mathrm{BQP}}.

Schema della dimostrazione

Cosa vuol dire: L∈BQPL \in \htmlData{term=BQP}{\mathrm{BQP}} se una macchina di Turing quantistica (QTM) polinomiale, misurata alla fine, dà "yes" con probabilità ≥2/3\ge 2/3 quando x∈Lx \in L e ≤1/3\le 1/3 quando x∉Lx \notin L: errore limitato come in BPP, ma le probabilità dei run non sono uguali, vengono dalle ampiezze delle transizioni. In PP basta che il "yes" abbia più della metà dei run (maggioranza semplice).

Idea: una QTM può lanciare monete eque, quindi imita una macchina di BPP; al contrario la probabilità di accettare di una QTM si scrive come differenza tra due conteggi di cammini, che una macchina di PP sa confrontare con 1/21/2.

  1. BPP⊆BQP\htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=BQP}{\mathrm{BQP}}. Sia NN la macchina standardizzata di BPP per LL: ogni run fa p(n)p(n) scelte binarie e i run sono equiprobabili. La QTM QQ esegue NN; a ogni scelta mette un qubit nello stato (∣0⟩+∣1⟩)/2(|0\rangle + |1\rangle)/\sqrt{2}, cioè ampiezza 1/21/\sqrt{2} per ciascun valore, che alla misura dà 0 o 1 con probabilità ∣1/2∣2=1/2|1/\sqrt{2}|^2 = 1/2; le altre transizioni hanno ampiezza 1. (QQ deve essere reversibile: basta tenere sul nastro le scelte fatte, con costo polinomiale.)
  2. Le scelte restano scritte, quindi run diversi finiscono in configurazioni diverse e non si cancellano a vicenda: ogni configurazione finale ha probabilità (1/2)p(n)(1/2)^{p(n)}, come un run di NN. Dunque P(yes)P(\text{yes}) è la frazione di run accettanti: ≥3/4≥2/3\ge 3/4 \ge 2/3 se x∈Lx \in L, ≤1/4≤1/3\le 1/4 \le 1/3 se x∉Lx \notin L. Quindi L∈BQPL \in \htmlData{term=BQP}{\mathrm{BQP}}.
  3. BQP⊆PP\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PP}{\mathrm{PP}} (Adleman, DeMarrais, Huang). Sia QQ la QTM per LL, precisa (tutti i cammini lunghi uguale). Si può supporre (risultato noto) che usi solo le ampiezze 0,±1,±1/20, \pm 1, \pm 1/\sqrt{2} e che ogni cammino abbia lo stesso numero hh di passi con ampiezza ±1/2\pm 1/\sqrt{2}. Allora ogni cammino ha ampiezza ±(1/2)h\pm (1/\sqrt{2})^h, e l'ampiezza di una configurazione finale cc è la somma su tutti i cammini che arrivano in cc: (1/2)h⋅(Pc−Mc)(1/\sqrt{2})^h \cdot (P_c - M_c), con PcP_c e McM_c numero di cammini con segno ++ e con segno −-.
  4. P(yes)=∑c accettante∣ampiezza∣2=2−h⋅∑c(Pc−Mc)2P(\text{yes}) = \sum_{c\ \text{accettante}} |\text{ampiezza}|^2 = 2^{-h} \cdot \sum_c (P_c - M_c)^2, e (Pc−Mc)2(P_c - M_c)^2 = (coppie di cammini verso cc con segni uguali) −- (coppie con segni opposti).
  5. La MdT nondeterministica N′N' indovina due cammini di QQ (polinomiali) e li calcola: se finiscono nella stessa configurazione accettante, accetta se i segni sono uguali e rifiuta se sono opposti; altrimenti fa un'ultima scelta e accetta su un ramo e rifiuta sull'altro (contributo nullo). Così (run "yes") − (run "no") è proporzionale a P(yes)P(\text{yes}).
  6. Aggiungendo un blocco di run con risposta fissata (come nella prova di NP⊆PP\htmlData{term=NP}{\mathrm{NP}} \subseteq \htmlData{term=PP}{\mathrm{PP}}) si sposta la soglia: N′N' accetta a maggioranza sse P(yes)>1/2P(\text{yes}) \gt 1/2. Con la promessa di BQP (≥2/3\ge 2/3 oppure ≤1/3\le 1/3) questo succede sse x∈Lx \in L. Quindi L∈PPL \in \htmlData{term=PP}{\mathrm{PP}}.
  7. Corollari. P⊆BPP⊆BQP\htmlData{term=P}{\mathrm{P}} \subseteq \htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=BQP}{\mathrm{BQP}}; BQP⊆PP⊆PSPACE\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PP}{\mathrm{PP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}.

Dove serve nelle tracce

F01 n. 5 · F12 n. 3 · G20v3 n. 6 · LU22 n. 6 · GE23 n. 2 · SE23 n. 4 · ND n. 2 · SP n. 4

Classi

PPSPACE

Dove: slide Lez. 6; appunti Lez. 11. Solo nelle slide della Lez. 6, non nella dispensa. BQP non è tra le classi della mappa completa: sta nella mappa della scheda Quantistiche.

teorema

Teorema BQP⊊2-EXP\htmlData{term=BQP}{\mathrm{BQP}} \subsetneq 2\text{-}\mathrm{EXP}

per l'oraledimostrato nel corso

BQP⊊2-EXP\htmlData{term=BQP}{\mathrm{BQP}} \subsetneq 2\text{-}\mathrm{EXP}: BQP⊆PSPACE⊆EXP\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}, e EXP⊊2-EXP\htmlData{term=EXP}{\mathrm{EXP}} \subsetneq 2\text{-}\mathrm{EXP} per il teorema di gerarchia del tempo.

Idea, frase per l'esame e dimostrazione +

Intuizione

La catena delle inclusioni dimostrate arriva a EXP, che sta strettamente dentro 2-EXP (tempo doppiamente esponenziale).

All'esame

I problemi 2-EXP-completi non si risolvono in tempo polinomiale su un computer quantistico: è un risultato certo, non una congettura.

Da scrivere all'esame

BQP⊆PSPACE⊆EXP⊊2-EXP\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}} \subsetneq 2\text{-}\mathrm{EXP}, quindi BQP⊊2-EXP\htmlData{term=BQP}{\mathrm{BQP}} \subsetneq 2\text{-}\mathrm{EXP}: un problema 2-EXP-completo (per esempio il ragionamento su ontologie OWL2) non si risolve in tempo polinomiale nemmeno con un calcolatore quantistico.

Dimostrazione

Idea: non serve nessuna proprietà speciale del calcolo quantistico. Basta mettere in fila inclusioni già dimostrate e una separazione che viene dalla gerarchia del tempo: BQP sta dentro EXP, ed EXP è strettamente più piccola di 2-EXP.

  1. BQP⊆PP⊆PSPACE\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PP}{\mathrm{PP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}}. Un algoritmo quantistico con errore limitato si simula in spazio polinomiale su una macchina classica (teoremi BPP⊆BQP⊆PP\htmlData{term=BPP}{\mathrm{BPP}} \subseteq \htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PP}{\mathrm{PP}} e PP⊆PSPACE\htmlData{term=PP}{\mathrm{PP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} della Lezione 6).
  2. PSPACE⊆EXP\htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}. Una macchina con budget di spazio polinomiale nkn^k ha al più cnkc^{n^k} configurazioni diverse; se si ferma, lo fa entro quel numero di passi, che è esponenziale (teorema "spazio dato il tempo").
  3. EXP⊊2-EXP\htmlData{term=EXP}{\mathrm{EXP}} \subsetneq 2\text{-}\mathrm{EXP}. Ogni problema di EXP sta in TIME(2nk)\mathrm{TIME}(2^{n^k}) per qualche kk, e 2nk≤22n2^{n^k} \le 2^{2^n} per nn grande, quindi EXP⊆TIME(22n)\htmlData{term=EXP}{\mathrm{EXP}} \subseteq \mathrm{TIME}(2^{2^n}). Per la gerarchia del tempo con budget f(n)=22nf(n) = 2^{2^n} (funzione propria, ≥n\ge n): TIME(f(n))⊊TIME(f(2n+1)3)\mathrm{TIME}(f(n)) \subsetneq \mathrm{TIME}(f(2n+1)^3), e f(2n+1)3=23⋅22n+1f(2n+1)^3 = 2^{3 \cdot 2^{2n+1}} è ancora doppiamente esponenziale, quindi sta in 2-EXP. C'è dunque un problema di 2-EXP che non sta in TIME(22n)\mathrm{TIME}(2^{2^n}) e quindi nemmeno in EXP.
  4. Conclusione. Mettendo insieme: BQP⊆PSPACE⊆EXP⊊2-EXP\htmlData{term=BQP}{\mathrm{BQP}} \subseteq \htmlData{term=PSPACE}{\mathrm{PSPACE}} \subseteq \htmlData{term=EXP}{\mathrm{EXP}} \subsetneq 2\text{-}\mathrm{EXP}. Se fosse BQP=2-EXP\htmlData{term=BQP}{\mathrm{BQP}} = 2\text{-}\mathrm{EXP}, avremmo 2-EXP⊆EXP2\text{-}\mathrm{EXP} \subseteq \htmlData{term=EXP}{\mathrm{EXP}}, contro il punto 3; quindi BQP⊊2-EXP\htmlData{term=BQP}{\mathrm{BQP}} \subsetneq 2\text{-}\mathrm{EXP}.
  5. Conseguenza (slide Lez. 6). Se un problema 2-EXP-completo stesse in BQP, ogni problema di 2-EXP si ridurrebbe a lui e, poiché BQP è chiusa rispetto alle riduzioni, staremmo in 2-EXP⊆BQP2\text{-}\mathrm{EXP} \subseteq \htmlData{term=BQP}{\mathrm{BQP}}, impossibile. Quindi i problemi 2-EXP-completi, come il ragionamento su ontologie OWL2, restano difficili anche per un calcolatore quantistico: è un risultato dimostrato, non una congettura.

Attenzione: per NP e BQP non si sa nulla di simile; che NP non stia in BQP è solo una congettura.

Classi

PSPACEEXP

Dove: slide Lez. 6. Solo nelle slide della Lez. 6, non nella dispensa. BQP e 2-EXP non sono tra le classi della mappa completa: stanno nella mappa della scheda Quantistiche.

proposizione

Proposizione (algoritmo di Grover sui problemi in NP)

chiesto in 4 domandedimostrato nel corso

Ogni problema in NP si risolve con un algoritmo quantistico con errore limitato in tempo O(cnk/2)O(c^{n^k/2}), cioè circa la radice quadrata del tempo della ricerca esaustiva.

Idea, frase per l'esame e dimostrazione +

Intuizione

Grover cerca in una lista non ordinata di mm elementi in circa m\sqrt{m} passi; si applica alla ricerca del certificato.

All'esame

L'accelerazione è solo quadratica: non mette i problemi NP-completi in tempo polinomiale.

Da scrivere all'esame

Con Grover ogni problema in NP si risolve quantisticamente con errore limitato in tempo O(cnk/2)O(c^{n^k/2}): accelerazione solo quadratica, il tempo resta esponenziale.

Dimostrazione

Cosa vuol dire: un algoritmo quantistico con errore limitato dà la risposta giusta con probabilità almeno 2/32/3 (come in BQP); ripetendolo poche volte l'errore scende sotto qualunque soglia ε\varepsilon fissata.

Idea: un problema in NP è la ricerca di un certificato in un insieme enorme di candidati; l'algoritmo di Grover cerca in un insieme non ordinato di mm elementi con circa m\sqrt{m} valutazioni, invece di mm. Il tempo della ricerca esaustiva viene quindi messo sotto radice quadrata.

  1. Il problema come ricerca. Sia L∈NPL \in \htmlData{term=NP}{\mathrm{NP}}: x∈Lx \in L sse esiste un certificato yy, lungo al più nkn^k su un alfabeto di cc simboli, con (x,y)∈RL(x, y) \in R_L, verificabile in tempo polinomiale q(n)q(n). L'insieme SS dei candidati ha circa cnkc^{n^k} elementi; si pone f(y)=1f(y) = 1 sse (x,y)∈RL(x, y) \in R_L.
  2. Forza bruta. Provare tutti i candidati costa O(q(n)⋅∣S∣)=O(q(n)⋅cnk)O(q(n) \cdot |S|) = O(q(n) \cdot c^{n^k}).
  3. Grover. Trova un yy con f(y)=1f(y) = 1, se esiste, con errore limitato e O(∣S∣)O(\sqrt{|S|}) valutazioni di ff: tempo O(q(n)⋅cnk)=O(q(n)⋅cnk/2)O(q(n) \cdot \sqrt{c^{n^k}}) = O(q(n) \cdot c^{n^k/2}).
  4. Risposta ed errore. Si controlla classicamente ff sul yy restituito: se f(y)=1f(y) = 1 si risponde "sì" (mai sbagliato); altrimenti "no". Se x∉Lx \notin L la risposta "no" è sempre giusta; si sbaglia solo se x∈Lx \in L e Grover manca il certificato. Ripetendo kεk_\varepsilon volte l'errore scende sotto ε\varepsilon; kεk_\varepsilon è una costante che dipende solo da ε\varepsilon.
  5. Tempo totale. kε⋅q(n)⋅cnk/2k_\varepsilon \cdot q(n) \cdot c^{n^k/2}. Il fattore polinomiale q(n)q(n) si assorbe prendendo una base un po' più grande c′>cc' \gt c: per nn grande q(n)⋅cnk/2≤c′ nk/2q(n) \cdot c^{n^k/2} \le c'^{\,n^k/2}. Quindi il tempo è O(c′ nk/2)=O(c′ nk)O(c'^{\,n^k/2}) = O(\sqrt{c'^{\,n^k}}).
  6. Esempio delle slide: KNAPSACK. SS = sottoinsiemi degli nn oggetti, ∣S∣=2n|S| = 2^n; f(x)=1f(x) = 1 sse il peso totale di xx è ≤W\le W e il valore totale ≥V\ge V, calcolabile in O(n)O(n). Costo: kε⋅O(n)⋅2n=O(n⋅2n/2)k_\varepsilon \cdot O(n) \cdot \sqrt{2^n} = O(n \cdot 2^{n/2}).

Il tempo resta esponenziale: l'esponente si dimezza (accelerazione quadratica), quindi si risolvono istanze circa doppie, ma i problemi NP-completi non diventano polinomiali.

Dove serve nelle tracce

F03 n. 6 · G20v2 n. 6 · G20v3 n. 5 · SP n. 4

Classi

NP

Problemi

KNAPSACK

Dove: slide Lez. 6. Solo nelle slide della Lez. 6 (prova accennata per KNAPSACK), non nella dispensa.