Analysis of Algorithm

25
Analysis of Analysis of Algorithm Algorithm KULIAH #2 KULIAH #2

description

Analysis of Algorithm. KULIAH #2. Analysing Control Structure. SEQUENCING, misal P1 dan P2 : dua bagian algoritma (bisa single instruction atau complicated subalgorithms ). Misal t1 dan t2 masing-masing waktu yang diperlukan oleh P1 dan P2. - PowerPoint PPT Presentation

Transcript of Analysis of Algorithm

Page 1: Analysis of Algorithm

Analysis of Analysis of AlgorithmAlgorithm

KULIAH KULIAH #2#2

Page 2: Analysis of Algorithm

Analysing Control Analysing Control StructureStructure

SEQUENCING, misal P1 dan P2 : dua bagian algoritma (bisa single instruction atau complicated subalgorithms). Misal t1 dan t2 masing-masing waktu yang diperlukan oleh P1 dan P2.

SEQUENCING RULE : waktu yang diperlukan untuk compute “P1; P2” (P1 kemudian P2) adalah t1+t2. Dengan “maximum rule”, waktunya dalam Θ(max(t1,t2)).

Kemungkinan : parameter yang mengendalikan t2 tergantung pada hasil computation yang dilakukan oleh P1. Sehingga, analysis “P1; P2” tidak selalu bisa dilakukan dengan menganggap P1 dan P2 secara independent.

Page 3: Analysis of Algorithm

Analysing Control Analysing Control Structure (1)Structure (1)

“FOR” LOOP, perhatikan loopfor i 1 to m do P(i)

(convention : untuk m=0 tidak “error”, hanya statemen terkontrol P(i) sama sekali tidak dieksekusi).

Misal size instance n, P(i) tidak benar-benar tergantung pada i, t waktu untuk compute P(i).

Maka total waktu yang diperlukan loop adalah l=mt. (kemungkinan ada “pitfall”, karena tidak memperhitungkan waktu yang diperlukan untuk “loop control”.)

Page 4: Analysis of Algorithm

Analysing Control Analysing Control Structure (2)Structure (2)

“for loop”, merupakan “shorthand” untuk

i 1while i m do

P(i)i i+1

Misal c : upper bound on the time requeired by each operation, maka l (t+3c)m + 2c = mt +3cm + 2c.

Jika c bisa diabaikan dibanding t, maka secara kasar l =mt (kecuali jika m=0).

Page 5: Analysis of Algorithm

Analysing Control Analysing Control Structure (3)Structure (3)

Analysis “for loop”. Jika t(i) yang diperlukan oleh P(i) berubah sebagai fungsi i. (umumnya, waktu yang diperlukan oleh P(i) bisa tergantung tidak hanya pada i, juga instance size n atau bahkan instance itu sendiri).

Jika waktu untuk “loop control” diabaikan, selama m1, maka loop yang sama

for i 1 to m do P(i)akan memerlukan waktu : t(1) + t(2) + … + t(m).

Page 6: Analysis of Algorithm

Analysing Control Analysing Control Structure (4)Structure (4)

Perhatikan algoritmafunction FibIter(n)

i1; j0for k1 to n do

ji+jij-i

return j Instruksi di dalam “loop” membutuhkan waktu

konstan, misal terbatas atas oleh suatu konstan c. Dengan mengabaikan waktu untuk “loop control”, maka waktu akan terbatas atas oleh nc.

Karena instruksi sebelum dan sesudah “loop” diabaikan, maka algoritma memerlukan waktu dalam O(n).

Page 7: Analysis of Algorithm

Analysing Control Analysing Control Structure (5)Structure (5)

Dengan Moivre’s formula : ukuran fk berada dalam Θ(k). Sehingga, iterasi ke-k memerlukan waktu Θ(k-1) + Θ(k), atau sama dengan Θ(k).

Misal c : konstan sedemikian hingga waktu ini terbatas atas oleh ck untuk semua k1.

Jika waktu untuk “loop control”, instruksi sebelum dan sesudah “loop” diabaikan, maka waktu yang dibutuhkan algoritma terbatas atas oleh

k=1..n ck = c[n(n+1)/2] O(n2). Alasan serupa menghasilkan (n2), sehingga

waktu yang dibutuhkan algoritma dalam Θ(n2)

Page 8: Analysis of Algorithm

Analysing Control Analysing Control Structure (6)Structure (6)

Ada perbedaan besar, antara analysis FibRec yang memperhitungkan operasi aritmatik sebagai “unit cost” dengan yang tidak memperhatikannya.

Analysis “for loop” yang mulainya selain dari 1, bertambah dengan pertambahan lebih besar. Misal,

for i5 to m step 2 do P(i) Untuk m3, P(i) akan dieksekusi

sebanyak ((m-5)2) + 1 kali.

Page 9: Analysis of Algorithm

Analysing Control Analysing Control Structure (7)Structure (7)

RECURSIVE CALL, perhatikan algoritma FibRec berikutfunction FibRec(n)

if n<2 then return nelse return FibRec(n-1)+FibRec(n-2)

Misal T(n) : waktu untuk “call on” FibRec(n). Jika n<2, algoritma hanya mengembalikan

n, yang memerlukan waktu konstan a. Jika n2, kebanyakan kerja dilakukan untuk

dua “recursive calls”, yang masing-masing memerlukan waktu T(n-1) dan T(n-2).

Page 10: Analysis of Algorithm

Analysing Control Analysing Control Structure (8)Structure (8)

Ditambah satu addition fn-1 dan fn-2 (nilai-nilai kembalian oleh “recursive calls”), “recursion control”, dan test ”if n < 2”.

Misal h(n) : kerja yang melibatkan operasi-operasi di atas. Maka dengan definisi T(n) dan h(n) akan didapat rekursi berikutT(n) = a, jika n=0 atau n=1T(n) = T(n-1) + T(n-2) + h(n), jika n=2,3,…

Page 11: Analysis of Algorithm

Analysing Control Analysing Control Structure (9)Structure (9)

WHILE and REPEAT LOOPs, lebih sulit untuk dianalisa dibanding dengan FOR LOOP. Perhatikan algoritma berikut

function Bin_Search(T[1..n],x)i1; jnwhile i<j do {T[i]xT[j]}

k(i+j)2case x<T[k] : jk-1 x=T[k] : i, jk x>T[k] : ik+1

return i Misal dl : nilai j-i+1 di akhir perjalanan ke-l seputar loop

untuk l 1 dan misal d0=n. Karena dl-1 nilai j-i+1 sebelum mulai iterasi ke-l, maka dl dl-1 / 2 ntuk semua l 1. Dengan induksi matematika maka didapat dl n / 2l.

Page 12: Analysis of Algorithm

Analysing Control Analysing Control Structure (10)Structure (10)

Loop terminate ketika d1, yang terjadi ketika l = lg n. Jadi loop akan dimasuki paling banyak lg n kali. Karena masing-masing perjalanan seputar loop memakan waktu konstan, maka “binary search” memakan waktu dalam O(log n).

Alasan serupa menghasilkan batas bawah (log n), sehingga binary search memakan waktu Θ(log n).

Page 13: Analysis of Algorithm

Using a BarometerUsing a Barometer

Barometer instruction : instruction yang dieksekusi paling sedikit sesering instruction lain dalam algoritma.

Ketika algoritma melibatkan beberapa “nested loops”, maka setiap instruction dari “innermost loop” biasanya bisa digunakan sebagai “barometer”.

Page 14: Analysis of Algorithm

Supplementary Supplementary ExamplesExamples

SELECTION SORT, perhatikanprocedure select(T[1..n])

for i1 to n-1 dominjI; minxT[i]for ji+1 to n do if T[j]<minx then

minjj minxT[j]

T[minj]T[i]T[i]minx

Page 15: Analysis of Algorithm

Supplementary Supplementary Examples (1)Examples (1)

SELECTION SORT,waktu yang diperlukan oleh masing-masing putaran “inner loop” tidak konstan – khususnya jika T[j]<minx – tapi terbatas atas oleh suatu konstanta c.Untuk masing-masing i, instruksi dalam “inner loop” dieksekusi n-(i+1)+1=n-i kali. Sehingga, waktu yang diperlukan oleh “inner loop” adalah t(i) (n-i)c. Waktu yang diperlukan putaran ke-i di “outer loop” terbatas atas oleh b+t(i) untuk konstanta b yang tepat.

Page 16: Analysis of Algorithm

Supplementary Supplementary Examples (2)Examples (2)

SELECTION SORT,Sehingga, total waktu yang dihabiskan algoritma terbatas atas oleh ½ cn2 + (b – ½ c)n – b. Atau berada dalam O(n2), secara serupa dalam (n2). Jadi berada dalam Θ(n2).

Jika “innermost test – if T[j]<minx” sebagai barometer, dan menghitung banyaknya kali test tersebut dieksekusi.

Yaitu, i=1..n-1 j=i+1..n 1 = n(n-1)/2

Page 17: Analysis of Algorithm

Supplementary Supplementary Examples (3)Examples (3) INSERTION SORT, perhatikan

procedure insert(T[1..n])for i2 to n do xT[i]; ji-1 while i>0 and x<T[j] do

T[j+1]T[j]jj-1

T[j+1]x

Barometer : banyaknya kali “while loop condition” ditest.

Page 18: Analysis of Algorithm

Supplementary Supplementary Examples (4)Examples (4) Asumsi i fixed, x = T[i]. Worse case muncul ketika x < T[j]

untuk setiap j antara 1 dan i-1, karena harus membandingkan x dengan T[i-1], T[i-2], …, T[1] sebelum meninggalkan loop “while”. Sehingga, “while loop test” dikerjakan i kali.

Worse case terjadi untuk setiap nilai i dari 2 sampai n.

Sehingga “barometer test” dikerjakan dalam i=2..n i = n(n+1)/2 – 1 kali.

Page 19: Analysis of Algorithm

Supplementary Examples Supplementary Examples (4)(4)

EUCLID’S ALGORITHM, perhatikanfunction Euclid(m,n)

while m>0 dotmmn mod mnt

return n

Untuk setiap dua bilangan bulat m dan n, dengan nm, maka berlaku n mod m < n/2.

Page 20: Analysis of Algorithm

Supplementary Supplementary Examples (5)Examples (5)

EUCLID’S ALGORITHM, Jika m>n/2, maka 1n/m<2, sehingga

nm=1, yang berakibat bahwa n mod m = n-m(nm) = n-m < n-n/2 = n/2.

Jika mn/2, maka n mod m <m n/2. Dengan tanpa mengurangi

generality, asumsikan nm (jika n<m, putaran pertama loop akan swap m dan n. Karena n mod m = n ketika n < m).

Page 21: Analysis of Algorithm

Supplementary Supplementary Examples (6)Examples (6) Kondisi di atas, dipertahankan di

masing-masing loop, karena n mod m tidak pernah lebih dari m.

Total waktu yang digunakan algoritma adalah dalam order banyaknya putaran loop. Misal # of trips around the loop terbatas atas oleh function of n.

Apa yang terjadi dengan m dan n setelah putaran loop kedua (misal, algoritma belum berhenti).

Page 22: Analysis of Algorithm

Supplementary Examples Supplementary Examples (7)(7) Misal m0 dan n0 nilai-nilai awal

parameter, setelah putaran pertama m menjadi n0 mod m0. Setelah putaran ke-2, n mengambil nilai n0 mod m0. Sehingga n menjadi < n0/2, dengan kata lain nilai n paling tidak menjadi separoh setelah putaran ke-2. Akan tetapi, masih berlaku nm sehingga argumentasi serupa masih diterapkan lagi.

Kesimpulan : loop akan dimasuki secara kasar paling banyak 2 lg n kali.

Page 23: Analysis of Algorithm

Supplementary Examples Supplementary Examples (8)(8)

THE TOWERS OF HANOI, contoh analisa “recursive algorithm”.

Generalisasi permasalahan, an arbitrary number n of rings.

Solusi : untuk memindahkan m rings yang lebih kecil dari tiang i ke tiang j, pertama-tama dipindahkan m-1 rings yang lebih kecil dari tiang k ke tiang j. (Ada tiga buah tiang (rod) i, j, dan k).

Page 24: Analysis of Algorithm

Supplementary Examples Supplementary Examples (9)(9)

THE TOWERS OF HANOI, perhatikanprocedure Hanoi(m,i,j){memindah m smallest rings dari tiang i ke tiang j}

if m>0 then Hanoi(m-1,i,6-i-j)write i “” jHanoi(m-1,6-i-j,j)

Untuk menganalisa waktu eksekusi algoritma di atas, instruksi write digunakan sebagai “barometer”.

Page 25: Analysis of Algorithm

Supplementary Examples Supplementary Examples (10)(10) THE TOWERS OF HANOI, Misal t(m) : # of times call of

Hanoi(m,.,.) dieksekusi. Dengan pengamatan terhadap algoritma, maka

t(m) = 0, jika m=0t(m) = 2t(m-1) + 1, jika m>0

Selanjutnya bisa diperlihatkan bahwa t(m) = 2m – 1.