Kompleksitas Algoritma

Slides:



Advertisements
Presentasi serupa
Bab 1 PENDAHULUAN.
Advertisements

Kompleksitas Algoritma
Algoritma dan Struktur Data
Dosen : Rinci Kembang Hapsari, S.Si
Teori P, NP, dan NP-Complete
Pengantar Strategi Algoritma
Desain Dan Analisis Algoritma
ALGORITMA Lecture Pengulangan.
Algoritma.
Algoritma Pemrograman #Pengantar Algoritma Dosen M.Wildan Eltika S.Kom
Tim Matematika Diskrit
Kompleksitas Algoritma
PENGANTAR ALGORITMA DAN PEMROGRAMAN
Bahan Kuliah IF2211 Strategi Algoritma
Matematika Untuk Kriptografi
Matrik wijanarto.
Algoritma Runut-balik (Backtracking)
Kompleksitas Algoritma
MATEMATIKA DISKRIT Kompleksitas Algoritma Kelompok 9
Algoritma dan Struktur Data
Kompleksitas Waktu Asimptotik
Kompleksitas Algoritma
Kompleksitas Waktu Asimptotik
TEKNIK OPTIMASI.
Bahan Kuliah Matematika Diskrit
Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat
14. KOMPLEKSITAS ALGORITMA.
OLEH Fattaku Rohman,S.PD
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
Apakah Algoritma & Struktur Data itu ?
PERTEMUAN 4 TAHAP PEMROGRAMAN.
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
14. KOMPLEKSITAS ALGORITMA. Untuk keperluan analisis algoritma, kita perlu mengetahui seberapa cepat pertumbuhan atau perkembangan suatu fungsi. Pertumbuhan.
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
P31035 Algorithms and Complexity 3 SKS
Algoritma Brute Force Oleh: Muhammad Musta’in ( )
PERTEMUAN 1.
ALGORITMA & PEMROGRAMAN I-A
Kompleksitas Algoritma
Sistem Operasi Linux Mata Kuliah Sistem Operasi Lanjut
Istiqomah, S.Kom/Tekkom 2013
Pendahuluan TEE 2103 Algoritma dan Pemrograman Dosen: Abdillah, MIT
Strategi Algoritma Kuliah 2 : Kompleksitas Algoritma
Analisa Algoritma (IF1282)
PENGANTAR STRUKTUR DATA
CSG523/ Desain dan Analisis Algoritma
Algoritma & Struktur Data TG22113 Kartika Firdausy - UAD
Kompleksitas Algoritma
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Array 1.
Faktor analisa algoritma
Pengenalan Analisis Algoritma
Pengantar.
Analisa Algoritma : Pendahuluan
MATERI PERKULIAHAN ANALISIS ALGORITMA
PARADIGMA DALAM PEMOGRAMAN
Notasi Asymtotik Pertemuan 2.
Modul 4 : Analisis Algoritma & Struktur Data
Algoritma Brute Force.
ALGORITMA GREEDY : MINIMUM SPANNING TREE
Analisis dan Perancangan Algoritma
STRUKTUR DATA Konsep Dan Arsitektur.
Kompleksitas Algoritma
Kompleksitas Algoritma
Kompleksitas Waktu Asimtotik
Pendahuluan Komputer adalah alat bantu untuk menyelesaikan masalah.
Dr. Mufid Nilmada, SSi., MMSI
Pengantar Strategi Algoritma
KOMPUTASI PEMROGRAMAN
Algoritma & Pemrograman 1 Chapter 1 Achmad Fitro The Power of PowerPoint – thepopp.com.
Transcript presentasi:

Kompleksitas Algoritma Bahan Kuliah IF2151 Matematika Disktit Rinaldi M/IF2151 Matdis

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

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

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

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

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

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

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

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

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Kompleksitas Waktu Asimptotik Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

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

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

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

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

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

Rinaldi M/IF2151 Matdis

Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Notasi Omega-Besar dan Tetha-Besar Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis

TEOREMA. Bila T(n) = am nm + am-1 nm-1 + TEOREMA. Bila T(n) = am nm + am-1 nm-1 + ... + a1n+ a0 adalah polinom derajat m maka T(n) adalah berorde nm. Rinaldi M/IF2151 Matdis

Latihan Soal Rinaldi M/IF2151 Matdis

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

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) = 2 + 4 + 6 + … + 2n (b)   T(n) = (n + 1)(n + 3)/(n + 2) Rinaldi M/IF2151 Matdis

Rinaldi M/IF2151 Matdis