Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

DR. Gatot F. Hertono, MSc. Design and Analysis of ALGORITHM (Session 3)

Presentasi serupa


Presentasi berjudul: "DR. Gatot F. Hertono, MSc. Design and Analysis of ALGORITHM (Session 3)"— Transcript presentasi:

1 DR. Gatot F. Hertono, MSc. Design and Analysis of ALGORITHM (Session 3)

2 Rekursif Bentuk rekursif banyak digunakan di dalam rancangan suatu algoritma Suatu fungsi rekursif f(x): adalah suatu fungsi dimana evaluasi untuk suatu input x i (x i bukan initial input x 0 ) memerlukan evaluasi fungsi dirinya sendiri untuk input x j yang lain. Contoh: Fact(n) = n * Fact(n-1),dengan kondisi awal: Fact(1) = 1 Fibo(n) = Fibo(n-1)+Fibo(n-2),dengan kondisi awal: Fibo(0)=0, Fibo(1)=1 Gcd(a,b)=Gcd(b,a mod b),dengan kondisi awal: Gcd(a,0) = a

3 Top-Down dan Bottom-Up Strategi Top-Down dan Bottom-Up pada struktur rekursif Function Fib1(n) recursive Input: n (n  0) Output: Bilangan Fibonacci ke-n if n  1 then return(n) else return(Fib1(n-1) + Fib1(n-2)) endif end Fib1 Function Fib2(n) Input: n (n  0) Output: Bilangan Fibonacci ke-n if n  1 then return(n) else Prev:=0; Curr:=1 for i:=2 to n do Next := Prev + Curr; Prev:=Curr; Curr := Next; endfor endif return(Curr) end Fib2

4 Top-Down vs Bottom-Up Top-DownBottom-Up

5 Recurrence Relations Beberapa algoritma dapat memiliki versi rekursif: Mis. Binary search, Insertion sort & Merge sort Analisa kompleksitas algoritma rekursif lebih rumit. Running time berupa recurrence relations Contoh: kompleksitas Merge sort Yang memiliki solusi: T(n) =  (n log n) Recurrences are a major tool for analysis of algorithms

6 Recurrence Relations (cont.)

7 Recurrence Relation Linear Recurrence Non-Linear Recurrence (e.q. from divide and conquer) t(n)= c 1.t(n-1) + c 2.t(n-2)+…+ c k.t(n-k) + f(n), c 1, c 2, …, c k  0 konstanta Homogen f(n)=0 non-homogen f(n)  0 f(n) = c f(n) = c.n

8 Linear Recurrence First-order : t(n) = c.t(n-1) + f(n), n > 0, c  0 positif konstanta, dan suatu fungsi f(n) tertentu. Higher-order : t(n)= c 1.t(n-1) + c 2.t(n-2)+…+ c k.t(n-k) + f(n), c 1, c 2, …, c k  0 konstanta Initial cond. t(0) = d 0 Initial cond. t(0) = d 0, …, t(k-1) = d k-1 Suatu linier recurrence dikatakan homogeneous bila f(n) = 0,  n k-th order

9 Metode penyelesaian First-order linear homogeneous: t(n) = c.t(n-1), n > 0 dan t(0) = d 0 solution : t(n) = d 0.c n, n  0 Contoh: t(n) = 3.t(n-1), t(0) = 5 Solusi: t(n)= 5.3 n First-order linear nonhomogeneous: t(n) = c.t(n-1) + f(n), n > 0 dan t(0) = d 0 solution : Contoh: W(n) = W(n-1) + (n-1), init. cond. W(1)= 0 Solusi:

10 Metode Penyelesaian (lanj.) Recurrence relation yang muncul dari suatu teknik algoritma divide-and-conquer : Solusi: Jika f(n) = c Jika f(n) = c.n

11 Metode Penyelesaian (lanj.) Proposisi: 1.Bila t(n) adalah fungsi eventually non-decreasing dan berbentuk: t(n) = a.t(n/b)+c, dengan init.cond. t(1)=c 1, a,b,c, c 1 konstanta positif dan b > 1, maka: Sebuah fungsi h(n) dikatakan eventually non-decreasing bila

12 Metode Penyelesaian (lanj.) 2. Bila t(n) adalah fungsi eventually non-decreasing dan berbentuk: t(n) = a.t(n/b)+c.n, dengan init.cond. t(1)=c 1, a,b,c, c 1 konstanta positif dan b > 1, maka: Contoh: worst case untuk Merge-sort W(n) = W(n/2)+1, W(1) = 1 Solusi W(n) ? W(n)   (?)

13 Rekursif Homogen

14 Rekursif Homogen (cont.) a.Persamaan karakteristik dengan semua akar berbeda b.Persamaan karakteristik dengan beberapa akar sama

15 Rekursif Homogen (cont.)

16

17

18

19 Rekursif Inhomogen

20 Recursive Divide and Conquer

21 Metode Penyelesaian Lainnya Metode penyelesaian yang lain: 1.Metode substitusi 2.Metode iterasi 3.Metode master Master Theorem (see Cormen): Misal a  1, b  1 adalah konstanta, dan f(n) adalah suatu fungsi. Misalkan t(n) adalah suatu recurrence relation berbentuk t(n) = a.t(n/b) + f(n) Maka t(n) memiliki batas-batas asymptot sbb: 1.Jika f(n)=O(n log b a-  ), untuk beberapa  >0, maka t(n)=  (n log b a ). 2.Jika f(n)=  (n log b a ), maka t(n)=  (n log b a log n). 3.Jika f(n)=  (n log b a+  ), untuk beberapa  >0, dan jika a.f(n/b)  c.f(n), untuk c < 1, maka t(n)=  (f(n)).

22 Master theorem (contoh) t(n)=9.t(n/3) + n a=9, b=3, f(n)=n=O(n log  ),  =1t(n)=  (n 2 ). t(n)=t(2n/3)+1 a=1, b=3/2, f(n)=1 t(n)=  (log n). t(n)=3.t(n/4)+n log nt(n) = ?


Download ppt "DR. Gatot F. Hertono, MSc. Design and Analysis of ALGORITHM (Session 3)"

Presentasi serupa


Iklan oleh Google