SlideShare a Scribd company logo
1 of 22
DR. Gatot F. Hertono, MSc.
Design and Analysis of ALGORITHM
(Session 3)
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
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
Top-Down vs Bottom-Up
5
4 3
3 2 2 1
2 1 1 1
0 0
0
1
5
4
3
2
+
+
+
+
0
1
Top-Down Bottom-Up
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









1
n
jika
,
)
(
)
2
/
(
2
1
jika
,
)
1
(
)
(
n
n
T
n
n
T
Yang memiliki solusi: T(n) = (n log n)
Recurrences are a major tool for analysis of algorithms
Recurrence Relations (cont.)
Recurrence Relations (cont.)
Recurrence Relation
Linear Recurrence
Non-Linear Recurrence
(e.q. from divide and conquer)
t(n)= c1.t(n-1) + c2.t(n-2)+…+ ck.t(n-k) + f(n),
c1, c2, …, ck 0 konstanta
Homogen
f(n)=0
non-homogen
f(n)0
,...
2
,
1
,
0
,
1
,
,
)
1
(
),
(
)
(
.
)
( 1 




 k
b
b
n
c
t
n
f
b
n
t
a
n
t k
f(n) = c
f(n) = c.n
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)= c1.t(n-1) + c2.t(n-2)+…+ ck.t(n-k) + f(n),
c1, c2, …, ck 0 konstanta
Initial cond. t(0) = d0
Initial cond. t(0) = d0 , … , t(k-1) = dk-1
Suatu linier recurrence dikatakan homogeneous bila f(n) = 0,  n
k-th order
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
Contoh: t(n) = 3.t(n-1), t(0) = 5 Solusi: t(n)= 5.3n
• First-order linear nonhomogeneous: t(n) = c.t(n-1) + f(n),
n > 0 dan t(0) = d0
solution : 





n
i
i
n
n
i
f
c
c
d
n
t
2
1
0 )
(
.
.
)
(
Contoh: W(n) = W(n-1) + (n-1), init. cond. W(1)= 0
Solusi: 








n
i
i
n
n
n
n
i
n
t
2
2
1
2
/
2
/
)
1
.(
1
0
.
1
)
(
Metode Penyelesaian (lanj.)
,...
2
,
1
,
0
,
1
,
,
)
1
(
),
(
)
(
.
)
( 1 




 k
b
b
n
c
t
n
f
b
n
t
a
n
t k













.
1
jika
,
log
.
,
1
jika
,
1
).
1
(
)
(
1
log
1
a
n
c
c
a
a
c
n
a
a
c
n
t
b
a
b
Recurrence relation yang muncul dari suatu teknik algoritma
divide-and-conquer :
Solusi:
Jika f(n) = c
Jika f(n) = c.n












jika
,
1
)
/
(
.
.
jika
,
log
.
.
.
)
( log
log
1
1
b
a
b
a
n
n
c
n
c
b
a
n
n
c
n
c
n
t a
a
b
b
b
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)=c1 , a,b,c, c1 konstanta positif
dan b > 1, maka:
Sebuah fungsi h(n) dikatakan eventually non-decreasing bila
0
0 untuk
,
)
(
)
(
integer n
n
m
m
h
n
h
n 












1
),
(log
1
),
(
)
(
log
a
n
a
n
n
t
a
b
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:












b
a
n
b
a
n
n
b
a
n
n
t
a
b
),
(
),
log
.
(
),
(
)
(
log
Contoh: worst case untuk Merge-sort
W(n) = W(n/2)+1, W(1) = 1
Solusi W(n) ?
W(n)  (?)
Rekursif Homogen
Rekursif Homogen (cont.)
a. Persamaan karakteristik dengan semua akar berbeda
b. Persamaan karakteristik dengan beberapa akar sama
Rekursif Homogen (cont.)
Rekursif Homogen (cont.)
Rekursif Homogen (cont.)
Rekursif Inhomogen
Recursive Divide and Conquer
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)).
Master theorem (contoh)
t(n)=9.t(n/3) + n
a=9, b=3, f(n)=n=O(nlog
3
9 - ), =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) = ?

More Related Content

Similar to 2013 4-Algoritma Design and Analysis Recurrence.ppt

Bab 2 Fungsi ( Kalkulus 1 )
Bab 2 Fungsi ( Kalkulus 1 )Bab 2 Fungsi ( Kalkulus 1 )
Bab 2 Fungsi ( Kalkulus 1 )Kelinci Coklat
 
Fungsi, komposisi fungsi, dan invers fungsi
Fungsi, komposisi fungsi, dan invers fungsiFungsi, komposisi fungsi, dan invers fungsi
Fungsi, komposisi fungsi, dan invers fungsiksaaann
 
Referensi Materi Algoritma Brute Force Bagian 1
Referensi Materi Algoritma Brute Force Bagian 1Referensi Materi Algoritma Brute Force Bagian 1
Referensi Materi Algoritma Brute Force Bagian 1DEDEALAMSYAHSPd
 
Tugas 3
Tugas 3Tugas 3
Tugas 3Av Ri
 
Matematika Diskrit - 11 kompleksitas algoritma - 04
Matematika Diskrit - 11 kompleksitas algoritma - 04Matematika Diskrit - 11 kompleksitas algoritma - 04
Matematika Diskrit - 11 kompleksitas algoritma - 04KuliahKita
 
integral tak tentu dan tertentu1.pdf
integral tak tentu dan tertentu1.pdfintegral tak tentu dan tertentu1.pdf
integral tak tentu dan tertentu1.pdfzefryDarmawan
 
Kelas xii bab 1
Kelas xii bab 1Kelas xii bab 1
Kelas xii bab 1arman11111
 
Kalkulus Integral : Teorema Fundamental Kalkulus
Kalkulus Integral : Teorema Fundamental KalkulusKalkulus Integral : Teorema Fundamental Kalkulus
Kalkulus Integral : Teorema Fundamental KalkulusFranz Sebastian
 

Similar to 2013 4-Algoritma Design and Analysis Recurrence.ppt (20)

Bab 2 Fungsi ( Kalkulus 1 )
Bab 2 Fungsi ( Kalkulus 1 )Bab 2 Fungsi ( Kalkulus 1 )
Bab 2 Fungsi ( Kalkulus 1 )
 
integral print mhs
integral print mhsintegral print mhs
integral print mhs
 
terapan turunan
 terapan turunan  terapan turunan
terapan turunan
 
Fungsi, komposisi fungsi, dan invers fungsi
Fungsi, komposisi fungsi, dan invers fungsiFungsi, komposisi fungsi, dan invers fungsi
Fungsi, komposisi fungsi, dan invers fungsi
 
Fungsi
FungsiFungsi
Fungsi
 
13184085.ppt
13184085.ppt13184085.ppt
13184085.ppt
 
Fungsi dan grafik
Fungsi dan grafikFungsi dan grafik
Fungsi dan grafik
 
FUNGSI DAN GRAFIK
FUNGSI DAN GRAFIKFUNGSI DAN GRAFIK
FUNGSI DAN GRAFIK
 
Referensi Materi Algoritma Brute Force Bagian 1
Referensi Materi Algoritma Brute Force Bagian 1Referensi Materi Algoritma Brute Force Bagian 1
Referensi Materi Algoritma Brute Force Bagian 1
 
Tugas 3
Tugas 3Tugas 3
Tugas 3
 
Integral tentu
Integral tentuIntegral tentu
Integral tentu
 
Matematika Diskrit - 11 kompleksitas algoritma - 04
Matematika Diskrit - 11 kompleksitas algoritma - 04Matematika Diskrit - 11 kompleksitas algoritma - 04
Matematika Diskrit - 11 kompleksitas algoritma - 04
 
Transformasi geometri
Transformasi geometriTransformasi geometri
Transformasi geometri
 
integral tak tentu dan tertentu1.pdf
integral tak tentu dan tertentu1.pdfintegral tak tentu dan tertentu1.pdf
integral tak tentu dan tertentu1.pdf
 
Integral
IntegralIntegral
Integral
 
Tugas kalkulus 2 r
Tugas kalkulus 2 rTugas kalkulus 2 r
Tugas kalkulus 2 r
 
Kelas xii bab 1
Kelas xii bab 1Kelas xii bab 1
Kelas xii bab 1
 
Kelas xii bab 1
Kelas xii bab 1Kelas xii bab 1
Kelas xii bab 1
 
Kalkulus Integral : Teorema Fundamental Kalkulus
Kalkulus Integral : Teorema Fundamental KalkulusKalkulus Integral : Teorema Fundamental Kalkulus
Kalkulus Integral : Teorema Fundamental Kalkulus
 
fungsi Generator
fungsi Generator fungsi Generator
fungsi Generator
 

More from EriekOrlando

Virtual Network - Lokal Area Network - ppt
Virtual Network - Lokal Area Network - pptVirtual Network - Lokal Area Network - ppt
Virtual Network - Lokal Area Network - pptEriekOrlando
 
ChatGPT Pengolahan Data Kuantitatif dan Kualitatif by Prof. Wisnu UI.pdf
ChatGPT Pengolahan Data Kuantitatif dan Kualitatif by Prof. Wisnu UI.pdfChatGPT Pengolahan Data Kuantitatif dan Kualitatif by Prof. Wisnu UI.pdf
ChatGPT Pengolahan Data Kuantitatif dan Kualitatif by Prof. Wisnu UI.pdfEriekOrlando
 
Pertemuan 14 - Network Operating Sistem.pdf
Pertemuan 14 - Network Operating Sistem.pdfPertemuan 14 - Network Operating Sistem.pdf
Pertemuan 14 - Network Operating Sistem.pdfEriekOrlando
 
Minggu ke 1 Pengertian&Fungsi Bisnis.pdf
Minggu ke 1  Pengertian&Fungsi Bisnis.pdfMinggu ke 1  Pengertian&Fungsi Bisnis.pdf
Minggu ke 1 Pengertian&Fungsi Bisnis.pdfEriekOrlando
 
P1 - Pengenalan Keamanan Jaringan.pptx
P1 - Pengenalan Keamanan Jaringan.pptxP1 - Pengenalan Keamanan Jaringan.pptx
P1 - Pengenalan Keamanan Jaringan.pptxEriekOrlando
 
Kelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptxKelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptxEriekOrlando
 

More from EriekOrlando (6)

Virtual Network - Lokal Area Network - ppt
Virtual Network - Lokal Area Network - pptVirtual Network - Lokal Area Network - ppt
Virtual Network - Lokal Area Network - ppt
 
ChatGPT Pengolahan Data Kuantitatif dan Kualitatif by Prof. Wisnu UI.pdf
ChatGPT Pengolahan Data Kuantitatif dan Kualitatif by Prof. Wisnu UI.pdfChatGPT Pengolahan Data Kuantitatif dan Kualitatif by Prof. Wisnu UI.pdf
ChatGPT Pengolahan Data Kuantitatif dan Kualitatif by Prof. Wisnu UI.pdf
 
Pertemuan 14 - Network Operating Sistem.pdf
Pertemuan 14 - Network Operating Sistem.pdfPertemuan 14 - Network Operating Sistem.pdf
Pertemuan 14 - Network Operating Sistem.pdf
 
Minggu ke 1 Pengertian&Fungsi Bisnis.pdf
Minggu ke 1  Pengertian&Fungsi Bisnis.pdfMinggu ke 1  Pengertian&Fungsi Bisnis.pdf
Minggu ke 1 Pengertian&Fungsi Bisnis.pdf
 
P1 - Pengenalan Keamanan Jaringan.pptx
P1 - Pengenalan Keamanan Jaringan.pptxP1 - Pengenalan Keamanan Jaringan.pptx
P1 - Pengenalan Keamanan Jaringan.pptx
 
Kelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptxKelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptx
 

2013 4-Algoritma Design and Analysis Recurrence.ppt

  • 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 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) 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 5 4 3 3 2 2 1 2 1 1 1 0 0 0 1 5 4 3 2 + + + + 0 1 Top-Down Bottom-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          1 n jika , ) ( ) 2 / ( 2 1 jika , ) 1 ( ) ( n n T n n T Yang memiliki solusi: T(n) = (n log n) Recurrences are a major tool for analysis of algorithms
  • 7. Recurrence Relations (cont.) Recurrence Relation Linear Recurrence Non-Linear Recurrence (e.q. from divide and conquer) t(n)= c1.t(n-1) + c2.t(n-2)+…+ ck.t(n-k) + f(n), c1, c2, …, ck 0 konstanta Homogen f(n)=0 non-homogen f(n)0 ,... 2 , 1 , 0 , 1 , , ) 1 ( ), ( ) ( . ) ( 1       k b b n c t n f b n t a n t k 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)= c1.t(n-1) + c2.t(n-2)+…+ ck.t(n-k) + f(n), c1, c2, …, ck 0 konstanta Initial cond. t(0) = d0 Initial cond. t(0) = d0 , … , t(k-1) = dk-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) = d0 solution : t(n) = d0.cn , n  0 Contoh: t(n) = 3.t(n-1), t(0) = 5 Solusi: t(n)= 5.3n • First-order linear nonhomogeneous: t(n) = c.t(n-1) + f(n), n > 0 dan t(0) = d0 solution :       n i i n n i f c c d n t 2 1 0 ) ( . . ) ( Contoh: W(n) = W(n-1) + (n-1), init. cond. W(1)= 0 Solusi:          n i i n n n n i n t 2 2 1 2 / 2 / ) 1 .( 1 0 . 1 ) (
  • 10. Metode Penyelesaian (lanj.) ,... 2 , 1 , 0 , 1 , , ) 1 ( ), ( ) ( . ) ( 1       k b b n c t n f b n t a n t k              . 1 jika , log . , 1 jika , 1 ). 1 ( ) ( 1 log 1 a n c c a a c n a a c n t b a b Recurrence relation yang muncul dari suatu teknik algoritma divide-and-conquer : Solusi: Jika f(n) = c Jika f(n) = c.n             jika , 1 ) / ( . . jika , log . . . ) ( log log 1 1 b a b a n n c n c b a n n c n c n t a a b b b
  • 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)=c1 , a,b,c, c1 konstanta positif dan b > 1, maka: Sebuah fungsi h(n) dikatakan eventually non-decreasing bila 0 0 untuk , ) ( ) ( integer n n m m h n h n              1 ), (log 1 ), ( ) ( log a n a n n t a b
  • 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:             b a n b a n n b a n n t a b ), ( ), log . ( ), ( ) ( log Contoh: worst case untuk Merge-sort W(n) = W(n/2)+1, W(1) = 1 Solusi W(n) ? W(n)  (?)
  • 14. Rekursif Homogen (cont.) a. Persamaan karakteristik dengan semua akar berbeda b. Persamaan karakteristik dengan beberapa akar sama
  • 18.
  • 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(nlog 3 9 - ), =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) = ?