Strategi Algoritma Kuliah 2 Kompleksitas Algoritma E Haodudin
- Slides: 31
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 1. Asymptotic/theoretic/mathematic : berdasarkan pendekatan secara teori atau atas dasar analisa secara matematik 2. Empirical/Practical/Empiris/Praktis : berdasarkan pendekatan praktis yang biasanya didasarkan atas 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 · , O, , o, w
Notasi Asymptotic · , O, , o, w • Didefinisikan untuk fungsi diatas nilai biasa – Contoh: f(n) = (n 2). – Menggambarkan bagaimana fungsi f(n) tumbuh pd pembandingan untuk n 2. • 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) 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 n 0, sedemikian rupa n n 0, sehingga 0 f(n) cg(n) } : ada, : untuk semua Ada konstanta n
Lanjt f(n) Secara intuitif : himpunan seluruh fungsi yg rate of growth – nya adalah sama atau lebih kecil dari g(n) adalah asymptotic upper bound untuk f(n) = (g(n)) f(n) = O(g(n)). (g(n)) O(g(n)).
Lanjt • • • 2. 99 = 3 (pembulatan ke atas dalah 3) 2. 50 = 3 2. 0001 = 3 3 n + 7 = ? (tidak bakal lebih 4 n) 2 n 2 + 5 = ? • Big Oh O adalah merupakan Upper bound dari suatu fungsi
Contoh f(n) = 3 n + 4 berapa / apa big oh-nya ? n 0 = 2 3 n+4 <= Cn ? C =3 3*2+4 <=3*3 10<=9 ? Bgm dgn n 0 = 2 C =4 Bgm dgn n 0 = 3 C =4 Bgm dgn n 0 = 4 C =4 Tidak akan pernah terpenuhi berapapun nilai n 3 n+4 <= cn ? 3*2+4 <=4*2 ? 3 n+4 <= cn ? 3*3+4 <=4*3 ? 3 n+4 <= cn ? 3*4+4 <=4*4 ? Apa kesimp ulannya ?
Lanjt Sehingga dari f(n) = 3 n+4 akan terpenuhi f(n) <= 4 n untuk n >= 4 berarti f(n)=O(4 n) untuk n 0=4 f(n) 4 n 3 n+4 n=4 n
Contoh dan Latihan Apa fungsi big Oh dari 4 n ? 2 n+7 ? n 2+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 n 0, sedemikian hingga n n 0, maka 0 cg(n) f(n)}
Lanjt f(n) Secara intuitif : himpunan dari semua nilai fungsi yang rate of growth-nya adalah sama atau lebih tinggi dari g(n) adalah asymptotic lower bound untuk f(n) = (g(n)).
Lanjt • • • 2. 0001 = 2. 50 = 2. 99 = 3 n + 7 = 2 n 2 + 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 c 1, c 2 dan n 0, sedmikian rupa n n 0, maka 0 c 1 g(n) f(n) c 2 g(n)}
Lanjt • Big theta adalah merupakan tight bound dari suatu fungsi f(n) merupakan (g(n)) pada nilai antara c 1 smp c 2 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 c 1, c 2, dan n 0, yg mana n n 0, 0 c 1 g(n) f(n) c 2 g(n)} • 10 n 2 - 3 n = (n 2) • Apa nilai konstanta n 0, c 1, dan c 2 sehingga akan terpenuhi fungsi tsb? • Buat c 1 sedkit lebih kecil dari koefisien utama, dan c 2 sedikit lebih besar. • Untuk membandingkan tingkat pertumbuhan, lihat term utama. • Latihan: Buktikan bahwa n 2/2 -3 n = (n 2)
Relasi antara , O,
Relasi antara , O, 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)) Ç (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)=n 2 berarti fungsi runing time dari sejumlah n data adalah n 2 • 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 sbg. Worst case-nya • O(f(n)) batasan pd worst-case running time O(f(n)) batasan pada running time dari setiap input. . (f(n)) batasan pd worst-case running time (f(n)) batasan pd running time dari setiap input. • “Running time -nya (f(n))” (f(n)) sbg Best case-nya
Analisis Empiris ?
- Kompleksitas algoritma dianalisis untuk kasus
- Kompleksitas waktu asimptotik
- Pengertian algoritma brute force
- Contoh kompleksitas algoritma
- Kinerja sebuah algoritma biasanya diukur dengan menggunakan
- Cara menghitung kompleksitas algoritma
- Strategi algoritma adalah
- Algo strategy
- Contoh dimensi formalisasi
- Dimensi-dimensi organisasi
- Kompleksitas
- Cara memasuki dunia usaha
- Arti kompleksitas, daya dukung, dan intake dalam kkm
- Kuliah psikologi medan
- Jenis ancaman keamanan komputer
- Nilai a b c d e dalam kuliah umm
- Mata kuliah pengantar arsitektur
- Ppt rekonsiliasi bank
- Soal ujian perkembangan peserta didik
- Rekonstruksi mata kuliah
- Deskripsi mata kuliah statistik
- Latihan soal matematika diskrit
- Mata kuliah pengantar arsitektur
- Deskripsi mata kuliah ekonomi mikro
- Milestone promosi kesehatan
- Beton
- Simkiah
- Materi pengantar ilmu pendidikan semester 1
- Matkul ekonomi pembangunan ub
- Mata kuliah teknik digital
- Gagal beasiswa csc
- Mata kuliah sik