Week 5 Kompleksitas waktu algoritma rekursif part 2: Metode

advertisement
Design and Analysis of Algorithms CNH2G3- Week 5
Kompleksitas waktu algoritma rekursif part 2: Metode
Karakteristik
Dr. Putu Harry Gunawan (PHN)
Review
1. Tentukan kompleksitas waktu Big-Oh untuk relasi rekursi berikut:
(
1,
n=1
T (n) =
T (n − 1) + 1,
n≥2
2. Tentukan kompleksitas waktu Big-Oh untuk relasi rekursi berikut:
(
2,
n=0
T (n) =
T (n − 1) + T (n − 2),
n≥1
1
(0.1)
(0.2)
Metode Karakteristik:Solusi Umum
Relasi rekursi dibedakan menjadi dua, yakni relasi rekursi non homogen dan homogen.
Penyelesaian menggunakan metode karakteristik, dibedakan berdasarkan tipe dari relasi
rekursi. Berikut adalah diberikan tahapan penyelesaian secara umum bentuk relasi rekursif:
1. Diberikan bentuk rekursif:
T (n) = α1 T (n − 1) + α2 T (n − 2) + · · · + αk T (n − k) + f (n)
(1.1)
f (n) = tn Pd (n)
(1.2)
Pd (n) = b0 nd + b1 nd−1 + · · · + bk
(1.3)
dengan:
2. Langkah pertama dalam menyelesaikan relasi rekursi menggunakan metode karakteristik adalah mengasumsikan bahwa relasi rekursi dalam tipe homogen yakni f (n) =
0, sehingga relasinya:
T (n) = α1 T (n − 1) + α2 T (n − 2) + · · · + αk T (n − k).
(1.4)
Selanjutnya dengan memisalkan T (n) = xn , sehingga didapat:
xn = α1 xn−1 + α2 xn−2 + · · · + αk xn−k ,
n
x − α1 x
n−1
− α2 x
n−2
1
− · · · − αk x
n−k
= 0.
(1.5)
(1.6)
Kemudian, jika xn−k merupakan suku dengan orde terkecil, maka Persamaan (1.6)
dibagi dengan xn−k menjadi
xk − α1 xk−1 − α2 xk−2 − · · · − αk = 0
3. Sehingga diperoleh persamaan karakteristik:
xk − α1 xk−1 − α2 xk−2 − · · · − αk (x − t)d+1 = 0
(1.7)
(1.8)
dengan t dan d didapatkna dari langkah 1 (INGAT suku (x − t)d+1 hanya berlaku
untuk kasus relasi rekursi NON HOMOGEN, JIka HOMOGEN maka bernilai 1).
4. Cari solusi dari Persamaan (1.8). Secara umum, solusi dari persamaan karakteristik
ada dua macam kasus:
(a) Kasus solusi berbeda:
Jika semua akar persamaan karakteristik berbeda {x1 , x2 , x3 , · · · }, maka solusi
umumnya adalah:
T (n) = c1 xn1 + c2 xn2 + c3 xn3 + · · ·
(1.9)
dengan c1 , c2 , c3 , · · · merupakan konstanta yang harus dicari.
(b) Kasus solusi sama:
Jika semua akar persamaan karakteristik sama {x1 = x2 = x3 = · · · = x}, maka
solusi umumnya adalah:
T (n) = (c1 + c2 n + c3 n2 + · · · )xn
(1.10)
dengan c1 , c2 , c3 , · · · merupakan konstanta yang harus dicari.
Berikut Algoritma untuk menggunakan Metode Karakteristik:
1. Start.
2. Tentukan bentuk persamaan rekursif.
3. Selesaikan bentuk rekursif dalam bentuk HOMOGEN dan misalkan T (n) = xm ,
kemudian bagi dengan suku orde terkecil.
4. Bentuk persamaan Karakteristik.
5. Bentuk solusi umum berdasarkan akar-akar persamaan Karakteristik.
6. Temukan koefisien-koefisien dari solusi umum.
7. End.
2
2
Menyelesaikan relasi rekursi HOMOGEN
Berikut akan diberikan contoh-contoh untuk menyelesaikan relasi rekursi bentuk Homogen:
1. Diberikan relasi berikut


n=0
 0,
T (n) =
1,
n=1


3T (n − 1) − 2T (n − 2),
(2.1)
n≥2
Langkah-langkah penyelesainnya adalah
(a) Persamaan rekursi bentuk homogen f (n) = 0:
T (n) − 3T (n − 1) + 2T (n − 2) = 0
(2.2)
Misalkan T (n) = xn , maka didapat
xn − 3xn−1 + 2xn−2 = 0,
(2.3)
selanjutnya dengan membagi persamaan dengan suku orde terkecil xn−2 didapat persamaan karakteristik:
x2 − 3x + 2 = 0
(2.4)
(b) Akar akar dari persamaan datas adalah:
(x − 2)(x − 1) = 0
(2.5)
dengan x1 = 1 dan x2 = 2, karena akar-akarnya berbeda maka solusi umumnya
adalah:
T (n) = c1 xn1 + c2 xn2
n
= c1 1 + c2 2
(2.6)
n
(2.7)
(c) Selanjutnya cari koefisien c1 dan c2 didapat:
T (0) = c1 10 + c2 20 = 0
T (1) = c1 11 + c2 21 = 1
Dari persamaan di atas didapat hasil akhir adalah c1 = −1 dan c2 = 1, sehingga
solusi umumnya didapat:
T (n) = − (1n ) + (2n ) = 2n − 1 ∈ O(2n ).
(2.8)
2. Exercise: diberikan relasi rekursi dari masalah Barisan Fibonacci berikut


n=0
 0,
T (n) =
1,
n=1


T (n − 1) + T (n − 2),
n≥2
3. Exercise: diberikan relasi rekursi berikut


0,
n=0



 1,
n=1
T (n) =
 2,
n=2



 7T (n − 1) − 15T (n − 2) + 9T (n − 3),
3
(2.9)
(2.10)
n≥3
3
Menyelesaikan relasi rekursi NON-HOMOGEN
Berikut akan diberikan contoh-contoh untuk menyelesaikan relasi rekursi bentuk NonHomogen:
1. Diberikan relasi rekursi untuk masalah faktorial
(
0,
T (n) =
T (n − 1) + 1,
n=0
n>1
(3.1)
Langkah-langkah penyelesainnya adalah:
(a) Relasi rekursinya adalah:
T (n) = T (n − 1) + 1
(3.2)
dengan:
f (n) = 1
= 1n (1 · n0 )
sehingga didapatkan t = 1 dan d = 0.
(b) Asumsikan dahulu persamaan dalam bentuk HOMGEN yakni f (n) = 0 sehingga didapat:
T (n) = T (n − 1)
T (n) − T (n − 1) = 0
Misalkan T (n) = xn , maka didapatkan
xn − xn−1 = 0,
(3.3)
selanjutnya dengan membagi persamaan dengan suku orde terkecil xn−1 didapat persamaan karakteristik:
(x − 1) (x − t)d+1 = 0
(x − 1) (x − 1) = 0
(c) Sehingga didapatkan akar-akar kembar yakni x1 = x2 = 1 sehingga solusi
umumnya adalah
T (n) = (c1 + c2 n)1n
= c1 + c2 n
(d) Selanjutnya cari koefisien c1 dan c2 didapat:
T (0) = c1 = 0
T (1) = c1 + c2 = 1
Dari persamaan di atas didapat hasil akhir adalah c1 = 0 dan c2 = 1, sehingga
solusi umumnya didapat:
T (n) = n ∈ O(n).
4
(3.4)
2. Diberikan relasi rekursi untuk masalah Menara Hanoi
(
1,
n=1
T (n) =
2T (n − 1) + 1,
n>1
(3.5)
Langkah-langkah penyelesainnya adalah:
(a) Relasi rekursinya adalah:
T (n) = 2T (n − 1) + 1
(3.6)
dengan:
f (n) = 1
= 1n (1 · n0 )
sehingga didapatkan t = 1 dan d = 0.
(b) Asumsikan dahulu persamaan dalam bentuk HOMGEN yakni f (n) = 0 sehingga didapat:
T (n) = 2T (n − 1)
T (n) − 2T (n − 1) = 0
Misalkan T (n) = xn , maka didapatkan
xn − 2xn−1 = 0,
(3.7)
selanjutnya dengan membagi persamaan dengan suku orde terkecil xn−1 didapat persamaan karakteristik:
(x − 2) (x − t)d+1 = 0
(x − 2) (x − 1) = 0
(c) Sehingga didapatkan akar-akar berbeda yakni x1 = 2 dan x2 = 1 sehingga
solusi umumnya adalah
T (n) = c1 2n + c2 1n
= c1 2n + c2
(d) Selanjutnya cari koefisien c1 dan c2 didapat:
T (1) = 2c1 + c2 = 1
T (2) = 4c1 + c2 = 3
Dari persamaan di atas didapat hasil akhir adalah c1 = 1 dan c2 = −1, sehingga
solusi umumnya didapat:
T (n) = 2n − 1 ∈ O(2n ).
3. Diberikan relasi rekursi untuk masalah Minimum dan Maksimum


n=1
 0,
T (n) =
1,
n=2


n
2T 2 + 2,
n>2
Langkah-langkah penyelesainnya adalah:
5
(3.8)
(3.9)
(a) Relasi rekursinya adalah:
T (n) = 2T
n
2
+2
(3.10)
dengan memisalkan n = 2m , maka relasi rekursinya adalah
m
2
m
+1
T (2 ) = 2T
2
= 2T 2m−1 + 1
dan
f (m) = 2
= 1m (2 · m0 )
sehingga didapatkan t = 1 dan d = 0.
(b) Asumsikan dahulu persamaan dalam bentuk HOMGEN yakni f (m) = 0 sehingga didapat:
T (2m ) = 2T 2m−1
T (2m ) − 2T 2m−1 = 0
Misalkan T (m) = xm , maka didapatkan
xm − 2xm−1 = 0,
(3.11)
selanjutnya dengan membagi persamaan dengan suku orde terkecil xm−1 didapat persamaan karakteristik:
(x − 2) (x − t)d+1 = 0
(x − 2) (x − 1) = 0
(c) Sehingga didapatkan akar-akar berbeda yakni x1 = 2 dan x2 = 1 sehingga
solusi umumnya adalah
T (n) = c1 2m + c2 1m
Karena n = 2m , maka m =2 log n,
2
T (n) = c1 2
log n
+ c2 1
2
log n
= c1 n + c2
(d) Selanjutnya cari koefisien c1 dan c2 didapat:
T (1) = c1 + c2 = 0
T (2) = 2c1 + c2 = 1
Dari persamaan di atas didapat hasil akhir adalah c1 = 1 dan c2 = −1, sehingga
solusi umumnya didapat:
T (n) = 2n − 1 ∈ O(n).
6
(3.12)
Atau dengan cara lain:
T (4) = 4c1 + c2 = 2T (2) + 2 = 4
T (8) = 8c1 + c2 = 2T (4) + 2 = 10
Dari persamaan di atas didapat hasil akhir adalah c1 = 3/2 dan c2 = −2,
sehingga solusi umumnya didapat:
3
T (n) = n − 2 ∈ O(n).
2
4
(3.13)
Teorema Master
Pembahasan menggunakan metode karakteristik untuk algoritma rekursif pada bab sebelumnya hanya berlaku untuk kasus umum. Kasus khusus yakni untuk strategi Divide
& Conquer, Kompleksitas waktu asimtotik dapat dicari menggunakan teorema Master
Theorem 4.1 (Master) Untuk suatu general Divide and Conquer recurrence:
n
T (n) = aT
+ f (n)
(4.1)
b
Jika f (n) ∈ O(nd ) dengan d ≥ 0, dalam persamaan general Divide and Conquer
recurrence di atas, maka

d

a < bd
 O(n )
T (n) ∈
(4.2)
O(nd log n)
a = bd

b log a

d
O(n
)
a>b
Exercise
Gunakan Teorema Master untuk mencari kompleksitas waktu asimtotik pada relasi rekursi
untuk masalah Minimum dan Maksimum di bawah ini:


n=1
 0,
T (n) =
(4.3)
1,
n=2


n
2T 2 + 2,
n>2
References
1. Anany, L. (2003). Introduction to the design and analysis of algorithms. Villanova
University.
2. http://www.annedawson.net/BigOh.htm
7
5
Homework
1. Selesaikan relasi rekurensi berikut dengan menggunakan Metode Karakteristik serta
tambahkan pula dengan Teorema master untuk soal (d-e):
(a)
(
T (n) =
0,
T (n − 1) + 5,
n=1
n≥2
(5.1)
n=1
n≥2
(5.2)
(b)
(
T (n) =
4,
3T (n − 1),
(c)
(
T (n) =
0,
n=0
T (n − 1) + T (n − 2) + T (n − 3),
n>0
(5.3)
(d)
(
T (n) =
1,
T (n/2) + n,
n=1
n>1
(5.4)
1,
T (n/3) + 1,
n=1
n>1
(5.5)
(e)
(
T (n) =
2. Diberikan algoritma untuk menghitung jumlah pangkat 3 dari deret, S(n) = n3 +
(n − 1)3 + · · · + 23 + 13 .
ALGORITHM
S(n)
//Input: A positive integer n
//Output: The sum of the first n cubes
if n = 1 return 1
else return S(n - 1) + n * n * n
(a) Tentukan relasi rekursi dari algoritma di atas dan selesaikan menggunakan
metode Karakteristik.
8
Download