Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
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 or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA. © Alberto Montresor
2
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
3
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
4
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
5
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
6
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
7
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
8
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
9
Non determismo © Alberto Montresor
10
Albero delle scelte © Alberto Montresor
11
Non determinismo - schema generale
© Alberto Montresor
12
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
13
Non determinismo tramite enumerazione
© Alberto Montresor
14
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
15
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
16
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
17
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
18
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
19
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
20
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
21
Ulteriori problemi NP-completi
© Alberto Montresor
22
Ulteriori problemi NP-completi
© Alberto Montresor
23
Relazioni fra i problemi visti finora
© Alberto Montresor
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.