Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Design and Analysis of ALGORITHM (Session 3)

Presentasi serupa


Presentasi berjudul: "Design and Analysis of ALGORITHM (Session 3)"— Transcript presentasi:

1 Design and Analysis of ALGORITHM (Session 3)
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 xi (xi bukan initial input x0) memerlukan evaluasi fungsi dirinya sendiri untuk input xj 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) Prev:=0; Curr:=1 for i:=2 to n do Next := Prev + Curr; Prev:=Curr; Curr := Next; endfor return(Curr) end Fib2

4 Top-Down vs Bottom-Up 5 5 4 3 4 + 3 2 2 1 3 + 2 1 1 1 2 + 1 1 +
1 2 + 1 1 + Top-Down Bottom-Up

5 Recurrence Relations Recurrences are a major tool for analysis of algorithms 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)

6 Recurrence Relations (cont.)

7 Recurrence Relations (cont.)
Homogen f(n)=0 Linear Recurrence t(n)= c1.t(n-1) + c2.t(n-2)+…+ ck.t(n-k) + f(n), c1, c2, …, ck 0 konstanta non-homogen f(n)0 Recurrence Relation f(n) = c Non-Linear Recurrence (e.q. from divide and conquer) 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. Initial cond. t(0) = d0 Higher-order : t(n)= c1.t(n-1) + c2.t(n-2)+…+ ck.t(n-k) + f(n), c1, c2, …, ck 0 konstanta k-th order Initial cond. t(0) = d0 , … , t(k-1) = dk-1 Suatu linier recurrence dikatakan homogeneous bila f(n) = 0,  n

9 Metode penyelesaian First-order linear homogeneous: t(n) = c.t(n-1), n > 0 dan t(0) = d0 solution : t(n) = d0.cn , n  0 Solusi: t(n)= 5.3n Contoh: t(n) = 3.t(n-1), t(0) = 5 First-order linear nonhomogeneous: t(n) = c.t(n-1) + f(n), n > 0 dan t(0) = d0 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.)
Sebuah fungsi h(n) dikatakan eventually non-decreasing bila Proposisi: Bila t(n) adalah fungsi eventually non-decreasing dan berbentuk: t(n) = a.t(n/b)+c, dengan init.cond. t(1)=c1 , a,b,c, c1 konstanta positif dan b > 1, maka:

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)=c1 , a,b,c, c1 konstanta positif dan b > 1, maka: Contoh: worst case untuk Merge-sort Solusi W(n) ? W(n)  (?) W(n) = W(n/2)+1, W(1) = 1

13 Rekursif Homogen

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

15 Rekursif Homogen (cont.)

16 Rekursif Homogen (cont.)

17 Rekursif Homogen (cont.)

18

19 Rekursif Inhomogen

20 Recursive Divide and Conquer

21 Metode Penyelesaian Lainnya
Metode substitusi Metode iterasi Metode master Metode penyelesaian yang lain: 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: Jika f(n)=O(n logb a-), untuk beberapa >0, maka t(n)=(n logb a). Jika f(n)=(n logb a), maka t(n)=(n logb a log n). Jika f(n)=(n logb 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(nlog39 - ), =1 t(n)=(n2). 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 n t(n) = ?


Download ppt "Design and Analysis of ALGORITHM (Session 3)"

Presentasi serupa


Iklan oleh Google