Desg ad Aalyss Algorthm Pertemua 02 Drs. Achmad Rdok M.Kom Imam Cholssod, S.S., M.Kom M. Al Fauz, S.Kom., M. Kom. Rath Kartka Dew, ST, M.Kom
Cotets ( of 2) 3 Importat Sum Mapulato 2
CS3024-FAZ 3 Importat Sum Mapulatos () ) ( 2 2 ) (... 2 teger lmts :lower & upper ; ) ( 2 2 0 u l l u b a b a a c ca u l u u u u u
CS3024-FAZ 4 Importat Sum Mapulatos (2) k k k k k a a a a a a a k 2 2 0 3 2 2 2 2 lg lg 0.5772... ; l... ) (...... 2 3 6 ) )(2 (... 2
Cotets (2 of 2) 3 2 Aalss Algortma Aalss Efses Algortma 3 4 Aalss Efses Algortma No-Rekursf Order Of Growth 5
Aalss Algortma Aalss Algortma bertujua memerksa efses algortma dar dua seg : waktu eksekus da pegguaa memor Efses waktu seberapa cepat algortma deksekus Efses memor berapa bayak memor yag dbutuhka utuk mejalaka algortma 6
Aalss Efses Algortma Utuk melakuka aalss efses waktu algortma harus destmas dulu waktu eksekus algortma Bagamaa melakukaya? 7
Aalss Efses Algortma Algorthm sequetal search (A[0..-], K) // searches for a gve value a gve array by sequetal search // put: a array A[0..-] ad a search key K // output: returs the dex of the frst elemet of A that matches K or - f there are o matchg elemets 0 whle ad A[] K do + f retur else retur - x 2 x x 2 x x 8
Aalss Efses Algortma Bars kode maa yag sagat berpegaruh pada rug tme? Baga loop (bars 2 da 3). Megapa? Karea deksekus berulag ulag Mak bayak eksekusya, mak lama rug tme program 9
Aalss Efses Algortma Sequetal Search 0 whle ad A[] K do + f retur else retur - x 2 x x 2 x x Estmas waktu eksekus algortma sequetal search! 0
Aalss Efses Algortma tme = Loop x tloop tme = estmas waktu eksekus algortma utuk put tertetu Loop = berapa kal loop deksekus tloop = waktu yag dperluka utuk megeksekus loop kal. Basaya dtetuka satua waktu tapa dspesfkaska berapa laya
Aalss Efses Algortma Asumska array A terdr atas eleme. Best case : k dtemuka d eleme pertama array A. tme = x satua waktu Average case : k dtemuka d eleme tegah array A. tme = /2 x satua waktu Worst case : k dtemuka d eleme palg akhr array A. tme = x satua waktu 2
Aalss Efses Algortma Lagkah-lagkah umum utuk megaalss efses waktu algortma. Tetuka parameter yag megdkaska ukura put 2. Idetfkas basc operato algortma 3. Tetuka apakah utuk ukura put yag sama bayakya eksekus basc operato bsa berbeda 4. Tetuka rumus sgma yag meujukka berapa kal basc operato deksekus 5. Selesaka rumus sgma utuk meghtug bayakya eksekus basc operato 3
Aalss Efses Algortma Step = Tetuka parameter yag megdkaska ukura put Sesuatu pada put yag jka laya bertambah aka meyebabka bayakya eksekus loop bertambah Cotoh, algortma utuk meghtug X megguaka cara X = X * X * X * * X sebayak kal. Parameter ukura putya adalah la, karea jka mak besar, maka bayakya eksekus loop bertambah Bagamaa dega la X? 4
Aalss Efses Algortma Sequetal Search 0 whle ad A[] K do + f retur else retur - x 2 x x 2 x x Estmas waktu eksekus algortma sequetal search! 5
Aalss Efses Algortma Step = Tetuka parameter yag megdkaska ukura put Sesuatu pada put yag jka laya bertambah aka meyebabka bayakya eksekus loop bertambah Cotoh, algortma utuk meghtug X megguaka cara X = X * X * X * * X sebayak kal. Parameter ukura putya adalah la, karea jka mak besar, maka bayakya eksekus loop bertambah Bagamaa dega la X? Utuk algortma sequetal search, parameter ukura putya adalah bayakya eleme array () Megapa la eleme array tdak? 6
Aalss Efses Algortma Step 2 = Idetfkas basc operato algortma Operas palg petg dalam algortma tersebut Dapat dwakl oleh sebuah operas pada loop palg dalam. Operas yag dplh adalah operas yag selalu dlakuka ketka loop deksekus 7
Aalss Efses Algortma Sequetal Search 0 whle ad A[] K do + f retur else retur - x 2 x x 2 x x Estmas waktu eksekus algortma sequetal search! 8
Aalss Efses Algortma Step 2 = Idetfkas basc operato algortma Waktu yag dperluka utuk megeksekus loop kal Dapat dwakl oleh sebuah operas pada loop palg dalam. Operas yag dplh adalah operas yag selalu dlakuka ketka loop deksekus Utuk algortma sequetal search, basc operatoya dapat dguaka A[] K A[] K deksekus kal setap loop deksekus 9
Aalss Efses Algortma Step 2 = Idetfkas basc operato algortma 20
Aalss Efses Algortma Step 2 = Idetfkas basc operato algortma Utuk algortma d atas, basc operatoya dapat dguaka maxval<-a[] 2
Aalss Efses Algortma Step 2 = Idetfkas basc operato algortma 22
Aalss Efses Algortma Step 2 = Idetfkas basc operato algortma Utuk algortma d atas, basc operatoya dapat dguaka a[j] > a[j + ] da/atau swap() 23
Aalss Efses Algortma Just aother Algorthm N 0 for to do S S + * 2 retur S 24
Aalss Efses Algortma Just aother Algorthm N 0 for to do S S + * 2 retur S Utuk algortma d atas, basc operatoya dapat dguaka perkala da/atau peambaha 25
Aalss Efses Algortma Step 3 = Tetuka apakah utuk ukura put yag sama bayakya eksekus basc operato bsa berbeda Pada sequetal search, parameter utuk ukura put adalah atau bayakya eleme array Utuk tertetu, apakah bayakya eksekus basc operato bsa berbeda? Jka eleme pertama array put A berla K, maka bayakya eksekus basc operato utuk tertetu C()= Jka K dtemuka d eleme terakhr, maka C()= Perlu dadaka aalsa best case, worst case da average case 26
Aalss Efses Algortma Step 3 = Tetuka apakah utuk ukura put yag sama bayakya eksekus basc operato bsa berbeda 0 whle ad A[] K do + f retur else retur - x 2 x x 2 x x 27
Aalss Efses Algortma Step 3 = Tetuka apakah utuk ukura put yag sama bayakya eksekus basc operato bsa berbeda 28
Aalss Efses Algortma Step 3 = Tetuka apakah utuk ukura put yag sama bayakya eksekus basc operato bsa berbeda 29
Aalss Efses Algortma Just aother Algorthm N 0 for to do S S + * 2 retur S 30
Aalss Efses Algortma Step 4 = Tetuka rumus sgma yag meujukka berapa kal basc operato deksekus C() = bayakya eksekus basc operato utuk put ukura Utuk Best case : C( ) Best case terjad jka eleme pertama A berla K 3
Aalss Efses Algortma Step 4 = Tetuka rumus sgma yag meujukka berapa kal basc operato deksekus Utuk Worst case : C( ) Worst case terjad jka eleme A yag berla K merupaka eleme terakhr atau tdak ada eleme A yag berla K 32
Aalss Efses Algortma Step 4 = Tetuka rumus sgma yag meujukka berapa kal basc operato deksekus Utuk Average case : Asumska Data K memag ada d A Probabltas K terletak d eleme tertetu A terdstrbus merata. Probabltas K terletak d eleme ke = / 33
Aalss Efses Algortma Step 4 = Tetuka rumus sgma yag meujukka berapa kal basc operato deksekus Poss K dtemuka Bayakya eksekus basc operato Probabltas terjad Kotrbus pada C() / * / 2 2 / 2 * / N * / Betuk umum : * / 34
Aalss Efses Algortma Step 4 = Tetuka rumus sgma yag meujukka berapa kal basc operato deksekus Sehgga utuk Average case : C( ) * 35
Aalss Efses Algortma Step 5 = Selesaka rumus sgma yag meujukka berapa kal basc operato deksekus Best case utuk sequetal search C( ) C( ) Best case pada sequetal search C() = Utuk put berukura, basc operato dlakuka kal 36
Aalss Efses Algortma Step 5 = Selesaka rumus sgma yag meujukka berapa kal basc operato deksekus Worst case utuk sequetal search C( ) C( ) Worst case pada sequetal search C() = Utuk put berukura, basc operato dlakuka kal 37
Aalss Efses Algortma Step 5 = Selesaka rumus sgma yag meujukka berapa kal basc operato deksekus Average case pada sequetal search 38 C * ) ( C ) ( ) ( 2 ) ( 2 * ) ( C
Aalss Efses Algortma Step 5 = Selesaka rumus sgma yag meujukka berapa kal basc operato deksekus Average case pada sequetal search ( ) C( ) 2 Utuk = 0, C() = 5,5 Apakah tu berart K berada pada eleme 5 atau 6 Apa artya? 39
Aalss Efses Algortma Estmas waktu rug algortma sequetal search T() = C op * C() T() = Waktu yag dperluka utuk megeksekus algortma dega put berukura C op = Waktu utuk megeksekus basc operato kal. Basaya dtetuka satua waktu Htug T() utuk sequetal search pada best case, worst case da average case! 40
Latha Buat algortma utuk meghtug X secara teratf megguaka cara X = X * X * X * * X sebayak kal. Estmas rug tme algortma yag ada buat! 4
Latha 2 Algorthm mystery(a[0..-]) X A[0] for to do f A[] > X X A[] retur X. Apa yag dlakuka algortma mystery? 2. Estmaska waktu eksekus algortma mystery 3. Estmas waktu eksekus algortma mystery utuk put A = [, 2, 5, 9, 4, 4, 7, 0,, 6] 42
Latha 3 Algorthm mystery2(a[0..-]) X A[0] for 0 to - do for j 0 to do X A[]+A[j] retur X. Apa Basc Operatoya? 2. Estmaska waktu eksekus algortma mystery2 43
Latha 3 Algorthm mystery2(a[0..-]) X A[0] for 0 to - do for j 0 to - do X A[]+A[j] retur X. Apa Basc Operatoya? 2. Estmaska waktu eksekus algortma mystery2 44
Latha 4 Algorthm MatrxMultplcato(A[0..-, 0..-], B[0..-, 0..-]) //multples two square matrces of order by the // defto-based algorthm //put: two -by- matrces A ad B //output: matrx C = AB for 0 to - do for j 0 to - do C[,j] 0,0 for k 0 to - do C[,j] C[,j] + A[,k]* B[k,j] retur C CS3024-FAZ 45
CS3024-FAZ 46 Latha 4: Aalyss () Iput s sze = matrx order I the ermost loop: multplcato & addto basc operato caddates MUL & ADD executed exactly oce o each repetto o ermost loop we do t have to choose betwee these two operatos Sum of total umber of multplcato 0 3 2 0 0 0 0 0 ) ( j j k M
CS3024-FAZ 47 Latha 4: Aalyss (2) Estmate the rug tme of the algorthm o a partcular mache More accurate estmato (clude addto) c m : the tme of oe multplcato c a : the tme of oe addto 3 ) ( ) ( c M c T m m 3 3 3 ) ( ) ( ) ( ) ( c c c c A c M c T a m a m a m
Example 4 Algorthm Bary() //put: a postve decmal teger //output: the umber of bary dgts s bary represetato cout whle > do cout cout + /2 retur cout CS3024-FAZ 48
Exp4: Aalyss () The most frequet executed operato s the comparso > The umber of tmes the comparso wll be executed s larger tha the umber of repetto of the loop s body by exactly CS3024-FAZ 49
Exp4: Aalyss (2) The value of s about halved o each repetto of the loop about log 2 The exact formula: log 2 + Aother approach aalyss techques based o recurrece relato CS3024-FAZ 50
Soal Algorthm uqueelemet(a[0..-]) //memerksa apakah setap eleme A uk //put : array A[0..-] //output : megembalka true jka setap eleme A uk da false jka terdapat beberapa eleme yag laya sama for 0 to 2 do for j + to - do Retur true If A[] = A[j] retur false Estmas rug tme algortma uqueelemet! (Aay levt halama 63) 5
CS3024-FAZ 55 Exercses (). Compute the followg sums: a. + 3 + 5 + 7 + + 999 b. 2 + 4 + 6 + 8 + + 024 c. 2. Compute order of growth of the followg sums j j j j 0 3 3 ; 3 ); ( ; ; ; )2 ( ; lg ; ) ( 2 2 0 2 2
Exercses (2) 3. Algorthm Mystery() //put: a oegatve teger S 0 for to do S S + * retur S a. What does ths algorthm compute? b. What s ts basc operato? c. How may tmes s the basc op executed? d. What s the effcecy class of ths algorthm? e. Ca you make ay mprovemet? CS3024-FAZ 56
Exercses (3) 4. Algorthm Secret(A[0..-]) //put: a array A[0..-] of real umber m A[0]; ma A[0] for to - do f A[] < m the m A[] f A[] > ma the ma A[] retur ma - m a. What does ths algorthm compute? b. What s ts basc operato? c. How may tmes s the basc op executed? d. What s the effcecy class of ths algorthm? e. Ca you make ay mprovemet? CS3024-FAZ 57
Aalss Algortma No-Rekursf Lagkah-lagkah umum utuk megaalss efses waktu algortma. Tetuka parameter yag megdkaska ukura put 2. Idetfkas basc operato algortma 3. Tetuka apakah utuk ukura put yag sama bayakya eksekus basc operato bsa berbeda 4. Tetuka rumus sgma yag meujukka berapa kal basc operato deksekus 5. Selesaka rumus sgma utuk meghtug bayakya eksekus basc operato 58
Latha Algorthm mystery(a[0..-]) X A[0] for to do f A[] > X X A[] retur X. Apa yag dlakuka algortma mystery? 2. Estmaska waktu eksekus algortma mystery 3. Estmas waktu eksekus algortma mystery utuk put A = [, 2, 5, 9, 4, 4, 7, 0,, 6] 59
Utuk apa kta mecar T()? Apakah utuk megestmas rug tme algortma? Tujua utama mecar T() buka mecar waktu eksak yag dbutuhka utuk megeksekus sebuah algortma Tetap utuk megetahu tgkat pertumbuha waktu eksekus algortma jka ukura put bertambah (order of growth) 60
Latha Algortma mystery T() =. Estmas waktu eksekus algortma jka array putya memlk aggota 0 eleme 20 eleme 30 eleme Buat grafk yag meujukka hubuga atara bayakya eleme array yag deksekus dega waktu eksekus 6
Orders of Growth Order of Growth adalah Tgkat pertumbaha waktu eksekus algortma jka ukura put bertambah 62
Latha Urutka waktu eksekus algortma 4 berdasar order of growthya dar kecl ke besar T () = 2 T 2 () = 3 T 3 () = T 4 () = log 2 T (0) = 00 T 2 (0) =,000 T 3 (0) = 0 T 4 (0) = 3.3 T (00) = 0,000 T 2 (00) =,000,000 T 3 (00) = 00 T 4 (00) = 6.6 63
Membadgka Orders of Growth Algortma A da B merupaka algortma utuk meyelesaka permasalaha yag sama. Utuk put berukura, waktu eksekus algortma A adalah T A () sedagka waktu eksekus algortma B adalah T B (). Orders of growth maa yag palg besar? lm ~ T T A B ( ) ( ) 64
Membadgka Orders of Growth lm ~ T T A B ( ) ( ) 0 maka OoG T A () < OoG T B () C maka OoG T A () = OoG T B () ~ maka OoG T A () > OoG T B () 65
Example () Compare OoG of ½(-) ad 2. 2 2 ( ) lm lm lm 2 2 2 2 The lmt = c ½(-) ( 2 ) 2 Compare OoG of log 2 ad log (log 2 )' (log 2 e) lm 2 lm lm 2log 2 elm ( )' The lmt = 0 log 2 has smaller order of 2 0 CS3024-FAZ 66
Example (2) Compare OoG of! ad 2. lm! 2 lm 2 2 e lm 2 2 e lm 2 2e The lmt =! (2 ) CS3024-FAZ 67
Tugas Terdapat dua algortma yag meyelesaka permasalaha yag sama. Utuk put berukura, Algortma meyelesaka dalam T () = 30 2 + 2 + 5. Algortma 2 dalam T 2 () = 3 + Maa yag lebh besar, OoG T atau T 2? Megapa? Utuk kecl, maa yag ada plh? Megapa? Utuk besar, maa yag ada plh? Megapa? 68
Kelas-Kelas Order of Growth Mak ke bawah, OoGya mak besar C logn N NlogN costat logarthmc lear N 2 quadratc N 3 cubc 2 N expoetal N! factoral 69
Grafk Kelas-Kelas Order of Growth 70
Sfat Order of Growth Msal T() = T () + T 2 () + + T () Maka OoG T() = max OoG(T (), T 2 (),, T ()) Msal T() = cf() Maka OoG T() = f() 7
Example Alg to check whether a array has detcal elemets:. Sort the array 2. Sca the sorted array to check ts cosecutve elemets for equalty () = ½(-) comparso O( 2 ) (2) = - comparso O() The effcecy of ()+(2) = O(max{ 2,}) = O( 2 ) CS3024-FAZ 72
Tugas 2 Tetuka kelas orders of growth dar T () = 2 3 + 4 + T 2 () = 0,5! + 0 T 3 () = 3 + log T 4 () = 2 + 4 3 + log +0 73
Kelas-Kelas OoG () Waktu pelaksaaa algortma adalah tetap, tdak bergatug pada ukura put. (log ) Komplekstas waktu logartmk berart laju pertumbuha waktuya berjala lebh lambat darpada pertumbuha. () Bla djadka dua kal semula, maka waktu pelaksaaa algortma juga dua kal semula. 74
Kelas-Kelas OoG ( log ) Bla djadka dua kal semula, maka log mejad lebh dar dua kal semula (tetap tdak terlalu bayak) ( 2 )Bla dakka mejad dua kal semula, maka waktu pelaksaaa algortma megkat mejad empat kal semula. ( 3 )Bla dakka mejad dua kal semula, waktu pelaksaa algortma megkat mejad delapa kal semula. 75
Kelas-Kelas OoG (2 )Bla djadka dua kal semula, waktu pelaksaaa mejad kuadrat kal semula! (!)Bla djadka dua kal semula, maka waktu pelaksaaa algortma mejad faktoral dar 2. 76
Clck to edt subttle style