Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoFulvia Mattioli Modificato 11 anni fa
1
1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili 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.
2
2 © Alberto Montresor Introduzione Cosa fare con un problema NP-completo? Chi si accontenta gode Bisogna saper rinunciare a qualcosa Generalità : per particolari valori di input, il problema potrebbe essere trattabile Algoritmi pseudo-polinomiali Ottimalità : si cercano soluzioni non troppo distanti da quella ottima Algoritmi di approssimazione Efficienza : si cercano soluzioni esponenziali che potano lo spazio di ricerca Algoritmi branch-&-bound Formalità : soluzioni che sembrano comportarsi bene, anche se non vi è prova matematica del loro comportamento Algoritmi euristici
3
3 © Alberto Montresor Algoritmi psuedo-polinomiali Somma di sottoinsieme (Subset sum) Dati un insieme A={a 1,...,a n } di interi positivi ed un intero positivo k, esiste un sottoinsieme S di indici in {1,..., n } tale che i S a i = k ? Risoluzione basata su programmazione dinamica Vettore booleano M[0... k+1]
4
4 © Alberto Montresor Algoritmi pseudo-polinomiali Esempio Complessità O ( nk ) che non è polinomiale nella dimensione del problema Assumiamo a i k (altrimenti potrebbe essere banalmente eliminato) Dimensione dei dati: O(n log k) Se k è polinomiale in n - O(n c ) - allora complessità è polinomiale - O(n c+1 ) Se k è esponenziale, allora la complessità è esponenziale - O(n2 n )
5
5 © Alberto Montresor Algoritmi pseudo-polinomiali Elaborazione in tempo reale (real-time) Problemi in cui la correttezza non dipende solo dal valore del risultato, ma anche da quando tale risultato è prodotto Problemi scheduling Input: Insieme di processi da eseguire, caratterizzati dal periodo (ogni quando questi processi vanno eseguiti) dalla deadline (entro quando questi processi vanno eseguiti) Scheduling real-time basato su prelazione (preemption) basato su priorità (priority-driven)
6
6 © Alberto Montresor Algoritmi pseudo-polinomiali Real-time-scheduling Dato un insieme { p 1,..., p n } di processi periodici, dove ciascun p i ha tempo di computazione C i e periodo T i (interi con 0 < C i T i ), è possibile eseguire tutte le occorrenze periodiche dei processi per mezzo di un algoritmo con prelazione guidato da priorità in modo che ciascuna occorrenza periodica di ogni processo sia completamente eseguita prima della successiva occorrenza dello stesso processo, cioè entro la fine del suo periodo? Esempio Un processo con periodicità 3 dovrà essere eseguito una volta nellintervallo [0,3], una nellintervallo [3,6], una nellintervallo [6,9], e così via.
7
7 © Alberto Montresor Algoritmi pseudo-polinomiali Algoritmo Rate-Monotonic (Liu, Layland 1972) Ogni processo è assegnata una priorità in accordo al tasso di richieste (inverso del periodo)
8
8 © Alberto Montresor Algoritmi pseudo-polinomiali Domanda Sotto quali condizioni un problema NP -completo può essere risolto con un algoritmo polinomiale per valori piccoli dei dati in ingresso? Dato un problema decisionale P con insieme di dati di ingresso I d - Lunghezza della stringa che codifica I # - Il più grande numero intero che appare in I Esempi: Somma di sottoinsieme: I ={ n,k,a 1,...,a n }, # = max{ n, k,max i { a i }}, d = O ( n log #) Commesso viaggiatore: I ={ n,k,[ d ij ]}, # = max{ n, k,max ij { d ij }}, d = O ( n 2 log#) Cricca: I ={ n, m, k, G =( V, E )}, #=max{ n, m, k }, d =O( n + m +log#) 8
9
9 © Alberto Montresor Problemi fortemente NP-completi Definizione Sia P p il problema P ristretto ai dingresso per cui # è limitato superioremente dalla funzione polinomiale p(d). P è fortemente NP-completo se Pp è NP -completo Somma di sottoinsieme non è fortemente NP-completo Se # = n il problema è risolubile in tempo polinomiale, mentre se # = k, allora # non può essere limitato superiormente da alcun polinomio in d = O( n log k ); Commesso viaggiatore è fortemente NP-completo resta NP -completo anche quando d ij {1,2}, 1 i,j n, e k = n ; in tal caso, # = n, ovviamente limitato superiormente da un polinomio in d = O ( n 2 log n ); Cricca è fortemente NP-completa k può essere assunto minore o uguale ad n (se k > n, la risposta del problema è sempre no) e quindi # è limitato superiormente da un polinomio in d = O ( n + m + log ( m + n )).
10
10 © Alberto Montresor Problemi fortemente NP-completi In pratica: sono fortemente NP -completi tutti quei problemi che possono essere dimostrati NP -completi con riduzioni che non usano numeri interi esponenzialmente grandi sono debolmente NP -completi quei problemi la cui dimostrazione di intrattabilità dipende pesantemente da riduzioni che usano numeri interi esponenzialmente grandi Esempio: Problemi fortemente NP -completi: Domino limitato, Cricca, Soddisfattibilità, Programmazione Lineare 0/1, Insieme Indipendente, Commesso Viaggiatore Problemi debolmente NP -completi: Somma di Sottoinsieme, Partizione e Zaino
11
11 © Alberto Montresor Algoritmi pseudo-polinomiali Definizione Un algoritmo che risolve un certo problema P, per qualsiasi dato I dingresso, in tempo polinomiale p(#, d) ha complessità pseudopolinomiale. Esempio: algoritmo subsetSum () ha complessità pseudopolinomiale Teorema Nessun problema fortemente NP -completo può essere risolto da un algoritmo pseudopolinomiale, a meno che non sia P = NP
12
12 © Alberto Montresor Algoritmi di approssimazione Problemi di ottimizzazione Molti sono NP -hard, perché il corrispondente problema decisionale è NP -completo Ma chi si accontenta gode: se non riusciamo ad ottenere lottimo, potremmo accontarci di una soluzione che non disti troppo dallottimo Approssimazione assoluta Dato un problema di ottimizzazione P, con funzione costo non negativa c, un algoritmo di approssimazione assoluta fornisce una soluzione ammissibile x il cui costo si discosta da quello della soluzione ottima x per uno scarto relativo garantito e limitato da una costante.
13
13 © Alberto Montresor Algoritmi di approssimazione Bin-packing Dato un insieme A = {a 1,..., a n } di interi positivi (i volumi di n oggetti) ed un intero positivo k (la capacita` di una scatoletta), si vuole trovare una partizione di {1,...,n} nel minimo numero di sottoinsiemi disgiunti (le scatolette) tali che i S a i k per ogni insieme S della partizione.
14
14 © Alberto Montresor Algoritmi di approssimazione Algoritmo first-fit Oggetti considerati in un ordine qualsiasi Ciascun oggetto è assegnato alla prima scatoletta che lo può contenere First-fit è un algoritmo di approssimazione assoluta Se il numero N di scatolette usato da First-fit è maggiore di 1, allora tale numero è minore di Infatti, non possono esistere due scatolette riempite per meno di metà Quindi, N < 2 N * Alcune note: E possibile dimostrare che N < 17/10 N *+2 Si può dimostrare che con first-fit decreasing (considerando i valori in ordine decrescente) si ha N < 11/9 N *+4
15
15 © Alberto Montresor Algoritmi di approssimazione Commesso Viaggiatore con Disuguaglianze Triangolari (tsp ). Date n città e le distanze d ij tra esse, tali che d ij d ik + d kj per 1 i, j, k n, trovare un percorso che, partendo da una qualsiasi città, attraversi ogni città esattamente una volta e ritorni alla città di partenza, in modo che la distanza complessiva percorsa sia minima Note: La versione decisionale di tsp è NP -completa Infatti, la dimostrazione di NP -completezza di tsp si applica anche a questo problema
16
16 © Alberto Montresor Algoritmi di approssimazione Come arrivare ad un algoritmo di approssimazione tsp corrisponde a trovare un circuito Hamiltoniano di costo minimo in un grafo K n di n nodi, non orientato, pesato e completo Si individua un minimo albero di copertura Se ne percorrono gli archi due volte Per poi saltare quelli già visitati
17
17 © Alberto Montresor Algoritmi di approssimazione
18
18 © Alberto Montresor Algoritmi di approssimazione Algoritmi per tsp Ne esistono di migliori; Christofides (1976) ne propone uno che fornisce, in tempo polinomiale, una soluzione x tale che c(x) 3c(x )/2 Non-approssimabilità Per molti problemi di ottimizzazione, trovare una soluzione approssimata è tanto difficile quanto trovarne una ottima! Questo è vero, per esempio, per le versioni di ottimizzazione di Cricca, Colorazione e Commesso Viaggiatore Teorema 19.2. Non esiste alcun algoritmo di approssimazione assoluta per Commesso Viaggiatore tale che c(x) sc(x ), con s intero positivo, a meno che P = NP.
19
19 © Alberto Montresor Algoritmi di approssimazione Algoritmi di ε-approssimazione In taluni casi, è possibile progettare algoritmi che producono soluzioni approssimate il cui scarto dallottimo non è una costante, bensì un valore fornito in input che può essere reso arbitrariamente piccolo. In altri termini, comunque si scelga un ε piccolo a piacere, con 0 < ε 1, tali algoritmi producono in tempo polinomiale nella dimensione del problema, ma in genere esponenziale in 1/ε, una soluzione ammissibile x tale che
20
20 © Alberto Montresor Algoritmi di approssimazione Somma di sottoinsieme (versione di ottimizzazione) Dati un insieme A={a 1,...,a n } di interi positivi ed un intero positivo k, trovare un sottoinsieme S di indici in {1,..., n } tale che i S a i k e i S a i sia massima? Sia ε = (1/ h +1) con h >0 Oppure h = (1-ε)/ε Algoritmo Si generano tutti i sottoinsiemi di dimensione al più h Si cerca fra questi quello di valore massimo
21
21 © Alberto Montresor Algoritmi di approssimazione Alcuni ragionamenti su complessità Vi sono n ( n -1)( n -2)... ( n - m +1)/ m ! n m sottoinsiemi {1,..., n } di dimensione m Il ciclo (1) è ripetuto volte Il ciclo (2) è ripetuto n volte Costo computazionale: O ( hn h+1 ) Polinomiale in n Esponenziale in h (e quindi in 1/ε) Approssimazione apSubsetSum () fornisce una soluzione x = maxSol di costo c(x) = max tale che |c(x) c(x )|/|c(x )| ε
22
22 © Alberto Montresor Algoritmi di approssimazione Esempio di esecuzione Siano n = 8, k = 45, A = {23, 19, 13, 12, 11, 8, 7, 5}, h = 1 (e quindi ε = 1/2) Si può fare meglio di così?
23
23 © Alberto Montresor Algoritmi di approssimazione Teorema 19.3. Sia P un problema di ottimizzazione tale che: la versione decisionale di P è fortemente NP -completa; per ogni insieme I di dati di input per P il valore c(x ) della soluzione ottima è limitato superiormente da p(#), dove p è un polinomio e # è il più grande numero che appare in I, allora, a meno che P non coincida con NP, non esiste alcun algoritmo di ε- approssimazione per P che richieda tempo polinomiale sia nella dimensione del problema che in 1/ε
24
24 © Alberto Montresor Algoritmi branch-&-bound Approccio basato su enumerazione Si modifica la procedura enumerazione() per evitare scelte che si rivelino incapaci di generare la soluzione ottima Assunzioni Problema di minimizzazione Ogni sequenza di scelte abbia costo non negativo Funzione lb ( S, i ) (lower-bound) dipende dalle scelte già fatte S [1... i ] limite inferiore al costo delle soluzioni ammissibili generabili aggiungendo scelte a S [1... i ] In questo modo, è possibile mantenersi la migliore soluzione ammissibile trovata fino ad un certo punto, con costo minCost ; se lb ( S, i )>minCost, allora si può evitare di generare ed esplorare il sottoalbero radicato a quella scelta
25
25 © Alberto Montresor Branch-&-bound S[i- 1] S[i] S[n] minCost lb ( S, i )> minCost
26
26 © Alberto Montresor Branch-&-bound
27
27 © Alberto Montresor Branch-&-bound Complessità Assumendo che | C | m per tutti i passi 1 i n calcolo di lb sia O( f ( n )) la complessità totale è O( m n f ( n )) In realtà dipende da soluzione iniziale branch bound ordine di visita scarto dallottimo
28
28 © Alberto Montresor Branch-&-bound Commesso viaggiatore Input: n città, d[h,k] matrice distanze città h,k, con 1 h, k n Passo i -esimo: scelte le prime i città, S [1... i ] Calcolo del lower-bound
29
29 © Alberto Montresor Branch-&-bound Esempio A = min{ d [1,2], d [1,4], d [1,5] } = min{ 3,2,7 } = 2; B = min{ d [3,2], d [3,4], d [3,5] } = min{ 4,5,8 } = 4; C [2] = C [1] + d [1, 3] = 4; D [2] = 3 + 3 = 6; D [4] = 2 + 5 = 7; D [5] = 3 + 6 = 9; lb( S ) = 4 + (2 + 4 + 6 + 7 + 9)/2 = 18.
30
30 © Alberto Montresor Branch-&-bound
31
31 © Alberto Montresor Algoritmi euristici Bisezione. Dato un grafo non orientato G =( V, E ) di n nodi, trovare una partizione di V in due sottoinsiemi V 0 ed V 1 di n /2 nodi ciascuno tale che il numero di archi con un estremo in V 0 e laltro estremo in V 1 sia minimo Euristica min-max-greedy per bisection Scegli casualmente due nodi n 0 V 0 e n 1 V 1 Aggiungi alternatamente nodi a V 0 e V 1 Aggiungendo a V 0 Scegli il vertice con il minor numero di archi verso V 1 In caso di più vertici con numero minimo di archi, scegli fra questi il vertice con il maggior numero di archi verso V V0V0 V1V1 min max
32
32 © Alberto Montresor Algoritmi euristici Lultima chance Quando non si è in grado di ottenere soluzioni ottime nè tantomeno ottimizzate, si può ricorrere ad algoritmi euristici che forniscono una soluzione ammissibile buona Algoritmi euristici greedy Commesso viaggiatore: si ordinano gli archi per valori crescenti per ogni arco se i suoi estremi non sono saturi (hanno grado < 2) se non si forma un ciclo aggiungi larco alla soluzione aggiungi larco che chiude il ciclo, quello che unisce nodi con grado = 1
33
33 © Alberto Montresor Algoritmi euristici
34
34 © Alberto Montresor Algoritmi euristici Algoritmi euristici basati su ricerca locale Si consideri ancora il commesso viaggiatore Sia π un circuito hamiltoniano del grafo completo non orientato K n Euristica di ricerca locale I 2 (π) = {π: π è ottenuto da π cancellando 2 archi non consecutivi del circuito e sostituendoli con 2 archi esterni al circuito} |I2(π)| = n ( n 1)/2 n
35
35 © Alberto Montresor Algoritmi euristici Alcune osservazioni Ad ogni passo di ricerca locale, il costo è O(n 2 ) Il numero complessivo di soluzioni esaminate dallalgoritmo può essere esponenziale Non vi è alcuna garanzia che la soluzione trovata sia ottima (ottimo locale) Generalizzando I k (π) = {π: π è ottenuto da π cancellando k archi non consecutivi del circuito e sostituendoli con k archi esterni al circuito} Soluzione ottima in I 2 (π) I 3 (π) … I n (π) Sperimentalmente, si è visto che I 2 (π) I 3 (π) è sufficiente per ottenere buone soluzioni
36
36 © Alberto Montresor Algoritmi euristici Ricerca tabù La ricerca locale passa attraverso una sequenza S 0, S 1,..., S m di soluzioni, fino ad arrestarsi su un ottimo locale S m. Un modo equivalente di descrivere tale procedimento corrisponde ad effettuare una mossa, tra un certo insieme di mosse possibili, in modo da selezionare S t+1 nellintorno di S t. Denotato con M = {μ 1,..., μ p } linsieme delle mosse possibili, lintorno I ( S t ) al passo t -esimo è definito come: I ( S t ) = { S : S è ottenibile da S t applicando una mossa μ i M } Proibizione fissa Alcune delle mosse non posso essere applicate per un certo periodo di tempo (i.e., un certo numero di mosse)
37
37 © Alberto Montresor Algoritmi euristici
38
38 © Alberto Montresor Algoritmi euristici
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.