La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.

Presentazioni simili


Presentazione sul tema: "NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una."— Transcript della presentazione:

1 NP completezza

2 Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una di due risposte possibili: “si” o “no”. Si tratta quindi della classe delle funzioni computabili del tipo f: N  {0,1}

3 Problemi decisionali: esempi Problema del sottografo completo. Dati un grafo G e un intero n, stabilire se il grafo G contiene un sottografo completo con n vertici. Problema del cammino hamiltoniano. dato un grafo G stabilire se esiste un cammino che tocca tutti i vertici di G una e una sola volta. Problema del cammino euleriano. Dato un grafo G stabilire se esiste un cammino che percorra tutti gli archi di G una e una sola volta.

4 Problemi decisionali: esempio: CNF CNF – una formula booleana del tipo: (x 1,1  x 1,2 ...  x 1,k1 )&(x 2,1  x 2,2 ...  x 2,k2 )&...&(x n,1  x n,2 ...  x n,kn ), dove x i,j = v s o x i,j = ¬v s per un dato insieme di variabili {v 1,...,v m }. Problema SAT. Data una CNF F stabilire se F è soddisfacibile, cioè se esiste un assegnamento di valori 0 e 1 alle variabili in F tale per cui il valore di F per quell’assegnamento è 1.

5 Problemi decisionali: CNF k-CNF: una formula booleana del tipo: (x 1,1  x 1,2 ...  x 1,k )&(x 2,1  x 2,2 ...  x 2,k )&...&(x n,1  x n,2 ...  x n,k ), dove x i,j = v s o x i,j = ¬v s per un insieme dato di variabili {v 1,...,v m }. k-SAT. Data una k-CNF F, stabilire se F è soddisfacibile, cioè se esiste un assegnamento di valori 0 e 1 alle variabili in F, tale per cui il valore di F per quell’assegnamento è 1.

6 Problemi di ottimizzazione Spesso il problema non richiede di rispondere si o no, ma di trovare il massimo o il minimo di una funzione (es. TSP, VRP, RCPSP,... ) Questi sono problemi di ottimizzazione, sono comunque riconducibili a problemi di decisione chiedendosi se esiste una soluzione di costo inferiore (superiore) a una soglia k e istanziando ad es. una ricerca binomiale per il minimo k intero. La complessità di un problema di ottimizzazione e del suo corrispondente problema decisionale è la stessa.

7 Codifica Un problema è un’entità astratta (es. il TSP). Una istanza del problema è un suo caso particolare in cui vengono specificati tutti i suoi elementi costitutivi. Un programma risolve un problema se può generare una soluzione in corrispendenza di qualunque sua istanza. Per poter risolvere un problema con un programma è necessario codificare l’istanza da risolvere con una stringa (binaria) comprensibile dal programma. Codifica: corrispondenza fra l’insieme delle istanze del problema e un insieme di stringhe binarie. e: I  {0,1}*

8 La classe P Un problema decisionale P è nella classe P se esiste un algoritmo che risolve qualsiasi istanza del problema P in tempo polinomiale. Il tempo viene calcolato rispetto alla dimensione dell’istanza, cioè alla lunghezza della stringa passata in ingresso al programma che implementa l’algoritmo. Una funzione f:{0,1}*  {0,1}* è calcolabile in tempo polinomiale se esiste un algoritmo polinomiale che, dato in input un qualsiasi x={0,1}*, produce come output f(x).

9 La classe NP Un problema decisionale P è nella classe NP se esiste un algoritmo non-deterministico che risolve qualsiasi istanza di P in tempo polinomiale (rispetto alla dimensione dell’istanza).

10 Algoritmi nondeterministici Un algoritmo non deterministico è un programma che può anche contenere istruzioni del tipo goto {L 1,...,L n } eseguendo questa istruzione il programma salta arbitrariamente a una delle etichette L 1,...,L n.

11 Algoritmi nondeterministici Algoritmo non-deterministico: programma con goto {L 1,...,L n } A seconda delle etichette scelte, l’algoritmo non- deterministico A produce risultati diversi. Si definisce realizzazione di A ciascuna delle possibili esecuzioni di A.

12 Algoritmi nondeterministici Un algoritmo non-deterministico A calcola una funzione f: N  {0,1} se e solo se per ogni a  N, tale che f(a) = 1, tutte le realizzazioni di A terminano, e esiste una realizzazione di A che ritorna 1; per ogni a  N, tale che f(a) = 0, tutte le realizzazioni di A terminano restituendo 0.

13 Algoritmi nondeterministici: esempi Esiste un algoritmo non deterministico polinomiale per I problemi Complete subgraph, Hamiltonian cycle, Euler cycle, SAT e k-SAT. Per il problema del ciclo euleriano esiste anche un algoritmo polinomiale.

14 P e NP Ovviamente P  NP non è noto se P = NP la risposta vale 1.000.000 di dollari

15 Riducibilità polinomiale f : N  {0, 1} è riducibile polinomialmente a g : N  {0, 1} se esiste una funzione h, calcolabile in tempo polinomiale, tale che per ogni x: f(x) = g(h(x)) Notazionalmente: f  p g

16 NP completezza f : N  {0, 1} è NP-completo se e solo se: f  NP per ogni g  NP si ha g  p f

17 P = NP P  NP P = NP NP NP completi P P e NP

18 Prove di NP completezza Difficile: dalla definizione. Si richiede di dimostrare che la funzione è in NP e che qualunque altra funzione in NP è riducibile polinomialmente alla funzione data. Probabilmente la prova più semplice di questo tipo può essere fatta per il problema SAT: stabilire se una data formula CNF è soddisfacibile. Più facile: mostrare che la funzione f è in NP quindi mostrare che g  p f per qualche problema g che è già noto essere NP completo.

19 NP completezza: esempi di prove Problema del sottografo completo. Dati un grafo G e un intero n stabilire se esiste un sottografo completo di G si n vertici. Prova di NP-completezza. Problema SAT. data una CNF F, stabilire se F è soddisfacibile. Si essume di sapere già che SAT è NP-completo.

20 NP completezza: esempi di prove Riduzione da SAT Grafo (k = 3) CNF ab & ¬ab & ¬b a1b1 ¬a2b2 ¬b3


Scaricare ppt "NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una."

Presentazioni simili


Annunci Google