Top Banner
Kompleksitas Waktu untuk Algoritma Rekursif ZK Abdurahman Baizal
57

Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Feb 03, 2018

Download

Documents

truongkhanh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Kompleksitas Waktu

untuk Algoritma

Rekursif

ZK Abdurahman Baizal

Page 2: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Algoritma Rekursif

Bentuk rekursif :

suatu subrutin/fungsi/ prosedur yang

memanggil dirinya sendiri.

Bentuk dimana pemanggilan subrutin

terdapat dalam body subrutin

Dengan rekursi, program akan lebih mudah

dilihat

Page 3: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Bentuk rekursi bertujuan untuk :

menyederhanakan penulisan program

menggantikan bentuk iterasi

Syarat bentuk rekursif:

ada kondisi terminal (basis)

ada subroutine call yang melibatkan

parameter yang nilainya menuju kondisi

terminal (recurrence)

Page 4: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Menghitung kompleksitas bentuk

rekursif

Untuk bentuk rekursif, digunakan teknik

perhitungan kompleksitas dengan relasi

rekurens

Page 5: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Menghitung faktorial

Function Faktorial (input n : integer) → integer

{menghasilkan nilai n!, n tidak negatif}

Algoritma

If n=0 then

Return 1

Else

Return ( n*faktorial (n-1) )

Endif

Page 6: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Menghitung faktorial

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)

Page 7: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Menghitung faktorial

Jadi relasi rekurens :

0,1)1(

0,0

nnT

nnT

Page 8: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

11 nTnT

22211 nTnT

33312 nTnT

= …..

= n + T(0)

= n + 0

Jadi T(n) = n → O(n)

Menghitung faktorial

Page 9: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Menara Hanoi

Legenda di Hanoi, tentang kisah pendeta

Budha bersama murid-muridnya.

Page 10: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Bagaimana memindahkan seluruh piringan (64 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.

B A C

Page 11: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Kata pendeta, jika pemindahan

berhasil dilakukan, maka DUNIA

KIAMAT !!!

Page 12: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

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)

Endif

Menara Hanoi

Page 13: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Relasi Rekurrens :

1,112

1,1

nnT

nnT

Menara Hanoi

Page 14: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

121 nTnT

222122121 2 nTnT

32221321221 322 nTnT

= …….

122.......221 122 Tnn

1.2.....221 12 n

12 n

Menara Hanoi

Page 15: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Menara Hanoi

Jadi

n

n

OnT

nT

2

12

Page 16: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

12 nnT

Menara Hanoi

= kira-kira 600 milyar tahun (???!!!)

1264 detik

= 10.446.744.073.709.551.615

adalah jumlah seluruh perpindahan piringan dari satu

tiang ke tiang lainnya.

Jika perpindahan 1 piringan butuh waktu 1 detik, maka

waktu yang dibutuhkan :

Page 17: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

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

Page 18: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

if i=j then { 1 elemen }

minAi

maksAi

else

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

if Ai < Aj then

maksAj

minAi

else

maksAi

minAj

endif

Page 19: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

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

minmin1

else

minmin2

endif

if maks1<maks2 then

maksmaks2

else

maksmaks2

endif

Page 20: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

2,2)2/(2

2,1

1,0

)(

nnT

n

n

nT

Relasi rekurrens:

Page 21: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

Penyelesaian:

Asumsi: n = 2k, dengan k bilangan bulat positif,

maka

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

= 2k – 1 T(2) +

1

1

2k

i

i

= 2k – 1 1 + 2k – 2

= ...

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

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

Page 22: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

222 log1log 22

nn

= n/2 + n – 2

22

3 nnT

nOnT

Jadi

= 3n/2 – 2

Page 23: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Untuk mengetahui kompleksitas bentuk rekursif, maka

nT 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 (deret).

2. Metode dengan persamaan karakteristik

Page 24: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Cara coba-coba.

Cara ini dilakukan dengan menentukan pola

deret yang terbentuk (cara deret). Contoh

untuk cara ini telah ditunjukkan dalam

mencari kompleksitas waktu untuk beberapa

bentuk rekursif sebelumnya. Cara ini agak

sulit dan perlu pengalaman.

Page 25: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Cara coba-coba

Contoh :

321

2,1

nbnTnT

nanT

Page 26: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Cara coba-coba

babaabTTT 2213

babbaabTTT 232324

babbababTTT 45232435

bbababTTT 4523546

T(1) = T(2) = a

= 8a + 7b

→ Sulit untuk diformulasikan

Page 27: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Metode dengan persamaan

karakteristik

Bentuk Persamaan Linier Tak Homogen

Langkah-langkahnya adalah sebagai berikut:

1. Perhatikan bentuk rekursifnya :

nfknTanTanTanT k ....21 21

nPtnf d

n

k

dd

d bnbnbnP ....1

10

→ polinomial dengan orde / derajat terbesar d

→ didapatkan nilai t dan d

Page 28: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Metode dengan persamaan

karakteristik

knTanTanTanT k ....21 21

nxnT

kn

k

nnn xaxaxax ...2

2

1

1

0...2

2

1

1 kn

k

nnn xaxaxax

2. Asumsi nf = 0

Misal

knx Persamaan di atas kemudian dibagi dengan

knx (ini jika adalah suku dengan orde terkecil), sehingga

didapatkan : 0...2

2

1

1

k

kkk axaxax

→ bentuk homogen

Page 29: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Metode dengan persamaan

karakteristik

3. Diperoleh persamaan karakteristik :

0...12

2

1

1 d

k

kkk txaxaxax

t dan d didapatkan dari langkah 1.

Page 30: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Metode dengan persamaan

karakteristik

4. Ada 2 macam kasus :

....332211 nnn

xcxcxcnT

,...,, 321 xxxKasus 1

Semua akar karakteristik berbeda

Solusi Umum:

,...,, 321 ccc adalah konstanta yang harus dicari

xxx ....21

nxncncnccnT ....3

4

2

321

Kasus 2

Semua akar karakteristik sama, yaitu

Solusi Umum:

Page 31: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Masalah faktorial

0,11

0,0

nnT

nnT

11 nTnT

1nf

0.11 nn

(i)

→ t = 1 d = 0

Page 32: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Masalah faktorial

1 nTnT

01 nTnT

01 nn xx1nx

(ii) persamaan homogen (kita anggap f(n)=0)

nxnT Misal , maka

Persamaan terakhir ini dibagi dengan

(suku dengan orde terkecil), didapatkan :

x – 1 = 0

Page 33: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Masalah faktorial

11 x 12 x

nnccnT 1.21

ncc 21

(iii) Persamaan karakteristik

(x – 1)(x – 1) = 0

Akar – akarnya adalah :

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

Page 34: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Masalah faktorial

00 T

1101 TT

10 cT

211 ccT

Dari relasi rekurens :

Dari solusi umum:

………(**)

………..(*)

Cari c1 dan c2 :

Page 35: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Masalah faktorial

01 c

121 cc

01 c 12 c

nccnT 21

nnT nOnT

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

Dari kedua persamaan terakhir ini diperoleh

dan

Dengan demikian diperoleh :

Jadi kompleksitas waktunya adalah dan

= n

Page 36: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Kasus Menara Hanoi

1,121

1,1

nnT

nnT

1nf

0.11 nn

Relasi rekurrens :

112 nTnT(i)

→ t = 1 d = 0

Page 37: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Kasus Menara Hanoi

nxnT

12 nTnT

012 nTnT

02 1 nn xx1nx

(ii) Persamaan homogen

Persamaan terakhir ini dibagi

didapatkan :

x – 2 = 0

Misal

(suku dengan orde terkecil),

Page 38: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Kasus Menara Hanoi

21 x 12 x

nn ccnT 12 21

212 cc n

(iii) Diperoleh persamaan karakteristik :

(x – 2)(x – 1) = 0

Dari persamaan karakterik diperoleh akar-akar :

→ akar-akar berbeda, sehingga termasuk dalam kasus 1,

sehingga solusi umum:

Page 39: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Kasus Menara Hanoi

32

11

T

T

21

21

42

21

ccT

ccT

Cari c1 dan c2 :

Dari relasi rekurrens : Dari Solusi umum:

……(**)………(*)

Dari (*) dan (**)

34

12

21

21

cc

ccc1 = 1 dan c2 = -1

Page 40: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Kasus Menara Hanoi

212 ccnT n

12 n

12 nnT

nOnT 2

Jadi

Jadi kompleksitas waktu :

Kompleksitas waktu Asimptotik:

Page 41: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

2,22

2,1

1,0

2 nT

n

n

nT

n

Relasi Rekurrens

22

222

mm TT

222 1 mT

22 2 nTnT(i)

mn 2Dimisalkan

2mf

021 mm

→ t = 1 d = 0

Page 42: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

1222 mm TT

0222 1 mm TT

02 1 mm xx

(ii) Persamaan homogen :

1mxPersamaan terakhir ini dibagi dengan

(suku dengan orde terkecil), didapatkan :

mm xT 2Misal

x – 2 = 0

Page 43: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

012 xx

21 x 12 x

mm ccmT 12 21

nn ccnT log

2

log

1

22

12

21 cnc

(iii) Diperoleh persamaan karakteristik :

Akar-akarnya :

Solusi umum :

mn 2Karena nm log2→

Page 44: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Persoalan Minimum &

Maksimum

Cari c1 dan c2 :

Dari relasi rekurrens :

2224 TT = 4……..(*)

2428 TT = 10

21

21

88

44

ccT

ccT

Dari solusi umum:

………..(**)

44 21 cc

108 21 cc

23

1 c

22 c

Dari (*) dan (**)

22

3

nnT

nOnT

Jadi kompleksitas waktu :

Kompleksitas waktu asimptotik

Page 45: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Bentuk Persamaan Linier Homogen

nfknTanTanTanT k ....21 21

knTanTanTanT k ....21 21

Bentuk Persaman Linier Homogen adalah :

Dengan

Jadi bentuk Persaman Linier Homogen adalah :

nf = 0

Page 46: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Barisan Fibonacci

Relasi rekurrens :

121

11

00

nnTnT

n

n

nT

nxnT

021 nnn xxx

(i) Persamaan rekursi :

21 nTnTnT =0

, makaMisal

Page 47: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Barisan Fibonacci2nxPersamaan terakhir ini dibagi , didapatkan :

12 xx = 0 → persamaan karakteristik

2

511

x

2

512

x

nn

ccnT

2

51

2

5121

(ii) Akar persamaan karakteristik adalah :

dan

→ akar-akar berbeda, sehingga termasuk dalam kasus 1,

sehingga solusi umum:

Page 48: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Barisan Fibonacci

(iii) Cari c1 dan c2 :

Dari relasi rekurrens dan solusi umum diperoleh :

12

51

2

511

02

51

2

510

1

2

1

1

0

2

0

1

ccT

ccT

5

1

Dari 2 persamaan terakhir ini, diperoleh

dan c2 =5

1c1 =

Page 49: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Deret Fibonacci

5

2

51

2

51nn

nT

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

Page 50: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Contoh lain

Misal kita punya relasi rekurrens :

23921517

22

11

00

nnTnTnT

n

n

n

nT

Page 51: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Contoh lain

03319157 23 xxxxxx

3nxPersamaan terakhir ini dibagi

→ persamaan karakteristik

(suku dengan orde terkecil) didapatkan :

03921517 nTnTnTnT

09157 321 nnnn xxxx

(i) Persamaan rekursi :

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

Page 52: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Contoh lain

11 x 332 xx

nnn ncccnT 331 321

(ii) Akar persamaan karakteristik adalah :

→ tidak semua akar-akarnya sama (juga tidak semua berbeda)

jadi perpaduan antara kasus 1 dan kasus 2,

sehingga solusi umumnya adalah :

Page 53: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Contoh lain

2)3)(0(312

1)3)(0(311

0)3)(0(310

2

3

2

2

2

1

1

3

1

2

1

1

0

3

0

2

0

1

cccT

cccT

cccT

2189

133

0

321

321

21

ccc

ccc

cc

(iii) Cari c1 dan c2 dan c3:

Dari relasi rekurrens dan solusi umum diperoleh :

Disederhanakan menjadi :

11 c

3

1c2 = 1, dan c3 =

Page 54: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Contoh lain

nnn nnT 33

13111

1331 nn n

(iv) Masukkan ke solusi umum kembali,

sehingga didapatkan :

)3()( nnOnT

Page 55: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Teorema Master

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.

Page 56: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Teorema Master

nfb

naTnT

Teorema Master :

Untuk suatu general Divide and Conquer recurrence :

dnOnf Jika

0ddimana dalam persamaan general Divide

and Conquer recurrence di atas, maka

da

dd

dd

banO

bannO

banO

nTb log

log

(analogous results hold for the and notations, too)

Page 57: Kompleksitas Waktu untuk Algoritma Rekursifphg-simulation-laboratory.com/wp...Waktu-untuk-Algoritma-Rekursif.pdf · Algoritma Rekursif Bentuk rekursif : ... Barisan Fibonacci xn 2

Contoh :

Persoalan Minimum & Maksimum (procedure MinMax2)

2,22

2,1

1,0

2 nT

n

n

nT

n

→ salah satu contoh strategi divide and conquer.

dba nOnT

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

atau

.

sehingga

2log2

nOnT →