53
13. COMPLESSITA’ DI CALCOLO

13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

13. COMPLESSITA’ DI CALCOLO

Page 2: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

13.1 INTRODUZIONE Concetti di base: Upper bound e lower bound di complessità di risoluzione di un problema (es: il problema dell’ordinamento di un vettore di n elementi ha un upper bound O(n log n) ed un lower bound Ω(n log n) in termini di confronti). Obiettivo: - classificare i problemi dal punto di vista della loro complessità, cioè della quantità di risorse di calcolo che la loro soluzione richiede - caratterizzare i problemi risolubili in tempo polinomiale e quelli che sappiamo risolvere solo con algoritmi di costo esponenziale. Modelli di calcolo: prevalentemente macchine di Turing.

Page 3: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Risorse: tempo e spazio (memoria) di calcolo. Risultati fondamentali: • relazioni tra diversi modelli di calcolo (MT a uno e più nastri, MT deterministiche e nondeterministiche, MT e RAM) • relazioni tra spazio e tempo • gerarchie di classi • caratterizzazione dei problemi trattabili (risolubili in pratica) e dei confini del concetto di trattabilità computazionale • NP-completezza.

Page 4: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Tipi di problemi Data una funzione f: I → P(O) che associa ad un'istanza x ∈ I un insieme di possibili output f(x) possiamo porre i seguenti problemi: • calcolo: dato x∈I determinare f(x) • decisione: dato x∈I e y∈O decidere se y∈f(x) NB: se |f(x)| ≤ 1 questi sono i soli problemi significativi • ricerca: dato x∈I cercare un y tale che y∈f(x) • enumerazione: dato x∈I determinare |f(x)| • ottimizzazione: data una metrica su O, dato x∈I determinare y∈f(x) tale che y sia l'ottimo in f(x) rispetto alla metrica

Page 5: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Esempio Siano I ed O l'insieme dei grafi non orientati:

G = <N,A>.

Sia f la funzione che fa corrispondere a G ∈ I tutti i suoi sottografi completi. Problema di decisione: un grafo completo G' e' un sottografo di G? Problema di ricerca: determinare un sottografo completo di G. Problema di enumerazione: quanti sono i sottografi completi di G? Problema di ottimizzazione: se come metrica adottiamo |N|, determinare un sottografo completo di G con il massimo numero di nodi.

Page 6: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Complessità di problemi di decisione (riconoscimento di linguaggi). • Standardizziamo l'input: ogni problema di decisione può essere formulato come problema di riconoscimento di linguaggi. • Standardizziamo l'output: (SI, NO) I concetti di complessità di problemi di decisione possono essere traslati a problemi di enumerazione o a problemi di ottimizzazione.

Page 7: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Esempio Decidere se un grafo ha un sottografo completo di k nodi equivale a riconoscere l'insieme: S=<G,k>| esiste un sottoinsieme N' di N tale che |N'| = k ed il sottografo indotto da N' e' completo ovvero il linguaggio: L=g(G)#b(k) | dove g(G) e' la stringa che rappresenta un grafo G, b(k) e' la rappresentazione binaria di un intero k e <G,k> appartiene ad S

Page 8: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

13.2 CLASSI DI COMPLESSITA’ Def. Data una funzione f: N→N possiamo definire le seguenti classi di complessità di linguaggi: DTIME (f(n)): insieme dei linguaggi riconosciuti da una MTM deterministica in tempo al più O(f(n)); DSPACE (f(n)): insieme dei linguaggi riconosciuti da una MTM deterministica in spazio (di lavoro) al più O(f(n)); NTIME (f(n)): insieme dei linguaggi accettati da una MTM non deterministica in tempo al più O(f(n)); NSPACE (f(n)): insieme dei linguaggi accettati da una MTM non deterministica in spazio (di lavoro) al più O(f(n)).

Page 9: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Riassumendo i risultati già visti:

Relazioni tra modelli di macchina. DTIME (t(n)) ⊆ DTIMERAM (t(n) log(t(n))) DTIMERAM (t(n)) ⊆ DTIME (t2(n)) Relazioni tra macchine deterministiche e non deterministiche. NTIME (t(n)) ⊆ DTIME (t(n)2t(n))

Page 10: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

13.3 RELAZIONI TRA CLASSI SPAZIALI E TEMPORALI

DTIME (t(n)) ⊆ DSPACE (t(n)) Ogni passo può al più richiedere una nuova cella di memoria. DSPACE (s(n)) ⊆ DTIME ((s(n)2s(n))k) Su una quantità s di nastro una MT con 1 nastro, q stati e c caratteri può al più operare per t passi dove t ≤ qscs. Se i nastri sono k abbiamo t ≤ q(scs)k. In particolare possiamo assumere c = 2. NOTA BENE. Queste relazioni valgono anche per le macchine non deterministiche.

Page 11: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Cosa possiamo dire della relazione tra macchine deterministiche e non deterministiche rispetto allo spazio? NSPACE (s(n)) ⊆ DSPACE ((s(n)2s(n))k) Infatti abbiamo che se la macchina nondeterministica compie t(n) passi, il nastro della macchina deterministica che effettua la simulazione, che contiene la sequenza di scelte, utilizza s'(n)≤t(n) celle. D'altra parte se la macchina nondeterministica usa s(n) celle tutto ciò che possiamo dire sul tempo è che t(n)≤(s(n)2s(n))k . Quindi abbiamo

s'(n)≤t(n)≤(s(n)2s(n))k

Possiamo fare molto meglio!

Page 12: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Teorema di Savitch. Sia s(n) ≥ log n: NSPACE (s(n)) ⊆ DSPACE (s(n)2) Dim. Assumiamo per semplicità che la macchina di Turing non determ. sia ad un solo nastro. Se essa usa spazio s(n) per decidere se una data stringa x (|x|=n) appartiene ad un linguaggio L abbiamo che il numero di configurazioni possibili è cs(n) (c dipende dal numero di caratteri e dal numero di stati). Definiamo la funzione REACH(c1,c2,t): REACH (c1,c2,t)= if (c1=c2)∨(c1 |— c2) then return TRUE else if ∃c3 such that REACH(c1,c3,t/2)∧REACH(c3,c2,t/2) then return TRUE else return FALSE in cui |c1|,|c2|,|c3|≤log t.

Page 13: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Per decidere se x∈L la macchina deterministica può semplicemente calcolare REACH(c0,cf,2s(n)). Per far ciò è necessario utilizzare spazio pari alla dimensione di una configurazione (s(n)) per il numero di configurazoni che possono essere inserite nella pila durante le chiamate ricorsive (log 2s(n)= s(n)). In totale s(n)2.

Page 14: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Separazione tra le classi spaziali e temporali. Def. Chiamiamo spazio-costruibile (tempo-costruibile) una funzione totale f tale che - f(n) ≥ log n (f(n) ≥ n+1) - esiste una MTM Mx che per calcolare fx per ogni n opera in spazio (tempo) f(n).

Page 15: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Teoremi di gerarchia. • Siano s1, s2: N→N due funzioni spazio costruibili tali che

lim(n→∞) s1(n)/s2(n) = 0 allora esiste un linguaggio L tale che L∉DSPACE(s1(n)) e L∈DSPACE(s2(n)) (L separa le classi DSPACE(s1(n)) e DSPACE(s2(n))). • Siano t1, t2: N→N due funzioni tempo costruibili tali che

lim(n→∞) t1(n)(log t1(n))/t2(n) = 0 allora esiste un linguaggio L tale che L∉DTIME(t1(n)) e L∈DTIME(t2(n)) (L separa le classi DTIME(t1(n)) e DTIME(t2(n))).

Page 16: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Consideriamo ora le seguenti classi di complessità notevoli: LOGSPACE = DSPACE(log n) P = ∪k DTIME(nk) NP = ∪k NTIME(nk) PSPACE = ∪k DSPACE(nk) NPSPACE = ∪k NSPACE(nk) EXPTIME = ∪k DTIME(2nk)

Page 17: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Queste classi rappresentano livelli di complessità "ragionevoli". (NB Per n=10, 2n2 = 2100, se fossero nanosecondi il tempo sarebbe 1014 secoli) Non ci occupiamo di classi di complessità più elevate, come • le classi doppiamente esponenziali (per n = 10, 22n = 21000): complessità della decisione di teoremi dell'Aritmetica di Presbuger; • le classi triplamente, quadruplamente ecc. esponenziali

Page 18: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Chiamiamo problemi elementari tutte i problemi di decisione che, per input n, richiedono tempo

222...2n con una catasta di k esponenziali con k prefissato. Oltre i problemi elementari abbiamo problemi che, per input n, richiedono tempo:

222...22

con una catasta di n esponenziali (funzione ‘torre’) Un esempio di problema che ha questo livello di complessità è il problema di decidere l'equivalenza di espressioni regolari con negazione.

Page 19: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Esempi. La complessità del problema di decidere se due espressioni regolari sono equivalenti è: - esponenziale, per le usuali espressioni - doppiamente esponenziale, per le espressioni con il quadrato - non elementare, per le espressioni con lanegazione.

Page 20: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

La complessità del problema di decidere se una formula è un teorema è: - esponenziale, per formule booleane quantificate - doppiamente esponenziale, per formule della teoria dell'addizione (Aritmetica di Presburger) es. ∀x ∃y ∃z(x+z = y ∧ ∃w(w+w = y)) (per ogni x esiste un numero pari y con x ≤ y) - non elementare, per formule della teoria dell'addizione del secondo ordine es. ∃B (∃y ∈Β ∧ ∀z (z=0 ∨ y+z ∉Β) (esiste un insieme che ha un elemento massimo)

Page 21: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Che relazioni legano le classi notevoli? Grazie ai teoremi di gerarchia possiamo affermare le seguenti separazioni tra classi: i) P ⊂ EXPTIME ii) LOGSPACE ⊂ PSPACE Le relazioni tra macchine deterministiche e non deterministiche e il teorema di Savitch ci permettono poi di asserire che: iii) PSPACE = NPSPACE iv) P ⊆ NP ⊆ EXPTIME

Page 22: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Infine le relazioni tra classi spaziali e classi temporali ci permettono di asserire che: v) PSPACE ⊆ EXPTIME vi) NP ⊆ NPSPACE=PSPACE vii) LOGSPACE ⊆ P

Page 23: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

13.4 TRATTABILITA’ COMPUTAZIONALE. In prima approssimazione definiamo trattabili i problemi che possono essere risolti in tempo polinomiale con MT. Motivazioni: - la forte differenza nell'andamento asintotico delle funzioni polinomiali rispetto a quelle esponenziali - un aumento della potenza di calcolo degli elaboratori si riflette in un fattore moltiplicativo della dimensione delle istanze risolubili in una determinata quantità di tempo mentre nel caso dei costi esponenziali si ha solo il beneficio di un termine additivo - la classe P è una classe "stabile", cioè invariante per diversi modelli di calcolo.

Page 24: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Esempio Se abbiamo due problemi: - P1 risolubile in tempo O(n3) - P2 risolubile in tempo O(2n), e se con la tecnologia attuale possiamo risolvere istanze di P1 e P2 di taglia m (ad esempio un problema su grafi di 1000 nodi), nel momento in cui passiamo a tecnologie 1000 volte più potenti (ad esempio, un nuovo microprocessore o un’architettura parallela) - nel caso del problema P1 possiamo arrivare a istanze di taglia 10 m (grafi di 10000 nodi), - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)!

Page 25: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

13.5 LA CLASSE NP E I PROBLEMI INTRATTABILI Classe dei problemi risolubili in tempo polinomiale da una MT non deterministica. Chiaramente NP include la classe P ma anche molti altri problemi che sappiamo risolvere in tempo polinomiale solo con un modello di calcolo nondeterministico. Problema della “soddisfacibilità” (SAT) Siano: X=x1,...,xn: insieme di variabili booleane; T(X)=x1,...,xn,¬x1,...,¬xn: insieme di letterali; C = l1∨l2 ∨...∨ lni : ogni clausola è la disgiunzione di più letterali; F = C1, C2, ..., Cm: una formula in forma normale congiuntiva (CNF) è la congiunzione di più clausole.

Page 26: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Una assegnazione di valori di verità su X: f: X→true,false soddisfa xi se f(xi)=true e ~xi se f(xi)=false; una clausola C è soddisfatta da f se esiste un li∈C soddisfatto da f; una formula è soddisfatta se tutte le clausole sono soddisfatte. Istanza: formula F in CNF su un insieme X di variabili booleane. Predicato: esiste un'assegnazione f:X→true,false che soddisfa F? (Varianti 2-SAT, 3-SAT, k-SAT, NotAllEqualSAT, ecc.) F= p∨q∨¬r, ¬p∨q∨r, ¬q∨¬r, ¬p∨r F è soddisfatta da: p=true, q=false, r=true. F= p∨q, ¬p∨q, p∨¬q, ¬p∨¬q non è soddisfacibile.

Page 27: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Teorema SAT∈NP, Dim. Possiamo costruire una MTND M che risolve SAT in tempo polinomiale: facciamo generare ad M tutte le possibili assegnazioni su X; (queste sono in numero esponenziale ma le possiamo generare in modo nondeterministico in tempo polinomiale) associamo ad ogni assegnazione un cammino radice-foglia dell'albero di computazione di M ogni nodo dell'albero è associato alla scelta vero/falso per una variabile ogni cammino radice-foglia è di lunghezza polinomiale su ogni foglia verifichiamo in tempo polinomiale se l'assegnazione prodotta soddisfa F.

Page 28: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Problema della programmazione lineare 0,1 (PL0,1) Istanza: insieme di variabili Z=z1,...,zn con dominio in 0,1; insieme I di disequazioni lineari su Z. Predicato: esiste un'assegnazione di valori alle variabili di Z che verifica tutte le disequazioni di I? Teorema. PL0,1∈NP Dim. Realizziamo una macchina non deterministica che genera in tempo O(n) tutte i possibili vettori con valori in 0 o1 e poi, alla foglia di ogni ramo dell'albero, verifica se un vettore soddisfa i vincoli.

Page 29: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Problema "copertura con vertici" (vertex cover, VC). Istanza: grafo G=(V,E), intero k>0. Predicato: esiste un sottoinsieme U di V con |U|≤k tale che per ogni (u,v)∈E u∈U oppure v∈U? Teorema VC ∈ NP Dim. Generiamo con una MTND tutti i sottoinsiemi di V, uno per ogni cammino radice-foglia dell'albero di computazione. Per ogni sottoinsieme U di V verifichiamo in tempo polinomiale: (1) che U è un vertex cover; (2) che |U|≤k

Page 30: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Per moltissimi problemi di interesse pratico non sappiamo stabilire se essi siano risolubili in tempo polinomiale. Sappiamo però che sono risolubili in tempo polinomiale con MT non deterministiche. La mancanza di separazione tra NP e P non ci consente di stabilire se essi siano o non siano ‘trattabili’. Comunque in molti casi possiamo almeno stabilire tra diversi problemi proprietà di complessità ‘relativa’. Uno dei principali obiettivi della teoria della complessità è di consentire una classificazione dei problemi almeno in termini di complessità relativa anche quando la complessità in termini assoluti non è nota. Lo strumento per determinare relazioni di complessità tra problemi sono le riduzioni da un problema ad un altro.

Page 31: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

13.6 RIDUCIBILITA’ E COMPLETEZZA Dato un problema di decisione P definiamo IP l’insieme delle istanze di P e rispettivamente YP e NP gli insiemi delle istanze positive e negative di P. Ad esempio se SAT è il problema della soddisfacibilità di formule del calcolo proposizionale e se: w1 = (x∨y) ∧ (¬x∨¬y) w2 = (x∨y) ∧ (¬x∨¬y) ∧ (x∨¬y) ∧ (x∨¬y) allora abbiamo che w1, w2 ∈ ISAT , w1 ∈ YSAT , w2 ∈ NSAT

Page 32: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Ridurre un problema P1 ad un problema P2 significa ricondurre il problema di risolvere P1 al problema della ricerca di un algoritmo per risolvere P2. Se riusciamo quindi a risolvere P2 riusciamo, come effetto collaterale, a risolvere anche P1 Def. Un problema di decisione P1 è Karp-riducibile a un problema di decisione P2

(P1 ≤ P2) se esiste un algoritmo R che trasforma ogni istanza x∈IP1 di P1 in una istanza y∈IP2 di P2 in modo tale che x∈YP1 (istanza positiva di P1) se e solo se y∈YP2 (istanza positiva di P2); R è una Karp-riduzione da P1 a P2

Page 33: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

NOTA BENE 1. Se esiste R da P1 a P2 ed esiste un algoritmo A2 per P2, allora possiamo costruire un algoritmo A1 per P1:

1. data x∈IP1 applico R a x e ottengo y∈IP2 2. applico A2 a y, se A2 restituisce SI allora restituisco SI altrimenti restituisco NO

2. La complessità computazionale di A1, costruito con A2 ed R, dipende dalla complessità di A2 e dalla complessità di R.

Page 34: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

3. Dall'esistenza della riduzione possiamo dedurre una relazione informale tra la complessità di P1 e quella di P2. Intuitivamente:

comp (P1) ≤ comp (P2) + comp (R) Se comp (R) ≤ comp (P2) abbiamo:

comp (P1) ≤ comp (P2) e quindi un upper bound per P2 è un upper bound per P1 e un lower bound per P1 è un lower bound per P2. In questo modo quando non possiamo stabilire la complessità "assoluta" di un problema possiamo stabilire relazioni di complessità relativa.

Page 35: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Def. P1 è polinomialmente Karp riducibile a P2 (P1 ≤p P2) se la riduzione R è un algoritmo con complessità polinomiale. NOTA BENE Sia P1 ≤p P2 • se so risolvere in tempo polinomiale P2 allora so risolvere in tempo polinomiale P1 • se posso dimostrare che non esiste un algoritmo polinomiale per P1 ne segue che non può esistere un algoritmo polinomiale per P2.

Page 36: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Teorema SAT ≤p PL0,1 Dim. Ogni istanza xSAT=<X,F> di SAT può essere ridotta ad una istanza xPL0,1=<Z,I> di PL0,1 Se li1,...,lik è la i-esima clausola di F definiamo la i-esima disequazione di I τi1+...+τik>0

τij=zj se lij=xj τij=1-zj se lij=~xj

Ogni assegnazione di valori di verità f:X→true,false soddisfa F se e solo se tutte le disequazioni di I sono verificate dalla assegnazione f':Z→0,1 tale che f'(zi)=1 se e solo se f(xi)=vero La riduzione è chiaramente calcolabile in tempo polinomiale.

Page 37: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Un problema appartenente ad una classe di complessità è completo nella classe se ogni problema della classe può essere ridotto ad esso. In particolare un problema appartenente ad NP è NP-completo se la sua struttura combinatoria è talmente ricca che ogni problema in NP può essere ridotto ad esso. Def. Un problema di decisione P1 è NP-completo se P1∈NP e per ogni P2∈NP P2≤p P1. La completezza è uno strumento per indagare le relazioni di inclusione fra classi di complessità. La usiamo per indagare il rapporto tra P ed NP ma potremmo usarla anche per altre classi di complessità.

Page 38: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Se riesco a dimostrare che un problema NP-completo P1 appartiene a P, cioè è risolubile in tempo polinomiale con un algoritmo deterministico, allora ogni altro problema di NP è risolubile in tempo polinomiale da un algoritmo deterministico. Infatti, sappiamo che se P2≤p P1 e P1 è risolubile in tempo polinomiale allora anche P2 lo è. Poiché nel caso di un problema NP-completo tutti i problemi in NP sono riducibili ad esso, se esso fosse risolubile in tempo polinomiale tutti i problemi in NP lo sarebbero.

Page 39: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

NOTA BENE • Nessuno è mai riuscito a dare per un problema NP-completo un algoritmo deterministico polinomiale. • Nessuno è mai riuscito a dimostrare un lower bound non polinomiale (es. Ω(2n) ma anche Ω(nlog n)) per un problema di NP. • Non si sa se P=NP o se P≠NP (ma chiunque scommetterebbe che P≠NP).

Page 40: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

PROBLEMA DA UN MILIONE DI DOLLARI !!! Nel 2000 il Clay Mathematics Institute ha offerto un premio di 1000000 US$ per la risoluzione di ciascuno dei sette ‘problemi del millennio’ tra i quali la relazione tra P ed NP.

Page 41: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

NOTA BENE Per dimostrare che un problema P è NP-completo ci sono due possibili metodi:

1. dimostrare che ogni problema P1 in NP è riducibile a P, oppure 2. trovare un problema P2 già noto per essere NP-completo e dimostrare che P2≤pP; infatti, se P2≤pP e per ogni P1∈NP P1≤pP2 e P2≤pP, allora per ogni P1∈NP P1≤pP

Perchè il metodo 2 sia applicabile c'è bisogno di almeno un problema NP-completo di base.

Page 42: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Teorema (Cook) SAT è NP-completo. Dim. Abbiamo già dimostrato che SAT∈NP, ora dimostriamo che per ogni P∈NP P≤pSAT. Se P∈NP allora esiste una MTND che accetta L in tempo polinomiale; sia M una MTND che accetta ogni stringa x di L in tempo p(|x|) con p polinomio. Dati M ed x costruiamo una formula w in CNF tale che w è soddisfacibile se e solo se M accetta x, cioè se e solo se x∈L. Ipotesi semplificative: M con nastro semi-infinito; nella configurazione iniziale abbiamo x nelle prime celle; ogni configurazione utilizza esattamente |p(x)| celle; esiste uno stato qY di accettazione; la computazione ha esattamente |p(x)| passi.

Page 43: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

w è congiunzione di quattro formule: w = wT ∧ wI ∧ wF ∧ wM wT specifica le proprietà generali delle MT wI specifica la configurazione iniziale wF specifica la configurazione finale wM specifica la funzione di transizione di M. Variabili di w: Q(t,k), Q(t,k) è true se e solo se M si trova nello stato qk all'istante t

(|Q(t,k)| = k p(|x|)) H(t,i), H(t,i) e' true se e solo se la testina di M si trova sulla cella i-esima del

nastro all'istante t (|H(t,i)| = p2(|x|)) C(t,i,h), C(t,i,h) è true se e solo se la cella i-esima del nastro contiene

all'istante t il simbolo σh (|C(t,i,h)| = p2(|x|))

Page 44: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

wT è congiunzione di tre formule: w = wTS ∧ wTH ∧ wTC wTS specifica che ad ogni istante M si trova in uno stato wTS = ∧ (∨Q(t,k) ∧ ∧ (~Q(t,k1)∨~Q(t,k2))) t k k1≠k2 Analogamente wTH specifica che ad ogni istante la testina si deve trovare su una cella e wTC specifica che ogni cella del nastro deve contenere un carattere |wT| = O(p3(|x|))

Page 45: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Se x=σh0,σh1,....,σh(n-1), q0 è lo stato iniziale e σ0 = b wI = Q(0,0)∧H(0,0)∧ C(0,0,h0)∧C(0,1,h1)∧....∧C(0,n-1,hn-1)∧ C(0,n,0)∧C(0,n+1,0)∧....∧C(0,p(|x|),0) wF = Q(p(|x|),k) se qk è lo stato finale di accettazione

Page 46: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

wM è la congiunzione di due formule

wM = wM1 ∧ wM2 wM1 specifica che per ogni t i contenuti del nastro agli istanti t e t+1 sono

gli stessi, eccetto, eventualmente, per ciò che riguarda la cella su cui la testina è posizionata all'istante t (regola di inerzia).

wM1 = ∧ ∧ (H(t,i) ∨ ∧ C(t,i,h)⇔C(t+1,i,h)) t i h

Page 47: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

wM2 codifica la funzione di transizione di M ed è la congiunzione di p2(|x|) . |Q| . (|Σ|+1) formule Se δ(qi,σj)=(ql1,σh1,d), …, (qld,σhd,d)allora: wM2 = ∧ ∧(~H(t,i)∨~C(t,i,j)∨~Q(t,i)) ∨ (H(t+1,i+1) ∧ C(t,i,h1) ∧ Q(t,l1)) ∨ t i ... ∨(H(t+1,i+1) ∧ C(t,i,hd) ∧ Q(t,ld))

Page 48: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

La formula w ha lunghezza O(p3(|x|)) e può essere costruita in tempo propozionale alla sua lunghezza. Le formule che costruiamo non sono in CNF, ma possono essere trasformate in CNF con un aumento lineare della lunghezza. w è soddisfacibile se e solo se M accetta la striga x in tempo P(|x|).

Page 49: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Teorema PL-0,1 è NP completo Dim. Come abbiamo già visto PL-0,1 appartiene a NP e inoltre SAT ≤p PL-0,1.

Page 50: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Teorema 3-SAT è NP completo Dim. SAT≤p 3-SAT e poiché SAT è NP-completo anche 3-SAT lo è. Clausole con meno di 3 letterali possono essere trasformate in clausole con 3 letterali: (p∨q) diventa (p∨q∨r) ∧ (p∨q∨¬r). Clausole con più di 3 letterali si trasformano in clausole con 3 letterali: (p∨q∨r∨s) diventa (p∨q∨t) ∧ (¬t∨r∨s).

Page 51: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Teorema VC è NP-completo. Dim. 3-SAT ≤p VC . Per ogni variabile colleghiamo due nodi con un arco. p ¬p Per ogni clausola con tre letterali (¬p ∨ q ∨ r), creiamo un grafo completo di 3 nodi

¬p

q r

Page 52: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Infine introduciamo archi che collegano nodi con uguale etichetta. Ad esempio: p ¬p

¬p

q r

Page 53: 13. COMPLESSITA’ DI CALCOLO - uniroma1.itfiii/materiale_schaerf/13.COMPLESSITA'.pdf · - nel caso del problema P2 arriviamo solo a istanze di taglia m+10 (grafi di 1010 nodi)! 13.5

Se la formula ha n variabili ed m clausole essa è soddisfacibile se e solo se il grafo può essere ricoperto con n+2m nodi. Quindi VC è NP-completo.