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.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

Algoritmi e Strutture dati Mod B
TSP Traveling Salesman’s Problem Università di Camerino
Master Bioinformatica 2002: Grafi Problema: cammini minimi da tutti i vertici a tutti i vertici Dato un grafo pesato G =(V,E,w), trovare un cammino minimo.
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This.
Il problema del minimo albero ricoprente in un grafo non cooperativo
Algoritmi e Strutture Dati (Mod. B)
Informatica Generale Alessandra Di Pierro
Cammini minimi con una sorgente
Cammini minimi con sorgente singola
Algoritmi e Strutture Dati
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Università degli Studi di Roma Tor Vergata
Computational Learning Theory and PAC learning
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Problemi intrattabili e quantum computing
Il problema del minimo albero ricoprente in un grafo con archi privati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Boruvka Algoritmi.
Il problema del cammino minimo tra 2 nodi in un grafo con archi privati.
Flusso Massimo Applicazione Algoritmi Esercizio 1 Sia dato la seguente rete di flusso, in cui la sorgente è il nodo 1 e la destinazione è il nodo 6. I.
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 (Mod. B)
Algoritmi e strutture dati
Seminario su clustering dei dati – Parte II
Modelli e Algoritmi per la Logistica
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
PROBLEMI RISOLUBILI E COMPUTABILITÀ
Strutture periodiche discrete: introduzione del vincolo di periodicità e studio della ricostruzione da due proiezioni. A. Del Lungo, A. Frosini, M.Nivat,
Main tools of the probabilistic method with applications in graph theory Attività formativa - Yuri Faenza Supervisore: Prof. B. Scoppola CdLS in Ingegneria.
Elementi di Informatica di base
Prof. Cerulli – Dott.ssa Gentili
Radix-Sort(A,d) // A[i] = cd...c2c1
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Problemi facili, problemi difficili
Agenti logici: calcolo proposizionale Maria Simi a.a. 2008/2009.
La complessità media O(n log n) di Quick-Sort vale soltanto se tutte le permutazioni dell’array in ingresso sono ugualmente probabili. In molte applicazioni.
Euristiche: algoritmi costruttivi e di ricerca locale
Teoria della Complessità Concetti fondamentali
ND-partizione (A) n   A  somma  0 M  1/2 (  a i ) for i  1 to n do S[i]  choice ({true, false}) if S[i] then somma  somma + a i if somma > M then.
Teoria degli algoritmi e della computabilità Approfondimento: Un altro modo di definire la classe NP: il concetto di certificato. La classe dei problemi.
Alberi di copertura minimi. Dato un grafo pesato G = (V,E), si richiede di trovare un albero T = (V,E’), E’  E, tale che la somma dei pesi associati.
Ottimizzazione nella gestione dei progetti Prova scritta del 16/04/2005 COMPITO B Studente: ………………………………… Matricola: ………………………………… (2 punti) Disegnare.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Reti Logiche A Lezione.
Olimpiadi di Informatica 2010 Giornate preparatorie
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Università degli Studi di Roma Tor Vergata
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
algoritmi approssimati
NP completezza. Problemi decisionali I problemi decisionali sono una classe di problemi dove per ogni possibile ingresso un algoritmo deve scegliere una.
Algoritmi elementari su grafi
Il Problema del Commesso Viaggiatore. Traveling Salesman’s Problem (TSP) Un commesso viaggiatore deve visitare un certo numero di città Conosce la distanza.
Come ti sei comportato? Equivalenze comportamentali e loro applicazioni Daniele Gorla Roma, 21 Settembre 2009.
L’ELABORATORE ELETTRONICO uno strumento in grado di eseguire insiemi di azioni (“mosse”) elementari le azioni vengono eseguite su oggetti (dati) per produrre.
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Sintesi Reti Combinatorie
Algoritmi approssimati. Algoritmi approssimati Per qualche problema NP-completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”.
Flusso di Costo Minimo Applicazione di algoritmi: Cammini Minimi Successivi (SSP) Esercizio 1 Sia data la seguente rete di flusso, in cui i valori riportati.
Complessità Computazionale
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Algoritmi e Complessita’ computazionale materiale di riferimento per lo studio appendice App_Complessita’.pdf.
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Avanzati a.a.2013/2014 Prof.ssa Rossella Petreschi Albero ricoprente di costo minimo Lezione n°12.
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Transcript della presentazione:

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 specificati tutti i suoi elementi costitutivi. Un programma risolve un problema se può generare una soluzione in corrispondenza di qualunque sua istanza.

3/20 Risolvibilità 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}* Un algoritmo risolve un problema in tempo O(T(n)) se, quando gli viene fornita la codifica binaria di una istanza i di lunghezza n = |i|, produce una soluzione al più in un tempo O(T(n)).

4/20 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}

5/20 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 tocchi 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.

6/20 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.

7/20 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.

8/20 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 instanziando 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.

9/20 Le classi P ed NP Un problema decisionale P è nella classe P se esiste un algoritmo che risolve qualsiasi istanza del problema P in tempo polinomiale. Un problema decisionale P è nella classe NP se esiste un algoritmo che, data una istanza i e una sua possibile soluzione s, verifica la correttezza della soluzione s in tempo polinomiale (rispetto alla dimensione dell’istanza).

10/20 P e NP Ovviamente P  NP non è noto se P = NP la risposta vale di dollari (

11/20 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

12/20 NP completezza f : N  {0, 1} è NP-completo se e solo se: f  NP per ogni g  NP si ha g  p f NPC è la classe dei problemi NP completi. TEO: se un qualunque problema in NPC è risolvibile in tempo polinomiale, allora P=NP. Equivalentemente, se un qualunque problema in NP non è risolvibile in tempo polinomiale, allora tutti i problemi in NPC non sono risolvibili in tempo polinomiale.

13/20 P = NP P  NP P = NP NP NP completi P P e NP

14/20 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.

15/20 Riduzioni: metodologia Riducendo a P un qualunque problema P’ noto essere in NPC, implicitamente si riducono a P tutti i problemi in NP. Quindi per dimostrare che un problema P è in NPC si può: 1)dimostrare che P  NP 2)selezionare un problema P’ in NPC 3)progettare un algoritmo che calcola una funzione f che fa corrispondere ad ogni istanza di P’ una istanza di P 4)dimostrare che f è tale per cui x  P’ sse f(x)  P,  x 5)dimostrare che l’algoritmo che calcola f è polinomiale.

16/20 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 assume di sapere già che SAT è NP-completo.

17/20 NP completezza: esempi di riduzioni SAT 3-SAT CLIQUE VERTEX COVER SUBSET SUM CICLO HAMILT. TSP

18/20 3-SAT  p CLIQUE Formula Φ = C 1  C 2  …  C k (k clausole) 3 disgiunti per clausola: (x 1 v x 2 v ¬x 3 )  … Grafo: un vertice per ogni letterale di ogni clausola arco fra due vertici se corrispondenti a 1) letterali di clausole diverse e 2) variabili compatibili Es. Φ = (x 1 v ¬x 2 v ¬x 3 )  (¬x 1 v x 2 v x 3 )  (x 1 v x 2 v x 3 ) Grafo: x 1 ¬x 2 ¬x 3 ¬x 1 x 1 x 2 x 2 x 3 x 3

19/20 CLIQUE  p VERTEX COVER Vertex Cover: min |V’|, V’  V t.c.  (u,v)  E si ha u  V’ e/o v  V’ Input: di CLIQUE sia G’ il complemento di G Output: di vertex cover. G ha una clique di dimensione k sse G’ ha una copertura di dimensione |V|-k.

20/20 VERTEX COVER  p SUBSET SUM Subset Sum: Dato un insieme S di numeri e un numero t, si vuole determinare se esiste un S’  S t.c. la somma dei numeri in S’ sia uguale a t. Dato un grafo G e una opportuna procedura di costruzione di S e t, si dimostra che G ha una copertura di ordine k sse  S’  S di somma t.