Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

1 Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat Notasi-notasi asimtotik Perbandingan kompleksitas fungsi.

Presentasi serupa


Presentasi berjudul: "1 Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat Notasi-notasi asimtotik Perbandingan kompleksitas fungsi."— Transcript presentasi:

1

2 1 Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat Notasi-notasi asimtotik Perbandingan kompleksitas fungsi

3 2 Laju pertumbuhan fungsi : Menggambarkan perilaku fungsi pada nilai variabel bebas yang sangat besar

4 3 Motivasi Andaikan perlu dirancang suatu website untuk memproses data (mis, data keuangan). Bila program database A memerlukan f A (n)=30n+8 mikrodetik utk memproses sembarang n records, sementara program B perlu f B (n)=n 2 +1 mikrodetik utk memproses n records. Program mana yang akan kita pilih, dengan pertimbangan jutaan user yang akan mengakses website ini?

5 4 Motivasi (lanjutan) f A (n)=30n+8 f B (n)=n 2 +1 Pada grafik terlihat, semakin ke kanan, fungsi yang tumbuh lebih cepat pada akhirnya selalu menjadi yang terbesar

6 5 Manfaat Dapat digunakan untuk membandingkan efisiensi dari beberapa algoritme, dengan cara mengamati pertumbuhan fungsi yang menggambarkan perilaku masing- masing algoritme tersebut untuk ukuran input yang sangat besar -> asymptotic analysis

7 6 Notasi Asimtotik Terdapat 5 simbol masing-masing untuk kelas yang berbeda : O (Big Oh) Ω (Big OMEGA) Θ (Big THETA) o (Little Oh) ω (Little OMEGA)

8 7 Penemu-penemu simbol

9 8 O (Big Oh) Contoh berikut memberikan gambaran lebih jelas bagaimana pertumbuhan suatu fungsi lebih cepat dibandingkan pertumbuhan fungsi lainnya. Contoh ini selanjutnya digunakan untuk mengenalkan konsep big-Oh dan konsep-konsep notasi asimtotik lainnya.

10 9 nf(n)g(n) 1010, ,0006,250, ,000,000100,000, ,250,000506,250,000 Dari tabel dan gambar terlihat bahwa g(n) tumbuh lebih cepat dibanding f(n) ketika n > 10. Dhi, dikatakan f adalah big-Oh dari g dan dituliskan f Є O(g) f(n) = 100 n 2, g(n) = n 4,

11 10 Dalam hal ini, dapat dikatakan bahwa fungsi g mendominasi fungsi f, atau fungsi f didominasi fungsi g f memunyai orde paling banyak g, dan ditulis f Є O(g) O(g) dibaca orde g f(n) = 100 n 2, g(n) = n 4,

12 11 Definisi (big-oh): Andaikan f and g adalah fungsi-fungsi yang memetakan himpunan bilangan bulat ke himpunan bilangan nyata, maka: f (x) adalah O (g (x) ), (dibaca : f (x) adalah big-oh dari g (x) ), jika hanya jika terdapat konstanta C dan n 0 sedemikian sehingga: | f (x) |≤ C | g (x) | ketika x > n 0

13 12 Cormen:

14 13 nf(n)g(n) 1010, ,0006,250, ,000,000100,000, ,250,000506,250,000 f(n) = 100 n 2, g(n) = n 4, Ternyata f(n) ≤ g(n) untuk n ≥ 10 Ambil c = 1 dan n 0 = 10, sedemikian sehingga |f(n)| ≤ c |g(n)| untuk n ≥ n 0 Jadi, f Є O(g)

15 14 f(n) = 100 n 2, g(n) = n 4, Gunakan metode kontradiksi. Andaikan g = O(f), berarti |g(n)| ≤ c |f(n)| untuk n ≥ n 0 Sehingga n 4 ≤ c n 2 jjk n 2 ≤ c (kontradiksi) Jadi yang benar, f Є O(g) Tunjukkan bahwa g ≠ O(f)

16 15 Tunjukkan bahwa 30n+8 adalah O(n). –Tunjukkan  c, n 0 :  n > n 0 sehingga 30n+8  cn. Ambil c = 31, n 0 =8. Asumsikan n > n 0 =8, maka cn = 31n = 30n + n > 30n+8, sehingga 30n+8 < cn. –n adalah O(30n+8). Contoh:

17 16 30n+8 tidak lebih kecil dr sembarang n (n>0). Tidak juga lebih kecil dr 31n di semua n. Tetapi lebih kecil dari 31n untuk n>8. n>k=8  Interpretasi Big-O secara grafis n menaik → Nilai fungsi  n 30n+8 cn = 31n 30n+8  O(n)

18 17 Cara lain: Tunjukkan bahwa 30n+8 adalah O(n). f(n) = 30n+8 ; g(n) = n Jawab: 30n+8 ≤ 30n+8n = 38 n ambil c = 38 dan n 0 = 1 sehingga 30n+8 ≤ 38 n untuk n ≥ 1 Dalam hal ini: O(f) = O(g) = O(n)

19 18 Tunjukkan bahwa n 2 +1 adalah O(n 2 ). –Tunjukkan  c, n 0 :  n >n 0 sehingga n 2 +1  cn 2. Ambil c=2, n 0 =1. Asumsikan n >1, maka cn 2 = 2n 2 = n 2 +n 2 > n 2 +1, atau n 2 +1< cn 2. – n 2 1, sehingga n 2 adalah O(n 2 +1)

20 19 Contoh lain: Berapa kompleksitasnya? f(n) = ∑ i g(n) = ∑ i 2 h(n) = ∑ i t f(n) Є O(n 2 ) g(n) Є O(n 3 ) h(n) Є O(n t+1 )

21 20 Sifat-sifat Big-oh: Big-oh, sebagai relasi bersifat transitif: f  O(g)  g  O(h)  f  O(h) Jika g  O(f) dan h  O(f), maka g+h  O(f)  c > 0, O(cf)=O(f+c)=O(f  c)=O(f) f 1  O(g 1 )  f 2  O(g 2 )  –f 1 f 2  O(g 1 g 2 ) –f 1 +f 2  O(g 1 +g 2 ) = O(max(g 1,g 2 )) = O(g 1 ) jika g 2  O(g 1 )

22 21  f,g & konstanta a,b  R, dengan b  0, –af = O(f); (e.g. 3x 2 = O(x 2 )) –f+ O(f) = O(f); (e.g. x 2 +x = O(x 2 )) Jika f=  (1) (sedikitnya orde 1), maka: –|f| 1-b = O(f); (e.g. x  1 = O(x)) –(log b |f|) a = O(f). (e.g. log x = O(x)) –g=O(fg) (e.g. x = O(x log x)) –fg  O(g) (e.g. x log x  O(x)) –a=O(f ) (e.g. 3 = O(x))

23 22 Definisi (big-omega): Andaikan f and g adalah fungsi-fungsi yang memetakan himpunan bilangan bulat ke himpunan bilangan nyata, maka: f (x) adalah Ω (g (x) ), (dibaca : f (x) adalah big-omega dari g (x)), jika hanya jika terdapat konstanta C dan n 0 sedemikian sehingga: | f (x) |≥ C | g (x) | ketika x > n 0

24 23 Cormen:

25 24 untuk ;

26 25 Definisi (big-theta): Andaikan f and g adalah fungsi-fungsi yang memetakan himpunan bilangan bulat ke himpunan bilangan nyata, maka: f (x) adalah θ (g (x) ), (dibaca : f (x) adalah big-theta dari g (x)), jika hanya jika f (x) adalah Ω (g (x) ) dan f (x) adalah O (g (x) )

27 26 Cormen:

28 27

29 28 tetapi Contoh: o (Little Oh) o(g) = {f ;  c>0  n 0  x> n 0 : |f(x)| < |cg(x)|} o(g)  O(g)   (g) adalah fungsi-fungsi yang mempunyai order yang lebih kecil dari g

30 29 Kenapa o(f )  O(x)  (x) ? Contoh fungsi O(x), tapi bukan o(x) atau  (x):

31 30 Contoh: tetapi ω (Little OMEGA)  (g) = {f ;  c>0  n 0  x> n 0 : |cg(x)| 0  n 0  x> n 0 : |cg(x)| < |f(x)|}  (g)   (g)   (g) adalah fungsi-fungsi yang mempunyai order yang lebih besar dari g

32 31 Hubungan antar notasi asimtotik RRRR  ( f ) O( f )  ( f )  ( f ) o( f ) f

33 32 Definisi-definisi orde pertumbuhan,  g:R  R O(g) :  {f ;  c>0,  n 0  x>n 0 |f(x)| < |cg(x)|} o(g) :  {f ;  c>0  n 0  x>n 0 |f(x)| < |cg(x)|}  (g) :  {f ; g  O(f)}  (g) :  {f ; g  o(f)}  (g) :  O(g)   (g)

34 33 Analogi pada relasi asimtotik

35 34 Cara lain utk menentukan ordo fungsi:

36 35 Contoh: = 0 ( 4x 3 + 3x ) = o (x 4 - 3x 3 - 5x - 4 ) (4x 3 + 3x ) (x 4 - 3x 3 - 5x - 4 ) = ω ( 4x 3 + 3x )

37 36 f(x) = Θ (g(x)) f(x) = O (g(x))

38 37 Teorema Stirling

39 38 Algoritme Sequential Search [1] indeks := 1; [2] while indeks ≤ n and L[indeks] ≠ x do [3] indeks := indeks + 1 [4] end {while} [5] if indeks > n then indeks :=0 Berapa kompleksitasnya?

40 39 Algoritme Insertion_Sort(A) for j := 2 to length[A] do key := A[j] {memasukkan A[j] ke dalam array A[1…j-1] yang sudah diurutkan} i := j-1 while i > 0 dan A[i] > key do A[i+1] := A[i] i := i-1 A[i+1] := key Berapa kompleksitasnya?

41 40 Algoritme penggandaan matriks A dan B [1] for i := 1 to n do [2] for j := 1 to n do [3] c ij := 0; [4] for k := 1 to n do c ij := c ij + a ik b kj end [5] end [6] end Berapa kompleksitasnya?

42 41 Urutkan berdasar kompleksitasnya log n √n 2 n n log n n n! n 3 n 2 log n

43 42 Perbandingan kompleksitas algoritme

44 43

45 44


Download ppt "1 Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat Notasi-notasi asimtotik Perbandingan kompleksitas fungsi."

Presentasi serupa


Iklan oleh Google