Grafica ed interfacce per la comunicazione

Algoritmi e strutture di dati 2
Paola Vocca
Lezione 2: Tecniche golose (greedy)
Lezione2- Greedy
1
Algoritmi golosi
• Un algoritmo goloso basa le sue scelte sulla
configurazione attuale senza valutare le conseguenze
sulle configurazioni successive
• Il paradigma dell’algoritmo goloso non è facilmente
formalizzabile
• Il successo di tale tecnica dipende da proprietà
strutturali del problema
• Problemi già affrontati
o Cammino minimo
o Minimum spannning tree
Lezione2- Greedy
2
Progettazione di algoritmi greedy
• Tecniche di dimostrazione (progettazione)
o Greedy algorithms stays ahead: Ad ogni passo la scelta
effettuata dall’algoritmo risulta migliore rispetto alla
soluzione ottima (Interval scheduling)
o Proprietà strutturali: individuare un valore «strutturale» che
deve essere verificato dalla soluzione ottima. Dimostrare,
quindi che la soluzione greedy verifica tale valore. (Interval
Partition)
o Exachage algorithm: trasformazione di una qualsiasi
soluzione ottima nella soluzione trovata dall’algoritmo
senza alterare la misura della soluzione (Minimizing
Lateness scheduling)
Lezione2- Greedy
3
Caching Offline ottimale
• Probelma del Caching.
o Memoria cache con una
capacità finita di memorizzare
𝒌 elementi
o Sequenza di 𝒎 richieste di
oggetti 𝒅𝟏 , 𝒅𝟐 , … , 𝒅𝒎 .
o Cache hit: viene richiesto un
oggetto già presente nella
cache
o Cache miss: viene richiesto un
oggetto nbonpresente nella
cache. Deve essere portato nella
cache eliminando,
eventualmente se la cache è
piena, un altro elemento
presente.
• Ex: k = 2,
o Stato iniziale della cache = ab,
o Sequenza di richieste:
𝒂, 𝒃, 𝒄, 𝒃, 𝒄, 𝒂, 𝒂, 𝒃.
o Strategia ottima di
eliminazione: 2 cache misses
• Goal.
o Una strategia di eliminazione
che minimizza il numero di cache
misses.
Lezione2- Greedy
4
Optimal Offline Caching: Farthest-In-
Future
Lezione2- Greedy
5
Reduced Eviction Schedules
In a reduced schedule the number of insertions is equal to the number of misses
Lezione2- Greedy
6
Reduced Eviction Schedules
Lezione2- Greedy
7
Farthest-In-Future: Analysis
Lezione2- Greedy
8
Farthest-In-Future: Analysis
same
e
f
same
e
f
same
e
d
same
d
f
Lezione2- Greedy
9
Farthest-In-Future: Analysis
same
e
Lezione2- Greedy
same
f
10
Farthest-In-Future: Analysis
same
same
e
g
Lezione2- Greedy
same
same
f
g
11
Caching Perspective
Lezione2- Greedy
12