Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
Kompleksitas Algoritma
Bahan Kuliah IF2151 Matematika Disktit Rinaldi M/IF2151 Matdis
2
Pendahuluan Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus. Kemangkusan algoritma diukur dari berapa jumlah waktu dan ruang (space) memori yang dibutuhkan untuk menjalankannya. Rinaldi M/IF2151 Matdis
3
Algoritma yang mangkus ialah algoritma yang meminimumkan kebutuhan waktu dan ruang.
Kebutuhan waktu dan ruang suatu algoritma bergantung pada ukuran masukan (n), yang menyatakan jumlah data yang diproses. Kemangkusan algoritma dapat digunakan untuk menilai algoritma yang bagus. Rinaldi M/IF2151 Matdis
4
Mengapa kita memerlukan algoritma yang mangkus
Mengapa kita memerlukan algoritma yang mangkus? Lihat grafik di bawah ini. Rinaldi M/IF2151 Matdis
5
Model Perhitungan Kebutuhan Waktu/Ruang
Kita dapat mengukur waktu yang diperlukan oleh sebuah algoritma dengan menghitung banyaknya operasi/instruksi yang dieksekusi. Jika kita mengetahui besaran waktu (dalam satuan detik) untuk melaksanakan sebuah operasi tertentu, maka kita dapat menghitung berapa waktu sesungguhnya untuk melaksanakan algoritma tersebut. Rinaldi M/IF2151 Matdis
6
Rinaldi M/IF2151 Matdis
7
Rinaldi M/IF2151 Matdis
8
Rinaldi M/IF2151 Matdis
9
Model abstrak pengukuran waktu/ruang harus independen dari pertimbangan mesin dan compiler apapun.
Besaran yang dipakai untuk menerangkan model abstrak pengukuran waktu/ruang ini adalah kompleksitas algoritma. Ada dua macam kompleksitas algoritma, yaitu: kompleksitas waktu dan kompleksitas ruang. Rinaldi M/IF2151 Matdis
10
Kompleksitas waktu, T(n), diukur dari jumlah tahapan komputasi yang dibutuhkan untuk menjalankan algoritma sebagai fungsi dari ukuran masukan n. Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n. Dengan menggunakan besaran kompleksitas waktu/ruang algoritma, kita dapat menentukan laju peningkatan waktu (ruang) yang diperlukan algoritma dengan meningkatnya ukuran masukan n. Rinaldi M/IF2151 Matdis
11
Kompleksitas Waktu Dalam praktek, kompleksitas waktu dihitung berdasarkan jumlah operasi abstrak yang mendasari suatu algoritma, dan memisahkan analisisnya dari implementasi. Contoh 2. Tinjau algoritma menghitung rerata pada Contoh 1. Operasi yang mendasar pada algoritma tersebut adalah operasi penjumlahan elemen-elemen ak (yaitu jumlahjumlah+ak), Kompleksitas waktu HitungRerata adalah T(n) = n. Rinaldi M/IF2151 Matdis
12
Rinaldi M/IF2151 Matdis
13
Rinaldi M/IF2151 Matdis
14
Rinaldi M/IF2151 Matdis
15
Rinaldi M/IF2151 Matdis
16
Rinaldi M/IF2151 Matdis
17
Rinaldi M/IF2151 Matdis
18
Rinaldi M/IF2151 Matdis
19
Rinaldi M/IF2151 Matdis
20
Rinaldi M/IF2151 Matdis
21
Rinaldi M/IF2151 Matdis
22
Kompleksitas Waktu Asimptotik
Rinaldi M/IF2151 Matdis
23
Rinaldi M/IF2151 Matdis
24
Rinaldi M/IF2151 Matdis
25
Rinaldi M/IF2151 Matdis
26
Contoh 9. Tentukan notasi O untuk T(n) = 2n + 3 log(n) Penyelesaian:
2n + 3 log(n) 2n + 3n = 5n (untuk n 1) Jadi, T(n) = 2n + 3 log(n) = O(n) Rinaldi M/IF2151 Matdis
27
Contoh 10: Tentukan notasi O untuk T(n) = log(n2 + 1). Penyelesaian:
log(n2 + 1) log(n2 + n2) untuk n 1 = log(n2) = 2 log(n) Jadi, T(n) = log(n2 + 1) = O(log n) Contoh 11. Tentukan notasi O untuk T(n) = log (n!) log(n!) = log(1 . 2 … . n) = log(1) + log(2) + … + log(n – 1) + log (n) log(n) + log(n) + … + log(n) = n log(n) Jadi, T(n) = log(n!) = O(n log (n)) Rinaldi M/IF2151 Matdis
28
Contoh 12: Tentukan notasi O untuk T(n) = 1k + 2k + … + nk
Penyelesaian: 1k + 2k + … + nk nk + nk + … + nk = n . nk+1 Jadi, T(n) = 1k + 2k + … + nk = O(nk+1) Rinaldi M/IF2151 Matdis
29
T(n) = 2 + 3n = O(n2) juga benar T(n) = 2 + 3n =O(n3) juga benar, dst
Perhatikan, bahwa karena notasi O-besar menunjukkan batas fungsi lebih atas (upper-bound function), maka tidak ditentukan seberapa besar batas atas itu. Jadi, T(n) = 2 + 3n =O(n) T(n) = 2 + 3n = O(n2) juga benar T(n) = 2 + 3n =O(n3) juga benar, dst Tetapi, agar notasi O-besar bermakna, maka dalam praktek kita memilih fungsi f(n) sekecil mungkin. Jadi, kita menulis: T(n) = 2 + 3n =O(n), bukan O(n2) Rinaldi M/IF2151 Matdis
30
Tunjukkan bahwa T(n) = 3n2 = O(n3), tetapi T(n) = n3 O(n2)
Penyelesaian: T(n) = 3n2 = O(n3) karena 3n2 n3 untuk semua n 1 T(n) = n3 O(n2) karena tidak ada C dan n0 sedemikian sehingga n3 C n2 untuk semua n n0 Rinaldi M/IF2151 Matdis
31
Rinaldi M/IF2151 Matdis
32
Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik
Rinaldi M/IF2151 Matdis
33
Rinaldi M/IF2151 Matdis
34
Rinaldi M/IF2151 Matdis
35
Rinaldi M/IF2151 Matdis
36
Rinaldi M/IF2151 Matdis
37
Rinaldi M/IF2151 Matdis
38
Rinaldi M/IF2151 Matdis
39
Rinaldi M/IF2151 Matdis
40
Rinaldi M/IF2151 Matdis
41
Rinaldi M/IF2151 Matdis
42
Rinaldi M/IF2151 Matdis
43
Rinaldi M/IF2151 Matdis
44
Rinaldi M/IF2151 Matdis
45
Rinaldi M/IF2151 Matdis
46
Rinaldi M/IF2151 Matdis
47
Rinaldi M/IF2151 Matdis
48
Rinaldi M/IF2151 Matdis
49
Rinaldi M/IF2151 Matdis
50
Rinaldi M/IF2151 Matdis
51
Rinaldi M/IF2151 Matdis
52
Rinaldi M/IF2151 Matdis
53
Rinaldi M/IF2151 Matdis
54
Rinaldi M/IF2151 Matdis
55
Notasi Omega-Besar dan Tetha-Besar
Rinaldi M/IF2151 Matdis
56
Rinaldi M/IF2151 Matdis
57
Rinaldi M/IF2151 Matdis
58
Rinaldi M/IF2151 Matdis
59
TEOREMA. Bila T(n) = am nm + am-1 nm-1 +
TEOREMA. Bila T(n) = am nm + am-1 nm a1n+ a0 adalah polinom derajat m maka T(n) adalah berorde nm. Rinaldi M/IF2151 Matdis
60
Latihan Soal Rinaldi M/IF2151 Matdis
61
2. Berapa kali instruksi assignment pada potongan program dalam notas Bahasa Pascal di bawah ini dieksekusi? Tentukan juga notasi O-besar. for i := 1 to n do for j := 1 to n do for k := 1 to j do x := x + 1; Rinaldi M/IF2151 Matdis
62
3. Untuk soal (a) dan (b) berikut, tentukan C, f(n), n0, dan notasi O-besar sedemikian sehingga T(n) = O(f(n)) jika T(n) C f(n) untuk semua n n0: (a) T(n) = … + 2n (b) T(n) = (n + 1)(n + 3)/(n + 2) Rinaldi M/IF2151 Matdis
63
Rinaldi M/IF2151 Matdis
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.