• Tidak ada hasil yang ditemukan

Kompleksitas Waktu untuk Algoritma Rekursif. ZK Abdurahman Baizal

N/A
N/A
Protected

Academic year: 2022

Membagikan "Kompleksitas Waktu untuk Algoritma Rekursif. ZK Abdurahman Baizal"

Copied!
57
0
0

Teks penuh

(1)

Kompleksitas Waktu untuk Algoritma

Rekursif

ZK Abdurahman Baizal

(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

(3)

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)

(4)

Menghitung kompleksitas bentuk rekursif

Untuk bentuk rekursif, digunakan teknik

perhitungan kompleksitas dengan relasi

rekurens

(5)

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

(6)

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)

(7)

Menghitung faktorial

Jadi relasi rekurens :

    

 

0 ,

1 )

1 (

0 ,

0

n n

T n n

T

(8)

 

n 1T

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 → O(n)

Menghitung faktorial

(9)

Menara Hanoi

Legenda di Hanoi, tentang kisah pendeta

Budha bersama murid-muridnya.

(10)

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

(11)

 Kata pendeta, jika pemindahan

berhasil dilakukan, maka DUNIA

KIAMAT !!!

(12)

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

(13)

Relasi Rekurrens :

  n 2 Tn 1 1 1 , , n n 1 1

T

Menara Hanoi

(14)

  n 1 2 Tn 1

T

 

1 2 21 2 22

2

1      

2

T n T n

 

1 2 31 2 2 23

2 2

1  

2

    

2

3

T n T n

= …….

1 2 22 ... 2n2

2n1T

 

1

1 . 2 ...

2 2

1  

2

 

1

n

1 2 

n

Menara Hanoi

(15)

Menara Hanoi

Jadi

 

   

n

n

O n

T n T

2 1 2

(16)

  n 2

n

1

T

Menara Hanoi

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

1

2

64

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 :

(17)

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

(18)

Persoalan Minimum &

Maksimum

if i=j then { 1 elemen }

minAi maksAi else

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

maksAj minAi else

maksAi minAj endif

(19)

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

minmin1 else

minmin2 endif

if maks1<maks2 then maksmaks2

else

maksmaks2 endif

(20)

Persoalan Minimum &

Maksimum





2 ,

2 )

2 / ( 2

2 ,

1

1 ,

0 )

(

n n

T

n n n

T

Relasi rekurrens:

(21)

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

2

k

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

(22)

Persoalan Minimum &

Maksimum

  2   2

2

2log 1

2log

n n

= n/2 + n – 2

  2

3 2 

n n

T

  n O   n

T

Jadi

= 3n/2 – 2

(23)

Untuk mengetahui kompleksitas bentuk rekursif, maka

  n

T

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

(24)

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.

(25)

Cara coba-coba

Contoh :

  n Tn 1   T a n 2 b n n 1 3 , 2

T

(26)

Cara coba-coba

  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 

T(1) = T(2) = a

= 8a + 7b

→ Sulit untuk diformulasikan

(27)

Metode dengan persamaan karakteristik

Bentuk Persamaan Linier Tak Homogen

Langkah-langkahnya adalah sebagai berikut:

1. Perhatikan bentuk rekursifnya :

  n a Tna Tna Tn k    f n

T

1

 1 

2

 2  .... 

k

 

  n t P   n

f

n d

 

d d k

d

n b n b n b

P

0

1 1

 .... 

→ polinomial dengan orde / derajat terbesar d

→ didapatkan nilai t dan d

(28)

Metode dengan persamaan karakteristik

 

n a T

n

a T

n

a T

n k

T1 1  2  2 .... k

  n x

n

T

k n k n

n

n a x a x a x

x1 12 2 ...

0

2 ...

2 1

1    

n n k nk

n a x a x a x

x

2. Asumsi

f   n

= 0

Misal

k

x

n

Persamaan di atas kemudian dibagi dengan

k

x

n

(ini jika adalah suku dengan orde terkecil), sehingga didapatkan : xka1xk1a2xk2 ... ak  0

→ bentuk homogen

(29)

Metode dengan persamaan karakteristik

3. Diperoleh persamaan karakteristik :

2 2 ...

1 0

1

1

k k k d

k a x a x a x t

x

t dan d didapatkan dari langkah 1.

(30)

Metode dengan persamaan karakteristik

4. Ada 2 macam kasus :

  n c

1

x

1n

c

2

x

2n

c

3

x

3n

....

T

x

1

, x

2

, x

3

,...

Kasus 1

Semua akar karakteristik berbeda Solusi Umum:

,...

, , 2 3

1 c c

c adalah konstanta yang harus dicari

x x

x

1

2

 .... 

 

n

c c n c n c n

xn

T123 24 3 .... Kasus 2

Semua akar karakteristik sama, yaitu Solusi Umum:

(31)

Masalah faktorial

  n Tn 0 1 1 , , n n 0 0

T

  

n T n 1

1 T

f   n 1

 

1. 0

1n n

 (i)

→ t = 1 d = 0

(32)

Masalah faktorial

  

n T n 1

T

  

n T n 1

0

T

1

 0

n

n

x

x

1

x

n

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

  n x

n

T

Misal , maka

Persamaan terakhir ini dibagi dengan

(suku dengan orde terkecil), didapatkan :

x – 1 = 0

(33)

Masalah faktorial

1

 1

x x

2

 1

   n c c n

n

T

1

2

. 1

n

c c12

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

Akar – akarnya adalah :

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

(34)

Masalah faktorial

 

0 0

T

   

1  T 0 1  1 T

 

0 c1

T

 

1 c1 c2

T  

Dari relasi rekurens :

Dari solusi umum:

………(**)

………..(*) Cari c1 dan c2 :

(35)

Masalah faktorial

1

 0 c

2

1

1

cc

1  0

c

c

2

 1

  n c c n

T

1

2

  n n

T

T

 

n O

 

n

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

Dari kedua persamaan terakhir ini diperoleh dan

Dengan demikian diperoleh :

Jadi kompleksitas waktunya adalah dan

= n

(36)

Kasus Menara Hanoi

 

n 1 2T1

n 1

,, nn 11

T

 

n 1

f 1n

 

1.n0

Relasi rekurrens :

 

n 2T

n 1

1

(i) T

→ t = 1 d = 0

(37)

Kasus Menara Hanoi

 

n xn

T

  n 2 Tn 1

T

  2 1 0

T n T n 0 2

1

n

n

x

x

1

x

n

(ii) Persamaan homogen

Persamaan terakhir ini dibagi didapatkan :

x – 2 = 0 Misal

(suku dengan orde terkecil),

(38)

Kasus Menara Hanoi

1

 2

x

x2 1

 

n c n c n

T12  21

2

12 c

c 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:

(39)

Kasus Menara Hanoi

   

12 13

T

T

 

 

12 24c11 c22

T

c c

T

Cari c1 dan c2 :

Dari relasi rekurrens : Dari Solusi umum:

……(**)

………(*)

Dari (*) dan (**)

3 4

1 2

2 1

2 1

c c

c

c

c1 = 1 dan c2 = -1

(40)

Kasus Menara Hanoi

 

n c12 c2

Tn

1 2 

n

  n 2

n

1

T

  n O  

n

T  2

Jadi

Jadi kompleksitas waktu :

Kompleksitas waktu Asimptotik:

(41)

Persoalan Minimum &

Maksimum

 

 

2 ,

2 2

2 ,

1

1 ,

0

2 n

T

n n n

T

n

Relasi Rekurrens

 

2

2 2 2

2  

 

  m

m T

T

 

2 2

2 1

T m

 

n 2T

 

n2 2

(i) T

n 2m

Dimisalkan

 

m 2

f

 

2 0

1m m

→ t = 1 d = 0

(42)

Persoalan Minimum &

Maksimum

 

2m 2T

 

2m1

T

 

2m 2T

 

2m1 0

T

0 2

1

m

m

x

x

(ii) Persamaan homogen :

1

x

m

Persamaan terakhir ini dibagi dengan

(suku dengan orde terkecil), didapatkan :

 

m xm

T 2  Misal

x – 2 = 0

(43)

Persoalan Minimum &

Maksimum

x 2



x 1

0

1

 2

x x

2

 1

 

m c m c m

T12  21

  n c

n

c

n

T

1

2

2log

2

1

2log

2 1

n c c

(iii) Diperoleh persamaan karakteristik : Akar-akarnya :

Solusi umum :

n  2

m

Karena →

m

2

log n

(44)

Persoalan Minimum &

Maksimum

Cari c1 dan c2 :

Dari relasi rekurrens :

 

4 2T

 

2 2

T = 4 ……..(*)

 

8 2T

 

4 2

T = 10

   

84 84c11 c22

T

c c

T

Dari solusi umum:

………..(**)

4 4c1c2

10 8c1c2

32 1c

2  2 c

Dari (*) dan (**)

 

2

2 3

n n

T

 

n O

 

n

T

Jadi kompleksitas waktu :

Kompleksitas waktu asimptotik

(45)

Bentuk Persamaan Linier Homogen

 

n a T

n

a T

n

a T

n k

  

f n

T1 1  2  2 .... k  

 

n aT

n

a T

n

a T

n k

T1 1  2  2 .... k  Bentuk Persaman Linier Homogen adalah :

Dengan

Jadi bentuk Persaman Linier Homogen adalah :

 

n

f = 0

(46)

Barisan Fibonacci

Relasi rekurrens :

 

   

1 2

1

1 1

0 0

n n

T n

T

n n n

T

  n x

n

T

2

0

1

 

n n

n

x x

x

(i) Persamaan rekursi :

  

n T n 1

 

T n 2

T =0

, maka Misal

(47)

Barisan Fibonacci

2

x

n

Persamaan terakhir ini dibagi , didapatkan :

2

x  1

x

= 0 → persamaan karakteristik

2 5 1

1

 

x 2

5 1

2

  x

 

n c n c n

T

 

 

2 5 1

2 5 1

2 1

(ii) Akar persamaan karakteristik adalah : dan

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

(48)

Barisan Fibonacci

(iii) Cari c1 dan c2 :

Dari relasi rekurrens dan solusi umum diperoleh :

 

 

1

2 5 1

2 5 1 1

2 0 5 1

2 5 0 1

1 2

1 1

0 2

0 1

 



  





  

 



  





  

c c

T

c c

T

5

1

Dari 2 persamaan terakhir ini, diperoleh dan c2 =

5 c1 = 1

(49)

Deret Fibonacci

 

   

5

2 5 1

2 5

1 n n

n T



 

  



 

 

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

(50)

Contoh lain

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

(51)

Contoh lain

1



3



3

0

9 15

7 2

3xx   xxx  

x

3

x

n

Persamaan terakhir ini dibagi

→ persamaan karakteristik

(suku dengan orde terkecil) didapatkan :

 

n 7T

n 1

15T

n 2

9T

n 3

0

T

0 9

15

7 123

n n n

n x x x

x

(i) Persamaan rekursi :

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

(52)

Contoh lain

1  1

x x2x3  3

 

n c n c n c n n

T 11 23 3 3

(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 :

(53)

Contoh lain

 

 

 

2 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

2 18

9

1 3

3

0

3 2

1

3 2

1

2 1

c c

c

c c

c

c c

(iii) Cari c1 dan c2 dan c3:

Dari relasi rekurrens dan solusi umum diperoleh :

Disederhanakan menjadi :

1  1 c

3

1

c2 = 1, dan c3 =

(54)

Contoh lain

   

n

 

n

   

n

 

n n

T 3

3 3 1

1 1

1



3 1

3

1 

n n n

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

) 3 ( )

(n O n n

T

(55)

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.

(56)

Teorema Master

 

n aT

 

nb f

 

n

T  

Teorema Master :

Untuk suatu general Divide and Conquer recurrence :

 

n O

 

nd

f

Jika

 0 d

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

   

 

 





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)

(57)

Contoh :

Persoalan Minimum & Maksimum (procedure MinMax2)

 

 

2 ,

2 2

2 ,

1

1 ,

0

2 n

T

n n n

T

n

→ salah satu contoh strategi divide and conquer.

bd

aT

 

n O

 

n

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

atau

.

sehingga

 

n O

 

n2log2

T

Referensi

Dokumen terkait

Berdasarkan pengabdian yang telah dilakukan dapat disimpulkan bahwa, Kedua mitra pengabdian yaitu Kelompok Petambak Gumuk Mas dan Kelompok Petambak Udang Lestari

Surge pada Centrifugal Gas Compressor adalah merupakan suatu kondisi dimana terjadi perubahan flow minimum suatu gas sesuai dengan yang dibutuhkan oleh

Terdapat perbedaan waktu sebesar 10,17 detik yang menunjukkan bahwa terjadi penurunan performa layanan pengiriman file pada VM FTP Server yang sedang mengalami migrasi. Pada

Cahya Anggara (Guru PKn): Upaya yang dilakukan guna mengatasi hambatan dalam pengembangan pembelajaran Pendidikan Kewarganegaraan (PKn) yang mendorong pembentukan karakter

Kemudian Allah berkata, “Hendaklah ada benda-benda terang di langit untuk menerangi bumi, untuk memisahkan siang dari malam, dan untuk menunjukkan saat mulainya

Adapun rumusan masalah dalam penelitian ini adalah : 1) Bagaimanakah gambaran tingkat kompetensi interpersonal siswa sebelum dilaksanakan layanan bimbingan kelompok?

Keberadaan lembaga bantuan hukum sebagai bagian dari sebuah sistem hukum memiliki andil yang positif bagi pemenuhan akan rasa keadilan masyarakat, melalui

Multiplikasi tanaman stevia telah dilakukan dalam berbagai penelitian, diantaranya perbanya- kan stevia menggunakan sumber eksplan pucuk dengan media Lismainer dan Skoog