230 likes | 725 Views
NOTASI ASIMTOTIK ( ASYMTOTIC NOTATION ). Fundamentals of Algorithmics. Notasi untuk “ the order of ”. Misal f : N R 0 dengan , n bisa
E N D
NOTASI ASIMTOTIK (ASYMTOTIC NOTATION) Fundamentals of Algorithmics
Notasi untuk “the order of” • Misal f : N R0 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 R0 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.
Notasi untuk “the order of” – Cont. • Secara matematik, ada konstanta riil positif c dan batas (threshold) integern0sehingga t(n) cf(n)dengan nn0. • 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.
Notasi untuk “the order of” – Cont. • Notasi dibaca “big Oh of f(n)” : himpunan semua fungsi t : N R0 sedemikian hingga t(n)cf(n) untuk semua nn0 untuk suatu bilangan riil positif c dan batas bilangan bulat n0. • Dengan kata lain,
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 R0dua 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 R0 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 R0, aturan maximum mengatakan bahwa t(n) O( p(n) )bila hanya bilat(n) O( q(n) ).
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) ).
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.
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 )
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)=1000n2; 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.
The “Limit rule” • Untuk sebarang fungsi f dan g : N R0, • 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).
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 thresholdn0 sedemikian hingga bahwa t(n) df(n) jika n n0. • Duality rule : t(n) (f(n))bila hanya bilaf(n) (t(n)).
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 R0. Berlaku aturan-aturan sebagai berikut :
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)).
The “Theta” notation (Cont.) • Untuk setiap integer tertentu k0, dengan jumlahan (summation) sisi kiri dianggap sebagai fungsi dari n. • Untuk arah ke “O” mudah dibuktikan, cukup diperhatikan hubungan bahwa jika 1in, maka iknk. Sehingga
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.
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.
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 R0 secara rekursif didefinisikan oleh
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 R0 merupakan dua fungsi dari bilangan-bilangan natural ke bilangan-bilangan riil tak-negatif, dan misal P : N {true, false} merupakan sifat integers.
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 R0 “eventually nondecreasing” jika ada integer threshold n0 sedemikian hingga f(n)f(n+1) untuk semua nn0.
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).
Asymptotic notation with several parameters • Situasi ini untuk algoritma untuk problem yang melibatkan graph (waktu tergantung pada #vertex & #edge). • Misal f : N N R0, misal f(m,n) = m log n. • Misal t : N N R0 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.
Asymptotic notation with several parameters • Secara formal, O(f(m,n)) adalah :
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 R0. • Secara formal, XopY menunjukkan