Algoritmi euristici - Università di Bologna
Transcript
Algoritmi euristici - Università di Bologna
29/04/200 5 Algoritmi euristici: IV – Analisi delle prestazioni Daniele Vigo D.E.I.S. - Università di Bologna [email protected] rev. 1.0 - dicembre 2003 Analisi sperimentale • Si analizza la performance di un euristico • qualità della soluzione ottenuta • tempo di calcolo • confrontandone il comportamento su istanze test • generate casualmente • proposte in letteratura o provenienti da applicazioni reali • con • altri algoritmi euristici (competitori) • algoritmi esatti • Approccio sempre praticabile ma non valido in generale D. Vigo Heur-IV..2 1 29/04/200 5 Analisi sperimentale (2) • Consideriamo un’istanza I di un problema di minimo • Codifica dell’algoritmo euristico A (valore sol.: zA(I)) • Codifica di un algoritmo esatto o di un lower bound (valore della soluzione: z*(I) o zL(I)) • In alternativa, conoscenza di z*(I), zL(I), o zA’(I) per alcune istanze specifiche dalla letteratura • Esame statistico di • scarto (max, medio…) zA(I)/z*(I), zA(I)/zA’(I), zA(I)/zL(I) • errore relativo (zA(I) – z*(I)) /z*(I) • tempo di calcolo … D. Vigo Heur-IV..3 Istanze test: Es. KP–01 • Si usano generatori di numeri casuali: RAND(a,b) • Istanza di KP–01: n, pj, wj, C 1) istanze scorrelate: • pj = RAND(1,α), wj = RAND(1, α) 2) istanze debolmente correlate (più difficili): • pj = RAND(1, α), wj = RAND(pj–K, pj+K) 3) istanze fortemente correlate : wj = pj+K • Si considerano diversi valori di n,α e C • Per ogni n, si generano molte (5–100) istanze e si considerano i risultati medi e peggiori D. Vigo Heur-IV..4 2 29/04/200 5 Istanze test: Es. TSP • • • Istanze singole dalla letteratura (TSPLIB) Istanza di TSP: n, cij Istanze casuali Euclidee: • • • si generano dei punti nel piano [0, α]×[0,α] cij = distanza euclidea tra i punti (reale, troncata, arrotondata…) Istanze casuali con “clusters” • I punti sono raggruppati attorno a centri di attrazione D. Vigo Heur-IV..5 Esempio (VRP) D. Vigo Heur-IV..6 3 29/04/200 5 Analisi comparativa • i diversi algoritmi si possono rappresentare in un piano 100 CW seq DesVer CW par 1-Petal AltGav % error 10 MolJam Sweep CMT TrB&B FisJai BraSL 1 WarHol CW seq CW par DesVer AltGav WarHol MolJam CMT Sweep FisJai BraSL TrB&B 1-Petal 2-Petal 0,1 0,1 1 10 100 1000 10000 time D. Vigo Heur-IV..7 Analisi del caso peggiore • Consideriamo un’istanza I di un problema di minimo • valore soluzione prodotta dall’algoritmo euristico A: zA(I) • valore della soluzione ottima: z*(I) • rA = Rapporto di prestazione nel caso peggiore di A (worst–case performance ratio o worst–case error): • massimo valore del rapporto zA(I)/z*(I), per ogni I • rA = supI {rA(I) = zA(I)/z*(I)} ≥ 1 • zA(I) ≤ rA z*(I) D. Vigo Heur-IV..8 4 29/04/200 5 Analisi del caso peggiore (2) • Consideriamo un’istanza I di un problema di massimo • rA = Rapporto di prestazione nel caso peggiore di A (worst–case performance ratio o worst–case error): • minimo valore del rapporto zA(I)/z*(I), per ogni I • rA = infI {rA(I) = zA(I)/z*(I)} ≤ 1 • zA(I) ≥ rA z*(I) • E’ un risultato molto forte e di validità generale • Spesso pessimistica rispetto ai risultati medi D. Vigo Heur-IV..9 Analisi del caso peggiore (3) • Determinazione di rA (problema di massimo): 1. si determina analiticamente un valore di tentativo rA tale che rA ≥ zA(I)/z*(I) per ogni I 2. si prova che rA è stretto (tight), ossia: 1. che non esiste rA’ < rA 2. (asintoticamente) che esiste una sequenza di istanze Ii di dimensione dipendente da un parametro i, tali che limi→∞ zA(Ii)/z*(Ii) = rA D. Vigo Heur-IV..10 5 29/04/200 5 Analisi di KP-01 • Algoritmo Greedy: arbitrariamente cattivo (rG=0) • istanza IM : n = 2, p = {2, M}, w={1, M}, C = M > 2 • z*(IM) = M, e zG(IM) = 2 quindi limM→∞ zG(IM)/z*(IM) = 0 • Algoritmo Greedy+: zG+(I) = max {zG(I), maxj=1…n {pj}} s −1 • sia s l’elemento critico, si ha: • ma: • quindi z (I ) ≤ z G + (I ) + z G + (I ) s −1 z G + (I ) ≥ ∑ pi i =1 e z * (I ) ≤ ps + ∑ pi z G + (I ) ≥ ps * i =1 G+ ossia r ≥ 1 / 2 D. Vigo Heur-IV..11 Analisi di KP-01 (2) • verifica tightness del rapporto trovato • si consideri l’istanza: • IM : n = 3, p = {2, M, M}, w={1, M, M}, C = 2M > 2 • z*(IM) = 2M • zG+(IM) = max {M+2, M} = M+2 • quindi limM→∞ zG+(IM)/z*(IM) = limM→∞ (M+2)/2M = 1/2 D. Vigo Heur-IV..12 6 29/04/200 5 Analisi di TSP • Caso generale (non Euclideo) • Th. (Sahni e Gonzalez, 1976): non esiste un algoritmo polinomiale H per TSP con rapporto r finito, a meno che P = NP (improbabile) Dim. si ottiene provando che H sarebbe in grado di verificare in tempo polinomiale l’esistenza o meno di un circuito Hamiltoniano su un grafo (problema NP–completo) D. Vigo Heur-IV..13 Analisi di TSP (2) • dato un grafo G=(V,A) in cui determinare HC • istanza I di TSP: ⎧ 1 se (i, j ) ∈ A cij = ⎨ ⎩r ⋅ n altrimenti • se G ha HC: z*(I) = n, da cui applicando H si otterrebbe zH(I) ≤ r z*(I) = r n • se G non ha HC: zH(I) ≥ r n + n –1, da cui • se zH(I) ≤ r n ÎG ha HC, altrimenti G non ha HC • impossibile se P ≠ NP !!! D. Vigo Heur-IV..14 7
Documenti analoghi
Algoritmi euristici - Università di Bologna
• Fortemente dipendente dal problema
• Non esistono regole generali
Algoritmi euristici classici
D.E.I.S. - Università di Bologna
[email protected]
rev. 1.0 - febbraio 2003