Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07



dokumen-dokumen yang mirip
Algoritma Divide and Conquer (Bagian 1)

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

Algoritma Divide and Conquer (Bagian 2)

Algoritma Divide and Conquer. (Bagian 2)

ALGORITMA DIVIDE AND CONQUER

MAKALAH ALGORITMA DIVIDE AND CONQUER

Algoritma Divide and Conquer

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

Decrease and Conquer

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

RESUME ALGORITMA MERGE SORT DAN REKURENS

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 03

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

STRATEGI DIVIDE AND CONQUER

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Solusi UTS Stima. Alternatif 1 strategi:

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

BAB I PENDAHULUAN Latar Belakang

Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Design and Analysis Algorithm

ANALISIS PERBANDINGAN ALGORITMA BUBBLE SORT, MERGE SORT, DAN QUICK SORT DALAM PROSES PENGURUTAN KOMBINASI ANGKA DAN HURUF

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Sorting Algorithms. Divide and Conquer

Design and Analysis Algorithm

Penerapan Algoritma Divide and Conquer pada Algoritma Convex Hull

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

BAB 3 ANALISA SISTEM

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

METODE DEVIDE AND CONQUER (DANDC)

UNIVERSITAS GUNADARMA

Aplikasi Strategi Algoritma dalam Pembagian Kelompok Tugas Besar

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

SORTING ARRAY FAKULTAS TEKNOLOGI INFORMASI UNISBANK SEMARANG : ANDY KRISTIANTO : Disusun Oleh :

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

BAB VII ALGORITMA DIVIDE AND CONQUER

Kompleksitas Algoritma

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 05

Perbandingan Algoritma Pengurutan Merge Sort, Quick Sort dan Heap Sort Dilihat dari Kompleksitasnya

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

Kompleksitas Algoritma Dalam Algoritma Pengurutan

Analisis Kompleksitas Waktu Untuk Beberapa Algoritma Pengurutan

Kompleksitas Algoritma Sorting yang Populer Dipakai

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Kompleksitas Algoritma

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

Analisis Kecepatan Sorting Dengan Notasi Big O

Kemangkusan Algoritma Pada Beberapa Variasi Quick Sort

Algoritma Brute Force

SORTING DENGAN ALGORITMA DIVIDE AND CONQUER

Outline STRUKTUR DATA. VII. Sorting

BAB 2 LANDASAN TEORI

Penyelesaian Masalah Closest Pair dengan Algoritma Divide and Conquer

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

BAB 1 PENDAHULUAN. Universitas Sumatera Utara

ANALISIS PERBANDINGAN METODE ALGORITMA QUICK SORT DAN MERGE SORT DALAM PENGURUTAN DATA TERHADAP JUMLAH LANGKAH DAN WAKTU

Design and Analysis Algorithm

Algoritma Transposisi (Bubble Sort/pengurutan gelembung)

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

Algoritma Sorting. Ahmad Kamsyakawuni, S.Si, M.Kom. Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Universitas Jember

ANALISIS ALGORITMA BINARY SEARCH

Algoritma Brute Force

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 08

Heap Tree dan Kegunaannya dalam Heap Sort

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Kompleksitas Algoritma Quick Sort

ANALISIS ALGORITMA QUICK SORT, MERGE SORT DAN IMPLEMENTASINYA DALAM BAHASA PEMROGRAMAN PYTHON. Disusun Oleh : Nouval Raafi Adly ( )

Teknik Pengurutan Kartu Remi

STRUKTUR DATA SORTING ARRAY

Kompleksitas Algoritma (1)

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 09

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

SORTING. Hartanto Tantriawan, S.Kom., M.Kom

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

BAB 2 TINJAUAN PUSTAKA

Analisis Kompleksitas Algoritma dalam Operasi BigMod

Algoritma Bubble Sort dan Quick Sort

Modul Praktikum 6 Pemograman Berorientasi Objek

Algoritma dan Struktur Data

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

UNIVERSITAS GUNADARMA

1. Kompetensi Mengenal dan memahami algoritma percabangan yang komplek.

Algoritma Brute Force (lanjutan)

Penentuan Palet Warna pada Gambar Raster dengan Algoritma Divide and Conquer

Design and Analysis of Algorithm

Analisis dan Strategi Algoritma

Sorting. Selection Sort. Straight insertion Sort. Merge Sort Paradigma Divide-and-Conquer. Quicksort

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Perbandingan Performa Kombinasi Algoritma Pengurutan Quick-Insertion Sort dan Merge-Insertion Sort

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 06

SORTING (BAGIAN II) Proses kelima

Kompleksitas Algoritma

Analisis Perbandingan Kompleksitas Algoritma Pengurutan Nilai (Sorting)

Algoritma Sorting (Selection Insertion)

Design and Analysis of Algorithm

Design and Analysis Algorithm

Design and Analysis of Algorithms CNH2G3- Week 5 Kompleksitas waktu algoritma rekursif part 2: Metode Karakteristik

Transkripsi:

Design and Analysis Algorithm Ahmad Afif Supianto, S.Si., M.Kom Pertemuan 07

Contents 31 2 3 4 35 Divide and Conguer MinMax Problem Closest Pair Sorting Problem Perpangkatan 2

Algoritma divide and conquer Definisi Divide: membagi masalah menjadi beberapa upa-masalah yang memiliki kemiripan dengan masalah semula namun berukuran lebih kecil (idealnya berukuran hampir sama) Conquer:memecahkan(menyelesaikan)ma sing- masing upa-masalah (secara rekursif) Combine:mengabungkan solusi masingmasing upa-masalah sehingga membentuk solusi masalah semula. 3

Obyek permasalahan yang dibagi:masukan (input) atau instances yang berukuran n seperti: - tabel (larik) - matriks, - eksponen, - dll, bergantung pada masalahnya. Tiap-tiap upa-masalah mempunyai karakteristik yang sama (the same type) dengan karakteristik masalah asal, sehingga metode Divide and Conquer lebih natural diungkapkan dalam skema rekursif. 4

Skema umum algoritma Divide and Conquer 5

6

Contoh-contoh masalah Mencari Nilai Minimum dan Maksimum (MinMaks) Mencari pasangan titik yang jaraknya terdekat (Closest Pair) Pengurutan (Sorting) Merge Sort Quick Sort Perpangkatan 7

Min-Max Problem 8

MinMaks Problem Mencari Nilai Minimum dan Maksimum (MinMaks) Persoalan: Misalkan diberikan tabel A yang berukuran n elemen dan sudah berisi nilai integer. Carilah nilai minimum dan nilai maksimum sekaligus di dalam tabel tersebut. 9

Solusi algoritma Brute Force 10

Penyelesaian dengan Divide and Conquer 11

Ukuran tabel hasil pembagian dapat dibuat cukup kecil sehingga mencari minimum dan maksimum dapat diselesaikan (SOLVE) secara lebih mudah. Dalam hal ini, ukuran kecil yang dipilih adalah 1 elemen atau 2 elemen. 12

MinMaks(A, n, min, maks) Algoritma: Untuk kasus n = 1 atau n = 2, SOLVE: Jika n = 1, maka min = maks = A[n] Jika n = 2, maka bandingkan kedua elemen untuk menentukan min dan maks. Untuk kasus n > 2, (a) DIVIDE: Bagi dua tabel A menjadi dua bagian yang sama,a1 dan A2 (b) CONQUER: (c) COMBINE: MinMaks(A1, n/2, min1, maks1) MInMaks(A2, n/2, min2, maks2) if min1 <min2 then min <- min1 else min <- min2 if maks1 <maks2 then maks <- maks2 else maks <- maks1 13

14

15

Kompleksitas waktu asymptotic 16

MinMaks1 secara brute force : T(n) = 2n 2 MinMaks2 secara divide and conquer: T(n)=3n/2 2 Perhatikan: 3n/2 2 < 2n 2, n 2. Kesimpulan: algoritma MinMaks lebih mangkus dengan metode Divide and Conquer. 17

Closest Pair 18

Mencari pasangan titik yang jaraknya terdekat (Closest pair) Persoalan: Diberikan himpunan titik, P, yang terdiri dari n buah titik, (xi, yi), pada bidang 2-D. Tentukan jarak terdekat antara dua buah titik di dalam himpunan P. 19

Kumpulan titik-titik p n 20

Penyelesaian dengan algoritma Brute Force Hitung jarak setiap pasang titik. Ada sebanyak C(n, 2) = n(n 1)/2 pasangan titik Pilih pasangan titik yang mempunyai jarak terkecil. Kompleksitas algoritma adalah O(n 2 ). 21

Penyelesaian dengan algoritma Divide and Conquer Asumsi: n = 2 k dan titik-titik diurut berdasarkan absis (x). Algoritma Closest Pair: 1. SOLVE: jika n = 2, maka jarak kedua titik dihitung langsung dengan rumus Euclidean. 2.DIVIDE: Bagi himpunan titik ke dalam dua bagian, P left dan P right, setiap bagian mempunyai jumlah titik yang sama. 22

3. CONQUER: Secara rekursif, terapkan algoritma D- and-c pada masing-masing bagian. 4. Pasangan titik yang jaraknya terdekat ada tiga kemungkinan letaknya: (a) Pasangan titik terdekat terdapat di bagian P Left. (b) Pasangan titik terdekat terdapat di bagian P Right. (c) Pasangan titik terdekat dipisahkan oleh garis batas L, yaitu satu titik di P Left dan satu titik di P Right. Jika kasusnya adalah (c), maka lakukan tahap COMBINE untuk mendapatkan jarak dua titik terdekat sebagai solusi persoalan semula. 23

24

Sorting 25

Algoritma Pengurutan dengan Metode Divide and Conquer 26

Dua pendekatan (approach) pengurutan: 1.Mudah membagi, sulit menggabung (easy split/hard join) Tabel A dibagi dua berdasarkan posisi elemen: Divide : Sort: Combine: Algoritma pengurutan yang termasuk jenis ini: urut-gabung (Merge Sort) 27

2. Sulit membagi, mudah menggabung (hard split/easy join) Tabel A dibagi dua berdasarkan nilai elemennya. Misalkan elemen-elemen A1 elemen-elemen A2. Divide: Sort: Combine: Algoritma pengurutan yang termasuk jenis ini: urut-cepat (Quick Sort) 28

Merge sort Untuk kasus n = 1, maka tabel A sudah terurut dengan sendirinya (langkah SOLVE). Untuk kasus n > 1, maka (a) DIVIDE: bagi tabel A menjadi dua bagian, bagian kiri dan bagian kanan, masing-masing bagian berukuran n/2 elemen. (b) CONQUER: Secara rekursif, terapkan algoritma D-and-C pada masing-masing bagian. (c) MERGE: gabung hasil pengurutan kedua bagian sehingga diperoleh tabel A yang terurut. Algoritma: 29

Contoh Merge: 30

31

32

33

Kompleksitas waktu: Asumsi: n = 2 k T(n) = jumlah perbandingan pada pengurutan dua buah upa-tabel + jumlah perbandingan pada prosedur Merge 34

Penyelesaian: T(n) = 2T(n/2) + cn = 2(2T(n/4) + cn/2) + cn = 4T(n/4) + 2cn = 4(2T(n/8) + cn/4) + 2cn = 8T(n/8) + 3cn =... = 2 k T(n/2 k ) +kcn Berhenti jika ukuran tabel terkecil, n = 1: n/2 k =1 k= 2 logn sehinggat(n) = nt(1) + cn 2 logn = na+cn 2 logn = O(n 2 log n) 35

Quick sort Termasuk pada pendekatan sulit membagi, mudah menggabung (hard split/easy join) Tabel A dibagi (istilahnya: dipartisi) menjadi A1 dan A2 sedemikian sehingga elemen- elemen A1 elemen-elemen A2. 36

37

Teknik mempartisi tabel: (i)pilih x { A[1], A[2],..., A[n] } sebagai pivot (ii) pindai tabel dari kiri sampai ditemukan A[p] x (iii) pindai tabel dari kanan sampai ditemukan A[q] x (iv) pertukarkan A[p] A[q] (v) ulangi (ii), dari posisi p + 1, dan (iii), dari posisi q 1, sampai kedua pemindaian bertemu di tengah tabel 38

Misal suatu tabel berisikan elemen-elemen sebagai berikut : Langkah-langkah melakukan partisi : (i) (ii)&(iii) (iv) 39

(ii)&(iii) (iv) (ii)&(iii) Hasil partisi pertama : 40

41

42

Pseudo code Quicksort 43

44

Cara pemilihan pivot: 1.Pivot = elemen pertama/elemen terakhir/elemen tengah tabel 2.Pivot dipilih secara acak dari salah satu elemen tabel. 3.Pivot = elemen median tabel 45

Kompleksitas Algoritma Quicksort 1. Kasus terbaik (best case) Kasus terbaik terjadi bila pivot adalah elemen median sedemikian sehingga kedua upa-tabel berukuran relatif sama setiap kali pempartisian. 46

47

Penyelesaian (seperti pada Merge Sort) 48

2. Kasus terburuk (worst case) Kasus ini terjadi bila pada setiap partisi pivot selalu elemen maksimum (atau elemen minimum) tabel. Kasus jika tabel sudah terurut menaik/menurun 49

50

Kompleksitas waktu pengurutan: T(n)=T(n 1)+cn= O(n2) 51

3. Kasus rata-rata (average case) Kasus ini terjadi jika pivot dipilih secara acak dari elemen tabel, dan peluang setiap elemen dipilih menjadi pivot adalah sama. Tavg(n) = O(n 2 log n) 52

Perpangkatan 53

Perpangkatan a n Misalkan a R dan n adalah bilangan bulat tidak negatif: a n = a a... a (nkali), jika n>0 = 1, jika n = 0 54

Penyelesaian dengan Algoritma Brute Force Kompleksitas waktu algoritma: T(n) = n = O(n) 55

Penyelesaian dengan Divide and Conquer Algoritma menghitung a n : 1. Untuk kasus n=0,maka a n =1. 2. Untuk kasus n > 0, bedakan menjadi dua kasus lagi: (i) jika n genap, maka a n = a n/2 a n/2 (ii) jika n ganjil, maka a n = a n/2 a n/2 a 56

Menghitung 3 16 dengan metode Divide and Conquer: 3 16 =3 8 3 8 =(3 8 ) 2 = ((3 4 ) 2 ) 2 = (((3 2 ) 2 ) 2 ) 2 = ((((3 1 ) 2 )) 2 ) 2 ) 2 = ((((3 0 ) 2 3) 2 ) 2 ) 2 ) 2 = ((((1) 2 3) 2 ) 2 ) 2 ) 2 = ((((3) 2 )) 2 ) 2 ) 2 = (((9) 2 ) 2 ) 2 = (81) 2 ) 2 = (6561) 2 = 43046721 57

58

Kompleksitas algoritma: Penyelesaian: 59

Persamaan terakhir diselesaikan dengan membuat n/2 k =1 sehingga 60

Click to edit subtitle style