La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 17 - Algoritmi probabilistici Alberto Montresor Università di Trento This work is licensed under.

Presentazioni simili


Presentazione sul tema: "1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 17 - Algoritmi probabilistici Alberto Montresor Università di Trento This work is licensed under."— Transcript della presentazione:

1 1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 17 - Algoritmi probabilistici Alberto Montresor Università di Trento This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy of this license, visit or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.

2 2 © Alberto Montresor Introduzione Audentes furtuna iuvat - Virgilio Se non sapete quale strada prendere, fate una scelta casuale Abbiamo già incontrato il concetto di casualità Analisi del caso medio - si calcola una media su tutti i possibili dati di ingresso, dopo aver individuato una distribuzione di probabilità per essi Esempio: caso medio Quicksort, si assume che tutte le permutazioni siano equiprobabili Negli algoritmi probabilistici Il calcolo delle probabilità è applicato non ai dati di input, ma ai dati di output Due possibilità Algoritmi corretti, il cui tempo di funzionamento è probabilistico Algoritmo la cui correttezza è probabilistica

3 3 © Alberto Montresor Esempio - espressione polinomiale nulla Definizione: data unespressione algebrica polinomiale p(x 1,..., x n ) in n variabili, determinare se p è identicamente nulla oppure no Discussione Assumiamo che non sia in forma di monomi - altrimenti è banale Gli algoritmi basati su semplificazioni sono molto complessi Algoritmo Si genera una n -pla di valori v 1,..., v n Si calcola x= p(v 1,..., v n ) Se x 0, p non è identicamente nullo Se x = 0, p potrebbe essere identicamente nullo Se v i = random (1, 2 d ), dove d è il grado massimo del polinomio, allora la probabilità di errore non supera 1/2. Si ripete k volte, riducendo la probabilità di errore a (1/2) k

4 4 © Alberto Montresor Statistica Algoritmi statistici su vettori: Estraggono da un vettore numerico alcune caratteristiche statisticamente rilevanti Esempi Media : μ = (A[1] + A[2] A[n])/n Varianza (sample variance): Moda : il valore più frequente (o i valori) Mediano : il valore che occuperebbe la posizione n /2 se l'array fosse ordinato Selezione: Dato un array A[1..n] di valori distinti e un valore 1 k n, trovare l'elemento che è maggiore di esattamente k -1 elementi

5 5 © Alberto Montresor Selezione: casi particolari Ricerca del minimo, massimo T(n) = n-1 = θ(n) confronti Possiamo dimostrare che questo algoritmo è ottimale? Idea: scelta del minimo come un torneo Tutti gli elementi (tranne il vincitore) deve perdere almeno un partita Quindi il problema è Ω(n)

6 6 © Alberto Montresor Selezione: casi particolari Ricerca del secondo minimo Trovare il secondo elemento più piccolo dell'array Domanda: Analisi del caso peggiore e medio

7 7 © Alberto Montresor Selezione: casi particolari Ricerca del secondo minimo L' albero del torneo permette di trovare il secondo minimo in O(n + log n) confronti nel caso pessimo Dimostrazione n passi necessari per la ricerca del minimo Siano M e S il minimo e il secondo minimo Sicuramente c'è stato un incontro fra M e S, dove M ha vinto Se così non fosse, esisterebbe un valore X

8 8 © Alberto Montresor Selezione per piccoli valori di k Intuizione L'albero del torneo può essere simulato da uno heap L'algoritmo può essere generalizzato a valori generici di k > 2 Complessità computazionale: O(n + k log n) Se k = O(n/log n), il costo è O(n) Non va ancora bene per k = n/2 Codice heapselect (Item[] A, integer n, integer k ) buildHeap ( A ) for i := 1 to k -1 do deleteMin ( A, n ) return min ( A )

9 9 © Alberto Montresor Selezione Idea Approccio divide-et-impera simile al Quicksort Ma essendo un problema di ricerca, non è necessario cercare in entrambe le partizioni, basta cercare in una sola di esse 1n primo ultimo j q

10 10 © Alberto Montresor Complessità Caso pessimo: O(n 2 ) Caso ottimo: O(n) Caso medio Assumiamo che perno () restituisca con la stessa probabilità una qualsiasi posizione j del vettore A

11 11 © Alberto Montresor Dimostrazione Per sostituzione

12 12 © Alberto Montresor Versione probabilistica Siamo partiti dallassunzione j assume equiprobabilisticamente tutti i valori compresi fra 1 e n E se non è vero? Lo forziamo noi A [ random ( primo, ultimo )] A [ primo ] Questo accorgimento vale anche per QuickSort

13 13 © Alberto Montresor Selezione in tempo pessimo lineare Algoritmo deterministico Deterministico: non necessita di randomizzazione Algoritmo complesso, con fattori coinvolti molto alti Interessante dal punto di vista della tecnica Sviluppiamo l'idea Supponiamo di avere un algoritmo black box che mi ritorni il mediano di n valori in tempo O(n) Domanda Potrei utilizzarlo per ottimizzare il problema della selezione? Che complessità otterrei?

14 14 © Alberto Montresor Selezione in tempo pessimo lineare Se conoscessi tale algoritmo il problema della selezione sarebbe quindi risolto... ma dove lo trovo un simile algoritmo? Rilassiamo le nostre pretese Supponiamo di avere un algoritmo black box che mi ritorni un valore che dista al più n/4 dal mediano (nell'ordinamento) Domanda Potrei utilizzarlo per ottimizzare il problema della selezione? Che complessità otterrei? Un algoritmo del genere esiste!

15 15 © Alberto Montresor Selezione deterministica - cenni L'idea dell'algoritmo Suddividi i valori in gruppi di 5. Chiameremo l' i -esimo gruppo S i, con i [1, n /5 ] Trova il mediano m i di ogni gruppo S i Tramite una chiamata ricorsiva, trova il mediano M dei mediani m i Usa M come pivot e richiama l'algoritmo ricorsivamente sull'array opportuno, come nella selezione () randomizzata Caso base Possiamo utilizzare un algoritmo d'ordinamento per trovare il mediano quando la dimensione scende sotto una certa soglia

16 16 © Alberto Montresor Selezione deterministica - cenni select (Item[] A, integer primo, integer ultimo, integer k) if (ultimo-primo+1) 10 then ordina A[primo...ultimo] ; return k-esimo elemento di A[primo...ultimo] { partiziona A in n/5 sottoinsiemi S i di 5 elementi } for i 1 to n/5 do m i median5 (S i ) M select ( {m i : i=1.. n/5 }, 1, n/5, n/5 /2) j perno (A, primo, ultimo, M) q j-p+1// Indice di M in [primo..ultimo] if q = k then return M else if q < k then return select (A, primo, q-1, k) else return select (A, q+1, ultimo, k-q)

17 17 © Alberto Montresor Seleziona deterministica - cenni Lemma 1 Il calcolo dei mediani m i richiede al più 6 n /5 confronti. Lemma 2 La prima chiamata ricorsiva dell'algoritmo select () viene effettuata su circa n /5 elementi ( n /5 ) Lemma 3 La seconda chiamata ricorsiva dell'algoritmo select () viene effettuata su al massimo 7 n /10 elementi ( n - 3 n /5 /2 ) Teorema L'algoritmo select () esegue nel caso pessimo O ( n ) confronti Equazione di ricorrenza: T(n) T(n /5 ) + T( 7 n /10 ) + 11/5n E' possibile dimostrare che T(n) = O(n)

18 18 © Alberto Montresor Lemma 1

19 19 © Alberto Montresor Alcune note storiche Il problema della selezione nella storia... Nel 1883 Lewis Carroll (!) notò che il secondo premio nei tornei di tennis non veniva assegnato in maniera equa. Nel 1932, Schreier dimostrò che sono necessari n + log n - 2 incontri sono sempre sufficienti per trovare il secondo posto Nel 1973, a opera di Blum, Floyd, Pratt, Rivest e Tarjan, appare il primo algoritmo deterministico

20 20 © Alberto Montresor 20 Bucket sort Ipotesi sull'input I valori da ordinare sono numeri reali uniformemente distribuiti nell'intervallo [0, 1)Qualunque insieme di valori distribuiti uniformemente può essere normalizzato nell'intervallo [0, 1) Idea Dividere l'intervallo in n sottointervalli di dimensione 1/ n, detti bucket, e poi distribuire gli n numeri nei bucketPer l'ipotesi di uniformità, il numero atteso di valori nei bucket è 1I singoli bucket possono essere ordinati con Insertion Sort


Scaricare ppt "1 © Alberto Montresor Algoritmi e Strutture Dati Capitolo 17 - Algoritmi probabilistici Alberto Montresor Università di Trento This work is licensed under."

Presentazioni simili


Annunci Google