Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Analisa Algoritma Divide and Conquer. Prinsip Dasar Membagi n input menjadi k sub set input yang berbeda (1< k < n) Membagi n input menjadi k sub set.

Presentasi serupa


Presentasi berjudul: "Analisa Algoritma Divide and Conquer. Prinsip Dasar Membagi n input menjadi k sub set input yang berbeda (1< k < n) Membagi n input menjadi k sub set."— Transcript presentasi:

1 Analisa Algoritma Divide and Conquer

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

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

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

5 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

6 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 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 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 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. Fungsi COMBINE(X,Y) merupakan fungsi penentu solusi umum atau yg diharapkan dgn memanfatkan solusi X dan Y.

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

8 Carilah min dan max nya

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

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

11 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)

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

13 1,9 1,56,9 1,34,56,78,9 1,23,3

14 60,-8 22,-860,17 22,-515,860,1747,31 22,13-5,-5

15 T(n/2) + T(n/2)+2 ; utk n > 2 T(n/2) + T(n/2)+2 ; utk n > 2 T(n) = 1 ; utk n = 2 0 ; utk n = 1 0 ; utk n = 1

16 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.

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

18 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

19 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

20 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) B(i)  A(k) I  I +1 I  I +1repeatEndif For k  low to high do A(k)  B(k) Repeat End merge


Download ppt "Analisa Algoritma Divide and Conquer. Prinsip Dasar Membagi n input menjadi k sub set input yang berbeda (1< k < n) Membagi n input menjadi k sub set."

Presentasi serupa


Iklan oleh Google