Notasi Asimtot utuk Aalisis Efisiesi Waktu Aalisis Algoritma 14/09/2006 CS3024-FAZ 1
Isi Notasi Asimtot: O (big oh) (big omega) (big theta) Kelas-kelas Efisiesi Dasar CS3024-FAZ 2
Pada bahasa berikut t() & g(): setiap fugsi o egatif didefiisika pada sekumpula agka alami t() algoritma ruig time Biasaya dididikasika oleh perhituga operasi dasarya C() g() beberapa fugsi sederhaa utuk membadigka perhituga dega CS3024-FAZ 3
O(g()): Iformally O(g()) adalah kumpula semua fugsi dega tigkat pertumbuha lebih kecil atau sama dega g() Cotoh: O( 2 ); 100 + 5 O( 2 ) ½ (-1) O( 2 ) 3 O( 2 ); 0.0001 3 O( 2 ); 4 ++1 O( 2 ) CS3024-FAZ 4
(g()): Iformally (g()) kumpula semua fugsi dega tigkat pertumbuha lebih besar atau sama dega g() Examples: 3 ( 2 ) ½ (-1) ( 2 ) 100 + 5 ( 2 ) CS3024-FAZ 5
(g()): Iformally (g()) adalah kumpula semua fugsi dega tigkat pertumbuha sama dega g() Examples: a 2 +b+c; a>0 ( 2 ); 2 +si ( 2 ) ½ (-1) ( 2 ); 2 +log ( 2 ) 100 + 5 ( 2 ); 3 ( 2 ) = CS3024-FAZ 6
Notasi-O: Formally DEF1: Sebuah fugsi t() dikataka himpua bagia dari O(g()),ditujukka oleh t() O(g()), jika t() di batas atas beberapa pegali kotsta dari g() utuk semua ukura Cotoh: terdapat beberapa kostata positif c da beberapa iteger oegatif 0, yaitu: t() cg() utuk semua 0 CS3024-FAZ 7
Ilustrasi :t() O(g()) cg() t() does't matter 0 CS3024-FAZ 8
Cotoh: 100 + 5 O( 2 ) DEF1: cari c ad 0, sehigga t() cg() utuk semua 0 100 + 5 100 + (for all 5) = 101 101 2 c=101, 0 =5 100 + 5 100 + 5 (for all 1) = 105 105 2 c=105, 0 =1 CS3024-FAZ 9
-otatio: Formally DEF2: Suatu fugsi t() dikataka himpua bagia dari (g()), ditujukka dega t() (g()), jika t() dibatasi dibawah beberapa pegali kosta dari g() for semua ukura Cotoh: terdapat beberapa kostata positif c da beberapa iteger oegatif 0, yaitu: t() cg() for all 0 CS3024-FAZ 10
Ilustrasi : t() (g()) t() cg() does't matter 0 CS3024-FAZ 11
Cotoh: 3 ( 2 ) DEF2: temuka c da 0, sehigga t() cg() utuk semua 0 3 2 (for all 0) c=1, 0 =0 CS3024-FAZ 12
-otatio: Formally DEF3: Fugsi t() dikataka himpua bagaia (g()), ditujukka oleh t() (g()), jika t() dibatasi diatas da dibawah beberapa pegali tetap dari g() for utuk semua ukura Cotoh: terdapat beberapa kostata positif c da beberapa iteger oegatif 0, yaitu: c 2 g() t() c 1 g() for all 0 CS3024-FAZ 13
t() (g()): Illustratio c 1 g() t() does't matter c 2 g() 0 CS3024-FAZ 14
Cotoh: ½(-1) ( 2 ) DEF3: temuka c 1 da c 2 da beberapa iteger oegatif 0, sehigga c 2 g() t() c 1 g() for all 0 Batas atas ½ (-1) = ½ 2 ½ ½ 2 (for all 0) Batas bawah : ½ (-1) = ½ 2 ½ ½ 2 - ½ ½ (for all 2) = ¼ 2 c 1 = ½, c 2 = ¼, 0 = 2 CS3024-FAZ 15
Kelas-kelas Efisiesi Dasar Efisiesi waktu sejumlah besar algoritma terbagi ke dalam beberapa kelas 1, log,, log, 2, 3, 2,! Kostata pegali diabaika algoritma pada efisiesi yag lebih buruk mugki saja memproses lebih cepat dibadig algoritma pada efisesi yag lebih baik Cotoh Alg A: 3, alg B: 10 6 2 ; kecuali > 10 6,alg B memproses lebih cepat daripada alg A CS3024-FAZ 16
Class: 1 Nama: costat Kometar: Efisiesi pada kasus terbaik Haya sedikit cotoh yag ada ruig time algoritma biasaya aka mejadi tak terbatas ketika ukura iputya meigkat tak terbatas CS3024-FAZ 17
Class: log Nama: logarithmic Kometar: Biasaya merupaka hasil pemotoga ukura problem dega faktor kosta pada tiap iterasi algoritma Algoritma logaritmik tidak dapat meerima semua iput atau bahka pembagia tetap dari iput tersebut: sembarag algoritma yag melakukaya setidakya aka memiliki liear ruig time CS3024-FAZ 18
Class: Nama: liear Kometar: Algoritma yag memeriksa sebuah daftar dega ukura (cotoh: pecaria sekuesial) termasuk dalam class ii CS3024-FAZ 19
Class: log Nama: -log- Kometar: Bayak algoritmadivide-ad-coquer, termasuk merge sort ad quick sort pada kasus average, masuk dalam class ii CS3024-FAZ 20
Class: 2 Nama: quadratic Kometar: Khususya, algoritma yag megkarakterisasi efisiesi megguaka dua loopig yag diembed Cotoh stadar: algoritma sortig dasar da operasi tertetu pada matrik -by- CS3024-FAZ 21
Class: 3 Nama: cubic Kometar: Biasaya, algoritma yag megkarakterisasi efisiesi megguaka dua loopig yag diembed Beberapt algoritma otrivial dari aljabar liear masuk ke dalam class ii CS3024-FAZ 22
Class: 2 Nama: expoetial Kometar: Diguaka khusus utuk algoritma yag megeerate seluruh subset suatu set dega - elemet Istilah expoetial setig diguaka utuk hal ii da bahka utuk algoritma dega tigkat pertumbuha yag lebih cepat CS3024-FAZ 23
Class:! Nama: factorial Kometar: Khusus utuk algoritma yag dipakai utuk me-geerate semua permutasi suatu set dega -elemet CS3024-FAZ 24
Properti yag bergua Teorema: Jika t 1 () O(g 1 ()) da t 2 () O(g 2 ()), maka t 1 () + t 2 () O(max{g 1 (), g 2 ()}) Teorima tersebut berlaku juga pada otasi ad CS3024-FAZ 25
Cotoh Alg yag dipakai utuk memeriksa apakah dalam array terdapat eleme yag sama: 1. Sort the array 2. Sca array yag telah di sort utuk memeriksa kesamaa eleme berikutya (1) = ½(-1) compariso O( 2 ) (2) = -1 compariso O() The efficiecy of (1)+(2) = O(max{ 2,}) = O( 2 ) CS3024-FAZ 26
Usig Limits for Comparig OoG A coveiet method for comparig order of growth of two specific fuctios Three pricipal cases: lim 0 t( ) c g ( ) implies implies implies that t()has that t()has that t()has a smaller OoG tha g() thesame OoG as g() a larger OoG tha g() The first two cases t() O(g()); the last two cases t() (g()); the secod case aloe t() (g()) CS3024-FAZ 27
Limit-based: why coveiet? It ca take advatage of the powerful calculus techiques developed for computig limits, such as L Hopital s rule Stirlig s formula lim t( ) g( ) lim t'( ) g'( )! 2 e for large value of CS3024-FAZ 28
Example (1) Compare OoG of ½(-1) ad 2. 1 2 2 ( 1) 1 1 1 lim lim lim 1 2 2 2 2 1 2 The limit = c ½(-1) ( 2 ) Compare OoG of log 2 ad 1 log (log 2 )' (log 2 e) lim 2 lim lim 2log 2 elim 1 ( )' The limit = 0 log 2 has smaller order of 2 0 CS3024-FAZ 29
Example (2) Compare OoG of! ad 2. lim! 2 lim 2 2 e lim 2 2 e lim 2 2e The limit =! (2 ) CS3024-FAZ 30
Exercises (1) 1. True or false: (+1)/2 O( 3 ) (+1)/2 O( 2 ) (+1)/2 ( 3 ) (+1)/2 () 2. Idicate the class (g()): ( 2 +1) 10 (10 2 +7+3) ½ 2 log (+2) 2 +(+2) 2 log (/2) CS3024-FAZ 31
Exercises (2) 3. Prove that every polyomial p() = a k k + a k-1 k-1 + + a 0 with a k > 0 belogs to ( k ) 4. Prove that expoetial fuctios a have differet orders of growth for differet values of base a > 0 CS3024-FAZ 32
Exercises (3) 5. You are facig a wall that stretches ifiitely i both directios. There is a door i the wall, but you kow either how far away or i which directio. You ca see the door oly whe you are right ext to it. Desig a algorithm that eables you to reach the door by walkig at most O() steps where is the (ukow to you) umber of steps betwee your iitial positio ad the door. CS3024-FAZ 33