Design and Analysis of Algorithm Week 3: Notasi Asymptotic dan Kelas Dasar Efisiensi Dr. Putu Harry Gunawan 1 1 Department of Computational Science School of Computing Telkom University Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 1 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 2 / 57
Exercise 1 What the complexity of the following pseudocode x <- 0 for x <- 0 to n: for y <- 0 to n: a=c+d Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 3 / 57
Exercise 2 What the complexity of the following pseudocode x <- 0 for x <- 0 to n: for y <- x to n-3: a=c+d Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 4 / 57
Exercise 3 What the complexity of the following pseudocode x <- 0 for x <- 2 to n+2: for y <- x-1 to n: a=c+d Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 5 / 57
Example Example Find the time complexity of the following codes for basic operation addition (+) Some algorithms have logarithmic (base 2) complexity: 1. i = n; // i starts from n 2. while (i >= 1) 3. { 4. x = x + 1; // count this line 5. i = i / 2; // i becomes half at the end of every it 6. } Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 6 / 57
Example Iteration value of i (at the top of loop) number of times line 4 1 n 1 n 2 1 2 n 1 3 1 2 n 2 k 1 2 k 1 0 2 k k+1 n Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 7 / 57
Example We are interested in what k is (because that s the number of times the line 4 is executed). In other words, T (n) = 1 + 1 + 1 +.. + 1 = (k 1) < kofthem > To derive k, we look at the relation at the last iteration (kth): Thus, T (n) = log 2 (n) 1 n 2 k = 0 log 2 ( n 2 k ) = log 2 (0) log 2 n log(2 k ) = log 2 (0) k log 2 (2) = log 2 n log 2 (0) k = log 2 n 1 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 8 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 9 / 57
Pendahuluan Seperti yang sudah dibahas pada bab-bab sebelumnya, ruang lingkup analisis efisiensi berfokus pada naiknya orde jumlah operasi dasar sebagai indikator utama pada algoritma efisien. Untuk membandingkan tingkatan dari orde kenaikan kompleksitas waktu, Computer Scientist menggunakan tiga notasi berikut: 1 O (big oh), Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 57
Pendahuluan Seperti yang sudah dibahas pada bab-bab sebelumnya, ruang lingkup analisis efisiensi berfokus pada naiknya orde jumlah operasi dasar sebagai indikator utama pada algoritma efisien. Untuk membandingkan tingkatan dari orde kenaikan kompleksitas waktu, Computer Scientist menggunakan tiga notasi berikut: 1 O (big oh), 2 Ω (big omega), dan Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 57
Pendahuluan Seperti yang sudah dibahas pada bab-bab sebelumnya, ruang lingkup analisis efisiensi berfokus pada naiknya orde jumlah operasi dasar sebagai indikator utama pada algoritma efisien. Untuk membandingkan tingkatan dari orde kenaikan kompleksitas waktu, Computer Scientist menggunakan tiga notasi berikut: 1 O (big oh), 2 Ω (big omega), dan 3 Θ (big theta). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 57
Pendahuluan Dalam tulisan ini, pengenalan notasi di atas akan disampaikan secara tidak formal(informal) dalam beberapa contoh dan kemudian secara formal dalam bentuk definisi. Untuk materi selanjutnya kan diperkenalkan notasi: 1 Fungsi t(n) dan g(n) merupakan fungsi tidak negatif terdefinisi pada himpunan bilangan asli. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 11 / 57
Pendahuluan Dalam tulisan ini, pengenalan notasi di atas akan disampaikan secara tidak formal(informal) dalam beberapa contoh dan kemudian secara formal dalam bentuk definisi. Untuk materi selanjutnya kan diperkenalkan notasi: 1 Fungsi t(n) dan g(n) merupakan fungsi tidak negatif terdefinisi pada himpunan bilangan asli. 2 Fungsi t(n) akan berupa waktu dari berjalannya algoritma (yang biasanya terindikasi pada jumlah operasi dasar C(n)). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 11 / 57
Pendahuluan Dalam tulisan ini, pengenalan notasi di atas akan disampaikan secara tidak formal(informal) dalam beberapa contoh dan kemudian secara formal dalam bentuk definisi. Untuk materi selanjutnya kan diperkenalkan notasi: 1 Fungsi t(n) dan g(n) merupakan fungsi tidak negatif terdefinisi pada himpunan bilangan asli. 2 Fungsi t(n) akan berupa waktu dari berjalannya algoritma (yang biasanya terindikasi pada jumlah operasi dasar C(n)). 3 Fungsi g(n) akan berupa beberapa contoh fungsi yang digunakan sebagai perbandingan. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 11 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 12 / 57
informal O(g(n)) Secara tidak formal, O(g(n)) merupakan sebuah himpunan semua fungsi yang orde kenaikannya (order of growth) berada di bawah atau sama dengan fungsi orde kenaikan g(n). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 13 / 57
informal O(g(n)) Secara tidak formal, O(g(n)) merupakan sebuah himpunan semua fungsi yang orde kenaikannya (order of growth) berada di bawah atau sama dengan fungsi orde kenaikan g(n). Sebagai contoh: 1 n O(n 2 ), 2 100n + 5 O(n 2 ), 3 1 2 n(n 1) O(n2 ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 13 / 57
informal O(g(n)) Secara tidak formal, O(g(n)) merupakan sebuah himpunan semua fungsi yang orde kenaikannya (order of growth) berada di bawah atau sama dengan fungsi orde kenaikan g(n). Sebagai contoh: 1 n O(n 2 ), 2 100n + 5 O(n 2 ), 3 1 2 n(n 1) O(n2 ). Jelas bahwa dua fungsi pertama adalah fungsi linier sehingga memiliki orde di bawah orde kenaikan fungsi g(n) = n 2. Sedangkan fungsi ke-tiga merupakan fungsi kuadratik yang memiliki orde kenaikan sama dengan fungsi n 2. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 13 / 57
informal O(g(n)) Dilain pihak, 1 n 3 / O(n 2 ), 2 0.000001n 3 / O(n 2 ), 3 n 4 + n + 1 / O(n 2 ). r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 14 / 57
informal O(g(n)) Dilain pihak, 1 n 3 / O(n 2 ), 2 0.000001n 3 / O(n 2 ), 3 n 4 + n + 1 / O(n 2 ). Jelas bahwa, fungsi n 3 dan 0.000001n 3 merupakan fungsi kubik yang memiliki orde kenaikan lebih dari n 2. Begitu pula dengan polinomial n 4 + n + 1 memiliki orde kenaikan orde empat. r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 14 / 57
informal Ω(g(n)) Notasi ke-dua Ω(g(n)), menyatakan himpunan dari semua fungsi yang memiliki orde kenaikan lebih besar atau sama dengan g(n). Sebagai comtoh: Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 15 / 57
informal Ω(g(n)) Notasi ke-dua Ω(g(n)), menyatakan himpunan dari semua fungsi yang memiliki orde kenaikan lebih besar atau sama dengan g(n). Sebagai comtoh: 1 n 3 Ω(n 2 ), 2 1 2 n(n 1) Ω(n2 ), tetapi 3 100n + 5 / Ω(n 2 ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 15 / 57
informal Θ(g(n)) Terakhir, Θ(g(n)) merupakan himpunan semua fungsi yang memiliki orde kenaikan sama dengan g(n). Contoh semua fungsi kuadratik an 2 + bn + c dengan a > 0 berada pada Θ(n 2 ). Hal ini juga terjadi pada fungsi lain seperti n 2 + sin n dan n 2 + log n, kenapa? Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 16 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 17 / 57
Definisi O(g(n)) Definition Sebuah fungsi t(n) dikatakan berada dalam O(g(n)), dinotasikan sebagai t(n) O(g(n)), jika t(n) terbatas di atas oleh suatu konstanta positif dikalikan dengan fungsi g(n) untuk n yang terus membesar. Atau dapat dikatakan bahwa terdapat beberapa konstanta positif c dan beberapa bilangan bulat tak-negatif n 0 sehingga t(n) cg(n) for all n n 0. (4.1) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 18 / 57
Definisi O(g(n)) Dapat diilustrasikan melalui Gambar 1. Figure : Notasi Big-Oh: t(n) O(g(n)). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 19 / 57
Contoh O(g(n)) Example Mari kita buktikan secara formal 100n + 5 O(n 2 ). r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 20 / 57
Contoh O(g(n)) Example Mari kita buktikan secara formal 100n + 5 O(n 2 ). Jelas bahwa 100n + 5 100n + 5(untuk semua n 5), = 101n 101n 2. r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 20 / 57
Contoh O(g(n)) Example Mari kita buktikan secara formal 100n + 5 O(n 2 ). Jelas bahwa 100n + 5 100n + 5(untuk semua n 5), = 101n 101n 2. Sehingga terbukti terdapat c = 101 dan n 0 = 5. Catatan bahwa, definisi memberikan sembarang nilai c dan n 0, sehingga terdapat cara lain untuk membuktikan, Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 20 / 57
Contoh O(g(n)) Example Mari kita buktikan secara formal 100n + 5 O(n 2 ). Jelas bahwa 100n + 5 100n + 5(untuk semua n 5), = 101n 101n 2. Sehingga terbukti terdapat c = 101 dan n 0 = 5. Catatan bahwa, definisi memberikan sembarang nilai c dan n 0, sehingga terdapat cara lain untuk membuktikan, yaitu 100n + 5 100n + 5n(untuk semua n 1), = 105n 105n 2. Sehingga terbukti dengan c = 105 dan n 0 = 1. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 20 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 21 / 57
Definisi Ω(g(n)) Definition Sebuah fungsi t(n) dikatakan berada dalam Ω(g(n)), dinotasikan sebagai t(n) Ω(g(n)), jika t(n) terbatas di bawah oleh suatu konstanta positif dikalikan dengan fungsi g(n) untuk n yang terus membesar. Atau dapat dikatakan bahwa terdapat beberapa konstanta positif c dan beberapa bilangan bulat tak-negatif n 0 sehingga t(n) cg(n) untuk setiap n n 0. (4.2) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 22 / 57
Definisi Ω(g(n)) Dapat diilustrasikan melalui Gambar 2. Figure : Notasi Big-Omega: t(n) Ω(g(n)). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 23 / 57
Contoh Ω(g(n)) Example Akan dibuktikan bahwa n 3 Ω(n 2 ): n 3 n 2 untuk semua n 0. Sehingga terbukti dengan c = 1 dan n 0 = 0. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 24 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 25 / 57
Definisi Θ(g(n)) Definition Sebuah fungsi t(n) dikatakan berada dalam Θ(g(n)), dinotasikan sebagai t(n) Θ(g(n)), jika t(n) terbatas di atas dan bawah oleh suatu konstanta positif dikalikan dengan fungsi g(n) untuk n yang terus membesar. Atau dapat dikatakan bahwa terdapat beberapa konstanta positif c 1 dan c 2 dan beberapa bilangan bulat tak-negatif n 0 sehingga c 2 g(n) t(n) c 1 g(n) untuk setiap n n 0. (4.3) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 26 / 57
Definisi Θ(g(n)) Dapat diilustrasikan melalui Gambar 3. Figure : Notasi Big-Theta: t(n) Θ(g(n)). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 57
Contoh Θ(g(n)) Example Akan dibuktikan bahwa 1 2 n(n 1) Θ(n2 ). Perta akan dibuktikan untuk pertaksamaan sebelah kanan (batas atas): 1 2 n(n 1) = 1 2 n2 1 2 n 1 2 n2 untuk semua n 0. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 28 / 57
Contoh Θ(g(n)) Example Akan dibuktikan bahwa 1 2 n(n 1) Θ(n2 ). Perta akan dibuktikan untuk pertaksamaan sebelah kanan (batas atas): 1 2 n(n 1) = 1 2 n2 1 2 n 1 2 n2 untuk semua n 0. Kedua, akan dibuktikan pertaksamaan sebelah kiri (batas bawah) 1 2 n(n 1) = 1 2 n2 1 2 n 1 2 n2 1 2 n 1 2 n untuk semua n 2. = 1 4 n2 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 28 / 57
Contoh Θ(g(n)) Example Akan dibuktikan bahwa 1 2 n(n 1) Θ(n2 ). Perta akan dibuktikan untuk pertaksamaan sebelah kanan (batas atas): 1 2 n(n 1) = 1 2 n2 1 2 n 1 2 n2 untuk semua n 0. Kedua, akan dibuktikan pertaksamaan sebelah kiri (batas bawah) 1 2 n(n 1) = 1 2 n2 1 2 n 1 2 n2 1 2 n 1 2 n untuk semua n 2. = 1 4 n2 Sehingga terbukti dengan c 2 = 1 4, c 1 = 1 2 dan n 0 = 2. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 28 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 29 / 57
Teorema polinomial Theorem Jika diberikan fungsi polinomial berderajan m, T (n) = a m n m + am 1n m 1 + + a 1 n + a 0 maka T (n) O(n m ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 30 / 57
Teorema Theorem Andaikan T 1 (n) O(f (n)) and T 2 (n) O(g(n)), maka Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 57
Teorema Theorem Andaikan T 1 (n) O(f (n)) and T 2 (n) O(g(n)), maka 1 T 1 (n) + T 2 (n) O(f (n)) + O(f (n)) O(max(f (n), g(n))) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 57
Teorema Theorem Andaikan T 1 (n) O(f (n)) and T 2 (n) O(g(n)), maka 1 T 1 (n) + T 2 (n) O(f (n)) + O(f (n)) O(max(f (n), g(n))) 2 T 1 (n)t 2 (n) O(f (n))o(g(n)) = O(f (n)g(n)) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 57
Teorema Theorem Andaikan T 1 (n) O(f (n)) and T 2 (n) O(g(n)), maka 1 T 1 (n) + T 2 (n) O(f (n)) + O(f (n)) O(max(f (n), g(n))) 2 T 1 (n)t 2 (n) O(f (n))o(g(n)) = O(f (n)g(n)) 3 O(cf (n)) = co(f (n)), c adalah sembarang konstanta Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 57
Teorema Theorem Andaikan T 1 (n) O(f (n)) and T 2 (n) O(g(n)), maka 1 T 1 (n) + T 2 (n) O(f (n)) + O(f (n)) O(max(f (n), g(n))) 2 T 1 (n)t 2 (n) O(f (n))o(g(n)) = O(f (n)g(n)) 3 O(cf (n)) = co(f (n)), c adalah sembarang konstanta 4 f (n) O(f (n)) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 57
Contoh Example Misalkan T 1 (n) O(n) dan T 2 (n) O(n 2 ), maka 1 T 1 (n) + T 2 (n) O(max(n, n 2 )) = O(n 2 ) 2 T 1 (n)t 2 (n) = O(n n 2 ) = O(n 3 ) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 32 / 57
Contoh Example O(5n 2 ) = O(n 2 ) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 57
Contoh Example Diketahui T (n) = (n + 2) log(n 2 + 1) + 5n 2 maka kompleksitas waktu O(n)-nya adalah? r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 57
Contoh Example Diketahui T (n) = (n + 2) log(n 2 + 1) + 5n 2 maka kompleksitas waktu O(n)-nya adalah? Misalkan T (n) = (n + 2) log(n 2 + 1) + 5n 2 = f (n)g(n) + h(n) r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 57
Contoh Example Diketahui T (n) = (n + 2) log(n 2 + 1) + 5n 2 maka kompleksitas waktu O(n)-nya adalah? Misalkan T (n) = (n + 2) log(n 2 + 1) + 5n 2 = f (n)g(n) + h(n) Dengan pencarian satu-satu didapat: 1 f (n) = (n + 2) O(n) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 57
Contoh Example Diketahui T (n) = (n + 2) log(n 2 + 1) + 5n 2 maka kompleksitas waktu O(n)-nya adalah? Misalkan T (n) = (n + 2) log(n 2 + 1) + 5n 2 = f (n)g(n) + h(n) Dengan pencarian satu-satu didapat: 1 f (n) = (n + 2) O(n) 2 g(n) = log(n 2 + 1), karena 3 h(n) = 5n 2 O(n 2 ) log(n 2 + 1) log(2n 2 ) = log 2 + log n 2 = log 2 + 2 log n 3 log n untuk n > 2 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 57
Contoh Example Maka, T (n) = (n + 2) log(n 2 + 1) + 5n 2 O(n)O(log n) + O(n 2 ) = O(n log n) + O(n 2 ) = O(max(n log n, n 2 )) = O(n 2 ) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 35 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 36 / 57
Kelas 1 Kelas Nama Komentar 1 constant Efisinsi kasus terbaik. Kompleksitas O berarti waktu pelaksanaan algoritma adalah tetap, tidak bergantung pada ukuran masukan. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 37 / 57
Kelas log n Kelas Nama Komentar log n logarithmic Kompleksitas waktu logaritmik berarti laju pertumbuhan waktunya berjalan lebih lambat daripada pertumbuhan n. Algoritma yang termasuk kelompok ini adalah algoritma yang memecahkan persoalan besar dengan mentransformasikannya menjadi beberapa persoalan yang lebih kecil yang berukuran sama (misalnya algoritma pencarian biner). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 38 / 57
Kelas n Kelas Nama Komentar n linear Algoritma yang waktu pelaksanaannya lanjar umumnya terdapat pada kasus yang setiap elemen masukannya dikenai proses yang sama, misalnya algoritma pencarian beruntun. Bila n dijadikan dua kali semula, maka waktu pelaksanaan algoritma juga dua kali semula. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 39 / 57
Kelas n log n Kelas Nama Komentar n log n linearithmic Waktu pelaksanaan yang n log n terdapat pada algoritma yang memecahkan persoalan menjadi beberapa persoalan yang lebih kecil, menyelesaikan tiap persoalan secara independen, dan menggabung solusi masing- masing persoalan. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 40 / 57
Kelas n 2 Kelas Nama Komentar n 2 quadratic Algoritma yang waktu pelaksanaannya kuadratik hanya praktis digunakan untuk persoalan yang berukuran kecil. Umumnya algoritma yang termasuk kelompok ini memproses setiap masukan dalam dua buah looping bersarang, misalnya pada algoritma urut maks. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 41 / 57
Kelas n 3 Kelas Nama Komentar n 3 cubic Seperti halnya algoritma kuadratik, algoritma kubik memproses setiap masukan dalam tiga buah looping bersarang, misalnya algoritma perkalian matriks. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 42 / 57
Kelas 2 n Kelas Nama Komentar 2 n exponential Algoritma yang tergolong kelompok ini mencari solusi persoalan secara brute force, misalnya pada algoritma mencari sirkuit Hamilton. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 43 / 57
Kelas n! Kelas Nama Komentar n! factorial Seperti halnya pada algoritma eksponensial, algoritma jenis ini memproses setiap masukan dan menghubungkannya dengan n 1 masukan lainnya, misalnya algoritma Persoalan Pedagang Keliling (Travelling Salesperson Problem). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 44 / 57
Tabel fungsi kenaikan Nilai masing-masing fungsi untuk kenaikan n. log n n n log n n 2 n 3 2 n 0 1 0 1 1 2 0.3010299957 2 0.6020599913 4 8 4 0.6020599913 4 2.4082399653 16 64 16 0.9542425094 9 8.588182585 81 729 512 1.2041199827 16 19.2659197225 256 4096 65536 20 1.5051499783 32 48.1647993062 1024 32768 4294967296 2.6313 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 45 / 57
Plot fungsi kenaikan Figure : Nilai masing-masing fungsi untuk kenaikan n. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 46 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 47 / 57
Limit orde Untuk mempermudah mengidentifikasi kompleksitas waktu O, Ω dan Θ, maka cara membandingkan dapat pula dilakukan. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 48 / 57
Limit orde Untuk mempermudah mengidentifikasi kompleksitas waktu O, Ω dan Θ, maka cara membandingkan dapat pula dilakukan. Definition Terdapat tiga kasus utama dalam membandingkan waktu komputasi: t(n) 0, artinya t(n) memiliki orde lebih rendah dari g(n) lim n g(n) = c, artinya t(n) memiliki orde sama dengan g(n), artinya t(n) memiliki orde lebih tinggi dari g(n) Catatan bahwa dua kasus pertama mengidentifikasikan t(n) O(g(n)), dua kasus terakhir mengidentifikasikan t(n) Ω(g(n)) dan kasus ke-dua mengidentifikasikan t(n) Θ(g(n)) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 48 / 57
Contoh Example Bandingkan orde kenaikan 1 2 n(n 1) dan n2. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 49 / 57
Contoh Example Bandingkan orde kenaikan 1 2 n(n 1) dan n2. lim n 1 2n(n 1) n 2 = 1 2 lim n 2 n n n 2 = 1 2 lim (1 1 n n ) = 1 2 Karena hasil limitnya merupakan konstanta positif, yang berarti bahwa memiliki orde sama, maka dapat dinotasikan sebagai 1 2 n(n 1) Θ(n2 ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 49 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 50 / 57
References References 1 Anany, L. (2003). Introduction to the design and analysis of algorithms. Villanova University. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 51 / 57
Outline 1 Review 2 Pendahuluan Pendahuluan 3 Pengantar tidak formal Pengantar informal 4 Formal Definition Notasi O Notasi Ω Notasi Θ 5 Properti notasi asimptotik Theorems 6 Kelas Dasar Efisiensi Kelas Dasar Efisiensi 7 Menggunakan Limit untuk membnadingkan orde kenaikan Limit orde 8 References References Dr. 9PutuExercise Harry Gunawan (Telkom University) Design and Analysis of Algorithm 52 / 57
Exercises 1 Tentukan notasi Ω dan Θ untuk T (n) = 2n 2 + 6n + 1. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 53 / 57
Exercises 1 Tentukan notasi Ω dan Θ untuk T (n) = 2n 2 + 6n + 1. 2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n 3 + 6n 2 log n. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 53 / 57
Exercises 1 Tentukan notasi Ω dan Θ untuk T (n) = 2n 2 + 6n + 1. 2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n 3 + 6n 2 log n. 3 Tentukan notasi O, Ω dan Θ untuk T (n) = 1 + 2 + + n. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 53 / 57
Exercises 1 Tentukan notasi Ω dan Θ untuk T (n) = 2n 2 + 6n + 1. 2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n 3 + 6n 2 log n. 3 Tentukan notasi O, Ω dan Θ untuk T (n) = 1 + 2 + + n. 4 Tentukan notasi O untuk T (n) = 2 + 4 + + 2n. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 53 / 57
Exercises 1 Tentukan notasi Ω dan Θ untuk T (n) = 2n 2 + 6n + 1. 2 Tentukan notasi O, Ω dan Θ untuk T (n) = 5n 3 + 6n 2 log n. 3 Tentukan notasi O, Ω dan Θ untuk T (n) = 1 + 2 + + n. 4 Tentukan notasi O untuk T (n) = 2 + 4 + + 2n. 5 Tentukan notasi O untuk T (n) = (n + 1)(n + 3)/(n + 2). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 53 / 57
Exercise 1 Tentukan notasi O, Ω dan Θ dari pseudocode x <- 0 for x <- 0 to n: for y <- 0 to n: a=c+d Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 54 / 57
Exercise 2 Tentukan notasi O, Ω dan Θ dari pseudocode x <- 0 for x <- 0 to n: for y <- x to n-3: a=c+d Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 55 / 57
Exercise 3 Tentukan notasi O, Ω dan Θ dari pseudocode x <- 0 for x <- 2 to n+2: for y <- x-1 to n: a=c+d Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 56 / 57
The end of week 3 Thank you for your attention! Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 57 / 57