1 © alberto montresor algoritmi e strutture dati capitolo 19 - tecniche risolutive per problemi...
TRANSCRIPT
![Page 1: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/1.jpg)
1© Alberto Montresor
Algoritmi e Strutture DatiCapitolo 19 - Tecniche risolutive per problemi
intrattabili
Alberto MontresorUniversità 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.
![Page 2: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/2.jpg)
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
![Page 3: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/3.jpg)
3© Alberto Montresor
Algoritmi psuedo-polinomiali
✦Somma di sottoinsieme (Subset sum)
✦Dati un insieme A={a1,...,an} di interi positivi ed un intero positivo k, esiste un sottoinsieme S di indici in {1, . . . , n} tale che ∑i∈S ai = k?
✦Risoluzione basata su programmazione dinamica
✦Vettore booleano M[0 ... k+1]
![Page 4: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/4.jpg)
4© Alberto Montresor
Algoritmi pseudo-polinomiali
✦Esempio
✦Complessità
✦O(nk) che non è polinomiale nella dimensione del problema
✦Assumiamo ai ≤ k (altrimenti potrebbe essere banalmente eliminato)
✦Dimensione dei dati: O(n log k)
✦Se k è polinomiale in n - O(nc) - allora complessità è polinomiale - O(nc+1)
✦Se k è esponenziale, allora la complessità è esponenziale - O(n2n)
![Page 5: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/5.jpg)
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)
![Page 6: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/6.jpg)
6© Alberto Montresor
Algoritmi pseudo-polinomiali
✦Real-time-scheduling
✦Dato un insieme {p1, . . . , pn} di processi periodici, dove ciascun pi ha tempo di computazione Ci e periodo Ti (interi con 0 < Ci ≤ Ti), è 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 nell’intervallo [0,3], una nell’intervallo [3,6], una nell’intervallo [6,9], e così via.
![Page 7: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/7.jpg)
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)
![Page 8: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/8.jpg)
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,a1,...,an}, # = max{n,k,maxi{ai}}, d = O(n log #)
✦Commesso viaggiatore: I ={n,k,[dij]}, # = max{n,k,maxij{dij}}, d = O(n2 log#)
✦Cricca: I ={n,m,k,G=(V,E)}, #=max{n,m,k}, d=O(n+m+log#)
8
![Page 9: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/9.jpg)
9© Alberto Montresor
Problemi fortemente NP-completi
✦Definizione
✦Sia Pp il problema P ristretto ai d’ingresso 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 dij {1,2}, 1 ≤ ∈ i,j ≤ n, e k = n; in tal caso, # = n, ovviamente limitato superiormente da un polinomio in d = O(n2 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)).
![Page 10: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/10.jpg)
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
![Page 11: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/11.jpg)
11
© Alberto Montresor
Algoritmi pseudo-polinomiali
✦Definizione
✦Un algoritmo che risolve un certo problema P, per qualsiasi dato I d’ingresso, 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
![Page 12: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/12.jpg)
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 l’ottimo, potremmoaccontarci di una soluzione che non disti troppo dall’ottimo
✦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.
![Page 13: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/13.jpg)
13
© Alberto Montresor
Algoritmi di approssimazione
✦Bin-packing
✦Dato un insieme A = {a1, . . . , an} 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 ai ≤ k per ogni insieme S della partizione.
![Page 14: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/14.jpg)
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 talenumero è minore di
✦Infatti, non possono esistere due scatolette riempite per meno di metà
✦Quindi, N < 2N*
✦Alcune note:
✦E’ possibile dimostrare che N < 17/10N*+2
✦Si può dimostrare che con first-fit decreasing (considerando i valori in ordine decrescente) si ha N < 11/9N*+4
![Page 15: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/15.jpg)
15
© Alberto Montresor
Algoritmi di approssimazione
✦Commesso Viaggiatore con Disuguaglianze Triangolari (∆tsp ).
✦Date n città e le distanze dij tra esse, tali che dij ≤ dik + dkj 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
![Page 16: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/16.jpg)
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 Kn 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
![Page 17: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/17.jpg)
17
© Alberto Montresor
Algoritmi di approssimazione
![Page 18: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/18.jpg)
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.
![Page 19: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/19.jpg)
19
© Alberto Montresor
Algoritmi di approssimazione
✦Algoritmi di ε-approssimazione
✦In taluni casi, è possibile progettare algoritmi che producono soluzioni approssimate il cui scarto dall’ottimo 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
![Page 20: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/20.jpg)
20
© Alberto Montresor
Algoritmi di approssimazione
✦Somma di sottoinsieme (versione di ottimizzazione)
✦Dati un insieme A={a1,...,an} di interi positivi ed un intero positivo k, trovare un sottoinsieme S di indici in {1, . . . , n} tale che ∑i∈S ai ≤ k e ∑i∈S ai sia massima?
✦Sia
✦ε = (1/h+1) con h>0
✦Oppure h = (1-ε)/ε
✦Algoritmo
✦Si generano tutti i sottoinsiemidi dimensione al più h
✦Si cerca fra questi quello divalore massimo
![Page 21: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/21.jpg)
21
© Alberto Montresor
Algoritmi di approssimazione
✦Alcuni ragionamenti su complessità
✦Vi sono n(n-1)(n-2)... (n-m+1)/m! ≤ nm sottoinsiemi {1,...,n} di dimensione m
✦Il ciclo (1) è ripetuto volte
✦Il ciclo (2) è ripetuto n volte
✦Costo computazionale: O(hnh+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∗)| ≤ ε
![Page 22: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/22.jpg)
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ì?
![Page 23: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/23.jpg)
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/ε
![Page 24: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/24.jpg)
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
![Page 25: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/25.jpg)
25
© Alberto Montresor
Branch-&-bound
S[i-1]
S[i] S[i]
S[n]
minCost
lb(S,i)>minCost
![Page 26: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/26.jpg)
26
© Alberto Montresor
Branch-&-bound
![Page 27: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/27.jpg)
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(mnf(n))
✦In realtà dipende da
✦soluzione iniziale
✦branch
✦bound
✦ordine di visita
✦scarto dall’ottimo
![Page 28: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/28.jpg)
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
![Page 29: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/29.jpg)
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.⌈ ⌉
![Page 30: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/30.jpg)
30
© Alberto Montresor
Branch-&-bound
![Page 31: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/31.jpg)
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 V0 ed V1 di n/2 nodi ciascuno tale che il numero di archi con un estremo in V0 e l’altro estremo in V1 sia minimo
✦Euristica min-max-greedy per bisection
✦Scegli casualmente due nodi n0 ∈ V0 e n1 ∈ V1
✦Aggiungi alternatamente nodi a V0 e V1
✦Aggiungendo a V0
✦Scegli il vertice con il minor numero di archiverso V1
✦In caso di più vertici con numero minimo di archi, scegli fra questi il vertice con il maggior numero di archi verso V
V0 V1
minmax
![Page 32: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/32.jpg)
32
© Alberto Montresor
Algoritmi euristici
✦L’ultima 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 l’arco alla soluzione
✦aggiungi l’arco che chiude il ciclo, quello che unisce nodi con grado = 1
![Page 33: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/33.jpg)
33
© Alberto Montresor
Algoritmi euristici
![Page 34: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/34.jpg)
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 Kn
✦Euristica di ricerca locale✦I2(π) = {π′: π′ è ottenuto da π cancellando 2 archi non consecutivi del circuito e sostituendoli con 2 archi esterni al circuito}✦|I2(π)| = n(n − 1)/2 − n
![Page 35: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/35.jpg)
35
© Alberto Montresor
Algoritmi euristici
✦Alcune osservazioni
✦Ad ogni passo di ricerca locale, il costo è O(n2)
✦Il numero complessivo di soluzioni esaminate dall’algoritmo può essere esponenziale
✦Non vi è alcuna garanzia che la soluzione trovata sia ottima (ottimo locale)
✦Generalizzando
✦Ik(π) = {π′: π′ è ottenuto da π cancellando k archi non consecutivi del circuito e sostituendoli con k archi esterni al circuito}
✦Soluzione ottima in I2(π) ∪ I3(π) … ∪ ∪ In(π)
✦Sperimentalmente, si è visto che I2(π) ∪ I3(π) è sufficiente per ottenere “buone” soluzioni
![Page 36: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/36.jpg)
36
© Alberto Montresor
Algoritmi euristici
✦Ricerca tabù
✦La ricerca locale passa attraverso una sequenza S0, S1, ..., Sm di soluzioni, fino ad arrestarsi su un ottimo locale Sm.
✦Un modo equivalente di descrivere tale procedimento corrisponde ad effettuare una “mossa”, tra un certo insieme di mosse possibili, in modo da selezionare St+1 nell’intorno di St . Denotato con M = {μ1 , . . . , μp } l’insieme delle mosse possibili, l’intorno I(St) al passo t-esimo è definito come:
✦I(St) = {S : S è ottenibile da St 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)
![Page 37: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/37.jpg)
37
© Alberto Montresor
Algoritmi euristici
![Page 38: 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 19 - Tecniche risolutive per problemi intrattabili Alberto Montresor Università di Trento This](https://reader035.vdocuments.net/reader035/viewer/2022070312/5542eb4a497959361e8b63df/html5/thumbnails/38.jpg)
38
© Alberto Montresor
Algoritmi euristici