1 / 20

Classi di Complessita`

Classi di Complessita`. - problemi di decisione. - linguaggio Pascal-like. - codifiche dati “concisa”. Classi P e NP. P : classe dei problemi di decisione per la cui soluzione esistono algoritmi deterministici di complessita` polinomiale nella dimensione dei dati in input.

Download Presentation

Classi di Complessita`

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Classi di Complessita` - problemi di decisione - linguaggio Pascal-like - codifiche dati “concisa” Classi P e NP P: classe dei problemi di decisione per la cui soluzione esistono algoritmi deterministici di complessita` polinomiale nella dimensione dei dati in input NP: classe dei problemi di decisione per la cui soluzione esistono algoritmi nondeterministici di complessita` polinomiale nella dimensione dei dati in input

  2. NP NP = P P Per i problemi in NP non sono ancora stati trovati algoritmi deterministici di soluzione di complessita` polinomiale, ma esistono algoritmi di certificazione deterministici di complessita` polinomiale. Si puo` allora dire che NP e` la classe dei problemi per cui esistono certificati polinomiali. Ovviamente P  NP, ma non si sa se la contenenza e` propria: PNP oppure no: P = NP

  3. f sia calcolabile con un algoritmo deterministico di complessita` polinomiale Per ogni x  IA, A risponde “si” sull’input x se e solo se B risponde “si” sull’input f (x) Riducibilita`polinomiale Un proplema A e` polinomialmente riducibile ad un problema B: A  B se Esiste una funzione f che trasforma le istanze in input per A in istanze in input per B: f : IA  IB tale che A(x)  B(f(x))

  4. Teorema 1. A  B and B NP A NP 2. A  B and B P A P Teorema di Cook-Levin Q: Q NP Q  Domino-limitato Corollario P = NP Domino-limitato P Definizione - Q e` NP-arduo se Q`: Q` NP Q`  Q - Q e` NP-completo se 1. Q e` NP-arduo 2. Q NP

  5. Per dimostrare che un problema R e` NP-arduo basta dimostrare che un problema Q NP-arduo e` polinomialmente riducibile a R Infatti: La relazione  e` transitiva: Q  R and R  S  Q  S Allora: Se Q e` NP-arduo e Q  R si ha (Q`: Q` NP Q`  Q) and Q  R Q`: Q` NP Q`  R, cioe` R e` NP-arduo

  6. “ esiste una copertura della scacchiera ?” “esiste una cricca di dimensione n x n nel grafo G ?” Domino-limitato  Cricca Cricca Domino-limitato Scacchiera n x n m tessere Grafo G con: - n x n x m vertici: vhij - archi (vhij , vh’i’j’) indicano che le tessere dh , dh’ possono stare nelle posizioni i,j e i’,j’

  7. Domino-limitato  soddisfacibilita` Si deve costruire una formula booleana in forma normale congiuntiva tale che la risposta alla domanda “ la formula e` soddisfacibile ?” sia si se e solo se “esiste una copertura legale per la scacchiera” Usiamo una variabile per ricordare una particolare tessera in una particolare posizione (esattamente come i vertici nella riduzione da Domino-limitato a Cricca): uhij il valore true di uhij indichera` che la tessera dh e` nella posizione i,j della scacchiera

  8. Dovremo percio` esprimere i vincoli per una copertura legale della scacchiera: u000 1. d0 e` nella posizione 0,0 2. Esattamente una tessera in ogni posizione 2.1. Almeno una tessera in ogni posizione and 0i,jn-1 (or 0hm-1 uhij) 2.2. Al piu` una tessera in ogni posizione and 0i,jn-1 (and 0h,h’m-1 (not uhijor notuh’ij))

  9. 3. Escludere che due tessere dh e dh’ che non possono essere adiacenti lo siano 3.1. orizzontalmente and 0in-1 0jn-2 (and h,h’ (not uhijor notuh’ij+1)) 3.2. verticalmente and 0in-2 0jn-1 (and h,h’ (not uhijor notuh’i+1j))

  10. ESEMPIO Costruiamo la formula booleana per la seguente istanza di Domino-limitato Scacchiera 2 x 2 Tessere: d0 d1

  11. u000 1 and ( (u000or u100) (u001or u101) and (u011or u111) ) 2.1 and (u010 or u110) and and ( (not u000or notu100) and (not u010or notu110) and (not u001or notu101) (not u011or notu111) and ) 2.2 and ( (not u000or notu001) and (not u010or notu011) and (not u100or notu101) and (not u110or notu111) ) 3.1 and ( (not u000or notu010) and (not u001or notu011) and (not u100or notu110) and (not u101or notu111) ) 3.2 u000, u100, u001, u101, u010, u110, u011, u111

  12. ((u000 or u100) and (u001or u101) u000 and and (u010 or u110) and ( ( not u000or notu100) and ( not u001 or (u011or u111) ) and notu101) and (not u010or notu110) and (not u011or notu111) ) and ( (notu000 or notu001) and (not u010or notu011) and (not u100or notu101) and (notu110or notu111) ) ( (notu000 or and (not u001or notu011) and (not u100or notu110) and notu010) and (notu101or notu111) ) La formula risulta vera per la seguente assegnazione di valori di verita` alle variabili: u000 = true u100 = false u101 = true u001 = false u110 = true u010 = false u011 = true u111 = false

  13. Teorema di Cook-Levin Insieme indipendente Partizione Scheduling Multiprocessore Somma di Sottinsieme Zaino Problemi in NP Domino-limitato Cricca Soddisfacibilità Circuito Hamiltoniano Commesso Viaggiatore

  14. Insieme indipendente Cricca G non orientato V E Gc non orientato Vc = V Ec = {(u, w) / (u, w)  E} “Esiste un sottoinsieme di almeno k vertici a coppie connessi da archi ?” “Esiste un sottoinsieme di almeno k vertici mutuamente non connessi da archi ?” Insieme indipendente: Dati G non orientato e k intero positivo “Esiste un sottoinsieme di almeno k vertici mutuamente non connessi da archi ?”

  15. Circuito Hamiltoniano Commesso viaggiatore Gcomp non orientato Vcomp = V Ecomp = {(r, t) /  r, t Vc} W(u,v) = 1 se (u,v) E W(u,v) = 2 se (u,v)  E G non orientato V E “Esiste in G un ciclo che attraversa ogni vertice una e una sola volta ?” “Esiste un percorso di costo al massimo uguale al numero di vertici?” Circuito Hamiltoniano: Dato G non orientato “Esiste un ciclo che attraversi ogni vertice una e una sola volta ?”

  16. Partizione Scheduling Multiprocessore Somma di Sottinsieme Zaino Partizione: Dato un insieme di interi positivi A = {a1, a2,…, an} “esiste un sottoinsieme S degli indici {1, 2,…, n} tale che iS ai = iS ai ?”

  17. Partizione  Scheduling multiprocessore ti = ai A = {a1, a2,…, an} m = 2 d = (1/2) i{1,…,n} ai “esiste un sottoinsieme S degli indici {1, 2,…, n}tale che iS ai = iS ai ?” “E` possibile eseguire tutti i programmi in al piu` d unita` di tempo ?” Scheduling multiprocessore: Dati n programmi {p1, p2,…, pn}, ognuno dei quali, pi, richiede tempo d’esecuzione ti, intero positivo, m processori identici e un intero d. “E` possibile eseguire tutti i programmi in al piu` d unita` di tempo ?”

  18. Partizione  Zaino pi = vi = ai A = {a1, a2,…, an} c = k = (1/2) i{1,…,n} ai “esiste un sottoinsieme S degli indici {1, 2,…, n}tale che iS ai = iS ai ?” “esiste un sottoinsieme S degli indici {1, 2,…, n}tale che i  S vi  c e i  S pi k ?” Zaino: Dati un insieme O = {o1, o2,…, on} di oggetti, ad ognuno dei quali, oi, sono associati un profitto pi e un volume vi, interi positivi, due interi positivi c (capacita`) e k (obiettivo) “esiste un sottoinsieme S degli indici {1, 2,…, n} tale che i  S vi  c e i  S pi k ?”

  19. Partizione  Somma di sottoinsieme A = {a1, a2,…, an} A = {a1, a2,…, an} k = (1/2) i{1,…,n} ai “esiste un sottoinsieme S degli indici {1, 2,…, n}tale che iS ai = iS ai ?” “esiste un sottoinsieme S degli indici {1, 2,…, n}tale che i  S ai =k ?” Somma di sottoinsieme: Dati un insieme di interi A = {a1, a2,…, an} e un intero positivo k “esiste un sottoinsieme S degli indici {1, 2,…, n} tale che i  S ai =k ?”

  20. NP-completi NP P PEXP P-SPAZIOEXP-SPAZIOE NPNEXP EXP-SPAZIO E NEXP EXP P-SPAZIO

More Related