Algoritmi e strutture di dati 2

Transcript

Algoritmi e strutture di dati 2
03/12/2013
Algoritmi e strutture di dati 2
Paola Vocca
Lezione 7: Algoritmi on-line e analisi competitiva
Algoritmo on-line
Algoritmi on-line: le richieste vengono eseguite
basandosi solo sulla conoscenza delle richieste
passate.
Algoritmi off-line: operano sulla base della
conoscenza preventiva dell’intera sequenza di
richieste.
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
2
1
03/12/2013
Algoritmo on-line
= { , … , } sequenza di richieste.
( ) funzione di costo di un algoritmo on-line
( ) costo del miglior algoritmo off-line (miglior
algoritmo che opera conoscendo tutta la
sequenza = { , … , })
è -competitivo se esiste una costante > tale
che, per ogni sequenza si ha
≤
Algoritmi e strutture di dati 2
×
+
Lezione 7- Algoritmi on-line e analisi competitiva
3
Esempio: Affitto sci
• Uno sciatore si reca ogni giorno (per un numero di giorni
che non conosce) sulle piste da sci. Non possedendo
sci, per utilizzarli può scegliere una delle seguenti
opzioni:
1. Affittare gli sci per la giornata, ad un costo di ;
2. Comprare gli sci, ad un costo ≫ .
• Se il numero dei giorni fosse noto a priori il problema
sarebbe di facile soluzione:
= min{ , }
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
4
2
03/12/2013
Ski-rental: Strategia on-line
•
Un algoritmo on-line
noleggia gli sci per un certo numero di
giorni . Li compra al giorno +
=!
•
•
,
se
se ≤
+ ,
se
se >
Th: Trovare i tale che il rapporto di competitività è minimo
Proof: < : caso peggiore = +
= = +
= +
o
o
≥
•
o
o
=
=
= +
CVD
Algoritmi e strutture di dati 2
=
%
+
+
%
$
minimizzato da & = ' −
= )−
= +
: caso peggiore
=
$
$
=
$
=
+
minimizzato da & = '
=)
Lezione 7- Algoritmi on-line e analisi competitiva
5
Compravendita di azioni: problema
• Problema
• un'azione il cui prezzo varia tra due valori *e +, con
< * < +, noti a priori.
• Ogni giorno , con = , ), … è noto il valore , ∈ *, +
• Dobbiamo decidere se vendere l'azione e realizzare un
profitto oppure mantenere il possesso dell'azione.
• Qual è la strategia migliore (quella che massimizza il
profitto?)
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
6
3
03/12/2013
Compravendita di azioni: strategia
•
•
•
•
•
•
•
•
•
si stabilisca a priori un valore . ∈ [*, +], si venda l'azione il primo giorno in
cui , ≥ ., altrimenti si mantenga l'azione.
Come scegliere il valore . in modo da massimizzare il nostro profitto?
Sia .* 1 il valore massimo assunto da , durante tutto il periodo in
considerazione(non noto a priori).
Caso 1: . ≤ .* 1 .
In tal caso, ci sarà un giorno in cui , ≥ ., e pertanto realizzeremo un
profitto ..
.
.
Potrebbe essere .* 1 = + .2.3 = +
=
+
.
Caso 2: . > .* 1 .
Non vendiamo mai . = , ≥ * (nel caso peggiore) .2.3 = .* 1 .
.
.
=
*
.* 1
.
.
≥
*
.
Il miglior algoritmo on-line sceglierà . il in modo tale che vi sia
bilanciamento tra le due possibili situazioni
* .
=
. +
Algoritmi e strutture di dati 2
. = *+
Lezione 7- Algoritmi on-line e analisi competitiva
7
Liste ad auto-organizzazione
Ricerca di una chiave in una lista mediante scansione
sequenziale
La lista non è mantenuta ordinate in base alle chiavi di
ricerca: si vogliono sfruttare proprietà ulteriori (localita di
accessi) (per svariati motivi, es. lista di chiamate in un
cellulare)
Operazioni di modica della struttura della lista eseguite
in corrispondenza alle scansioni sequenziali
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
8
4
03/12/2013
Liste ad auto-organizzazione
•
Principio di localita temporale: se si accede a un elemento in un dato
istante, è molto probabile che si accederà allo stesso elemento in istanti
immediatamente (o quasi) successivi.
•
Sembra naturale poter riorganizzare proficuamente gli elementi della
lista dopo aver eseguito la loro scansione
•
Struttura di dati ad auto-organizzazione
•
Una possibile riorganizzazione consiste nel tenere nelle prime posizioni gli
elementi cui si è acceduto di recente (le liste delle ultime chiamate del
telefono)
.
Move-to-front (MTF): la più diffusa ed efficace strategia di autoorganizzazione.
•
•
•
L'elemento acceduto viene spostato alla prima posizione della lista MTF
effettua ogni ricerca senza conoscere le ricerche che dovrà effettuare in
seguito: algoritmo in linea (on-line)
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
9
Move-to-front: algoritmo on-line
Hp: costo i per accedere all’elemento in posizione i
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
10
5
03/12/2013
Analisi competitiva
Non è significativo analizzare l’algoritmo on-line MTF
al caso pessimo
Più utile confrontarlo con un ipotetico algoritmo
ottimo off-line OPT:
–
–
–
–
conosce in anticipo le ricerche che verranno effettuate
usando tale conoscenza degli accessi futuri permuta gli
elementi della lista prima di eseguire le ricerche
non esiste permutazione che abbia un costo inferiore a
quello di OPT
durante le ricerche non cambia tale ordine (è off-line,
altrimenti è troppo potente se diventa on-line, come
dimostrato in letteratura)
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
11
Analisi di MFT
Regole di azione di OPT
• Inizialmente, esamina tutte le richieste: permuta gli
elementi della lista in modo da minimizzare il costo futuro
• Successivamente, per ogni richiesta, accede agli
elementi scandendo la lista, senza modificarla
• Assumiamo che OPT e MTF partano con gli elementi
nella lista ordinati allo stesso modo, e che gli elementi
della lista non cambino.
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
12
6
03/12/2013
Costi di MTF e OPT
Ipotesi:
•
•
•
Sequenza arbitraria di n operazioni di ricerca su una lista di m elementi
Operazioni enumerate da a
− in base al loro ordine di esecuzione.
Costo 5 per accedere l’elemento in posizione 5 (dove
≤5≤*− )
Definiamo:
•
•
5 posizione dell’elemento acceduto da MFT alla 5-esima operazione 5
(dove ≤ 5 ≤ * − e quindi il costo di tale operazione per MFT
′5 posizione dell’elemento acceduto da OPTalla 5-esima operazione 5
(dove ≤ 5 ≤ * − e quindi il costo di tale operazione per OPT
I costi dei due algoritmi sono quindi
%
2732(+ 8) = 9
2732
Algoritmi e strutture di dati 2
%
=9
5:
5
5:
;
5
Lezione 7- Algoritmi on-line e analisi competitiva
13
Costi di MTF e OPT
•
Vogliamo dimostrare che
2732(+ 8) ≤ ) × 2732(
)
o Se MTF e OPT operano su liste di partenza uguali,
2732 + 8 ≤ ) × 2732
+ < *)
o Se partono da due liste arbitrarie su due sequenze arbitrarie.
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
14
7
03/12/2013
Nozione di inversione
Fissiamo la ricerca5di una certa chiave
inversione: coppia di elementi 1 e =tale che
1precede =in una lista mentre =precede 1nell’altra
Esempio: 1 = > , = = >) mentre 1 = > , = = >? non lo è
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
15
Funzione potenziale Φ
Definiamo
o @5= numero di inversioni dopo la ricerca 5
Osservazione:
o ≤ @ ≤ *(* − )/)(una l’inverso dell’altra)
o Relazione tra 5 e ′5 non immediata, per cui vogliamo
mostrare:
5
+ @5 − @5% ≤ ) ′5
Per cui ponendo @% = ∑5:%
Algoritmi e strutture di dati 2
5
≤ ) ∑5:%
′5 − @
%
≤ ) ∑5:%
Lezione 7- Algoritmi on-line e analisi competitiva
′5
16
8
03/12/2013
Dimostrazione di cj + Φj - Φj-1 <= 2 c’j
• Sia l'elemento acceduto in seguito alla 5-esima operazione.
Lista di MTF:
• 5= o vale per sostituzione in quanto @% =
inizialmente le due liste sono uguali.)
•
5> o Se
5
e@ =
=
;
visto che
= , MTF lascia la lista invariata, quindi @5 = @5%
o Altrimenti, sia ′ un elemento che precede nella lista di MTF . Dopo
l'operazione, { , ′}è un'inversione se e solo se non lo era prima.
o Sia C ≤ 5 il numero di elementi (incluso ) corrispondenti a inversioni
(rispetto a ) e sia D = 5 − C gli elementi che non danno inversioni
o Dopo l'operazione, il numero di inversioni diventa @5 = @5% − C + E
o Quindi,
5
+ @5−@5% = − C + E = (C + E) − C + E = )E
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
17
Dimostrazione di cj + Φj - Φj-1 <= 2 c’j
• Lista di OPT:
o Nella lista di MTF ci sono Eelementi che precedono senza
inversioni
o Quindi, nella lista di OPT ci sono almeno Eelementi che
precedono : ;5 ≥ E
o Quindi,
5
+ @5−@5% = )E ≤ )
Algoritmi e strutture di dati 2
;
5
Lezione 7- Algoritmi on-line e analisi competitiva
18
9
03/12/2013
MTF: Osservazioni
•
•
•
Nel caso in cui le liste inizialmente non sono uguali si ha:
@2 = < ) in quanto nel caso peggiore le due liste sono
invertite l’una rispetto all’altra, con *(* − )/) inversioni. Si
ha quindi
2732(+ 8) ≤ ) × 2732(
) + <(*))
La strategia MTF è la strategia vincente per organizzare le
informazioni in base alla frequenza di accesso.
algoritmi diversi, simili a MTF, non ottengono un rapporto di
competitività costante.
o TRANS (transpose): che scambia l'elemento acceduto con
quello precedente, spostandolo di una posizione verso l'inizio
della lista, se non è già il primo elemento della lista stessa
o FC (frequency count): che associa ad ogni elemento un
contatore con il numero di volte in cui è stato acceduto, e
mantiene la lista ordinata per valori non crescenti di tale
contatore
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
19
TRANS
• Nel caso di TRANS, una sequenza che accede sempre
all'ultimo elemento della lista avrebbe l'effetto di
scambiare continuamente i due ultimi elementi tra loro.
o F( G HI) = *
o OPT potrebbe portare inizialmente i due elementi in cima alla
lista e poi accedere ad essi, scambiandoli iterativamente ossia
J KLM = 2O + 2P
2732( G HI)
2732(
)
o che tende a
Algoritmi e strutture di dati 2
)
al crescere di *.
=
*
)(*$ )
Lezione 7- Algoritmi on-line e analisi competitiva
20
10
03/12/2013
FC
•
•
•
Consideriamo una sequenza che, per un valore ≥ ) , è composta
da accessi al primo elemento, seguiti da − accessi al secondo
elemento, e così via, fino a + − accessi all'ultimo elemento
la lista non è mai modificata da FC.
Il costo totale di FC:
F2732 8F =
≥
+)
−
−
+ )+ ⋯.+
in quanto, ( − ) ≥
•
+Q
− ) + ⋯+
=
−
+
−
( − )/) ≥
S
)
)
OPT sposta ognuno degli n elementi in cima alla lista la prima volta in
cui accede ad esso, con costo al più , e accede poi ad esso in
tempo costante per tutte le al più k ricerche successive.
Q
F2732 8F ≤ ) +
≤
+
=
)
)
2732(8F)
2732(
)
Algoritmi e strutture di dati 2
≤
T
= U( )
Lezione 7- Algoritmi on-line e analisi competitiva
21
Problema del Paging
Problema:
o memoria RAM contenente pagine , … . ,
o memoria cache che può contenere ad ogni istante pagine ( ≪ )
o sequenza di richieste = ) , … , * dove ogni , per =
, … , *, è una richiesta per una pagina W ∈ , … . ,
o costo 2732( ( ))per soddisfare la richiesta
:
2732
•
•
=Y
se
sela
lapagina
paginarichiesta
richiesta ∉ già
giàalla
allacache
cache
se
sela
lapagina
paginarichiesta
richiesta ∈ già
giàalla
allacache
Il problema è progettare un algoritmo che decida, ad ogni page-fault,
quale pagina espellere dalla memoria cache per minimizzare il numero
totale di page-fault della sequenza delle pagine richieste.
Ossia, per ogni possibile sequenza di richieste, minimizzare
2732
Algoritmi e strutture di dati 2
*
= 9 2732
:
Lezione 7- Algoritmi on-line e analisi competitiva
22
11
03/12/2013
Algoritmi per il paging
• LRU (Least Recently Used): ad ogni page-fault espelli
dalla cache la pagina la cui ultima richiesta è più
vecchia;
• FIFO (First In First Out): ad ogni page-fault espelli la
pagina che è stata posta, nella memoria cache, per
prima tra le che adesso vi risiedono;
• LIFO (Last In First Out): ad ogni page-fault espelli dalla
cache la pagina che vi è stata posta per ultima tra le
che adesso vi risiedono.
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
23
Algoritmo LRU
Teorema: L'algoritmo LRU è -competitivo, ovvero vale, per
ogni possibile sequenza di richieste .
dGe
≤
×
+
Osservazioni:
• Anche l’algoritmo FIFO è -competitivo.
• LIFO NON è -competitivo, per qualsiasi valore .
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
24
12
03/12/2013
Dimostrazione LRU
• Sia = ) , … , * la sequenza di richieste di input.
• Una fase è una sottosequenza di richieste consecutive su
cio l’algoritmo LRU ha esattamente page-fault.
• Partizioniamo la sequenza di richieste in fasi
8 ,8 ,…,8 7
• Ogni fase ha esattamente page-fault, eccetto al più
8 , (si parte dalla fine delle sequenza)
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
25
Dimostrazione LRU
Lemma (1): L’algoritmo ottimo off-line , in ogni fase
8 , ≤ ≤ 7 ha almeno un page-fault.
Se dimostriamo il lemma si ha:
dGe
•
= numero
numerodi
dipagepage-fault
faultdi
diLRU
LRUsu
sun ≤
= × 7 +
Se vale il lemma si ha:
• Segue il teorema.
Algoritmi e strutture di dati 2
≥
× numero
numerodi
difasi
× 7 +
Lezione 7- Algoritmi on-line e analisi competitiva
26
13
03/12/2013
LRU: Dimostrazione teorema
• Sia Opt sia LRU hanno lo stesso contenuto di cache.
o Il primo page fault di LRU in 8
OPT.
è anche un page fault per
• Dimostriamo che per ogni ≤ ≤ 7, qualunque
algoritmo ha almeno una page fault in 8 .
o 8 corrisponderà alle richieste 3
3 +
o ultima pagina richiesta nella fase 8 −
o risiede nella cache all’inizio di 8
,…,
3$ −
Lemma (2): 8 contiene almeno richieste a pagine
distinte e diverse da .
Qualunque algoritmo avrà
necessariamente un page fault in 8
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
27
Dimostrazione Lemma (2)
• Nella fase 8 ,l'algoritmo LRU ha page-fault.
• Sono state fatte richieste a pagini non presenti in
cache. Può succedere:
1. Le pagine sono tutte distinte tra loro e tutte diverse da
il lemma segue facilmente
2. Le pagine sono tutte diverse da ma non sono tutte
distinte tra loro.
•
LRU ha almeno due fault su una stessa pagina o
3. Le pagine sono tutte distinte tra loro ma non tutte
diverse da .
•
LRU non fallisce mai due volte sulla stessa pagina, ma tra i suoi
page fault è inclusa una richiesta alla pagina .
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
28
14
03/12/2013
Dimostrazione Lemma (2)
Le pagine sono tutte diverse da ma non sono tutte distinte tra
loro.
• Dim:
o Tra la prima richiesta di o (primo fault e quindi la prima volta
che o viene portata in memoria) e la seconda tutte le
pagine in cache sono state rimosse.
•
•
•
•
•
•
La pagina o era diventata la pagina acceduta più lontanamente.
Dopo aver portato o vi sono state − richieste a pagine distinte da o.
oè stata espulsa e poi è stata richiamata.
Totale di almeno 1 + − + = + richieste a pagine distinte .
Una al più può essere per .
ve ne sono sicuramente almeno distinte tra di loro e distinte dalla
pagina .
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
29
Ottimalità di LRU e FIFO
Teorema: Non esistono algoritmi per il problema del paging che
siano ′-competitivi, per un qualsiasi ; < .
Dim: algoritmo off-line
• LFD: ad ogni page-fault espelli la pagina la cui prossima richiesta
è più lontana nel futuro.
• È possibile dimostrare che questo è il miglior algoritmo off-line
• Dimostriamo che per ogni sequenza di richieste a pagine
nell'insieme
, . . , , $ vale che:
d8q
o
o
o
o
o
≤
Ogni richiesta ( ) si riferisce o ad una pagina già nella memoria cache o all'unica
pagina correntemente al di fuori della memoria cache.
Supponiamo che alla richiesta ( ), l'algoritmo LFD espella .
L'algoritmo LFD espelle sempre la pagina che verrà richiesta più in la nel futuro, tra tutte
le pagine attualmente risiedenti nella memoria cache.
Se viene espulsa da LFD in conseguenza della richiesta ( ), implica che vi saranno
almeno − successive richieste alle altre pagine diverse da . che per ipotesi stanno
già in memoria, e quindi non creano alcun page fault
ogni richieste consecutive della sequenza possiamo avere al più un page fault
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
30
15
03/12/2013
Ottimalità di LRU e FIFO
• Consideriamo un arbitrario algoritmo on-line ALG
• Sequenza di richieste = ) ,…,
• Supponiamo che
o alla richiesta
per la pagina $ , l'algoritmo ALG
elimini la pagina .
o Alla richiesta
+ corrisponda la pagina (appena
eliminata) page fault
o Espulsione della pagina 5
o Alla richiesta
+ ) corrisponda la pagina 5 (appena
eliminata) page fault
o …
o Su questa sequenza si ha:
= −
dr
Algoritmi e strutture di dati 2
Lezione 7- Algoritmi on-line e analisi competitiva
31
Ottimalità di LRU e FIFO
• Per assurdo:
dr
≤ ′×
+
• Per qualche ; < ,per qualche costante
algoritmo sequenza = ) ,…,
.
• Per la sequenza appena definita si ha
d8q
=
≤
d8q
e per ogni
• Ossia:
−
=
dr
≤
;
×
=
+
≤
• Assurdo per n sufficientemente grande e
Algoritmi e strutture di dati 2
;
×
;
Lezione 7- Algoritmi on-line e analisi competitiva
+
<
32
16