ZKA-DAAMateriKompAlgoRekursif. 276KB Apr 25 2011 02:13:56 AM

(1)

Kompleksitas Waktu untuk Algoritma Rekursif Bentuk rekursif :

- suatu subrutin/fungsi/ prosedur yang memanggil dirinya sendiri. - Bentu dimana pemanggilan subrutin terdapat dalam body subrutin - Dengan rekursi, program akan lebih mudah dilihat

Bentuk rekursi bertujuan untuk :

- menyederhanakan penulisan program - menggantikan bentuk iterasi

Syarat bentuk rekursif:

- ada kondisi terminal (basis)

- subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal (recurrence)

Menghitung kompleksitas bentuk rekursif

Untuk bentuk rekursif, digunakan teknik perhitungan kompleksitas dengan relasi rekurens.

Contoh :

1. Menghitung faktorial

Function Faktorial (input n : integer) → integer {menghasilkan nilai n!, n tidak negatif}

Algoritma If n=0 then Return Else

Return n*faktorial (n-1) Endif

Kompleksitas waktu :

- untuk kasus basis, tidak ada operasi perkalian → (0)

- untuk kasus rekurens, kompleksitas waktu diukur dari jumlah perkalian (1) ditambah kompleksitas waktu untuk faktorial (n-1)

Jadi relasi rekurrens :

( )

⎩ ⎨ ⎧

> +

= =

0 , 1 ) 1 (

0 , 0

n n

T

n n


(2)

Kompleksitas waktu :

( )

n =1+T

( )

n−1 T

(

2

)

2

(

2

)

1

1+ + − = + −

= T n T n

( )

3 3

( )

3 1

2+ + − = + −

= T n T n

= ………. ………. = n + T(0) = n + 0 Jadi T(n) = n T(n)∈ O(n) 2. Menara Hanoi

→ Legenda di Hanoi, tentang kisah pendeta Budha bersama murid-muridnya.

A C

B Permasalahan :

Bagaimana memindahkan seluruh piringan tersebut ke sebuah tiang yang lain (dari A ke B); setiap kali hanya satu piringan yang boleh dipindahkan, tetapi tidak boleh ada piringan besar di atas piringan kecil. Ada tiang perantara C.

Kata pendeta, jika pemindahan berhasil dilakukan, maka DUNIA KIAMAT !!! Procedure Hanoi (input n, A, B, C:integer)

Algoritma

If n=1 then

Write (‘Pindahkan piringan dari’,A,’ke’,B) Else

Hanoi(n-1,A,C,B)

Writeln(‘Pindahkan piringan dari’,A,’ke’,B) Hanoi(n-1,C,B,A)


(3)

Relasi Rekurrens :

( )

( )

⎩ ⎨ ⎧

> +

= =

1 , 1 1 2

1 , 1

n n

T

n n

T

Kompleksitas waktu :

( )

n =1+2T

( )

n−1 T

=1+2

(

1+2T

(

n−2

)

)

=1+2+22T

(

n−2

)

=1+2+22

(

1+2T

( )

n−3

)

=1+2+22+23T

( )

n−3 = …….

= …….

=

(

1 2 22 ... 2 2

)

2 1

( )

1 T

n n− + −

+ + + +

= 1+2+22 +...+2n−1.1 =2n −1

Jadi

( )

( )

( )

n n

O n T

n T

2 1 2

∈ − =

( )

n =2n −1

T adalah jumlah seluruh perpindahan piringan dari satu tiang ke tiang lainnya. Jika perpindahan 1 piringan butuh waktu 1 detik, maka waktu yang dibutuhkan :

264−1 detik = 10.446.744.073.709.551.615 = kira-kira 600 milyar tahun (???!!!) 3. Persoalan Minimum & Maksimum

procedure MinMaks2(input A : TabelInt, i, j : integer, output min, maks : integer)

{ Mencari nilai maksimum dan minimum di dalam tabel A yang berukuran n elemen secara Divide and Conquer.

Masukan: tabel A yang sudah terdefinisi elemen-elemennya Keluaran: nilai maksimum dan nilai minimum tabel

}

Deklarasi

min1, min2, maks1, maks2 : integer Algoritma:

if i=j then { 1 elemen }


(4)

maks←Ai

else

if (i = j-1) then { 2 elemen }

if Ai < Aj then

maks←Aj

min←Ai

else maks←Ai

min←Aj

endif

else { lebih dari 2 elemen }

k←(i+j) div 2 { bagidua tabel pada posisi k }

MinMaks2(A, i, k, min1, maks1) MinMaks2(A, k+1, j, min2, maks2) if min1 < min2 then

min←min1 else

min←min2 endif

if maks1<maks2 then maks←maks2 else

maks←maks2 endif

Relasi rekurrens:

⎪⎩

>

+

=

=

=

2

,

2

)

2

/

(

2

2

,

1

1

,

0

)

(

n

n

T

n

n

n

T

Penyelesaian:

Asumsi: n = 2k, dengan k bilangan bulat positif, maka T(n) = 2T(n/2) + 2

= 2(2T(n/4) + 2) + 2 = 4T(n/4) + 4 + 2

= 4T(2T(n/8) + 2) + 4 + 2 = 8T(n/8) + 8 + 4 + 2 = ...


(5)

= 2k – 1 T(2) +

− =

1 1

2

k

i i

= 2k – 1⋅ 1 + 2k – 2 =2(2logn)−1+2(2logn)−2

= n/2 + n – 2 = 3n/2 – 2 Jadi

( )

2

2 3 = n n T

( ) ( )

n O n

T

Untuk mengetahui kompleksitas bentuk rekursif, maka T

( )

n harus diubah dalam bentuk yang bukan rekursif

Bagaimana mengubah bentuk rekursif ke non rekursif ?

Ada dua macam cara untuk menyelesaikan masalah ini, yaitu cara coba-coba dan dengan persamaan karakteristik :

1. Cara coba-coba.

Cara ini dilakukan dengan menentukan pola deret yang terbentuk (cara induksi). Contoh untuk cara ini telah ditunjukkan dalam mencari kompleksitas waktu untuk beberapa bentuk rekursif sebelumnya. Cara ini agak sulit dan perlu pengalaman.

Contoh :

( )

( ) (

)

⎩ ⎨ ⎧

≥ +

− + −

= =

3 2

1

2 , 1 n b n

T n

T

n a

n T

T(1) = T(2) = a

( ) ( ) ( )

T T b a a b a b

T 3 = 1 + 2 + = + + =2 +

( ) ( ) ( )

T T b a a b b a b

T 4 = 2 + 3 + = +2 + + =3 +2

( ) ( ) ( )

T T b a b a b b a b

T 5 = 3 + 4 + =2 + +3 +2 + =5 +4

( ) ( ) ( )

T T b a b a b b

T 6 = 4 + 5 + =3 +2 +5 +4 +

= 8a + 7b → Sulit untuk diformulasikan

2. Metode dengan persamaan karakteristik Bentuk Persamaan Linier Tak Homogen Langkah-langkahnya adalah sebagai berikut : 1. Perhatikan bentuk rekursifnya :

( )

n aT

( )

n aT

(

n

)

aT

(

n k

) ( )

f n T = 1 −1 + 2 −2 +....+ k − +


(6)

( )

n t P

( )

n

f = n d → polinomial dengan orde / derajat terbesar d

( )

k

d d

d n b n bn b

P = 0 + 1 −1+....+

2. Asumsi f

( )

n = 0 → bentuk homogen

( )

n aT

( )

n a T

(

n

)

a T

(

n k

)

T = 1 −1 + 2 −2 +....+ k − Misal T

( )

n = xn

k n k n

n n

x a x

a x a

x = 1 −1+ 2 −2 +...+ − 0 ...

2 2 1

1 − − − =

− − − nk

k n

n n

x a x

a x a x

Persamaan di atas kemudian dibagi dengan (ini jika adalah suku dengan orde terkecil), sehingga didapatkan :

k n

xxnk 0

...

2 2 1

1 − − − =

− − −

k k

k k

a x

a x a x

3. Diperoleh persamaan karakteristik :

(

xka1xk−1 −a2xk−2 −...−ak

)

( )

xt d+1 =0

t didapatkan dari langkah 1. 4. Ada 2 macam kasus :

Kasus 1

Semua akar karakteristik berbeda

{

x1,x2,x3,...

}

Solusi Umum:

( )

n =c1x1n +c2x2n +c3x3n +.... T

,... , , 2 3

1 c c

c adalah konstanta yang harus dicari Kasus 2

Semua akar karakteristik sama, yaitu x1 = x2 =....= x

Solusi Umum:

( )

(

)

n

x n

c n c n c c n

T = 1+ 2 + 3 2 + 4 3 +.... Contoh 1:

Kasus faktorial

( )

( )

⎩ ⎨ ⎧

> +

= =

0 , 1 1

0 , 0

n n

T

n n

T

(i) T

( ) ( )

n =T n−1 +1

( )

n =1 f

=1n

( )

n0

→ t = 1 d = 0 (ii) persamaan homogen

( ) ( )

n =T n−1 T

( ) ( )

nT n−1 =0 T


(7)

Misal T

( )

n = xn, maka xnxn−1 =0

Persamaan terakhir ini dibagi dengan xn−1 (suku dengan orde terkecil), didapatkan : x – 1 = 0

(iii) Persamaan karakteristik (x – 1)(x – 1) = 0

Akar – akarnya adalah : x1 =1 x2 =1

Akar sama, jadi termasuk kasus 2, sehingga solusi umum :

( ) (

)

n

n c c n

T = 1+ 2 .1 =c1+c2n

Dari relasi rekurens :

( )

0 =0

T

( ) ( )

1 =T 0 +1=1

T ………..(*) Dari solusi umum:

( )

0 c1

T =

( )

1 c1 c2

T = + ………(**)

Dari (*) dan (**) didapatkan persamaan :

0

1 =

c

1

2 1+c =

c

Dari kedua persamaan terakhir ini diperoleh c1 =0 dan c2 =1

Dengan demikian diperoleh :

( )

n c c n

T = 1 + 2

= n

Jadi kompleksitas waktunya adalah T

( )

n =n dan T

( ) ( )

nO n

Contoh 2:

Kasus Menara Hanoi Relasi rekurrens :

( )

( )

⎩ ⎨ ⎧

> −

+

= =

1 ,

1 2 1

1 ,

1

n n

T

n n

T

(i) T

( )

n =2T

( )

n−1 +1

( )

n =1 f


(8)

=1n

( )

1.n0 → t = 1 d = 0 (ii) Persamaan homogen

Misal T

( )

n = xn

( )

n =2T

( )

n−1 T

( )

−2

( )

−1 =0

T n T n

0 2 1 = − n

n

x x

Persamaan terakhir ini dibagi n−1 (suku dengan orde terkecil), didapatkan : x

x – 2 = 0

(iii) Diperoleh persamaan karakteristik : (x – 2)(x – 1) = 0

Dari persamaan karakterik diperoleh akar-akar :

2

1 =

x → akar-akar berbeda, sehingga termasuk dalam kasus 1, sehingga solusi umum:

1

2 =

x

( )

n n

c c n

T = 12 + 21 c12 c2

n +

=

Cari c1 dan c2 :

Dari relasi rekurrens :

( )

( )

2 3 1 1

= = T T

………(*)

Dari Solusi umum:

( )

( )

1 2 2 1

4 2

2 1

c c T

c c T

+ =

+ =

……(**)

Dari (*) dan (**) 3 4

1 2

2 1

2 1

= +

= +

c c

c c

Dari 2 persamaan terakhir ini, diperoleh c1 = 1 dan c2 = -1

Jadi T

( )

n c12 c2

n +

=

=2n −1 Jadi kompleksitas waktu :


(9)

( )

n =2n −1 T

Kompleksitas waktu Asimptotik:

( )

( )

n

O n

T ∈ 2

Contoh 3: Kasus Minmax2

( )

( )

⎪⎩ ⎪ ⎨ ⎧

> +

= = =

2 , 2 2

2 , 1

1 , 0

2 n

T

n n n

T

n

(i) T

( )

n =2T

( )

n2 +2

Dimisalkan n=2m

( )

2

2 2 2

2 +

⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛

= m

m T T

=2T

( )

2m−1 +2 (ii) Persamaan homogen :

Misal

( )

m m

x T 2 =

( ) ( )

1

2 2 2m = T mT

( ) ( )

2m −2T 2m−1 =0 T

0 2 1 = − m

m

x x

Persamaan terakhir ini dibagi dengan (suku dengan orde terkecil), didapatkan :

1

m

x x – 2 = 0

( )

n =2 f

=1n

( )

2n0 → t = 1 d = 0

(iii) Diperoleh persamaan karakteristik :

(

x−2

)( )

x−1 =0

Akar-akarnya : x1 =2 x2 =1

Solusi :

( )

m m

c c

m

T = 12 + 21

Karena n=2mm=2logn

( )

n n

c c

n

T = 122log + 212log


(10)

Cari c1 dan c2 :

Dari relasi rekurrens :

( )

4 =2T

( )

2 +2 T

= 4

( )

8 =2T

( )

4 +2

T ……..(*) = 10

Dari solusi umum:

( )

( )

1 2 2 1

8 8

4 4

c c T

c c T

+ =

+ =

………..(**)

Dari (*) dan (**)

4 4c1+c2 =

10 8c1+c2 =

Dari dua persamaan ini diperoleh 32 1 =

c dan c2 =−2

Jadi kompleksitas waktu :

( )

2

2 3

− = n n T

Kompleksitas waktu asimptotik :

( ) ( )

n O n

T

Bentuk Persamaan Linier Homogen Bentuk Persaman Linier Homogen adalah :

( )

n aT

( )

n aT

(

n

)

aT

(

n k

) ( )

f n T = 1 −1 + 2 −2 +....+ k − + Dengan f

( )

n = 0

Jadi bentuk Persaman Linier Homogen adalah :

( )

n aT

( )

n aT

(

n

)

a T

(

n k

)

T = 1 −1 + 2 −2 +....+ k

Contoh 4: Deret Fibonacci Relasi rekurrens :

( )

( ) (

)

⎪⎩

⎪ ⎨ ⎧

> −

+ −

= = =

1 2

1

1 1

0 0

n n

T n

T

n n n

T

(i) Persamaan rekursi : T

( ) ( ) (

nT n−1 −T n−2

)

=0 Misal

( )

n, maka

x n


(11)

0

2 1− =

nn

n

x x x

Persamaan terakhir ini dibagi xn−2, didapatkan : 1

2− −

x

x = 0 → persamaan karakteristik (ii) Akar persamaan karakteristik adalah :

2 5 1

1

+ =

x dan

2 5 1

1

− = x

→ akar-akar berbeda, sehingga termasuk dalam kasus 1, sehingga solusi umum:

( )

n c n c n T

⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ − + ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ + =

2 5 1 2

5 1

2 1

(iii) Cari c1 dan c2 :

Dari relasi rekurrens dan solusi umum diperoleh :

( )

( )

1

2 5 1 2

5 1 1

0 2

5 1 2

5 1 0

1 2

1 1

0 2

0 1

= ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ − + ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ + =

= ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ − + ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ + =

c c

T

c c

T

Dari 2 persamaan terakhir ini, diperoleh c1 =

5 1

dan c2 =

5 1 − (iv) Masukkan ke solusi umum kembali, sehingga didapatkan :

( )

( ) ( )

5

2 5 1 2

5

1 n n

n T

⎥ ⎦ ⎤ ⎢

⎣ ⎡ − − ⎥ ⎦ ⎤ ⎢

⎣ ⎡ + =


(12)

Contoh 5:

Misal kita punya relasi rekurrens :

( )

( )

(

)

( )

⎪ ⎪ ⎩ ⎪⎪ ⎨ ⎧ > − + − − − = = = = 2 3 9 2 15 1 7 2 2 1 1 0 0 n n T n T n T n n n n T

(i) Persamaan rekursi : T

( )

n −7T

( )

n−1 +15T

(

n−2

)

−9T

( )

n−3 =0

Misal T(n) = xn, maka persamaan di atas menjadi : n−7 n−1+15 n−2−9 n−3 =0

x x x x 0 9 15 7 2

3− + − =

x x x

Persamaan terakhir ini dibagi xn−3(suku dengan orde terkecil), didapatkan :

( )( )( )

1 3 3 0

9 15 7 2

3− + − = − − − =

x x x x

x

x → persamaan karakteristik

(ii) Akar persamaan karakteristik adalah :

1

1 =

x , x2 = x3 =3

→ tidak semua akar-akarnya sama (juga tidak semua berbeda), jadi perpaduan antara kasus 1 dan kasus 2, sehingga solusi umumnya adalah :

( )

n n n

n c c c n

T = 11 + 23 + 3 3

(iii) Cari c1 dan c2 :

Dari relasi rekurrens dan solusi umum diperoleh :

( )

( )

( )

0 1 3 (0)(3 ) 2 1 ) 3 )( 0 ( 3 1 1 0 ) 3 )( 0 ( 3 1 0 2 3 2 2 2 1 1 3 1 2 1 1 0 3 0 2 0 1 = + + = = + + = = + + = c c c T c c c T c c c T

Disederhanakan menjadi :

2 18 9 1 3 3 0 3 2 1 3 2 1 2 1 = + + = + + = + c c c c c c c c


(13)

(iv) Masukkan ke solusi umum kembali, sehingga didapatkan :

( ) ( )

( )

n

( )

( )

n

( )

n

n n

T 3

3 1 3

1 1

1 ⎟

⎠ ⎞ ⎜ ⎝ ⎛− + +

− =

=−1+3n3n−1

n

Cara yang telah dibahas didepan adalah bagaimana mencari T(n) untuk algoritma rekursif, yang berlaku secara umum. Khusus untuk strategi Divide & Conquer, kita bisa juga mencari kompleksitas waktu asimptotik (ingat! hanya kompleksitas waktu asimptotik, bukan T(n) ) dengan menggunakan teorema Master.

Teorema Master :

Untuk suatu general Divide and Conquer recurrence :

( )

( )

f

( )

n b

n aT n

T = +

Jika

( )

( )

d

n O n

f ∈ dimana dalam persamaan general Divide and Conquer recurrence di atas, maka

0

d

( )

( )

(

)

( )

⎩ ⎪ ⎨ ⎧

> = < ∈

d a

d d

d d

b a n

O

b a n n O

b a n

O n T

blog

log

(analogous results hold for the Θ and Ω notations, too) Contoh :

Persoalan Minimum & Maksimum (procedure MinMax2) → salah satu contoh strategi divide and conquer.

( )

( )

⎪⎩ ⎪ ⎨ ⎧

> +

= = =

2 , 2 2

2 , 1

1 , 0

2 n

T

n n n

T

n

Dari relasi rekurens di atas, diperoleh a = 2, b = 2, d = 0. sehingga a >bd, sehingga

( )

( )

2log2

n O n

T ∈ atau T

( ) ( )

nO n .

Contoh yang lain disampaikan di kuliah, ya!!!


(1)

=1n

( )

1.n0 → t = 1 d = 0 (ii) Persamaan homogen

Misal T

( )

n = xn

( )

n =2T

( )

n−1

T

( )

−2

( )

−1 =0 ⇔T n T n

0 2 1 = − n

n

x x

Persamaan terakhir ini dibagi n−1 (suku dengan orde terkecil), didapatkan : x

x – 2 = 0

(iii) Diperoleh persamaan karakteristik : (x – 2)(x – 1) = 0

Dari persamaan karakterik diperoleh akar-akar : 2

1 =

x → akar-akar berbeda, sehingga termasuk dalam kasus 1, sehingga solusi umum:

1 2 =

x

( )

n n

c c n

T = 12 + 21 c12 c2

n +

=

Cari c1 dan c2 : Dari relasi rekurrens :

( )

( )

2 3

1 1

= = T T

………(*) Dari Solusi umum:

( )

( )

1 2 2 1 4 2

2 1

c c T

c c T

+ =

+ =

……(**) Dari (*) dan (**)

3 4

1 2

2 1

2 1

= +

= +

c c

c c

Dari 2 persamaan terakhir ini, diperoleh c1 = 1 dan c2 = -1 Jadi T

( )

n c12 c2

n +

=

=2n −1 Jadi kompleksitas waktu :


(2)

( )

n =2n −1 T

Kompleksitas waktu Asimptotik:

( )

( )

n

O n

T ∈ 2

Contoh 3: Kasus Minmax2

( )

( )

⎪⎩ ⎪ ⎨ ⎧

> +

= = =

2 , 2 2

2 , 1

1 , 0

2 n

T

n n n

T

n

(i) T

( )

n =2T

( )

n2 +2 Dimisalkan n=2m

( )

2

2 2 2

2 +

⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛

= m

m

T T

=2T

( )

2m−1 +2 (ii) Persamaan homogen :

Misal

( )

m m

x T 2 =

( ) ( )

1

2 2 2m = T mT

( ) ( )

2m −2T 2m−1 =0 T

0 2 1 = − m

m

x x

Persamaan terakhir ini dibagi dengan (suku dengan orde terkecil), didapatkan :

1

m

x x – 2 = 0

( )

n =2

f

=1n

( )

2n0

→ t = 1 d = 0

(iii) Diperoleh persamaan karakteristik :

(

x−2

)( )

x−1 =0

Akar-akarnya : x1 =2 x2 =1 Solusi :

( )

m m

c c

m

T = 12 + 21

Karena n=2mm=2logn

( )

n n

c c

n

T = 122log + 212log =c1n+c2


(3)

Cari c1 dan c2 : Dari relasi rekurrens :

( )

4 =2T

( )

2 +2

T

= 4

( )

8 =2T

( )

4 +2

T ……..(*)

= 10

Dari solusi umum:

( )

( )

1 2 2 1 8 8

4 4

c c T

c c T

+ =

+ =

………..(**) Dari (*) dan (**)

4 4c1+c2 =

10 8c1+c2 =

Dari dua persamaan ini diperoleh 32 1 =

c dan c2 =−2 Jadi kompleksitas waktu :

( )

2

2 3

− = n n T

Kompleksitas waktu asimptotik :

( ) ( )

n O n

T

Bentuk Persamaan Linier Homogen

Bentuk Persaman Linier Homogen adalah :

( )

n aT

( )

n aT

(

n

)

aT

(

n k

) ( )

f n T = 1 −1 + 2 −2 +....+ k − + Dengan f

( )

n = 0

Jadi bentuk Persaman Linier Homogen adalah :

( )

n aT

( )

n aT

(

n

)

a T

(

n k

)

T = 1 −1 + 2 −2 +....+ k

Contoh 4: Deret Fibonacci

Relasi rekurrens :

( )

( ) (

)

⎪⎩ ⎪ ⎨ ⎧

> −

+ −

= = =

1 2

1

1 1

0 0

n n

T n

T

n n n

T

(i) Persamaan rekursi : T

( ) ( ) (

nT n−1 −T n−2

)

=0 Misal

( )

n, maka

x n


(4)

0 2 1− = − nn

n

x x x

Persamaan terakhir ini dibagi xn−2, didapatkan : 1

2− − x

x = 0 → persamaan karakteristik (ii) Akar persamaan karakteristik adalah :

2 5 1 1

+ =

x dan

2 5 1 1

− = x

→ akar-akar berbeda, sehingga termasuk dalam kasus 1, sehingga solusi umum:

( )

n c n c n

T

⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ − + ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ + =

2 5 1 2

5 1

2 1

(iii) Cari c1 dan c2 :

Dari relasi rekurrens dan solusi umum diperoleh :

( )

( )

1

2 5 1 2

5 1 1

0 2

5 1 2

5 1 0

1 2

1 1

0 2

0 1

= ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ − + ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ + =

= ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ − + ⎟⎟⎠ ⎞ ⎜⎜⎝

⎛ + =

c c

T

c c

T

Dari 2 persamaan terakhir ini, diperoleh c1 = 5 1

dan c2 = 5

1 − (iv) Masukkan ke solusi umum kembali, sehingga didapatkan :

( )

( ) ( )

5 2

5 1 2

5

1 n n

n T

⎥ ⎦ ⎤ ⎢

⎣ ⎡ − − ⎥ ⎦ ⎤ ⎢

⎣ ⎡ + =


(5)

Contoh 5:

Misal kita punya relasi rekurrens :

( )

( )

(

)

( )

⎪ ⎪ ⎩ ⎪⎪ ⎨ ⎧ > − + − − − = = = = 2 3 9 2 15 1 7 2 2 1 1 0 0 n n T n T n T n n n n T

(i) Persamaan rekursi : T

( )

n −7T

( )

n−1 +15T

(

n−2

)

−9T

( )

n−3 =0 Misal T(n) = xn, maka persamaan di atas menjadi :

n−7 n−1+15 n−2−9 n−3 =0 x x x x 0 9 15 7 2

3− + − =

x x x

Persamaan terakhir ini dibagi xn−3(suku dengan orde terkecil), didapatkan :

( )( )( )

1 3 3 0

9 15 7 2

3− + − = − − − =

x x x x

x

x → persamaan karakteristik

(ii) Akar persamaan karakteristik adalah : 1

1 =

x , x2 = x3 =3

→ tidak semua akar-akarnya sama (juga tidak semua berbeda), jadi perpaduan antara kasus 1 dan kasus 2, sehingga solusi umumnya adalah :

( )

n n n

n c c c n

T = 11 + 23 + 3 3

(iii) Cari c1 dan c2 :

Dari relasi rekurrens dan solusi umum diperoleh :

( )

( )

( )

0 1 3 (0)(3 ) 2 1 ) 3 )( 0 ( 3 1 1 0 ) 3 )( 0 ( 3 1 0 2 3 2 2 2 1 1 3 1 2 1 1 0 3 0 2 0 1 = + + = = + + = = + + = c c c T c c c T c c c T

Disederhanakan menjadi :

2 18 9 1 3 3 0 3 2 1 3 2 1 2 1 = + + = + + = + c c c c c c c c


(6)

(iv) Masukkan ke solusi umum kembali, sehingga didapatkan :

( ) ( )

( )

n

( )

( )

n

( )

n

n n

T 3

3 1 3

1 1

1 ⎟

⎠ ⎞ ⎜ ⎝ ⎛− + +

− =

=−1+3n3n−1 n

Cara yang telah dibahas didepan adalah bagaimana mencari T(n) untuk algoritma rekursif, yang berlaku secara umum. Khusus untuk strategi Divide & Conquer, kita bisa juga mencari kompleksitas waktu asimptotik (ingat! hanya kompleksitas waktu asimptotik, bukan T(n) ) dengan menggunakan teorema Master.

Teorema Master :

Untuk suatu general Divide and Conquer recurrence :

( )

( )

f

( )

n b

n aT n

T = +

Jika

( )

( )

d

n O n

f ∈ dimana dalam persamaan general Divide and Conquer recurrence di atas, maka

0 ≥

d

( )

( )

(

)

( )

⎪ ⎩ ⎪ ⎨ ⎧

> = < ∈

d a

d d

d d

b a n

O

b a n n O

b a n

O n T

blog

log

(analogous results hold for the Θ and Ω notations, too) Contoh :

Persoalan Minimum & Maksimum (procedure MinMax2) → salah satu contoh strategi divide and conquer.

( )

( )

⎪⎩ ⎪ ⎨ ⎧

> +

= = =

2 , 2 2

2 , 1

1 , 0

2 n

T

n n n

T

n

Dari relasi rekurens di atas, diperoleh a = 2, b = 2, d = 0. sehingga a >bd, sehingga

( )

( )

2log2

n O n

T ∈ atau T

( ) ( )

nO n .

Contoh yang lain disampaikan di kuliah, ya!!!


Dokumen yang terkait

AN ALIS IS YU RID IS PUT USAN BE B AS DAL AM P E RKAR A TIND AK P IDA NA P E NY E RTA AN M E L AK U K A N P R AK T IK K E DO K T E RA N YA NG M E N G A K IB ATK AN M ATINYA P AS IE N ( PUT USA N N O MOR: 9 0/PID.B /2011/ PN.MD O)

0 82 16

ANALISIS FAKTOR YANGMEMPENGARUHI FERTILITAS PASANGAN USIA SUBUR DI DESA SEMBORO KECAMATAN SEMBORO KABUPATEN JEMBER TAHUN 2011

2 53 20

FAKTOR – FAKTOR YANG MEMPENGARUHI PENYERAPAN TENAGA KERJA INDUSTRI PENGOLAHAN BESAR DAN MENENGAH PADA TINGKAT KABUPATEN / KOTA DI JAWA TIMUR TAHUN 2006 - 2011

1 35 26

A DISCOURSE ANALYSIS ON “SPA: REGAIN BALANCE OF YOUR INNER AND OUTER BEAUTY” IN THE JAKARTA POST ON 4 MARCH 2011

9 161 13

Pengaruh kualitas aktiva produktif dan non performing financing terhadap return on asset perbankan syariah (Studi Pada 3 Bank Umum Syariah Tahun 2011 – 2014)

6 101 0

Pengaruh pemahaman fiqh muamalat mahasiswa terhadap keputusan membeli produk fashion palsu (study pada mahasiswa angkatan 2011 & 2012 prodi muamalat fakultas syariah dan hukum UIN Syarif Hidayatullah Jakarta)

0 22 0

Pendidikan Agama Islam Untuk Kelas 3 SD Kelas 3 Suyanto Suyoto 2011

4 108 178

TAHUN AJARAN 2010 2011

0 6 10

ANALISIS NOTA KESEPAHAMAN ANTARA BANK INDONESIA, POLRI, DAN KEJAKSAAN REPUBLIK INDONESIA TAHUN 2011 SEBAGAI MEKANISME PERCEPATAN PENANGANAN TINDAK PIDANA PERBANKAN KHUSUSNYA BANK INDONESIA SEBAGAI PIHAK PELAPOR

1 17 40

KOORDINASI OTORITAS JASA KEUANGAN (OJK) DENGAN LEMBAGA PENJAMIN SIMPANAN (LPS) DAN BANK INDONESIA (BI) DALAM UPAYA PENANGANAN BANK BERMASALAH BERDASARKAN UNDANG-UNDANG RI NOMOR 21 TAHUN 2011 TENTANG OTORITAS JASA KEUANGAN

3 32 52