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