Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Rinaldi M/IF2151 Matdis1 Kompleksitas Algoritma Bahan Kuliah IF2151 Matematika Disktit.

Presentasi serupa


Presentasi berjudul: "Rinaldi M/IF2151 Matdis1 Kompleksitas Algoritma Bahan Kuliah IF2151 Matematika Disktit."— Transcript presentasi:

1 Rinaldi M/IF2151 Matdis1 Kompleksitas Algoritma Bahan Kuliah IF2151 Matematika Disktit

2 Rinaldi M/IF2151 Matdis2 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.

3 Rinaldi M/IF2151 Matdis3 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.

4 Rinaldi M/IF2151 Matdis4 Mengapa kita memerlukan algoritma yang mangkus? Lihat grafik di bawah ini.

5 Rinaldi M/IF2151 Matdis5 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.

6 Rinaldi M/IF2151 Matdis6

7 7

8 8

9 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.

10 Rinaldi M/IF2151 Matdis10 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.

11 Rinaldi M/IF2151 Matdis11 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 a k (yaitu jumlah  jumlah+a k ), Kompleksitas waktu HitungRerata adalah T(n) = n.

12 Rinaldi M/IF2151 Matdis12

13 Rinaldi M/IF2151 Matdis13

14 Rinaldi M/IF2151 Matdis14

15 Rinaldi M/IF2151 Matdis15

16 Rinaldi M/IF2151 Matdis16

17 Rinaldi M/IF2151 Matdis17

18 Rinaldi M/IF2151 Matdis18

19 Rinaldi M/IF2151 Matdis19

20 Rinaldi M/IF2151 Matdis20

21 Rinaldi M/IF2151 Matdis21

22 Rinaldi M/IF2151 Matdis22 Kompleksitas Waktu Asimptotik

23 Rinaldi M/IF2151 Matdis23

24 Rinaldi M/IF2151 Matdis24

25 Rinaldi M/IF2151 Matdis25

26 Rinaldi M/IF2151 Matdis26 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)

27 Rinaldi M/IF2151 Matdis27 Contoh 10: Tentukan notasi O untuk T(n) = log(n 2 + 1). Penyelesaian: log(n 2 + 1)  log(n 2 + n 2 ) untuk n  1 = log(n 2 ) = 2 log(n) Jadi, T(n) = log(n 2 + 1) = O(log n) Contoh 11. Tentukan notasi O untuk T(n) = log (n!) Penyelesaian: 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))

28 Rinaldi M/IF2151 Matdis28 Contoh 12: Tentukan notasi O untuk T(n) = 1 k + 2 k + … + n k Penyelesaian: 1 k + 2 k + … + n k  n k + n k + … + n k = n. n k+1 Jadi, T(n) = 1 k + 2 k + … + n k = O(n k+1 )

29 Rinaldi M/IF2151 Matdis29 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(n 2 ) juga benar T(n) = 2 + 3n =O(n 3 ) 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(n 2 )

30 Rinaldi M/IF2151 Matdis30 Tunjukkan bahwa T(n) = 3n 2 = O(n 3 ), tetapi T(n) = n 3  O(n 2 ) Penyelesaian: T(n) = 3n 2 = O(n 3 ) karena 3n 2  n 3 untuk semua n  1 T(n) = n 3  O(n 2 ) karena tidak ada C dan n 0 sedemikian sehingga n 3  C n 2 untuk semua n  n 0

31 Rinaldi M/IF2151 Matdis31

32 Rinaldi M/IF2151 Matdis32 Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik

33 Rinaldi M/IF2151 Matdis33

34 Rinaldi M/IF2151 Matdis34

35 Rinaldi M/IF2151 Matdis35

36 Rinaldi M/IF2151 Matdis36

37 Rinaldi M/IF2151 Matdis37

38 Rinaldi M/IF2151 Matdis38

39 Rinaldi M/IF2151 Matdis39

40 Rinaldi M/IF2151 Matdis40

41 Rinaldi M/IF2151 Matdis41

42 Rinaldi M/IF2151 Matdis42

43 Rinaldi M/IF2151 Matdis43

44 Rinaldi M/IF2151 Matdis44

45 Rinaldi M/IF2151 Matdis45

46 Rinaldi M/IF2151 Matdis46

47 Rinaldi M/IF2151 Matdis47

48 Rinaldi M/IF2151 Matdis48

49 Rinaldi M/IF2151 Matdis49

50 Rinaldi M/IF2151 Matdis50

51 Rinaldi M/IF2151 Matdis51

52 Rinaldi M/IF2151 Matdis52

53 Rinaldi M/IF2151 Matdis53

54 Rinaldi M/IF2151 Matdis54

55 Rinaldi M/IF2151 Matdis55 Notasi Omega-Besar dan Tetha-Besar

56 Rinaldi M/IF2151 Matdis56

57 Rinaldi M/IF2151 Matdis57

58 Rinaldi M/IF2151 Matdis58

59 Rinaldi M/IF2151 Matdis59 TEOREMA. Bila T(n) = a m n m + a m-1 n m a 1 n+ a 0 adalah polinom derajat m maka T(n) adalah berorde n m.

60 Rinaldi M/IF2151 Matdis60 Latihan Soal

61 Rinaldi M/IF2151 Matdis61 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;

62 Rinaldi M/IF2151 Matdis62 3. Untuk soal (a) dan (b) berikut, tentukan C, f(n), n 0, dan notasi O-besar sedemikian sehingga T(n) = O(f(n)) jika T(n)  C  f(n) untuk semua n  n 0 : (a) T(n) = … + 2n (b) T(n) = (n + 1)(n + 3)/(n + 2)

63 Rinaldi M/IF2151 Matdis63


Download ppt "Rinaldi M/IF2151 Matdis1 Kompleksitas Algoritma Bahan Kuliah IF2151 Matematika Disktit."

Presentasi serupa


Iklan oleh Google