Asd 02 Analisi Della Complessita

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Asd 02 Analisi Della Complessita - Presentation Transcript

    1. Algoritmi e Strutture Dati Analisi della complessità Prof. Pier Luca Lanzi
    2. Riferimenti 2  Questo materiale è tratto dalle trasparenze del corso Introduction to Algorithms (2005-fall-6046) tenuto dal Prof. Leiserson all’MIT (http://people.csail.mit.edu/cel/)  T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Introduction to Algorithms, Second Edition, The MIT Press, Cambridge, Massachusetts London, England McGraw-Hill Book Company  Queste trasparenze sono disponibili sui siti http://webspace.elet.polimi.it/lanzi http://www.slideshare.net/pierluca.lanzi Prof. Pier Luca Lanzi
    3. Nella lezione precedente...
    4. Algoritmi, struttura dati e analisi (asintotica) della performance Notazione O, Ω, e Θ Come calcolare T(n)? Analiticamente o sviluppando l’equazione In questa lezione vediamo altri tre metodi: Sostituzione, Alberi, & Master Method Prof. Pier Luca Lanzi
    5. Metodo per sostituzione
    6. Analisi di Algoritmi Ricorsivi: Metodo per Sostituzione Forse il metodo più generale, si può applicare sempre 1. “Indovinare” la forma della soluzione 2. Verificare la soluzione per induzione 3. Calcolare eventuali costanti Prof. Pier Luca Lanzi
    7. Esempio 7  Esempio: T(n) = 4T(n/2) + n Assumiamo che T(1) = Θ(1) Ipotizziamo ad esempio che T(n) sia O(n3) Assumendo che T(k) ≤ ck3 for k < n, dimostramo per induzione che T(n)≤cn3  Soluzione T(n) 4 T(n / 2) n 4c(n / 2)3 n (c / 2)n3 n cn3 ((c / 2)n3 n) bound desiderato (- residuo) cn3 vero per (c/2)n3 – n≥0, for example, if c ≥ 2 and n ≥ 1. Prof. Pier Luca Lanzi
    8. Esempio (condizioni iniziali) L2.8  Infine dobbiamo considerare le condizioni iniziali che sono alla base della dimostrazione per induzione  In questo caso, T(1) = Θ(1) per n<n0, per un opportuno n0  Per 1≤n<n0, abbiamo “Θ(1) ” ≤cn3, se c è scelto opportunamente grande Questo vincolo non è stretto Prof. Pier Luca Lanzi
    9. Esiste un Limite Superiore più Stretto? 9  Proviamo a dimostrare che T(n) è O(n2)  Assumiamo T(n) ≤ ck2 per k<n, dimostriamolo per n T(n) 4T(n / 2) n 4c(n / 2)2 n cn2 n O(n2 ) cn2 ( n) bound desiderato (- residuo) cn2 Falso! Per nessuna scelta di c può essere ≤ cn2  È però possibile migliorare il limite dimostrando che T(n) ≤ c1n2 – c2n Prof. Pier Luca Lanzi
    10. Alberi di ricorsione
    11. Alberi di Ricorsione Calcoliamo la complessità andando a sviluppare l’esecuzione su una struttura ad albero Considerato inaffidabile, è però molto intuitivo Prof. Pier Luca Lanzi
    12. Esempio Calcoliamo T(n) = T(n/4) + T(n/2) + n2: Prof. Pier Luca Lanzi L2.12
    13. Esempio Calcoliamo T(n) = T(n/4) + T(n/2) + n2: T(n) Prof. Pier Luca Lanzi L2.13
    14. Esempio Calcoliamo T(n) = T(n/4) + T(n/2) + n2: n2 T(n/4) T(n/2) Prof. Pier Luca Lanzi L2.14
    15. Esempio Calcoliamo T(n) = T(n/4) + T(n/2) + n2: n2 (n/4)2 (n/2)2 T(n/16) T(n/8) T(n/8) T(n/4) Prof. Pier Luca Lanzi L2.15
    16. Esempio Calcoliamo T(n) = T(n/4) + T(n/2) + n2: n2 (n/4)2 (n/2)2 (n/16)2 (n/8)2 (n/8)2 (n/4)2 Θ(1) Prof. Pier Luca Lanzi L2.16
    17. Perchè si chiama “albero”? n2 (n/4)2 (n/2)2 (n/16)2 (n/8)2 (n/8)2 (n/4)2 Θ(1) Prof. Pier Luca Lanzi
    18. Esempio Calcoliamo T(n) = T(n/4) + T(n/2) + n2: n2 n2 5 2 (n/4)2 (n/2)2 n 16 25 2 (n/16)2 (n/8)2 (n/8)2 (n/4)2 n 256 … Totale = n 1 5 2 5 3 2 5 16 16 16  Θ(1) = Θ(n2) (serie geometrica) Prof. Pier Luca Lanzi
    19. Master method
    20. Analisi di Algoritmi Ricorsivi: 20 Master Method  Si applica a forme ricorsive del tipo, T(n) = aT(n/b) + f(n) dove a≥1, b>1, ed f è asintoticamente positiva  Si confronta f(n) con nlogba  Tre casi possibili f(n) cresce più lentamente di nlogba f(n) cresce in maniera simile a nlogba f(n) cresce più velocemente di nlogba Prof. Pier Luca Lanzi
    21. Analisi di Algoritmi Ricorsivi: 21 Master Method  Caso 1: f(n) cresce più lentamente di nlogba f (n) = O(nlogba – ) per una costante ε > 0 Soluzione: T(n) = Θ(nlogba)  Caso 2: f(n) cresce in maniera simile a nlogba f (n) = Q(nlogba lgkn) per una costante k≥0 Soluzione: T(n) = (nlogba lgk+1n)  Caso 3: f(n) cresce più velocemente di nlogba f (n) = Ω(nlogba+ ) per una costante ε>0 f (n) cresce più velocemente di nlogba (di un fattore nε), ed f (n) soddisfa la condizione af (n/b)≤cf(n) per una costante c < 1 Soluzione: T(n) = Θ(f(n)) Prof. Pier Luca Lanzi
    22. Esempi 23  Esempio 1: T(n) = 4T(n/2) + n a = 4, b = 2  nlogba = n2; f(n) = n T(n) = Θ(n2)  Esempio 2: T(n) = 4T(n/2) + n2 a = 4, b = 2  nlogba = n2; f(n) = n2 f (n) = Θ(n2lg0n), ovvero, k = 0 T(n) = Θ(n2lg n)  Esempio 3: T(n) = 4T(n/2) + n3 a = 4, b = 2  nlogba = n2; f(n) = n3 f (n) = Ω(n2+ε) con ε = 1 T(n) = Θ(n3) Prof. Pier Luca Lanzi
    23. Esempi 24  Esempio 4: T(n) = 4T(n/2) + n/lgn a = 4, b = 2  nlogba = n2; f(n) = n/lgn Il master method non si applica Prof. Pier Luca Lanzi
    24. Qual è l’Idea del Master Method? Albero di ricorsione f (n) f(n) a f (n/b) f (n/b) … f (n/b) af(n/b) h = logbn a f (n/b2) f (n/b2) … f (n/b2) a2f(n/b2) … #nodi = ah T (1) T(1)nlogba = alogbn = nlogba Prof. Pier Luca Lanzi
    25. Master Method: Caso 1 Albero di ricorsione f (n) f(n) a f (n/b) f (n/b) … f (n/b) af(n/b) h = logbn a f (n/b2) f (n/b2) … f (n/b2) a2f(n/b2) … T (1) Caso 1: La performance è dominata T(1)nlogba dal costo dei nodi finali Θ(nlogba) Prof. Pier Luca Lanzi
    26. Master Method: Caso 2 Albero di ricorsione f (n) f(n) a f (n/b) f (n/b) … f (n/b) af(n/b) h = logbn a f (n/b2) f (n/b2) … f (n/b2) a2f(n/b2) … Caso 2: (k = 0) il costo è T (1) distribuito uniformemente su tutti T(1)nlogba i logbn livelli Θ(nlogbalgn) Prof. Pier Luca Lanzi
    27. Master Method: Caso 3 Albero di ricorsione f (n) f(n) a f (n/b) f (n/b) … f (n/b) af(n/b) h = logbn a f (n/b2) f (n/b2) … f (n/b2) a2f(n/b2) … Caso 3: Il costo decresce T (1) geometricamente dalla radice alle T(1)nlogba foglie. Il costo e’ dominato dal costo f(n) della radice. Θ(f(n)) Prof. Pier Luca Lanzi
    28. Sommario
    29. Sommario 30  Due metodi per risolvere Sostituzione Master method  Sostituzione Intuizione Dimostrazione per induzione Generale, sempre applicabile  Master method Applicabile a forme ricorsive del tipo T(n) = aT(n/b) + f(n) con a≥1, b>1, ed f asintoticamente positiva Diretto, ma limitato a questo tipo di equazioni Prof. Pier Luca Lanzi
    30. Appendice: Serie Geometriche 1 xn 1 1 x x2  xn per x≠1 1 x 1 1 x x 2  for |x| < 1 1 x Prof. Pier Luca Lanzi

    + Pier Luca LanziPier Luca Lanzi, 2 years ago

    custom

    1527 views, 0 favs, 0 embeds more stats

    Corso di Algoritmi e Strutture Dati 2008/2009
    Polit more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1527
      • 1527 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 22
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories