Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

NOTASI ASIMTOTIK (ASYMTOTIC NOTATION)

Presentasi serupa


Presentasi berjudul: "NOTASI ASIMTOTIK (ASYMTOTIC NOTATION)"— Transcript presentasi:

1 NOTASI ASIMTOTIK (ASYMTOTIC NOTATION)
Fundamentals of Algorithmics

2 Notasi untuk “the order of”
Misal f : N  R0 dengan , n bisa dianggap sebagai ukuran instance. t(n) merepresentasikan kuantitas resource yang diberikan dan yang di-spent pada instance tersebut oleh implementasi tertentu dari algoritma. Fungsi lain f : N  R0 dengan f(n)=n2. Dikatakan bahwa t(n) berada dalam order dari (is in the order of) f(n) jika t(n) terbatas atas oleh kelipatan riil positif dari f(n) untuk semua n cukup besar.

3 Notasi untuk “the order of” – Cont.
Secara matematik, ada konstanta riil positif c dan batas (threshold) integer n0 sehingga t(n)  cf(n) dengan n  n0. Untuk contoh di atas, jelas bahwa jika n  1, berlaku n  n2 dan 1  n2. Sehingga, untuk n  1, t(n) = 27n2 + (355/113) n + 12  … sehingga c = 42 16/113, n0 = 1.

4 Notasi untuk “the order of” – Cont.
Notasi dibaca “big Oh of f(n)” : himpunan semua fungsi t : N  R0 sedemikian hingga t(n)cf(n) untuk semua nn0 untuk suatu bilangan riil positif c dan batas bilangan bulat n0. Dengan kata lain,

5 Notasi untuk “the order of” – Cont.
Aturan threshold : bila hanya bila ada konstanta riil positif c sehingga t(n)cf(n) untuk masing2 bilangan alam n. Misal f, g : N  R0 dua fungsi sebarang dari bilangan2 alam ke bilangan riil tak-negatif. Maka aturan maximum mengatakan bahwa : O( f(n) + g(n) ) = O( max( f(n), g(n) ) ) p, q : N  R0 didefinisikan untuk masing-masing bilangan alam n oleh p(n) = f(n) + g(n) dan q(n) = max( f(n), g(n) ). Untuk sebarang fungsi t : N  R0, aturan maximum mengatakan bahwa t(n)  O( p(n) ) bila hanya bila t(n)  O( q(n) ).

6 Notasi untuk “the order of” – Cont.
Perhatikan Bukti aturan maximum (untuk kasus dua fungsi) f(n) + g(n) = min( f(n), g(n) ) + max( f(n), g(n) ) dan 0  min( f(n), g(n) )  max( f(n), g(n) ) sehingga max( f(n), g(n) )  f(n) + g(n)  2 max( f(n), g(n) ) Selanjutnya, perhatikan sebarang t(n)  O( f(n)+g(n) )  t(n)  O(max( f(n), g(n) ) ). Sebaliknya, jika t(n)  O(max(f(n), g(n)))  t(n)  O( f(n)+g(n) ).

7 Notasi untuk “the order of” – Cont.
(hati-hati untuk kasus) O(n) = O(n + n2 – n2) = O(max(n, n2, -n2)) = O(n2) Sebaliknya O(t(n))=O(11n3log n + n3log n – 5n2 + log2 n + 36) = O(max(O(11n3log n, n3log n – 5n2, log2 n, 36)) = O(11n3log n) = O(n3log n) meskipun n3log n – 5n2 < 0 dan 36 > 11n3log n untuk nilai n yang kecil. Tapi tidak akan terjadi untuk n yang cukup besar.

8 Notasi untuk “the order of” – Cont.
Dalam notasi asimtotik, biasanya tidak perlu menentukan basis logaritma, sebab loga n = loga b  logb n, untuk semua bilangan riil positif a, b, dan n sedemikian hingga tak satupun dari a dan b yang sama dengan 1. Jadi loga b merupakan konstanta positif ketika a dan b adalah konstanta2 > 1. Sehingga, loga n dan logb n hanya berbeda dengan faktor pengali konstan. Oleh karena itu, O( loga n ) = O( logb n )

9 Notasi untuk “the order of” – Cont.
Perhatikan O( n2/(log3 n (n lg n) )) adalah sama dengan O( ( n/log n)1.5) Notasi “O” bersifat : reflexive, dan transitive. Untuk prove bahwa fungsi t(n)  O(f(n)) adalah dengan “proof by contradiction”. Misal t(n)=(1/1000) n3 dan f(n)=1000 n2; untuk n < 106 maka t(n) < f(n)  t(n)  O(f(n)). Selanjutnya, asumsikan t(n)  O(f(n)), dengan “threshold rule” maka ada konstanta riil positif c sehingga t(n) < c f(n) untuk semua n  1. Tapi, t(n) < c f(n) artinya … , akhirnya terjadi kontradiksi.

10 The “Limit rule” Untuk sebarang fungsi f dan g : N  R0,
Jika lim (n∞) [f(n)/g(n)]  R+, maka f(n)  O(g(n)) dan g(n)  O(f(n)). Jika lim (n∞) [f(n)/g(n)] = 0, maka f(n)  O(g(n)) dan g(n)  O(f(n)). Jika lim (n∞) [f(n)/g(n)] = + ∞, maka f(n)  O(g(n)) dan g(n)  O(f(n)). Contoh f(n) = log n dan g(n) = n. Dengan de l’Hôpital’s rule, didapat : lim (n∞) [f(n)/g(n)] = … = 0, jadi menggunakan aturan (2).

11 The “Omega” notation Notasi big-o (O) dirancang hanya untuk memberi batas atas (upper bound) pada jumlah resource yang diperlukan. Sementara untuk batas bawah (lower bound) digunakan notasi omega (). Secara matematik, ada konstanta riil positif d dan integer threshold n0 sedemikian hingga bahwa t(n)  df(n) jika n  n0. Duality rule : t(n)  (f(n)) bila hanya bila f(n)  (t(n)).

12 The “Theta” notation Kombinasi notasi O & notasi ;  notasi  (theta). Definisi formal  adalah (f(n)) = O(f(n))  (f(n)), ekuivalen dengan Untuk notasi , aturan limit dirumuskan kembali sebagai berikut. Untuk sebarang fungsi f dan g : N  R0. Berlaku aturan-aturan sebagai berikut :

13 The “Theta” notation (Cont.)
Jika lim (n∞) [f(n)/g(n)]  R+, maka f(n)  Θ(g(n)). Jika lim (n∞) [f(n)/g(n)] = 0, maka f(n)  O(g(n)) tapi f(n)  Θ(g(n)). Jika lim (n∞) [f(n)/g(n)] = + ∞, maka f(n)   (g(n)) tapi f(n)  Θ(g(n)).

14 The “Theta” notation (Cont.)
Untuk setiap integer tertentu k0, dengan jumlahan (summation) sisi kiri dianggap sebagai fungsi dari n. Untuk arah ke “O” mudah dibuktikan, cukup diperhatikan hubungan bahwa jika 1in, maka iknk. Sehingga

15 The “Theta” notation (Cont.)
yang membuktikan bahwa dengan konstanta pengali 1. Untuk pembuktian arah “”, perhatikan bahwa jika maka Kemudian untuk integer i, lebih dari n/2.

16 The “Theta” notation (Cont.)
Oleh karena itu, selama n  1 (yang mengakibat-kan bahwa n/2  1), Hal ini memperlihatkan bahwa dengan menggunakan konstanta pengali 1/2k+1.

17 Conditional asymptotic notation
Banyak algoritma akan lebih mudah dianalisa jika ukuran instance nya dibatasi untuk yang memenuhi persyaratan (condition) tertentu, misal pangkat 2 (power of 2). Contoh, algoritma “devide-and-conquer” untuk mengalikan integer besar, misal n adalah ukuran integer yang akan dikalikan. Waktu yang diperlukan oleh algoritma ini diberikan oleh fungsi t : N R0 secara rekursif didefinisikan oleh

18 Conditional asymptotic notation (Cont.)
hasil penyelesaian dengan asumsi n/2 = n/2 adalah : t(n) = (a + b) n2 – bn, dengan n merupakan power of 2. sehingga Lebih umum, misal f, t : N  R0 merupakan dua fungsi dari bilangan-bilangan natural ke bilangan-bilangan riil tak-negatif, dan misal P : N  {true, false} merupakan sifat integers.

19 Conditional asymptotic notation (Cont.)
Secara formal, O(f(n) | P(n)) didefinisikan sebagai Himpunan2 (f(n) | P(n)) dan (f(n) | P(n)) didefinisikan secara serupa. Fungsi f : N  R0 “eventually nondecreasing” jika ada integer threshold n0 sedemikian hingga f(n)f(n+1) untuk semua nn0.

20 Conditional asymptotic notation (Cont.)
Kebanyakan fungsi yang dijumpai dalam analisa algoritma adalah smooth, seperti log n, n log n, n2 atau setiap polynomial yang an>0. Fungsi2 yang perkembangannya sangat cepat “tidak smooth”, seperti n lg n, 2n, atau n!, karena f(2n)/f(n) tak terbatas (unbounded). Sebagai contoh, (2n)lg(2n) = 2n2 nlg n, yang memperlihatkan bahwa (2n)lg(2n)  O(nlg n).

21 Asymptotic notation with several parameters
Situasi ini untuk algoritma untuk problem yang melibatkan graph (waktu tergantung pada #vertex & #edge). Misal f : N  N  R0, misal f(m,n) = m log n. Misal t : N  N  R0 fungsi serupa yang lain. t(m,n) berada dalam order f(m,n), yang ditunjukkan dengan t(m,n)  O(f(m,n)), jika t(m,n) terbatas atas oleh kelipatan positif dari f(m,n) jika kedua m dan n cukup besar.

22 Asymptotic notation with several parameters
Secara formal, O(f(m,n)) adalah :

23 Operations on asymptotic notation
Secara lebih formal, jika op merupakan operator biner (binary operator) dan jika X dan Y merupakan himpunan fungsi2 dari N ke R0. Secara formal, X op Y menunjukkan


Download ppt "NOTASI ASIMTOTIK (ASYMTOTIC NOTATION)"

Presentasi serupa


Iklan oleh Google