Algoritmi e Strutture Dati

Slides:



Advertisements
Presentazioni simili
Algoritmi e Strutture Dati
Advertisements

1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This.
Capitolo 8 Sistemi lineari.
COORDINATE POLARI Sia P ha coordinate cartesiane
= 2x – 3 x Definizione e caratteristiche
Definizione e caratteristiche
Programmazione Procedurale in Linguaggio C++
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
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
Problemi intrattabili e quantum computing
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 4 Ordinamento: Heapsort Algoritmi e Strutture Dati.
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.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Un albero è un grafo.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Capitolo 11 Grafi e visite di grafi Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Processi Aleatori : Introduzione – Parte I
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Seminario su clustering dei dati – Parte II
Algoritmi di ordinamento
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 7 - Tabelle hash Alberto Montresor Università di Trento This work is licensed under the Creative.
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Strutture di controllo in C -- Flow Chart --
COMPLESSITÀ DEGLI ALGORITMI
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
UN SEMPLICE PIANO DI MARKETING
RICERCA DI MERCATO PER NON ADDETTI
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 K 4 è planare? Sì!
Problemi facili, problemi difficili
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Riconfigurare il diritto dautore. Lipertesto, una necessità di riconfigurazione. Secondo G. P. Landow, lavvento dellipertesto implica la necessità di.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Capitolo 12 Minimo albero ricoprente: Algoritmi di Prim e di Borůvka Algoritmi.
Lanalisi di settore a cura di Bonucchi & Associati srl Questo documento è di supporto a una presentazione verbale. I contenuti potrebbero non essere correttamente.
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.
Stabilità per E.D.O. (I): STABILITÀ LINEARIZZATA
Esempi di posizionamento prodotti
Algoritmi e Strutture Dati
Programmazione Procedurale in Linguaggio C++
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
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.
Logica binaria Moreno Marzolla
Algoritmi e Strutture Dati
Transcript della presentazione:

Algoritmi e Strutture Dati Capitolo 18 - Teoria dell’NP-Completezza Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/2.5/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. © Alberto Montresor

DOMINO LIMITATO (SQUARE TILING) Rompicapo DOMINO LIMITATO (SQUARE TILING) Dati un intero positivo n ed un insieme finito D di m tipi di “tessere orientate”, cioè di quadrati di lato unitario, divisi in quattro parti dalle diagonali con ciascun quarto colorato con un colore, è possibile ricoprire un’area quadrata di lato n con copie delle tessere in D in modo che: nessuna tessera e` “ruotata”; una particolare tessera d ∈ D occupa la posizione piu` in basso a sinistra due tessere che si toccano hanno i lati adiacenti dello stesso colore? © Alberto Montresor

Non c’è ancora risposta Rompicapo Alcune osservazioni Per dati di ingresso banali è possibile risolvere il problema “a colpo d’occhio” E’ possibile trovare un algoritmo O(2n) basato su backtrack (“prova tutte le possibilità”) Si può fare di meglio? Non c’è ancora risposta Non è noto alcun algoritmo migliore di quello di “forza bruta” Si suppone che tale algoritmo non esista © Alberto Montresor

Problemi nella stessa situazione COLORAZIONE (COLORING). Dati un grafo non orientato ed un intero k, è possibile colorarne i nodi usando al più k colori in modo che ogni nodo sia colorato diversamente dai nodi adiacenti? CRICCA (CLIQUE). Dati un grafo non orientato ed un intero k, esiste un sottoinsieme di almeno k nodi tutti mutuamente adiacenti? © Alberto Montresor

Problemi nella stessa situazione COMMESSO VIAGGIATORE (TRAVELING SALESPERSON, TSP). Date n città, le distanze tra esse, ed un intero k, è possibile partire da una città, attraversare ogni città esattamente una volta tornando alla città di partenza, percorrendo una distanza totale non superiore a k? © Alberto Montresor

Problemi nella stessa situazione PROGRAMMAZIONE LINEARE 0/1 (0/1 LINEAR PROGRAMMING). Data una matrice A di elementi interi e di dimensione m × n, ed un vettore b di m elementi interi, esiste un vettore x di n elementi 0/1 tale che Ax ≤ b? SODDISFATTIBILITA` (SATISFIABILITY). Data un’espressione booleana in forma normale congiuntiva, esiste un’assegnazione di valori di verità vero/falso alle variabili booleane che rende l’espressione vera? © Alberto Montresor

Certificato polinomiale un algoritmo che, data una presunta soluzione del problema, verifica in tempo polinomiale che tale soluzione sia effettivamente una soluzione che dà risposta sì © Alberto Montresor

Algoritmo non deterministico Non determinismo Algoritmo non deterministico algoritmo che, posto di fronte alla necessità di prendere una “decisione”, ha la “virtu` magica” di scegliere sempre la strada giusta! In termini equivalenti, è come se l’algoritmo, di fronte a più alternative, le seguisse tutte contemporaneamente, generando più “copie” di se stesso. Ciascuna copia procede la computazione, indipendentemente dalle altre, seguendo una e una sola delle alternative possibili. Istruzioni elementari (O(1)) choice(C), che sceglie arbitrariamente un elemento dell’insieme finito C; failure, che blocca la computazione in uno stato di “fallimento”; success, che blocca la computazione in uno stato di “successo”. © Alberto Montresor

Non determismo © Alberto Montresor

Albero delle scelte © Alberto Montresor

Non determinismo - schema generale © Alberto Montresor

Non determinismo tramite enumerazione Poiché il non determinismo non è realistico, occorre “simulare” il comportamento di una procedura non deterministica con una deterministica. L’approccio da seguire è già noto: enumerazione basata su backtrack, per esplorare sistematicamente l’albero delle scelte corrispondente alla computazione deterministica © Alberto Montresor

Non determinismo tramite enumerazione © Alberto Montresor

Ipotesi necessarie per trattare i problemi in modo omogeno: Le classi P e NP Ipotesi necessarie per trattare i problemi in modo omogeno: i problemi siano di tipo decisionale; il linguaggio di programmazione sia dotato delle operazioni choice, success e failure; la codifica dei numeri utilizzati nel calcolo sia concisa, ovvero si adotti una rappresentazione in base b > 1 Le tre ipotesi non sono affatto restrittive Un problema decisionale non può essere più difficile di un problema simile di ricerca o ottimizzazione Esempio: cricca Pseudocodice è un linguaggio di programazione “universale” Se b>1, dimensione dell’input nelle diverse basi è polinomialmente correlata © Alberto Montresor

Le classi P e NP Classe P la classe di tutti i problemi decisionali risolvibili in tempo polinomiale con algoritmi deterministici; Classe NP la classe di tutti i problemi decisionali risolvibili in tempo polinomiale con algoritmi non deterministici Note: P è contenuta in NP Non si sa se NP è contenuta in P (ovvero le due classi coincidono) oppure no © Alberto Montresor

Riducibilità polinomiale Definizione Siano A e B due problemi decisionali. Si dice che A si riduce in tempo polinomiale a B, e si scrive A ∝ B, se esiste una funzione f di trasformazione f: (dati d’ingresso per A) → (dati d’ingresso per B) tale che: f è computabile in tempo polinomiale con un algoritmo deterministico; x è un dato d’ingresso per cui A dà risposta sì se e solo se f(x) è un dato d’ingresso per cui B dà risposta sì © Alberto Montresor

Riducibilità polinomiale Alcune conseguenze Se B ∈ NP, allora anche A ∈ NP. Per risolvere A con un algoritmo polinomiale non deterministico su un dato x, basta trasformare x in f(x) e risolvere il problema B sul dato f(x): l’algoritmo risultante è ovviamente polinomiale non deterministico. Se B ∈ P, allora anche A ∈ P Si opera come nel caso precedente e poiché f è computabile con un algoritmo polinomiale deterministico, l’algoritmo risultante è polinomiale deterministico Se una limitazione inferiore alla complessità di A è Ω(p(n)) e la trasformazione f richiede al più tempo O(p(n)), allora Ω(p(n)) è anche una limitazione inferiore alla complessità di B © Alberto Montresor

Riducibilità polinomiale Domino lineare Semplificazione del domino limitato, in cui si chiede di coprire un’area di lunghezza n e altezza unitaria Può essere trasformato in un problema di visita di grafo orientato © Alberto Montresor

Ogni problema in NP si riduce in tempo polinomiale al domino limitato. Teorema di Cook-Levin Teorema 18.1 (Cook-Levin) Ogni problema in NP si riduce in tempo polinomiale al domino limitato. NP-completezza Un problema A e` detto NP-arduo se B ∝ A per ogni problema B ∈ NP. A è detto NP-completo se, oltre ad essere NP-arduo, appartiene ad NP Esempio Il domino limitato è NP-completo Ma non è il solo problema ad essere NP-completo © Alberto Montresor

Prove di NP-Completezza Per dimostrare che A è NP-completo non è necessario dimostrare che B ∝ A per ogni problema in NP E’ sufficiente dimostrare A ∈ NP Esiste un problema B, già notoriamente NP-completo, tale per cui B ∝ A Esempi (alla lavagna) cricca è NP-completo soddisfattibilità è NP-completo programmazione lineare 0/1 è NP-completo © Alberto Montresor

Ulteriori problemi NP-completi © Alberto Montresor

Ulteriori problemi NP-completi © Alberto Montresor

Relazioni fra i problemi visti finora © Alberto Montresor