NOTASI ASIMTOTIK ASYMTOTIC NOTATION Fundamentals of Algorithmics Notasi

  • Slides: 23
Download presentation
NOTASI ASIMTOTIK (ASYMTOTIC NOTATION) Fundamentals of Algorithmics

NOTASI ASIMTOTIK (ASYMTOTIC NOTATION) Fundamentals of Algorithmics

Notasi untuk “the order of” ¡ ¡ Misal f : N R 0 dengan

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)=n 2. Dikatakan bahwa t(n) berada dalam order dari (is in the order of) f(n) jika t(n) terbatas oleh kelipatan riil positif dari f(n) untuk semua n cukup besar.

Notasi untuk “the order of” – Cont. ¡ ¡ Secara matematik, ada konstanta riil

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

Notasi untuk “the order of” – Cont. ¡ ¡ Notasi dibaca “big Oh of

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 n 0 untuk suatu bilangan riil positif c dan batas bilangan bulat n 0. Dengan kata lain,

Notasi untuk “the order of” – Cont. ¡ ¡ Aturan threshold : bila hanya

Notasi untuk “the order of” – Cont. ¡ ¡ Aturan threshold : bila hanya bila ada konstanta riil positif c sehingga t(n) cf(n) untuk masing 2 bilangan alam n. Misal f, g : N R 0 dua fungsi sebarang dari bilangan 2 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) ).

Notasi untuk “the order of” – Cont. ¡ Perhatikan ¡ Bukti aturan maximum (untuk

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

Notasi untuk “the order of” – Cont. ¡ (hati-hati untuk kasus) O(n) = O(n + n 2 – n 2) = O(max(n, n 2, -n 2)) = O(n 2) ¡ Sebaliknya O(t(n))=O(11 n 3 log n + n 3 log n – 5 n 2 + log 2 n + 36) = O(max(O(11 n 3 log n, n 3 log n – 5 n 2, log 2 n, 36)) = O(11 n 3 log n) = O(n 3 log n) meskipun n 3 log n – 5 n 2 < 0 dan 36 > 11 n 3 log 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

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 konstanta 2 > 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( n 2/(log 3

Notasi untuk “the order of” – Cont. ¡ ¡ Perhatikan O( n 2/(log 3 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) n 3 dan f(n)=1000 n 2; 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” ¡ 1) 2) 3) Untuk sebarang fungsi f dan g :

The “Limit rule” ¡ 1) 2) 3) 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).

The “Omega” notation ¡ ¡ Notasi big-o (O) dirancang hanya untuk memberi batas (upper

The “Omega” notation ¡ ¡ Notasi big-o (O) dirancang hanya untuk memberi batas (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 n 0 sedemikian hingga bahwa t(n) df(n) jika n n 0. Duality rule : t(n) (f(n)) bila hanya bila f(n) (t(n)).

The “Theta” notation ¡ ¡ Kombinasi notasi O & notasi ; notasi (theta). Definisi

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 :

The “Theta” notation (Cont. ) 1) 2) 3) Jika lim (n ∞) [f(n)/g(n)] R+,

The “Theta” notation (Cont. ) 1) 2) 3) 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 k 0, ¡ dengan

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

The “Theta” notation (Cont. ) ¡ yang membuktikan bahwa ¡ dengan konstanta pengali 1.

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

The “Theta” notation (Cont. ) ¡ Oleh karena itu, selama n 1 (yang mengakibatkan

The “Theta” notation (Cont. ) ¡ Oleh karena itu, selama n 1 (yang mengakibatkan bahwa n/2 1), ¡ Hal ini memperlihatkan bahwa dengan menggunakan konstanta pengali 1/2 k+1.

Conditional asymptotic notation ¡ ¡ ¡ Banyak algoritma akan lebih mudah dianalisa jika ukuran

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

Conditional asymptotic notation (Cont. ) ¡ ¡ ¡ hasil penyelesaian dengan asumsi n/2 =

Conditional asymptotic notation (Cont. ) ¡ ¡ ¡ hasil penyelesaian dengan asumsi n/2 = n/2 adalah : t(n) = (a + b) n 2 – 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.

Conditional asymptotic notation (Cont. ) ¡ Secara formal, O(f(n) | P(n)) didefinisikan sebagai ¡

Conditional asymptotic notation (Cont. ) ¡ Secara formal, O(f(n) | P(n)) didefinisikan sebagai ¡ Himpunan 2 (f(n) | P(n)) dan (f(n) | P(n)) didefinisikan secara serupa. Fungsi f : N R 0 “eventually nondecreasing” jika ada integer threshold n 0 sedemikian hingga f(n) f(n+1) untuk semua n n 0. ¡

Conditional asymptotic notation (Cont. ) ¡ Kebanyakan fungsi yang dijumpai dalam analisa algoritma adalah

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

Asymptotic notation with several parameters ¡ ¡ Situasi ini untuk algoritma untuk problem yang

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 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 :

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)

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