Divide and Conquer Analisa Algoritma.

Slides:



Advertisements
Presentasi serupa
Desain Dan Analisis Algoritma
Advertisements

STRUKTUR DASAR ALGORITMA
7. PENJUMLAHAN DUA BUAH MATRIKS
Algoritma Divide and Conquer
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
Pertemuan 2 INDUKSI MATEMATIKA & FUNGSI REKURSIF
LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI.
PENCARIAN (SEARCHING)
Notasi Algoritma.
Instruksi Runtutan Instruksi Pemilihan dan Instruksi Perulangan dalam Pascal Minggu XII.
Algoritma dan Struktur Data
Sistem Persamaan Linear
Procedure & Function Sub Program.
Metode Perancangan Program
PERTEMUAN 2 PENGERTIAN DASAR LOGIKA DAN ALGORITMA.
Kasus Buat algoritma untuk menghitung total pembayaran dari proses pembelian.
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT.
1 Pertemuan 9 DIVIDE And CONQUER Matakuliah: T0034/Perancangan & Analisis Algoritma Tahun: 2005 Versi: R1/0.
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
INF-301 FEB 2006 Univ. INDONUSA Esa Unggul PERTEMUAN V Tujuan Instruksional Umum : Permutasi & Kombinasi Tujuan Instruksional Khusus : Mahasiswa dapat.
Pertemuan 10 DIVIDE And CONQUER Lanjutan ….
Analisa Algoritma Running Time.
Matakuliah: T0034 / Perancangan & Analisis Algoritma Tahun: 2008 Pertemuan 9 DIVIDE AND CONQUER (1)
Algoritma Divide and Conquer (Bagian 1) Wahyul Wahidah Maulida, ST., M.Eng.
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
Materi Kuliah 1. Pertemuan ke : 1 Pengenalan Komputer dan Pemrograman
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
ALGORITMA PEMOTONGAN Algoritma Gomory.
LANJUTAN DARI SHORTING
Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir
Algoritma.
Bubble Sort Metode pengurutan gelembung diinspirasikan oleh gelembung sabun yang berada dipermukaan air. Karena berat jenis gelembung sabun lebih ringan.
MATERI PERKULIAHAN ANALISIS ALGORITMA
STRUKTUR DASAR ALGORITMA
Pengujian Perangkat Lunak
STRUKTUR DASAR ALGORITMA
PENGURUTAN (SORTING).
CSG523/ Desain dan Analisis Algoritma
TEL 2112 Dasar Komputer & Pemograman Contoh Pemecahan Masalah
Analisis dan Perancangan Algoritma Kuliah 4 : Asymptotic pd Kasus
Modul 6 : Analisis Algoritma dan Struktur Data
Struktur Dasar Algoritma dan Runtunan
MATERI PERKULIAHAN ANALISIS ALGORITMA
PERCABANGAN DAN PERULANGAN
Array Buat algoritma untuk mencari nilai terbesar dari 5 nilai mahasiswa yang diinputkan dengan array.
Quiz : Pengujian P/L 1 : Jelaskan pengertian dari pengujian kotak hitam, sebutkan dan jelaskan 4 jenisnya 2 : Buat kasus2 uji u/ pengujian jalur dasar.
Seleksi Kondisi merupakan perintah yang memungkinkan pemilihan atas perintah yang akan dijalankan sesuai dengan kondisi tertentu. Operator yang digunakan.
Nama : Siti Hajar Unit : B Nim : No.Hp : 0852 – 2000 – 3786.
FUNGSI.
Oleh : UMMU ZAHRA ALGORITMA.
Modul 4 : Analisis Algoritma & Struktur Data
Strategi Algoritma Kuliah 3 : Algoritma Efisien
SORTING ARRAY SESI 2.
Quiz Logika & Algoritma
Algoritma Divide and Conquer
Algoritma Rekursif Alpro-2.
Algoritma Divide and Conquer
Rekursif By Serdiwansyah N. A..
Algoritma Divide and Conquer
Dasar-Dasar Pemrograman
Algoritma Divide and Conquer
Dasar-Dasar Pemrograman
Pengulangan FOR - DO Temu 9.
Kuliah 1-2 (Algoritma) Pseudocode Prosedure dan Fungsi
Rekursif Yuliana Setiowati. Rekursif Proses yang memanggil dirinya sendiri. Merupakan suatu fungsi atau prosedur Terdapat suatu kondisi untuk berhenti.
Algoritma dan struktur data
Transcript presentasi:

Divide and Conquer Analisa Algoritma

Prinsip Dasar Membagi n input menjadi k sub set input yang berbeda (1< k < n) Dari k sub set input yang berbeda akan terdapat k subproblem Setiap subproblem mempunyai solusi masing-masing (k sub solusi) Dari k sub solusi akan diperoleh solusi yang optimal yang diharapkan

Jika subproblem masih dianggap besar maka dapat dipecah lagi menjadi sub sub problem yang lebih kecil lagi Metoda DANDC dapat digunakan lagi secara rekursif Pemecahan n input menjadi k input sehingga menimbulkan k sub problem dpt dilakukan apabila k subproblem tsb mempunyai sifat yang sama terhadap persoalan semula

N INPUT INPUT 1 INPUT 2 INPUT 3 INPUT k subsolusi subsolusi subsolusi subproblem subproblem subproblem subproblem subsolusi subsolusi subsolusi subsolusi Solusi optimal

Algoritma DANDC Procedure DANDC(p,q) Global n,A(1:N): integer m,p,q If small(p,q) then G(p,q) else m  DIVIDE(p,q) COMBINE(DANDC(p,m),DANDC(m+1,q) Endif End DANDC

Small(p,q) adalah fungsi bernilai boole yang menentukan apakah ukuran input (q-p+1) cukup kecil sehingga tak perlu dipecah lagi, jika demikian maka G(p,q) yang diproses, jika tidak maka fungsi DIVIDE(p,q) yg diproses Fungsi DIVIDE(p,q) menghasilkan bilangan bulat yg menguraikan input menjadi dua bagian. Misalnya input dari p sampai q, dipecah menjadi p:m dan m+1:q Pecahan tadi menjadi dua subproblem dan menghasilkan dua subsolusi misalnya X dan Y Fungsi COMBINE(X,Y) merupakan fungsi penentu solusi umum atau yg diharapkan dgn memanfatkan solusi X dan Y.

Algoritma DANDC Procedure maxmin(I,j,fmax,fmin) Integer I,j Global n, A(1:n) Case : i=j : fmax <- fmin <- A(i) : I = j-1 : if A(i) < A(j) Then fmax <- A(j); fmin <- A(i) Else fmax <- A(i) ; fmin <- A(j) Endif : ELSE mid <- | (i+j)/2 | CALL maxmin (I,mid,gmax,gmin) CALL maxmin(mid+1,j, hmax, hmin) Fmax <- MAX(gmax, hmax) Fmin <- MIN (gmin, hmin) Endcase End maxmin

Carilah min dan max nya 1 2 3 4 5 6 7 8 9 22 13 -5 -8 15 60 17 31 47

Procedure straitmaxmin(A,n,max,min) For i=2 to n do if A(i) > max then max  A(i) else if A(i) < min then min  A(i) endif Endfor End straitmaxmin

i=2 A(2) > max maka max = 4 i=3 A(3) > max maka max = 5 BEST CASE 2 4 5 10 Max=2 ; Min=2 i=2 A(2) > max maka max = 4 i=3 A(3) > max maka max = 5 i=4 A(4) > max maka max = 10 Jadi diperoleh min=2 dan max =10 Operasi pembandingan yang dilakukan sebanyak 3 atau (n-1)

10 5 4 2 Worst case Max=10; min=10 i=2; A(2) > max A(2) < min , mk min=5 i=3; A(3) > max A(3) < min, mk min =4 i=4; A(4) > max A(4) < min, mk min =2 Jadi min=2 max=10 Operasi pembandingan yang dilakukan sebanyak 6 atau 2(n-1)

Average case Rata-rata dari best case dan worst case [(n-1) + 2(n-1) ]/2 = 3/2 (n-1)

1,9 1,5 6,9 1,3 4,5 6,7 8,9 1,2 3,3

60,-8 22,-8 60,17 22,-5 15,8 60,17 47,31 22,13 -5,-5

T(n/2) + T(n/2)+2 ; utk n > 2

Mergesort Terdapat barisan n input elemen yang ditempatkan dalam sebuah array. Pisahkan n elemen tsb menjadi dua bagian. Jika masing-2 bagian masih terlalu besar, dapat dibagi lagi. Setiap bagian diurutkan, lalu digabungkan dengan bagian lain.

Algoritma mergesort Terdiri dari dua prosedur yaitu mergesort dan merge Mergesort utk mengurutkan Merge utk menggabungkan

Procedure mergesort(low,high) If low < high then mid  [ (low+high) / 2] CALL mergesort(low,mid) CALL mergesort(mid+1, high) CALL merge(low, mid, high) Endif End mergesort

Procedure merge(low,mid,high) Hlow; I low; j mid+1 While h <= mid AND j <= high do if A(h)<= A(j) then B(i)  A(h) h  h+1 else B(i)  A(j) j  j + 1 endif I < I +1 Repeat

If h > mid then for k j to high do B(i)  A(k) I  I +1 repeat else for k  h to mid do B(i) A(k) Endif For k  low to high do A(k)  B(k) Repeat End merge