You are on page 1of 26

Algoritmi e Strutture Dati I Notazioni asintotiche

Notazioni Asintotiche e Ordini di Grandezza delle funzioni

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.1

Algoritmi e Strutture Dati I Notazioni asintotiche Notazioni asintotiche


Nello studio della complessit di un algoritmo si verifica il comportamento dellalgoritmo, in termini di tempo di calcolo, senza far riferimento ad una prefissata dimensione n dei dati di ingresso. Visto che lincidenza sul tempo di calcolo cresce al crescere di n, lanalisi che si conduce un analisi al limite. Le notazioni che si introducono sono pertanto dette notazioni asintotiche, in quanto devono caratterizzare il comportamento di un dato algoritmo a partire da un valore di n sufficientemente grande. Non corretto valutare il comportamento asintotico solo nel caso migliore (o in quello peggiore), ma necessario verificare landamento dellalgoritmo in tutti i casi possibili. E corretta affermazione: lalgoritmo A ha un comportamento asintotico, nel caso migliore, di tipo T, anche se tale comportamento diverso nel caso medio ed in quello peggiore.

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.2

Algoritmi e Strutture Dati I Notazioni asintotiche Tre notazioni: motivazioni e definizioni


In informatica, sono tre le notazioni comunemente adottate:

O, ;, 5
le prime due, forniscono un limite lasco, rispettivamente per i limiti superiore ed inferiore mentre la terza fornisce un limite stretto. In alcuni contesti difficile trovare un limite stretto per landamento delle funzioni, per cui ci si accontenta di un limite meno preciso.

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.3

Algoritmi e Strutture Dati I Notazioni asintotiche Tre notazioni: motivazioni e definizioni


Tali notazioni furono introdotte in un classico articolo di Knuth del 76 in molti testi viene riportata una sola di queste notazioni, che in genere la O. Tale scelta dettata da ragioni di semplicit sia per non introdurre troppe notazioni (cosa che potrebbe confondere le idee al lettore) sia perch in genere ci che serve una limitazione superiore del tempo impiegato da un dato algoritmo dimostrare che un algoritmo appartiene alla classe O , come detto, pi semplice che dimostrare lappartenenza alla classe 5

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.4

Algoritmi e Strutture Dati I Notazioni asintotiche Tre notazioni: motivazioni e definizioni


Spesso, volendo trovare un limite stretto, necessario ricorrere a funzioni pi complesse di quelle che si potrebbero adottare se ci si limitasse a considerare un limite lasco. Pi in generale, se si vuole caratterizzare un algoritmo con un limite stretto pu essere necessario dover considerare separatamente il caso migliore e quello peggiore se ci limita a cercare un limite superiore basta trovarlo per il solo caso peggiore ed evidentemente tale limite sar valido per lalgoritmo stesso questultima considerazione pu essere unulteriore giustifica alladozione in alcuni testi di una sola notazione, la O.

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.5

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.6

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.7

Algoritmi e Strutture Dati I Notazioni asintotiche Ordine O


La notazione asintotica O non fornisce un limite stretto. Supponiamo infatti di avere una funzione f(n) O(n2). Ci implica che la f(n), da un certo punto in poi, maggiorata da n2: se ci vero, anche n3 maggiorer la f(n), e quindi f(n) appartiene anche a O(n3). In generale quando si introduce la notazione O si cerca comunque di individuare un limite superiore il pi possibile stretto. Si noti inoltre che il comportamento per tutti gli n < n0 non assolutamente tenuto in conto, per cui potranno esserci dei valori di n < n0 tali che f(n) > g(n).

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.8

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.9

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.10

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.11

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.12

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.13

Algoritmi e Strutture Dati I Notazioni asintotiche Implicazioni


Dalle definizioni suvviste discende il seguente teorema:

Date due funzioni f(n) e g(n), f(n) 5(g(n)) se e solo se f(n) O(g(n)) e f(n) ;(g(n)).

Uso improprio
E prassi comune ammettere usi del tipo f(n) = O(n2). Inoltre in alcuni casi molto utile dal punto di vista notazionale, anche se formalmente scorretto, poter sommare due notazioni asintotiche, cio ammettere espressioni del tipo T(n) = 5 (n2)+ 5(n). Questultima espressione deve evidentemente intendersi come: T(n) uguale alla somma di una qualunque funzione che appartiene allinsieme 5(n2) pi una qualunque funzione che appartiene allinsieme 5(n).
Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.14

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.15

Algoritmi e Strutture Dati I Notazioni asintotiche Complessit del Bubblesort


Il BubbleSort nel caso migliore ha una complessit lineare. Ma non Basta per affermare che lalgoritmo BubbleSort appartenga a 5(n) oppure a O(n).

Il BubbleSort nel caso peggiore ha una complessit 5(n2) . Ma non corretto affermare che il BubbleSort appartiene a 5(n2) solo perch nel caso peggiore la complessit quadratica.

Viceversa corretto affermare che, nel caso migliore, la complessit del BubbleSort 5(n), che nel caso medio e nel caso peggiore la complessit 5(n2) e, pi in generale che il BubbleSort O(n2) ovvero ;(n).

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.16

Algoritmi e Strutture Dati I Notazioni asintotiche Le costanti moltiplicative e termini nascosti


Nelle notazioni asintotiche vengono trascurati i termini di ordine inferiore e le costanti moltiplicative.

Nel caso in cui necessario confrontare algoritmi aventi tempi di esecuzione T(n) il cui andamento al limite uguale (es. sono entrambe O(n2)), non pi possibile trascurare tali termini.

In tal caso per stabilire quale algoritmo pi conveniente usare bisogna necessariamente tener conto, in primo luogo delle costanti moltiplicative, e poi dei termini di ordine inferiore.

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.17

Algoritmi e Strutture Dati I Notazioni asintotiche QuickSort vs. MergeSort


MergeSort: algoritmo che appartiene a 5(nlogn) QuickSort : algoritmo O(n2), la cui complessit nel caso migliore e nel caso medio per 5(nlogn). Contrariamente a quanto si potrebbe pensare, lalgoritmo di ordinamento pi comunemente usato, e che si trova normalmente implementato nelle librerie, il QuickSort. Perch? QuickSort svolge lordinamento sul posto, e che quindi ha minore complessit spaziale del MergeSort, La probabilit che per il QuickSort si verifichi il caso pessimo abbastanza remota Le costanti moltiplicative nel caso del QuickSort sono minori rispetto a quelle del MergeSort.
Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.18

Algoritmi e Strutture Dati I Notazioni asintotiche Le costanti moltiplicative e termini nascosti


Un altro caso in cui non corretto trascurare i termini nascosti dalla notazione asintotica il caso in cui siamo interessati a confrontare il comportamento di due algoritmi per un prefissato n.

In tal caso possibile, ad esempio, che un algoritmo A1 di complessit 5(n3) si comporti meglio di un algoritmo A2 5(n2);

supponiamo di aver fissato n = 50 lalgoritmo A1 abbia un tempo T(n) dato da n3/10 lalgoritmo A2 abbia T(n) uguale a 10n2 + 2n + 10. In tal caso per A1 avremo T(50) = 12500 mentre per A2 avremo T(50) = 25110.

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.19

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.20

Algoritmi e Strutture Dati I Notazioni asintotiche

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.21

Algoritmi e Strutture Dati I Notazioni asintotiche Confronto tra funzioni : transitivit

f (n) ! 5( g (n)) f (n) ! O( g (n)) f (n) ! ;( g (n)) f (n) ! o( g (n)) f (n) ! [ ( g (n))

e g (n) ! 5(h(n)) e g (n) ! O(h(n)) e g (n) ! ;(h(n)) e g (n) ! o(h(n)) e g (n) ! [ (h(n))

f (n) ! 5(h(n)) f (n) ! O(h(n)) f (n) ! ;(h(n)) f (n) ! o(h(n)) f (n) ! [ (h(n))

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.22

Algoritmi e Strutture Dati I Notazioni asintotiche Confronto tra funzioni : riflessivit

f (n) ! 5( f (n)) f (n) ! O ( f (n)) f (n) ! ;( f ( n))

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.23

Algoritmi e Strutture Dati I Notazioni asintotiche Confronto tra funzioni : simmetria

f (n) ! 5( g (n))

g ( n) ! 5( f (n))

Confronto tra funzioni : simmetria transposta

f (n) ! O ( g (n)) g (n) ! ;( f (n)) f (n) ! o( g (n)) g (n) ! [ ( f (n))

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.24

Algoritmi e Strutture Dati I Notazioni asintotiche Noatzioni asintotiche vs. numeri naturali

f (n) ! O( g ( n)) } a e b f (n) ! ;( g (n)) } a u b f (n) ! 5( g ( n)) } a ! b f (n) ! o( g ( n)) } a b f (n) ! [ ( g ( n)) } a " b

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.25

Algoritmi e Strutture Dati I Notazioni asintotiche Noatzioni asintotiche vs. numeri naturali
Propriet di tricotomia: Per ogni coppia di numeri reali a e b, deve valere esattamente una delle seguenti espressioni:

a b, a ! b, a " b
Sebbene qualunque coppia di numeri possa essere confrontata, non tutte le funzioni sono asintoticamente confrontabili.
1 sin n

Esempio:

f ( n ) ! n, g ( n ) ! n

Corso di Studi in Informatica Applicata Universit di Catania, Campus di Comiso Dr. Simone Faro faro@dmi.unict.it Diapositiva n.26

You might also like