Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Kompleksitas Algoritma

Presentasi serupa


Presentasi berjudul: "Kompleksitas Algoritma"— Transcript presentasi:

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 jumlahjumlah+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


Download ppt "Kompleksitas Algoritma"

Presentasi serupa


Iklan oleh Google