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