Asymptotic Notation Θ-notation Ornek O-notation Ω-notation Θ, Ω, O ...

34 downloads 118 Views 65KB Size Report
set belirtilir g(n) in f(n) icin asymptotically tight bound oldugu soylenir. 2.3. Algoritma Analizi. Ornek. ○ 10n2 - 3n = Θ(n2). ○ n0, c1, ve c2 sabitlerini belirlememiz.
Asymptotic Notation l l l l l

Θ-notation

Θ, O, Ω , o, ω Algorithmalarin running time (calisma zamani) ifade etmekte kullanilirlar. Kesin calisma zamanini soylemek yerine Θ(n2) gibi notasyon kullailir Domain i dogal sayilar olan fonksiyonlar icin tanimlanmislardir Fonksiyonlardan olusan setleri tanimlarlar,ve pratikte iki fonksiyonu kiyaslamak icin kullanilirlar Algoritma Analizi

Verilen bir fonksiyon g(n) icin, Θ(g(n)) ile fonksiyonlardan olusan bir set belirtilir

Θ(g(n)) = {f(n): oyleki asagidaki kosullari saglayan positive c1 , c2 and n0 sabitleri mevcut, 0 ≤ c1 g(n) ≤ f(n) ≤ c2 g(n), her n ≥ n0 icin } g(n) in f(n) icin asymptotically tight bound oldugu soylenir

2.1

Algoritma Analizi

Ornek

2.2

O-notation

10n2 - 3n = Θ(n2) l n0, c1, ve c2 sabitlerini belirlememiz gerekir l

Verilen bir foksiyon g(n) icin, O(g(n)) elemanlari fonksiyon olan bir set i ifade eder.

O(g(n)) = {f(n): oyleki asagidaki kosulalri saglayan positive c ve n 0 sabitlei mevcut, 0 ≤ f(n) ≤ cg(n) her n ≥ n0 icin } g(n) in f(n) icin bir asymptotic upper bound oldugu soylenir

Algoritma Analizi

2.3

Ω-notation Verilen bir g(n) fonksiyonu icin, Ω (g(n)) ile elemanlari fonksiyon olan bir set ifade edilir. Ω (g(n)) = {f(n): oyleki asagidaki kosullari saglayn positive c ve n0 sabitleri mevcut, 0 ≤ cg(n) ≤ f(n) for all n ≥ n0 } g(n) nin f(n) icin bir asymptotic lower bound oldugu Algoritma Analizi 2.5 soylenir

Algoritma Analizi

2.4

Θ, Ω, O Arasindaki Iliskiler l

l

Verilen iki fonksiyon g(n) ve f(n) icin , f(n) = Θ(g(n)) if and only if (ancak ve ancak) f(n) = O( g(n)) ve f( n) = Ω (g(n)).

Yani, Θ(g(n)) = O(g(n)) ∩ Ω(g(n))

Algoritma Analizi

2.6

Running Times

Ornek

l

“Eger running time O(f(n))” ⇒ Worst case O(f(n)) dir.

l

Insertion sort nin worst case running time i Θ(n2) , dolayisiyle bu O(n2 ) dir.

l

“Eger running time Ω(f(n))” ⇒ Best case Ω(f(n)) dir.

l

Herhangi bir sort algoritmasi siralanacak her bir item a bakmak zorunda, dolayisiyle sorting Ω (n) dir

l

Gercekte, merge sort kullanilarak, worst case durumunda sorting Θ(n lg n) dir.

Algoritma Analizi

2.7

Algoritma Analizi

Asymptotic Notation in Equations

o-notation

l

Lower-order terimleri iceren ifadeleri yerdegistirmek icin kullanilir

l

Ornegin, 4n3 + 3n2 + 2n + 1 = 4n3 + 3n2 + Θ(n) = 4n3 + Θ(n2 ) = Θ(n3 )

l

Θ(f(n)) anonymous function bir fonksiyonu ifade eder. g(n) ∈ Θ(f(n))

Verilen bir fonksiyon g(n) icin, o(g(n)) ile bir fonksiyonlar kumesi ifade edilir, soyleki o(g(n)) = {f(n): bir positive constant c > 0 icin, n0 > 0 olan bir sabit var oyleki 0 ≤ f(n) < cg(n), her n ≥ n0 } f(n) g(n) e kiyasla n sonsuza (infinity) yaklasirken onemsiz hale gelir lim [f(n) / g(n)] = 0

– Yukaridaki ornekte, Θ(n2) 3n2 + 2 n + 1 i ifade eder

Algoritma Analizi

n→∞

2.9

Algoritma Analizi

2.10

Limits

ω-notation l

Verilen bir fonksiyon g(n) icin, ω (g(n)) ile bir fonlksiyonlar kumesi ifade edilir, soyleki

l

ω (g(n)) = {f(n): bir positive sabit c > 0 icin , n 0 > 0 olan bir sabit var oyleki 0 ≤ cg(n) < f(n), her n ≥ n0 } f(n) g(n) kiyasla n sonsuza yaklasirken gelisiguzel buyuk olur lim [f(n) / g(n)] = ∞ n→∞

2.11

lim [f(n) / g(n)] = 0 ⇒ f(n) ∈ ο(g(n))

n→∞

lim [f(n) / g(n)] < ∞ ⇒ f(n) ∈ Ο(g(n))

n→∞

l

0