Analysis of Algorithm

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

Embed Size (px)

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

  • Analysis of AlgorithmKULIAH #2

  • Analysing Control StructureSEQUENCING, 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.

  • Analysing Control 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.)

  • Analysing Control Structure (2)for loop, merupakan shorthand untuk i 1while i m doP(i)i i+1Misal 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).

  • Analysing Control 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 samafor i 1 to m do P(i)akan memerlukan waktu : t(1) + t(2) + + t(m).

  • Analysing Control Structure (4)Perhatikan algoritmafunction FibIter(n)i1; j0for k1 to n doji+jij-Ireturn jInstruksi 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).

  • Analysing Control Structure (5)Dengan Moivres 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 olehk=1..n ck = c[n(n+1)/2] O(n2).Alasan serupa menghasilkan (n2), sehingga waktu yang dibutuhkan algoritma dalam (n2)

  • Analysing Control 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.

  • Analysing Control Structure (7)RECURSIVE CALL, perhatikan algoritma FibRec berikutfunction FibRec(n)if n
  • Analysing Control 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,

  • Analysing Control Structure (9)WHILE and REPEAT LOOPs, lebih sulit untuk dianalisa dibanding dengan FOR LOOP. Perhatikan algoritma berikutfunction Bin_Search(T[1..n],x)i1; jnwhile i
  • Analysing Control 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).

  • Using a BarometerBarometer 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.

  • Supplementary ExamplesSELECTION SORT, perhatikanprocedure select(T[1..n])for i1 to n-1 dominjI; minxT[i]for ji+1 to n do if T[j]
  • Supplementary Examples (1)SELECTION SORT,waktu yang diperlukan oleh masing-masing putaran inner loop tidak konstan khususnya jika T[j]
  • Supplementary 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]
  • Supplementary Examples (3)INSERTION SORT, perhatikanprocedure insert(T[1..n])for i2 to n do xT[i]; ji-1 while i>0 and x
  • Supplementary 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.

  • Supplementary Examples (4)EUCLIDS ALGORITHM, perhatikanfunction Euclid(m,n)while m>0 dotmmn mod mntreturn n

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

  • Supplementary Examples (5)EUCLIDS ALGORITHM,Jika m>n/2, maka 1n/m
  • Supplementary 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).

  • Supplementary Examples (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.

  • Supplementary Examples (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).

  • Supplementary Examples (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.

  • Supplementary Examples (10)THE TOWERS OF HANOI,Misal t(m) : # of times call of Hanoi(m,.,.) dieksekusi. Dengan pengamatan terhadap algoritma, makat(m) = 0, jika m=0t(m) = 2t(m-1) + 1, jika m>0Selanjutnya bisa diperlihatkan bahwa t(m) = 2m 1.