Strategi Algoritma Kuliah 2 : Kompleksitas Algoritma

Slides:



Advertisements
Presentasi serupa
Desain Dan Analisis Algoritma
Advertisements

Kompleksitas Algoritma
Eko Aribowo Teknik Informatika Universitas Ahmad Dahlan
Aryo Pinandito, ST, M.MT - PTIIK UB
Metode Analisis Asymtotic
Algoritma Divide and Conquer
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
Induksi Matematis Mohammad Fal Sadikin.
Desain dan Analisis Algoritma
Tim Matematika Diskrit
Kompleksitas Algoritma
Desain dan Analisis Algoritma
Pertemuan 3 LINKED LIST (PART 2) Struktur Data Departemen Ilmu Komputer FMIPA-IPB 2009.
MATEMATIKA DISKRIT Kompleksitas Algoritma Kelompok 9
Algoritma dan Struktur Data
Kompleksitas Waktu Asimptotik
Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat
14. KOMPLEKSITAS ALGORITMA.
Desain dan Analisis Algoritma
PERTEMUAN 2 PENGERTIAN DASAR LOGIKA DAN ALGORITMA.
Sorting 2007/2008 – Ganjil – Minggu 5.
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
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.
Analisa Algoritma Running Time.
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Perbandingan Algoritma Brute Force dan Depth First Search (DFS) dalam Kasus Travelling Salesman Problem (TSP) Ervin Yohannes ( )
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Kompleksitas Algoritma
Notasi Asimptotik Team Fasilkom.
Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Analisis Algoritma Team Fasilkom.
Heuristic Search (Part 2)
MATERI PERKULIAHAN ANALISIS ALGORITMA
Analisa Algoritma (IF1282)
PENGANTAR STRUKTUR DATA
CSG523/ Desain dan Analisis Algoritma
MATERI PERKULIAHAN ANALISIS ALGORITMA
Algoritma dan Struktur Data
MATERI PERKULIAHAN ANALISIS ALGORITMA
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Kompleksitas Algoritma
PART 6 Algoritma DOSEN : AHMAD APANDI, ST.
Faktor analisa algoritma
Matakuliah : T0034/Perancangan & Analisis Algoritma
Analisis dan Perancangan Algoritma Kuliah 4 : Asymptotic pd Kasus
Analisa Algoritma Konsep Algoritma.
Analisa Algoritma : Pendahuluan
MATERI PERKULIAHAN ANALISIS ALGORITMA
NOTASI ASIMTOTIK (ASYMTOTIC NOTATION)
Mata kuliah : K0144/ Matematika Diskrit Tahun : 2008
Notasi Asymtotik Pertemuan 2.
STRUKTUR DATA (10) recursive function
ALGORITMA DAN PEMROGRAMAN III
Analisa Algoritma 3 SKS.
Modul 4 : Analisis Algoritma & Struktur Data
Strategi Algoritma Kuliah 3 : Algoritma Efisien
Analisa Algoritma Asimtotik.
Kompleksitas Algoritma
Kompleksitas Waktu Asimtotik
Analisa algoritma rekursif
Dr. Mufid Nilmada, SSi., MMSI
Analisis Algoritma E. Haodudin Nurkifli Teknik Informatika
Notasi Asimptotik Team Fasilkom.
Notasi Asimptotik Team Fasilkom.
Desain dan Analisis Algoritma
Memori dan Scope Variabel
Transcript presentasi:

Strategi Algoritma Kuliah 2 : Kompleksitas Algoritma E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan

Jenis algoritma Divide and conquer : menyederhanakan problem yang besar. Greedy methode : mencari yang optimal pada saat itu. Algoritma : jumlah langkah yang berhingga (finite) instruksinya jelas Contoh : for i do 10 then .....

Tujuan Menganalisis algoritma Efisiensi waktu Efisiensi storage

Analisis algoritma Menentukan karakteristik kinerja (memprediksi sumber daya) Mengapa ? Memilih algoritma yang paling efisien dari beberapa alternatif penyelesaian untuk kasus yang sama Mencari waktu yang terbaik untuk keperluan praktis Apakah algoritma itu optimal untuk beberapa kasus atau ada yang lebih baik

Runing time fungsi dari input size Memanggil instruksi sederhana dan mengakses ke memory word sebagai “primitive operation” atau “step” Jumlah step eksekusi algoritma pada input tersebut Dikenal juga “complexity and input”

Kompleksitas tergantung Ukuran input  bergantung pada problem Misalkan jumlah data yang diurutkan Karakter lain dari input Apakah data sudah terurut Apakah ada lingkaran dalam grafik

Kompleksitas Worst-case : kompleksitas waktu untuk waktu terburuk (waktu tempuh bernilai maksimum dari suatu fungsi f(n)) atau Tmax(n) Best-case : kompleksitas waktu untuk waktu terbaik (kompleksitas waktu yang bernilai minimum dari suatu fungsi f(n)) atau Tmin(n) Average-case : kompleksitas waktu untuk kasus rata-rata

Metode Analisis Asymptotic/theoretic/mathematic : berdasarkan pendekatan secara teori atau atas dasar analisa secara matematik Empirical/Practical/Empiris/Praktis : berdasarkan pendekatan praktis yang biasanya didasarkan atas data-data yang telah ada atau data-data yang di-generete / dibangkitkan

Asymptotic Menggambarkan karakteristik/perilaku suatu algoritma pada batasan tertentu (berupa suatu fungsi matematis) Dituliskan dengan notasi matematis yg dikenal dgn notasi asymptotic Notasi asymptotic dapat dituliskan dengan beberpa simbul berikut Q, O, W, o, w

Notasi Asymptotic Q, O, W, o, w Didefinisikan untuk fungsi diatas nilai biasa Contoh: f(n) = Q(n2). Menggambarkan bagaimana fungsi f(n) tumbuh pd pembandingan untuk n2. Mendefinisikan himpunan fungsi ; Pada prakteknya untuk membandingan 2 ukuran fungsi. Notasi menggambarkan perbedaan rate-of-growth hubungan antara definisi fungsi dan definisi himpunan fungsi.

Notasi O (big Oh) Ada konstanta n Untuk fungsi g(n),kita definisikan O(g(n)) sbg big-Oh dari n, sbg himpunan: O(g(n)) = {f(n) :  konstanta positif c dan n0, sedemikian rupa n  n0, sehingga 0  f(n)  cg(n) }  : ada,  : untuk semua Ada konstanta n

Lanjt g(n) adalah asymptotic upper bound untuk f(n). f(n) Secara intuitif : himpunan seluruh fungsi yg rate of growth –nya adalah sama atau lebih kecil dari g(n). g(n) adalah asymptotic upper bound untuk f(n). f(n) = (g(n))  f(n) = O(g(n)). (g(n))  O(g(n)).

Lanjt 3 (pembulatan ke atas dalah 3) 2.99 = 2.50 = 2.0001 = 2.99 = 2.50 = 2.0001 = 3n + 7 = ? (tidak bakal lebih 4n) 2n2 + 5 = ? 3 3 Big Oh  O adalah merupakan Upper bound dari suatu fungsi

Contoh ? f(n) = 3n + 4 berapa / apa big oh-nya ? 3n+4 <= Cn ? 3*2+4 <=3*3  10<=9 ? Tidak akan pernah terpenuhi berapapun nilai n 3n+4 <= cn ? 3*2+4 <=4*2 ? Apa kesimpulannya Bgm dgn n0 = 2 C =4 3n+4 <= cn ? 3*3+4 <=4*3 ? Bgm dgn n0 = 3 C =4 ? Bgm dgn n0 = 4 C =4 3n+4 <= cn ? 3*4+4 <=4*4 ?

Lanjt Sehingga dari f(n) = 3n+4 akan terpenuhi f(n) <= 4n untuk n >= 4 berarti f(n)=O(4n) untuk n0=4 4n 3n+4 n=4 f(n) n

Contoh dan Latihan Apa fungsi big Oh dari 4n ? 2n+7 ? n2 ? n2+3 ?

Notasi  (big Omega) Untuk fungsi g(n),kita definisikan (g(n)) sbg big-Omega dari n, sbg himpunan: (g(n)) = {f(n) :  konstanta positif c dan n0, sedemikian hingga n  n0, maka 0  cg(n)  f(n)}

Lanjt g(n) adalah asymptotic lower bound untuk f(n). f(n) Secara intuitif : himpunan dari semua nilai fungsi yang rate of growth-nya adalah sama atau lebih tinggi dari g(n). g(n) adalah asymptotic lower bound untuk f(n). f(n) = (g(n))  f(n) = (g(n)). (g(n))  (g(n)).

Lanjt 2.0001 = 2 (batas bawah tidak akan kurang dari 2) 2.50 = 2.50 = 2.99 = 3n + 7 = 2n2 + 5 = 2 (batas bawah tidak akan kurang dari 2) 2 2 ? ? Big Omega   adalah merupakan Lower bound dari suatu fungsi

Notasi  (big theta) Untuk fungsi g(n),kita definisikan (g(n)) sbg big-theta dari n, sbg himpunan sprt berikut (g(n)) = {f(n) :  konstanta positif c1, c2 dan n0, sedmikian rupa n  n0, maka 0  c1g(n)  f(n)  c2g(n)}

Lanjt Big theta   adalah merupakan tight bound dari suatu fungsi f(n) merupakan (g(n)) pada nilai antara c1 smp c2 g(n) adalah asymptotically tight bound untuk f(n).

Lanjt Secara intuitif : himpunan seluruh fungsi yang rate of growth-nya sama dengan g(n). Secara teknik, f(n)  (g(n)). Penggunan sebelumnya, f(n) = (g(n)). Mana yg akan kita teima … ? f(n) dan g(n) nonnegative, untuk nilai n besar.

Contoh (g(n)) = {f(n) :  konstanta positif c1, c2, dan n0, yg mana n  n0, 0  c1g(n)  f(n)  c2g(n)} 10n2 - 3n = (n2) Apa nilai konstanta n0, c1, dan c2 sehingga akan terpenuhi fungsi tsb? Buat c1 sedkit lebih kecil dari koefisien utama, dan c2 sedikit lebih besar. Untuk membandingkan tingkat pertumbuhan, lihat term utama. Latihan: Buktikan bahwa n2/2-3n = (n2)

Relasi antara Q, O, W

Relasi antara Q, O, W yakni, (g(n)) = O (g(n)) Ç W (g(n)) Teorema : untuk 2 fungsi g(n) dan f(n), f(n) = (g(n)) jika f(n) = O(g(n)) dan f(n) = (g(n)). yakni, (g(n)) = O (g(n)) Ç W (g(n)) Dalam prakteknya, nilai  (atau tight bounds) didapat dari asymptotic upper bound dan lower bound.

Running Time Running time dari suatu algoritma, secara matematis adalah suatu fungsi input n untuk sejumlah n data Misal f(n)=n2  berarti fungsi runing time dari sejumlah n data adalah n2 Running time merupakan fungsi kebutuhan sumberdaya yang diperlukan suatu algoritma (atau implementasinya) untuk memproses sejumlah data n

Lanjt “Running time-nya O(f(n))”  O(f(n)) adalah sbgWorst case-nya O(f(n)) batasan pd worst-case running time  O(f(n)) batasan pada running time dari setiap input. Q(f(n)) batasan pd worst-case running time  Q(f(n)) batasan pd running time dari setiap input. “Running time -nya W (f(n))”  W(f(n)) sbg Best case-nya

Analisis Empiris ?