Teoria degli algoritmi e della computabilità Approfondimento: Un altro modo di definire la classe NP: il concetto di certificato. La classe dei problemi.

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

Strutture dati per insiemi disgiunti
2. Introduzione alla probabilità
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
II° Circolo Orta Nova (FG)
____________________
Il linguaggio della Matematica: Insiemi e operazioni
Il Problema del Commesso Viaggiatore
Informatica Generale Alessandra Di Pierro
6. Catene di Markov a tempo continuo (CMTC)
Grafi Algoritmi e Strutture Dati. Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e strutture dati 2/ed 2 Copyright © The McGraw.
Algoritmi e Strutture Dati
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
= 2x – 3 x Definizione e caratteristiche
Cammini minimi con sorgente singola
6. Catene di Markov a tempo continuo (CMTC)
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Ordini Parziali - Reticoli
Esercitazioni su circuiti combinatori
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Università degli Studi di Roma Tor Vergata
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Strutture dati per.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
Algoritmi e Strutture Dati
Computational Learning Theory and PAC learning
Analisi e sintesi di circuiti combinatori
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
8. Reti di Code Nella maggior parte dei processi produttivi risulta troppo restrittivo considerare una sola risorsa. Esempio: linea tandem arrivi 1 v.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e strutture dati
Seminario su clustering dei dati – Parte II
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Heap binomiali Gli heap binomiali sono strutture dati su cui si possono eseguire efficientemente le operazioni: Make(H) : crea uno heap vuoto Insert(H,
Corso di Matematica Discreta cont. 2
1 Informatica Senza Computer? Chiariamoci un po le idee!!! Carlo Gaibisso Informatica senza Computer?
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
Prof. Cerulli – Dott.ssa Gentili
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Problemi facili, problemi difficili
Euristiche: algoritmi costruttivi e di ricerca locale
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 18 Ottobre.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,
Cammini minimi da un sorgente
Teoria degli algoritmi e della computabilità Terza giornata: Ricerca e ordinamento ottimi. P vs NP, algoritmi di approssimazione, e il potere della randomizzazione.
Teoria degli algoritmi e della computabilità Approfondimento: Un modo divertente di parlare di complessità computazionale: puzzle, matematica e algoritmi.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Come affrontare un problema… Marco D. Santambrogio – Ver. aggiornata al 21 Agosto.
FONDAMENTI DI INFORMATICA
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Università degli Studi di Roma Tor Vergata
algoritmi approssimati
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
1/20 NP completezza. 2/20 Problemi astratti Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono.
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Algoritmi approssimati. Algoritmi approssimati Per qualche problema NP-completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”.
Transcript della presentazione:

Teoria degli algoritmi e della computabilità Approfondimento: Un altro modo di definire la classe NP: il concetto di certificato. La classe dei problemi NP-completi ed esempi di riduzioni (materiale predisposto in collaborazione con Luciano Gualà, Università di Roma ‘’Tor Vergata’’) Guido Proietti Email: guido.proietti@univaq.it URL: www.di.univaq.it/~proietti/index_personal

Problemi di decisione (visti come linguaggi) Problema di decisione X: insieme di stringhe (parole). Istanza: stringa s. Algoritmo A che risolve il problema X: A(s) = yes sse s  X. Polinomialità temporale. Algoritmo A è polinomiale se per ogni stringa s, A(s) termina in al più p(|s|) passi elementari, dove p() è un qualche polinomio. PRIMES: X = { 2, 3, 5, 7, 11, 13, 17, 23, 29, 31, 37, …. } Algoritmo. [Agrawal-Kayal-Saxena, 2002] p(|s|) = |s|8. lunghezza di s (dimensione dell’istanza)

Definizione di P P. problemi di decisione per i quali esiste algoritmo polinomiale. Problema Descrizione Algoritmo Sì No Cammino minimo C’è un cammino da x a y lungo al più 10? Dijkstra; Bellman- Ford Ciclo Euleriano Ammette G un ciclo Euleriano? Eulero PRIMES Is x prime? AKS (2002) 53 51 EDIT- DISTANCE È la distanza di edit fra x e y al più 5? Programmazione dinamica Gaber Haber acgggt ttttta Max Matching c’è un matching di dimensione almeno 2? Edmonds x y 6 4 5 9 7 x y 6 4 7 9

la classe NP Il Certifier (Certificatore): intuizione Certifier vede le cose da un punto di vista "manageriale” Certifier non determina se s  X da solo; invece verifica usando una certa “prova” t che s  X. Def. Algoritmo C(s, t) è un certifier per un problema X se per ogni stringa s  X esiste una stringa t tale che C(s, t) = yes. NP. problemi di decisione per i quali esiste un certifier polinomiale Osservazione. NP sta per ”nondeterministic polynomial-time”. Una definizione equivalente di NP: linguaggi che possono essere decisi in tempo polinomiale da macchine di Turing non deterministiche. certificato C(s, t) è un algoritmo polinomiale e |t|  p(|s|) per un qualche polinomio p().

Certifier e certificati: SAT SAT. data una formula  in FNC, c’è un assegnamento di verità che la soddisfa? Certificato. un assegnamento di verità per le n variabili booleane. Certifier. verifica che ogni clausula di  ha almeno un letterale vero. Ex. Conclusione. SAT appartiene a NP. istanza s certificato t

Certifier e Certificati: ciclo Hamiltoniano HAM-CYCLE. Dato un grafo non diretto G = (V, E), c’è un ciclo C che visita tutti i nodi una e una sola volta? Certificato. Una permutazione degli n nodi. Certifier. Verifica che la permutazione contiene tutti i nodi di V esattamente una volta, e che c’è un arco fra ogni coppia di nodi adiacenti della permutazione. Conclusione. HAM-CYCLE appartiene a NP. instanza s certificato t

Certifier e Certificati: 3-Colorabilità 3-COL. dato un grafo non diretto G = (V, E), si possono colorare i suoi nodi con tre colori in modo che due nodi adiacenti abbiamo sempre colori diversi? Certificato. Una colorazione dei nodi. Certifier. Verifica che la colorazione usa solo tre colori, e che per ogni arco di G i suoi estremi hanno colori diversi. Conclusione. 3-COL appartiene a NP. instanza s certificato t

P, NP, EXP P. Problemi di decisione per i quali c’è un algoritmo polinomiale. EXP. Problemi di decisione per i quali c’è un algoritmo esponenziale. NP. Problemi di decisione per i quali c’è un certifier polinomiale. Claim. P  NP. Pf. Considera un qualsiasi problema X in P. per definizione, c’è un algoritmo polinomiale A(s) che risolve X. Certificato: t =  (stringa vuota), certifier C(s, t) = A(s). Claim. NP  EXP. Pf. Considera un qualsiasi problema X in NP. per definizione, c’è un Certifier polinomiale C(s, t) per X. Per risolvere istanza s, esegui C(s, t) per tutte le stringhe t con |t|  p(|s|). Return yes, se C(s, t) returns yes per una qualsiasi delle stringhe t. epsilon = empty string

P Versus NP P = NP? [Cook 1971, Edmonds, Levin, Yablonski, Gödel] Trovare una soluzione è altrettanto facile che verificarne una data? Fondazione Clay ha messo in palio premio da $1.000.000. Se sì: algoritmi efficienti per 3-COLOR, TSP, FACTOR, SAT, … Se no: nessuna algoritmo efficiente per 3-COLOR, TSP, SAT, … Opinione condivisa su P = NP? Probabilmente no. EXP NP EXP P P = NP se P  NP se P = NP romperebbe protocollo crittografico RSA (e potenzialmente farebbe collassare l’economia) Cook formulated conjecture explicitly, others presented close approximations “ The classes of problems which are respectively known and not known to have good algorithms are of great theoretical interest…. I conjecture that there is no good algorithm for the traveling salesman problem. My reasons are the same as for any mathematical conjecture: (i) It is a legitimate mathematical possibility and (ii) I do not know.” -- Jack Edmonds, 1966 If no, then computer scientists can say "I told you so"

NP-Completezza

Riduzione polinomiale Def. Problema X si riduce polinomialmente (Cook) al problema Y se istanze generiche del problema X possono essere risolte usando: numero polinomiale di passi elementari, più numero polinomiale di chiamate a un oracolo che risolve il problema Y Def. Problema X si riduce polinomialmente (Karp) al problema Y se per ogni istanza x di X, possiamo costruire in tempo polinomiale un’istanza y di Y tale che x è un’istanza yes di X sse y è un’istanza yes di Y. Nota. Riduzione secondo Karp è un caso particolare di Cook riduzione con una sola chiamata all’oracolo di Y esattamente alla fine dell’algoritmo per X. (Riduzioni viste sono tutte di questa forma.) Problema aperto. sono lo stesso concetto rispetto a NP? richiediamo che |y| sia polinomiale in |x| Cook and Karp reductions are different (Richard E. Ladner, Nancy A. Lynch, Alan L. Selman: A Comparison of Polynomial Time Reducibilities. Theoretical Computer Science 1(2): 103-123 (1975)). If Cook reduction = Karp reduction then co-NP = NP; if Cook reduction != Karp reduction, then P != NP. Difference between Cook and Karp: with Cook, you get to the oracle more than once and you can even call it adaptively (based on results of previous oracle calls) abusiamo la notazione  p e non facciamo distinzione

problemi NP-Completi NP-completo. Un problema Y in NP con la proprietà che per ogni altro problema X in NP, X  p Y. Teorema. Sia Y un problema NP-completo. Allora Y può essere risolto in tempo polinomiale sse P = NP. dim.  se P = NP allora Y può essere risolto in tempo polinomiale poiché Y appartiente a NP. dim.  se Y può essere risolto in tempo polinomiale: sia X un qualsiasi problema in NP. Poiché X  p Y, possiamo risolvere X in tempo polinomiale. Questo implica che NP  P. ma sappiamo già che P  NP. Quindi P = NP. ▪ Questione fondamentale. esiste almeno un problema NP-completo? why couldn't there be incomparable problems such that neither X <= Y nor Y <= X ?

Il “primo" problema NP-Completo Teorema. SAT è NP-completo. [Cook 1971, Levin 1973] intellectual milestone in CS by Savage's theorem, P = languages with uniformly polynomial circuits

dimostrare NP-Completezza di un problema Osservazione. Una volta trovato il primo problema NP-completo, gli altri si dimostrano per riduzione. Strategia per stabilire NP-completezza di un problema Y. Step 1. mostra che Y è in NP. Step 2. scegli un problema X NP-completo. Step 3. dimostra che X  p Y. claim. se X è NP-completo e Y è in NP con la proprietà che X  P Y allora Y è NP-completo. Dim. sia W un qualsiasi problema in NP. Allora W  P X  P Y. per transitività: W  P Y. Quindi Y è NP-completo. ▪ per def di NP-completo per assunzione

Ancora qualche riduzione (carina)

SAT si riduce a 3-SAT claim: SAT  P3-SAT costruizione. Idea: data un’istanza  di SAT, costruisco un’istanza ’ equivalente di 3-SAT rendendo le clausule tutte di lunghezza 3. Lo faccio aggiungendo (un numero polinomiale di) variabili ausiliarie e clausule. clausula in  della forma (a1a2) sostituita in ’ con (a1a2 y ) ( y a1a2) clausula in  della forma: (a1a2…ak) sostituita in ’ con (a1a2y1) (y1a3y2) (y2a4y3) …(yk-3ak-1ak) claim:  è soddisfacibile sse ’ è soddisfacibile

Directed Hamiltonian Cycle DIR-HAM-CYCLE: dato un grafo diretto G = (V, E), esiste un cammino diretto  che passa per tutti i nodi V una e una sola volta? Claim. DIR-HAM-CYCLE  P HAM-CYCLE. Pf. dato un grafo diretto G = (V, E), costruiamo un grafo non diretto G' con 3n nodi. aout a din d b v bout vin v vout e c ein cout G G'

Directed Hamiltonian Cycle Claim. G ha un ciclo (diretto) Hamiltoniano sse G' ha ciclo Hamiltoniano (non diretto). dim.  Supponi G ha ciclo Hamiltoniano diretto . Allora G' ha ciclo Hamiltoniano non diretto (stesso ordine dei nodi). dim.  Supponi G' ha ciclo Hamiltoniano non diretto '. ' deve visitare i nodi di G' in uno dei sguenti due ordini : …, B, V, R, B, V, R, B, V, R, B, … …, B, R, V, B, R, V, B, R, V, B, … i nodi blu in ' formano un ciclo Hamiltoniano diretto  in G (in uno dei due ordini). ▪

3-SAT si riduce a Directed Hamiltonian Cycle Claim. 3-SAT  P DIR-HAM-CYCLE. Dim. data un’istanza  di 3-SAT, costruiamo un’istanza di DIR-HAM-CYCLE che ha un ciclo Hamiltoniano sse  è soddisfacibile. Construction. Prima creiamo un grafo che ha 2n cicli Hamiltoniani che corrispondono in modo naturale alle 2n possibili assegnamenti di verità.

3-SAT si riduce a Directed Hamiltonian Cycle Construzione. data un’istanza  di 3-SAT con n variabili xi e k clausule. Costruisci G in modo che abbia 2n cicli Hamiltoniani. Intuizione: attraversare il cammino i da sinistra a destra  metto la variabile xi = 1. s x1 the bi-directed edge represents two anti-parallel directed edges x2 x3 t 3k + 3

3-SAT si riduce a Directed Hamiltonian Cycle Costruzione. data un’istanza  di 3-SAT con n variabili xi e k clausule. per ogni clausula: aggiungi un nodo e 6 archi. nodo-clausula nodo-clausula s x1 x2 x3 t

3-SAT si riduce a Directed Hamiltonian Cycle Claim.  è soddisfacibile sse G ha un ciclo Hamiltoniano. dim.  supponi istanza 3-SAT ha un assegnamento x* che soddisfa  . Allora, definisci ciclo Hamiltoniano in G come segue: se x*i = 1, attraversa riga i da sinistra a destra se x*i = 0, attraversa riga i da destra a sinistra per ogni clausula Cj , ci sarà almeno una riga i nella quale stiamo andando nella direzione "corretta" per inserire il nodo Cj nel ciclo.

3-SAT si riduce a Directed Hamiltonian Cycle Claim.  è soddisfacibile sse G ha un ciclo Hamiltoniano. dim.  Supponi G ha ciclo Hamiltoniano . se  entra nel nodo-clausula Cj , deve uscire dall’arco “compagno” di quello da cui è entrato. perciò, nodi immediatamente prima e dopo Cj sono collegati da un arco e in G rimovendo Cj dal ciclo, e rimpiazzandolo con l’arco otteniamo un ciclo Hamiltoniano di G - { Cj } Continuando in questo modo, otteniamo un ciclo Hamiltoniano ' in G - { C1 , C2 , . . . , Ck }. Imposta x*i = 1 sse ' attraversa riga i da sinistra a destra. poiché  visita ogni nodo-clausula Cj , almeno uno dei cammini è attraversato nella direzione "corretta", e tutte le clausule sono soddisfatte. ▪

Traveling Salesperson Problem TSP. dato un insieme di n città con relative distaze coppia-coppia d(u,v), c’è un tour di lunghezza  D? HAM-CYCLE: dato un grafo G = (V, E), c’è un ciclo semplice che passa una e una sola volta per tutti i nodi di V? Claim. HAM-CYCLE  P TSP. dim. data un’istanza G = (V, E) di HAM-CYCLE, crea n città la cui distanze sono: l’istanza di TSP ha un tour di lunghezza  n sse G è Hamiltoniano. ▪ Osservazione. l’istanza di TSP nella riduzione soddisfa la disuguaglianza triangolare.

3-Dimensional Matching 3D-MATCHING. dati n docenti, n corsi, and n orari, e una lista di possibili corsi e orari che ogni docente è disposto a insegnare, è possibile assegnare un corso a ogni docente in modo che i corsi abbiano tutti orari diversi? Instructor Course Time Wayne COS 423 MW 11-12:20 Wayne COS 423 TTh 11-12:20 Wayne COS 226 TTh 11-12:20 Wayne COS 126 TTh 11-12:20 Tardos COS 523 TTh 3-4:20 Tardos COS 423 TTh 11-12:20 Tardos COS 423 TTh 3-4:20 Kleinberg COS 226 TTh 3-4:20 Kleinberg COS 226 MW 11-12:20 Kleinberg COS 423 MW 11-12:20

3-Dimensional Matching 3D-MATCHING. dati tre insiemi disgiunti X, Y, e Z, ognuno di dimensione n e un insieme T  X  Y  Z di triple, esiste un insieme di n triple in T tale che ogni elemento di X  Y  Z è in esattamente una di queste triple? Claim. 3-SAT  P 3D-MATCHING. Pf. data un’istanza  di 3-SAT, costruiamo un’istanza di 3D-matching che ha un perfect matching sse  è soddisfacibile.

3-Dimensional Matching Costruzione. (parte 1) Crea gadget per ogni variabile xi con 2k elementi core e 2k elementi tip. Nessun’altra tripla conterà elementi core. nel gadget i, 3D-matching deve usare o entrambe le triple grigie o entrambe le triple blue. k: numero di clausule xi = vero xi = falso false clause 1 tips Note: the number of tips is 2k, not always 4. core true k = 2 clauses n = 3 variables x1 x2 x3

3-Dimensional Matching Costruzione. (parte 2) per ogni clausula Cj crea due elementi e tre triple. esattamente una di queste tre triple sarà usata in un generico 3D-matching. assicura che un generico 3D-matching usa o (i) triple grigie di x1 o (ii) triple blu di x2 o (iii) triple grigie di x3. gadget clausula 1 false clause 1 tips core true x1 x2 x3

3-Dimensional Matching Costruzione. (parte 3) aggiungi k(n-1) cleanup gadget ogni cleanup gadget è formato da due elementi e 2kn triple, una per ogni tip. gadget clausula 1 false cleanup gadget clause 1 tips core true x1 x2 x3

3-Dimensional Matching Claim. l’istanza ha un 3D-matching sse  is soddisfacibile. Dettagli. Quali sono X, Y, e Z? Contiene ogni tripla un elemento da X uno da Y e uno da Z? gadget clausula 1 false cleanup gadget clause 1 tips core true x1 x2 x3

3-Dimensional Matching Claim. l’istanza ha un 3D-matching sse  is soddisfacibile. Dettagli. Quali sono X, Y, e Z? Contiene ogni tripla un elemento da X uno da Y e uno da Z? gadget clausula 1 cleanup gadget clause 1 tips core x1 x2 x3

Subset Sum SUBSET-SUM. dato un insieme di numeri naturali w1, …, wn e un intero W, c’è un sottoinsieme dei numeri che sommano esattamente a W? Es: { 1, 4, 16, 64, 256, 1040, 1041, 1093, 1284, 1344 }, W = 3754. Sì. 1 + 16 + 64 + 256 + 1040 + 1093 + 1284 = 3754. Osservazione. Nei problemi numerici, l’istanza è rappresentata in binario. Una riduzione polinomiale deve essere polinomiale nella codifica binaria. Claim. 3D-Matching  P SUBSET-SUM.

My Hobby Randall Munro http://xkcd.com/c287.html

Subset Sum Construction. Sia X  Y  Z un’istanza di 3D-MATCHING con insieme di triple T. Sia n = |X| = |Y| = |Z| e m = |T|. Siano X = { x1, x2, x3 x4 }, Y = { y1, y2, y3, y4 } , Z = { z1, z2, z3, z4 } per ogni tripla t= (xi, yj, zk )  T, crea un intero wt di 3n cifre che ha un 1 nelle posizioni i, n+j, e 2n+k. Claim. 3D-matching sse un qualche sottoinsieme somma a W = 111,…, 111. cosiderato in base m+1 x2 y2 z4 x4 y3 x3 y1 z2 z3 z1 y4 x1 Triplet ti 1 x1 x2 x3 x4 y1 y2 y3 y4 z1 z2 z3 z4 wi 100,001,000,010 10,000,010,100 100,010,001,000 10,001,000,001 100,100,001 1,010,000,100 1,010,000,010 1,010,001,000 100,010,001 111,111,111,111

riassumendo: una parziale tassonomia dei problemi Tipologie: Packing problems: SET-PACKING, INDEPENDENT SET. Covering problems: SET-COVER, VERTEX-COVER. Constraint satisfaction problems: SAT, 3-SAT. Sequencing problems: HAMILTONIAN-CYCLE, TSP. Partitioning problems: 3D-MATCHING, 3-COLOR. Numerical problems: SUBSET-SUM, KNAPSACK.

NP-Completezza Osservazione. tutti i problemi sotto sono NP-completi polinomialmente riducibili l’uno all’altro! per definizione di NP-completenzza SAT 3-SAT 3-SAT si riduce a INDEPENDENT SET INDEPENDENT SET DIR-HAM-CYCLE 3D-Matching Karp analyzed most juicy open problem in discrete math – showed most were NP-complete x -> y means x reduces to y (if you can solve y, then you can solve x) Then to join the NP complete club, you need a reduction from SAT (or any other current member) to you VERTEX COVER HAM-CYCLE SUBSET-SUM SET COVER TSP

co-NP e l’asimmetria di NP

Asimmetria di NP Asimmetria di NP. Abbiamo solo bisogno di avere certificati corti per istanze yes. Es 1. SAT vs. TAUTOLOGY. possiamo provare che una formula FNC è soddisfacibile fornendo un assignamento di verità che la rende vera. come possiamo provare che la formula non è soddisfacibile? Es 2. HAM-CYCLE vs. NO-HAM-CYCLE. possiamo provare che un grafo è Hamiltoniano fornendo un ciclo Hamiltoniano. come possiamo provare che un grafo non è Hamiltoniano? Osservazione. SAT è NP-completo e SAT  P TAUTOLOGY, ma come classifichiamo TAUTOLOGY? non sappiamo neanche se è in NP

NP e co-NP NP. Problemi di decisione per i quali c’è un certifier polinomiale. Es. SAT, HAM-CYCLE, COMPOSITES. Def. dato un problema di decisione X, il suo complemento X è lo stesso problema con le risposte yes e no invertite. Es. X = { 0, 1, 4, 6, 8, 9, 10, 12, 14, 15, … } Ex. X = { 2, 3, 5, 7, 11, 13, 17, 23, 29, … } co-NP. Complementi dei problemi di decisione in NP. Ex. TAUTOLOGY, NO-HAM-CYCLE, NO-PRIMES.

NP = co-NP ? Questione fondamentale. NP = co-NP? Hanno le istanze yes certificati corti sse le hanno le istanze no? Opinione diffusa: probabilmente no. Teorema. se NP  co-NP, allora P  NP. Dim (idea). P è chiuso rispetto alla complementazione. se P = NP, allora NP è chiuso rispetto alla complementazione. In altre parole, NP = co-NP.