Complessità e Approssimazione



Documenti analoghi
3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

risulta (x) = 1 se x < 0.

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Le parole dell informatica: modello di calcolo, complessità e trattabilità

Esercizio 1 Dato il gioco ({1, 2, 3}, v) con v funzione caratteristica tale che:

Dimensione di uno Spazio vettoriale

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Corso di Informatica

1. PRIME PROPRIETÀ 2

Corso di Calcolo Numerico

4 3 4 = 4 x x x 10 0 aaa

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Problemi computazionali

Lezioni di Matematica 1 - I modulo

1 Giochi a due, con informazione perfetta e somma zero

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Appunti di Sistemi Elettronici

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Algoritmi e strutture dati. Codici di Huffman

UD 3.4b: Trattabilità e Intrattabilità. Dispense, cap. 4.2

1 Serie di Taylor di una funzione

Ricerca Operativa e Logistica

Permutazione degli elementi di una lista

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Capitolo 2. Operazione di limite

4. Operazioni elementari per righe e colonne

10. Insiemi non misurabili secondo Lebesgue.

Le Macchine di Turing

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

La macchina universale

ALGEBRA DELLE PROPOSIZIONI

Esercizi su lineare indipendenza e generatori

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

Appunti sulla Macchina di Turing. Macchina di Turing

Esponenziali elogaritmi

LE FUNZIONI A DUE VARIABILI

Semantica Assiomatica

TSP con eliminazione di sottocicli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT

3 GRAFICI DI FUNZIONI

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Calcolatori: Algebra Booleana e Reti Logiche

TSP con eliminazione di sottocicli

Matematica generale CTF

Rappresentazione grafica di entità e attributi

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Parte 3. Rango e teorema di Rouché-Capelli

CALCOLO COMBINATORIO

( x) ( x) 0. Equazioni irrazionali

Ottimizazione vincolata

Una ricetta per il calcolo dell asintoto obliquo. Se f(x) è asintotica a mx+q allora abbiamo f(x) mx q = o(1), da cui (dividendo per x) + o(1), m =

Matematica generale CTF

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Complemento al corso di Fondamenti di Informatica I corsi di laurea in ingegneria, settore dell informazione Università la Sapienza Consorzio Nettuno

Osservazioni sulla continuità per le funzioni reali di variabile reale

Applicazioni lineari

Dispense di Informatica per l ITG Valadier

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

IL CONCETTO DI FUNZIONE

Politecnico di Milano. Facoltà di Ingegneria Industriale. Corso di Analisi e Geometria 2. Sezione D-G. (Docente: Federico Lastaria).

Il principio di induzione e i numeri naturali.

Esercizi su. Funzioni

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Convertitori numerici in Excel

Codifiche a lunghezza variabile

A i è un aperto in E. i=1

Prodotto libero di gruppi

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Esempi di algoritmi. Lezione III

Teoria dei Giochi. Anna Torre

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Corrispondenze e funzioni

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

1. Distribuzioni campionarie

19. Inclusioni tra spazi L p.

Comparatori. Comparatori di uguaglianza

1. Limite finito di una funzione in un punto

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

FUNZIONI ELEMENTARI - ESERCIZI SVOLTI

Complessità Computazionale

Si sa che la via più breve tra due punti è la linea retta. Ma vi siete mai chiesti, Qual è la via più breve tra tre punti? o tra quattro punti?

Docente: Anna Valeria Germinario. Università di Bari. A.V.Germinario (Università di Bari) Analisi Matematica ITPS 1 / 22

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

Crittografia. Primalità e Fattorizzazione. Corso di Laurea Specialistica. in Informatica

Lezione 8. La macchina universale

Macchine sequenziali

Alcune nozioni di base di Logica Matematica

Lezione 9: Cambio di base

Parte 2. Determinante e matrice inversa

La distribuzione Normale. La distribuzione Normale

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

Corso di Matematica per la Chimica

Transcript:

1 Complessità e Approssimazione Corso di Laurea in Scienze dell'informazione Corso di Laurea Specialistica in Matematica Docente: Mauro Leoncini

2 Aspetti organizzativi Sito web: http://algo.ing.unimo.it/people/mauro quindi seguire i link alla didattica Ricevimento (semestre di lezione): Mercoledì h 16.30-17.30, Giovedì h 11-12 Materiale didattico: trasparenze e materiale disponibile in rete (segnalato dal docente) Modalità d'esame: solo orale CFU assegnati: 7 per CdL Scienze dell'informazione, 5 per CdL specialistica in Matematica

3 Argomenti trattati Esistenza di problemi computazionalmente difficili Abbondanza in molti contesti applicativi (logica, teoria dei grafi, ricerca operativa, economia, biologia, informatica,...) Teoria della NP-completezza (NP-completeness) Algoritmi di approssimazione per problemi NPdifficili (NP-hard) Algoritmi probabilistici Difficoltà come risorsa: crittografia a chiave pubblica e firma digitale

4 Richiami dal corso di Algoritmica Problema e istanza il problema dell'ordinamento un ben preciso insieme di chiavi da ordinare (istanza) Dimensione di un'istanza: numero di bit/word sufficiente a rappresentare l'istanza in modo compatto Esempio: un numero intero n è rapprentato in modo compatto mediante notazione binaria; la dimensione è dunque log n Esempio: un grafo G=(V,E) tale che V={1,2,...,n} ed E =m è rappresentabile in modo compatto mediante n+2m numeri in notazione binaria

5 Richiami dal corso di Algoritmica (2) Misuriamo il costo computazionale di un dato algoritmo contando il numero di operazioni elementari (a livello di bit o di word) in funzione della dimensione delle istanze di input considerando, per ogni data dimensione, il costo massimo (analisi worst-case) Considerare le operazioni a livello di bit può essere necessario nel caso di problemi che coinvolgono (anche) numeri Importanza di codificare i problemi in modo compatto

6 Richiami dal corso di Algoritmica (3) La complessità computazionale di un problema è la quantità minima di risorse (spazio o tempo) sufficienti per risolverlo, ovvero il costo dell'algoritmo di minimo costo che risolve il problema Anche la complessità può quindi essere analizzata nel worst-case, sia a livello di bit che di word Molti autori usano anche la locuzione complessità di un algoritmo, che noi invece eviteremo

7 Un primo esempio: il crivello di Eratostene Input n Tentativamente, marca i numeri 2,3,4,...,n come primi i = 2 Finché i sqrt(n) trova il primo numero j i marcato come primo smarca i numeri 2j, 3j,..., n/j j i=j+1 Stampa i numeri ancora marcati Esempio: n=18 ( sqrt(18) =4) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

8 Un primo esempio: il crivello di Eratostene Input n Tentativamente, marca i numeri 2,3,4,...,n come primi i = 2 Finché i sqrt(n) trova il primo numero j i marcato come primo smarca i numeri 2j, 3j,..., n/j j i=j+1 Stampa i numeri ancora marcati Esempio: n=18 ( sqrt(18) =4) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

9 Un primo esempio: il crivello di Eratostene Input n Tentativamente, marca i numeri 2,3,4,...,n come primi i = 2 Finché i sqrt(n) trova il primo numero j i marcato come primo smarca i numeri 2j, 3j,..., n/j j i=j+1 Stampa i numeri ancora marcati Esempio: n=18 ( sqrt(18) =4) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

10 Il crivello di Eratostene Il costo dell'algoritmo è O(n) Tuttavia, la dimensione dell'input non è n, bensì log n Ne consegue (correttamente) che il crivello di Eratostene è un algoritmo (di costo) esponenziale Considerare n come dimensione dell'input equivale a scrivere l'input in unario, quindi in modo non compatto Qual è la complessità del problema risolto dal crivello di Eratostene?

11 Alcuni problemi che ricorreranno spesso SAT (abbreviazione di SATisfiability): data una formula proposizionale F in forma normale congiuntiva, dire se esiste un assegnamento di verità alla proposizioni elementari che rende vera F Esempio: F = (a b) ( b c) ( a c) è soddisfattibile assegnando ad a il valore vero e a b e c il valore falso k-sat: come SAT, ma ogni espressione in and contiene esattamente k letterali

12 Alcuni problemi che ricorreranno spesso (2) INDEPENDENT SET: dato un grafo G=(V,E) e un intero k non maggiore di V, dire se esiste un sottoinsieme V' di V di dimensione almeno k tale che in G non ci sono archi che uniscono vertici di V' Esempio: nel grafo seguente esiste un insieme indipendente di dimensione 3

13 Alcuni problemi che ricorreranno spesso (3) VERTEX COVER: dato un grafo G=(V,E) e un intero k non maggiore di V, dire se esiste un sottoinsieme V' di V di dimensione al più k tale che ogni arco di G ha almeno un estremo in V' Esempio: nel grafo seguente esiste una copertura degli archi con 4 vertici

Alcuni problemi che ricorreranno spesso (4) SET COVER: data una collezione di sottoinsiemi B1, B 2,..., B m, di uno stesso insieme S, ed un intero k m, dire se ci sono k sottoinsiemi la cui unione coincide con S Esempio: sia S={1,2,3,4,5,6}, B 1 ={1,4}, B 2 ={2,4,6}, B 3 ={1,5}, B 4 ={3,5,6}; è facile vedere che 3 sottoinsiemi sono necessari e che S = B 1 B 2 B 4 = B 2 B 3 B 4 14

15 Alcuni problemi che ricorreranno spesso (5) TSP (Travelling Salesman Problem): date tutte le (n-1)n/2 distanze fra n città e un valore t, dire se esiste un cammino chiuso di lunghezza non maggiore di t che tocca tutte le città una e una sola volta HAMILTONIAN GRAPH: dato un grafo con n vertici, dire se è Hamiltoniano, cioè ( se contiene un cammino chiuso che passa una e una sola volta da ogni nodo

16 Il problema fondamentale: stabilire la difficoltà dei problemi Non possiamo cercare risultati precisi del tipo: il problema A si risolve in tempo O(n 2 ) In modo molto più brusco, possiamo invece classificare i problemi in facili o difficili (o addirittura solo presumibilmente difficili) Ma che cosa vuol dire, per un problema, essere (computazionalmente) facile/difficile?

17 Il problema fondamentale: stabilire la difficoltà dei problemi (2) Cominciamo col fissare una scala di difficoltà Al riguardo, definiamo alcune importanti famiglie di funzioni polinomi: sono del tipo n k, con k>0 costante superpolinomi: sono del tipo n log kn, con k>0 costante esponenziali: sono del tipo b nk, con b>1 e k>0 costanti Due problemi le cui complessità sono funzioni nella stessa famiglia hanno la stessa difficoltà Diversamente, esponenziale è più difficile di superpolinomiale che è più difficile di polinomiale

18 Classi di problemi I problemi vengono classificati utilizzando le amplie classi di funzioni ricordate Alcune classi importanti P = {A: esiste una costante k e un algoritmo P che risolve ogni istanza I di A in tempo al più I k } EXPTIME = {A: esiste una costante k e un algoritmo P che risolve ogni istanza I di A in tempo al più 2 I k } PSPACE = {A: esiste una costante k e un algoritmo P che risolve ogni istanza I di A usando al più I k bit di memoria} Risulta P PSPACE EXPTIME e P EXPTIME

19 Più precisamente...... il nucleo della teoria che svilupperemo considererà solo problemi decisionali Tipi di problemi decisionali: sono quelli che ammettono risposta SI/NO, o VERO/FALSO (ad esempio: il numero p è primo?) di ricerca: sono quelli che chiedono di trovare una soluzione (ad esempio, trovare una componente connessa di un grafo) di ottimizzazione: chiedono di trovare la migliore soluzione (ad esempio, trovare il cammino minimo che congiunge due vertici di un grafo orientato pesato) Le classi P, PSPACE e EXPTIME sono definite in termini di problemi decisionali

20 Ritorniamo alla domanda fondamentale: quand'è che un problema è facile? Se il bit-cost di ogni possibile algoritmo per A è esponenziale, allora A è certamente difficile Se invece esiste un algoritmo di bit-cost polinomiale, allora diciamo che A è facile Sembra non accettabile. E se il polinomio fosse n 100?

21 Una spiegazione Il costo esponenziale deriva dalla (eventuale) necessità di analizzare un numero esponenziale (nella dimensione dell'input) di oggetti Esempio: nel caso di SAT, se la formula contiene n proposizioni elementari, ci sono 2 n possibili assegnamenti di verità. Ce n'è almeno uno buono? Esempio: nel caso del TSP ci sono (n-1)! possibili permutazioni che corrispondono ad altrettanti ordini di attraversamento delle città (immaginando di partire ed arrivare alla città 1). Ce n'è una cui corrisponde una lunghezza minore di t?

22 Una spiegazione (2) Se un algoritmo è polinomiale non può dunque esaminare tutte le possibili soluzioni, deve usare una strategia più intelligente Questa osservazione teorica è supportata da considerazioni pratiche, cioè funziona davvero se un problema ammette un algoritmo polinomiale, allora quasi sempre il polinomio è di grado basso e quasi sempre esistono implementazioni concrete efficienti La classe di tutti i polinomi ha importanti proprietà di chiusura (somma, prodotto e composizione di polinomi producono ancora polinomi)

23 Ricapitolando Se prendiamo per buona la spiegazione data i problemi nella classe P sono facili i problemi nell'insieme differenza EXPTIME\P sono difficili Sfortunatamente, i problemi che abbiamo elencato come pure molti altri di grande interesse applicativo non sono a tutt'oggi classificabili ne' come facili ne' come difficili

24 La situazione attuale Per SAT non abbiamo di un algoritmo polinomiale è un problema difficile? Non abbiamo però neppure una dimostrazione (cioè una prova certa) della sua difficoltà è un problema facile? Detto in altri termini: per SAT non abbiamo limiti superiori di complessità polinomiali ne' limiti inferiori esponenziali Per gli altri problemi la situazione è la stessa

25 Un obiettivo più modesto (rispetto alla classificazione in facile/difficile) Esplorare lo spazio dei problemi computazionalmente difficili... dando evidenza (in assenza di prove certe) della difficoltà di alcuni problemi... caratterizzando almeno una ampia classe di essi da un punto di vista matematico il problema A è almeno tanto difficile quanto B il problema A è il più difficile nell'ambito di una classe C

26 Uno strumento fondamentale: le riduzioni Supponiamo di disporre di un algoritmo che risolve un problema B, che possiamo utilizzare come sottoprogramma Diremo che un problema A è riducible a B in tempo polinomiale (o che A è polinomialmente riducibile a B), e scriveremo A B, se esiste un P algoritmo per A che impiega tempo polinomiale attribuendo costo unitario ad ogni eventuale chiamata del sottoprogramma (o black-box) per B.

27 Significato delle riduzioni Se A P B allora B è almeno tanto difficile quanto A Infatti, per le proprietà di chiusura dei polinomi, se esiste un algoritmo polinomiale per B, allora esiste anche per A Alternativamente, se la complessità di A è esponenziale (o superpolinomiale) allora non può esistere un algoritmo polinomiale per B, pena contraddizione Se A B e B A allora A e B hanno la stessa P P difficoltà (scriveremo A P B)

28 Generalità dei problemi decisionali Come già anticipato, nel perseguire il nostro obiettivo considereremo solo problemi di tipo decisionale Non è una limitazione è ovvio che la versione decisionale di INDEPENDENT SET è non più difficile della versione di ottimizzazione tuttavia, curiosamente, è vero anche il contrario lo stesso si può dire per tutti gli altri problemi considerati o che considereremo per verificare questo fatto, usiamo una riduzione

29 Una (auto)riduzione per INDEPENDENT SET (IS) Disponiamo di un sottoprogramma D per risolvere la sola versione decisionale di IS e vogliamo costruire un algoritmo per la versione di ottimizzazione Se il grafo ha n vertici, con un processo di ricerca binaria si determina la dimensione massima k di un IS mediante al più log n chiamate a D Si procede quindi in successione alla individuazione di k vertici che formano un IS si considera un vertice v, lo si elimina dal grafo (continua)

30 Una (auto)riduzione per INDEPENDENT SET (IS) (continua) si verifica (con una chiamata a D) se la dimensione del massimo IS si riduce in caso affermativo, il nodo v è necessariamente parte dell'is di dimensione massima, e dunque viene inserito nell'insieme risultato; inoltre, si elimina dal grafo ogni vertice adiacente a v e si procede cercando un IS di dimensione k-1 altrimenti si procede cercando ancora un IS di dimensione k Il numero di chiamate a D è al più è n+log n Dunque, se D impiegasse tempo polinomiale, anche la versione di ottimizzazione sarebbe facile

31 Prime riduzioni per problemi decisionali Stabiliremo i seguenti risultati, che illustrano l'uso delle riduzioni IS e VC hanno la stessa difficoltà SC è almeno tanto difficile quanto VC IS è almeno tanto difficile quanto 3-SAT

32 Difficoltà relativa di IS e Vertex Cover (VC) Un semplice risultato: dato un grafo G=(V,E), un sottoinsieme S di V è un IS se e solo se V \ S è un VC se (x,y) è un arco di G, allora al più solo uno fra i vertici x e y può stare in S, e quindi almeno uno fra x e y sta in V \ S, ne consegue che l'arco (x,y) è coperto e dunque V \ S è un VC anche il viceversa è immediato Questo implica che un grafo G ha un IS di dimensione almeno k se e solo se G ha un VC di dimensione non maggiore di n-k (n= V )

33 Difficoltà relativa di IS e VC È facile immaginare le riduzioni in termini algoritmici: data una black-box per VC, se voglio sapere se il grafo G in input ha un IS di dimensione almeno k, chiedo alla black-box se G ha un VC di dimensione non maggiore di n-k e fornisco la stessa risposta data dalla black-box Vale cioè IS VC P Poiché vale anche IS P VC, risulta IS P VC e cioè i due problemi hanno la stessa difficoltà

34 Set COVER (SC) è almeno tanto difficile quanto VC In altri termini VC P SC Dato un problema di vertex covering su un grafo G=(V,E), poniamo S=E e B i ={archi incidenti nel nodo i}, cioè ogni sottoinsieme è in corrispondenza biunivoca con un vertice Naturalmente, se esiste una collezione di k sottoinsiemi che copre S, allora i vertici corrispondenti formano un vertex cover

35 IS è non meno difficile di 3-SAT In altri termini 3-SAT P IS Data una formula booleana in forma normale congiuntiva con k espressioni in and, ognuna con esattamente 3 letterali in or, costruiamo un grafo fatto di k triangoli opportunamente collegati Esempio: sia data la formula F = (a b c) ( a b c) ( a b c) il grafo corrispondente avrà 3 triangoli (slide successiva)

36 IS è non meno difficile di 3-SAT (2) a b a b a b c c c Ogni vertice v di un triangolo (oltre agli altri vertici dello stesso triangolo) è collegato con tutti quei vertici logicamente incompatibili con il letterale rappresentato da v È facile verificare che la formula (con k espressioni in and) è soddisfattibile se e solo se il grafo ha un independent set di dimensione k

37 IS è non meno difficile di 3-SAT (3) Algoritmicamente, la riduzione è un po' più complessa di quelle viste in precedenza Data la formula, il programma deve costruire il grafo con i triangoli e quindi invocare la black-box per IS Tutte le riduzioni viste finora (con l'ovvia eccezione dell'autoriduzione per IS) sono però costituite da una sola chiamata alla black-box (mentre la definizione di riduzione consente un numero polinomiale di invocazioni)

38 La struttura comune delle riduzioni A P B input Costruzione input per la black-box algoritmo per A Black box per B si no

39 Alcune osservazioni finali Le riduzioni viste finore 3-SAT P IS P VC P SC, oltre a VC P IS e La riducibilità è una relazione transitiva (deriva dalle proprietà dei polinomi) Ne consegue, ad esempio, che 3-SAT P SC

40 A che punto siamo? Mediante le riduzioni possiamo arrivare a conclusioni del tipo il problema B è almeno tanto difficile quanto A o anche A e B sono problemi di uguale difficoltà Non siamo in grado di dare una caratterizzazione più ampia dei problemi (apparentemente) difficili, semplicemente perché non sappiamo bene neppure... di quali problemi stiamo parlando! In altri termini, quali sono le caratteristiche comuni di 3-SAT, IS, VC...?

41 La classe NP Sembra esserci una chiara differenza, ben sperimentabile in molti contesti, fra lo sforzo necessario a trovare una soluzione di un problema e verificare che un candidato costituisce effettivamente una soluzione Esempi: in matematica, calcolare un integrale e verificare che una funzione è primitiva di un'altra funzione negli scacchi, trovare le mosse che portano ad un matto e verificare che una sequenza porta effettivamente allo scacco matto in automobile, trovare una destinazione o verificare la correttezza delle indicazioni del navigatore satellitare

42 La classe NP (2) I problemi considerati per SAT, è facile verificare (in tempo proporzionale alla lunghezza della formula F) se un assegnamento di verità dato ai letterali della formula soddisfa F per IS, è facile verificare (in tempo proporzionale al numero di archi) se un insieme di vertici è indipendente per TSP, è facile verificare (in tempo proporzionale al numero di città) se la lunghezza di un dato ciclo è minore della soglia richiesta...

43 La classe NP (3) Dato un problema decisionale A, l'insieme degli input legali per i quali la risposta è sì è detto insieme delle istanze positive per A Un programma C è detto certificatore efficiente per A se soddisfa le seguenti condizioni (1) C accetta due parametri in input (2) C impiega tempo polinomiale nella dimensione dell'input (3) esiste una costante k tale che, per ogni istanza positiva I di A esiste una stringa S (certificato) di lunghezza al più I k tale che C(I,S)=sì

44 La classe NP (4) Definizione della classe NP: insieme dei problemi decisionali che posseggono un certificatore efficiente Un risultato immediato: P NP Stabilire se l'inclusione sia propria è uno dei principali problemi aperti in Informatica e uno dei sette Millennium Prize Problems del Clay Mathematics Institute http://www.claymath.org/millennium/ NP è in realtà l'acronimo di Nondeterministic Polinomial (Time)

45 Il nuovo interrogativo Quali sono i problemi candidati a stare in NP \ P, sempre che questo insieme non sia vuoto? Dalle riduzioni viste possiamo dire, ad esempio, che se ci stesse 3-SAT, cioè se si provasse che 3-SAT è difficile, a maggior ragione ci starebbe anche IS Equivalentemente, se non ci stesse IS (cioè se si potesse provare che IS è facile) allora non ci starebbe neanche 3-SAT Esiste un problema A più difficile della classe NP, tale cioè che o A NP \ P oppure NP \ P è vuota?

46 Problemi completi I problemi più difficili per una data classe vengono detti problemi completi per quella classe Un problema A è completo per la classe NP (o, più semplicemente, NP-completo) se e solo se A NP se B NP allora B P A Un problema completo racchiude tutta la difficoltà della classe Trovare un problema completo sembra sensibilmente più difficile che stabilire la difficoltà relativa di due problemi specifici (non è neppure detto che esista!)

47 Il risultato fondamentale Esistono problemi NP-completi (risultato dovuto indipendentemente a Cook e Levin) In particolare, SAT è NP-completo (teorema di Cook) La dimostrazione non è neppure troppo complessa! In breve, il teorema di Cook fa vedere che i problemi in NP possono essere decisi da un opportuno modello di calcolo, la Macchina di Turing (MdT) non deterministica data la descrizione di una MdT M e un input I per M, si può costruire una espressione in forma normale congiuntiva che è soddisfattibile se e solo se l'output di M su input I è sì la lunghezza della formula è polinomiale in M e in I

48 Altri problemi NP-completi Per dimostrare che un problema A è NP-completo non occorre rifare l'equivalente del teorema di Cook per A! È invece sufficiente trovare un problema B che si sa essere NP-completo e dimostrare che B A P Ad esempio, alla luce delle riduzioni già operate, se provassimo che SAT P 3-SAT dimostreremmo anche che 3-SAT, IS, VC e SC sono problemi NP-completi In questo modo il vocabolario di problemi NPcompleti cresce