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

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
Algoritmi e Strutture Dati
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This.
Algoritmi e Strutture Dati (Mod. B)
Linguaggi algoritmici
Il Problema del Commesso Viaggiatore
Generazione di Piani attraverso Grafi di Pianificazione
Cammini minimi con una sorgente
Cammini minimi con sorgente singola
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
Problemi intrattabili e quantum computing
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Boruvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Cammini minimi Algoritmo SPT.Acyclic
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati (Mod. B)
Algoritmi e strutture dati
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Modelli e Algoritmi per la Logistica
Modelli simulativi per le Scienze Cognitive
Algoritmi e Strutture Dati
Alberi ricoprenti minimi Alcune applicazioni Lunedì 17 novembre 2003.
Elementi di Informatica
Main tools of the probabilistic method with applications in graph theory Attività formativa - Yuri Faenza Supervisore: Prof. B. Scoppola CdLS in Ingegneria.
LA CRITTOGRAFIA QUANTISTICA
Elementi di Informatica di base
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Problemi facili, problemi difficili
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à Seconda giornata: progettare un algoritmo corretto, efficiente, e possibilmente ottimo! Guido Proietti
DIVERTIRSI CON SCRATCH
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Un problema Progettare un programma per calcolare se un qualsiasi altro programma contiene un ciclo infinito –Ciclo infinito: per esempio, eseguire le.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Sistemi basati su conoscenza Ricerca di soluzioni a problemi Prof. M.T. PAZIENZA a.a
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
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.
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:
Prof. Cerulli – Dott. Carrabs
Algoritmi approssimati. Algoritmi approssimati Per qualche problema NP-completo esistono algoritmi polinomiali che ritornano soluzioni “quasi ottime”.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
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
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Sesta giornata Risolvere efficientemente un problema in P: Il problema dell’ordinamento: Insertion.
Università degli Studi di Cagliari FACOLTA’ DI INGEGNERIA
Algoritmi e Complessita’ computazionale materiale di riferimento per lo studio appendice App_Complessita’.pdf.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi Lezione n°9.
Transcript della presentazione:

NP completezza

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}

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.

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.

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.

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.

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}*

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).

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).

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.

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.

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.

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.

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

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

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

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

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.

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.

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