Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat

Presentasi serupa


Presentasi berjudul: "Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat"— Transcript presentasi:

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

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

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

4 Motivasi (lanjutan) Pada grafik terlihat, semakin ke kanan, fungsi yang tumbuh lebih cepat pada akhirnya selalu menjadi yang terbesar fA(n)=30n+8 fB(n)=n2+1

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

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

7 Penemu-penemu simbol

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.

9 f(n) = 100 n2, g(n) = n4, n f(n) g(n) 10 10,000 50 250,000 6,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 n2, g(n) = n4, n f(n) g(n) 10 10,000 50 250,000 6,250,000 100 1,000,000 100,000,000 150 2,250,000 506,250,000

10 f(n) = 100 n2, g(n) = n4, 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

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 n0 sedemikian sehingga: | f (x) |≤ C | g (x) | ketika x > n0

12 Cormen:

13 Ternyata f(n) ≤ g(n) untuk n ≥ 10
f(n) = 100 n2, g(n) = n4, n f(n) g(n) 10 10,000 50 250,000 6,250,000 100 1,000,000 100,000,000 150 2,250,000 506,250,000 Ternyata f(n) ≤ g(n) untuk n ≥ 10 Ambil c = 1 dan n0 = 10, sedemikian sehingga |f(n)| ≤ c |g(n)| untuk n ≥ n0 Jadi, f Є O(g)

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

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

16 Interpretasi Big-O secara grafis
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. cn = 31n n>k=8  30n+8 Nilai fungsi  30n+8 O(n) n n menaik →

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 n0 = sehingga 30n+8 ≤ 38 n untuk n ≥ 1 Dalam hal ini: O(f) = O(g) = O(n)

18 n2 < n2 + 1 untuk n >1, sehingga n2 adalah O(n2+1)
Tunjukkan bahwa n2+1 adalah O(n2). Tunjukkan c, n0 : n >n0 sehingga n2+1  cn2. Ambil c=2, n0 =1. Asumsikan n >1, maka cn 2 = 2n 2 = n 2+n 2 > n 2+1, atau n2+1< cn2. n2 < n2 + 1 untuk n >1, sehingga n2 adalah O(n2+1)

19 Contoh lain: Berapa kompleksitasnya?
f(n) = ∑ i g(n) = ∑ i2 h(n) = ∑ it f(n) Є O(n2) g(n) Є O(n3) h(n) Є O(n t+1)

20 Big-oh, sebagai relasi bersifat transitif: fO(g)  gO(h)  fO(h)
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) f1O(g1)  f2O(g2)  f1 f2 O(g1g2) f1+f2 O(g1+g2) = O(max(g1,g2)) = O(g1) jika g2O(g1)

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)) (logb |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))

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 n0 sedemikian sehingga: | f (x) |≥ C | g (x) | ketika x > n0

23 Cormen:

24 ; untuk

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) )

26 Cormen:

27

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

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

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

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

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

33 Analogi pada relasi asimtotik

34 Cara lain utk menentukan ordo fungsi:

35 Contoh: = 0 ( 4x3 + 3x2 + 5 ) = o (x4 - 3x3 - 5x - 4 )
(x4 - 3x3 - 5x - 4 ) = ω ( 4x3 + 3x2 + 5 ) (4x3 + 3x2 + 5 )

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

37 Teorema Stirling

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?

39 Berapa kompleksitasnya?
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?

40 Berapa kompleksitasnya?
Algoritme penggandaan matriks A dan B [1] for i := 1 to n do [2] for j := 1 to n do [3] cij := 0; [4] for k := 1 to n do cij := cij + aik bkj end [5] end [6] end Berapa kompleksitasnya?

41 Urutkan berdasar kompleksitasnya
log n √n 2n n log n nn n! n3 n2 log n

42 Perbandingan kompleksitas algoritme

43

44 selesai


Download ppt "Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat"

Presentasi serupa


Iklan oleh Google