1 / 44

Pertemuan-3

Pertemuan-3. Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat Notasi-notasi asimtotik Perbandingan kompleksitas fungsi. Laju pertumbuhan fungsi :. Menggambarkan perilaku fungsi pada nilai variabel bebas yang sangat besar. Motivasi.

reuel
Télécharger la présentation

Pertemuan-3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 nrecords, sementara program B perlu fB(n)=n2+1 mikrodetik utk memproses nrecords. • 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) • Ω(BigOMEGA) • Θ (BigTHETA) • o (Little Oh) • ω(LittleOMEGA)

  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. Dari tabel dan gambar terlihat bahwa g(n) tumbuh lebih cepat dibanding f(n) ketikan > 10. Dhi, dikatakan f adalah big-Oh dari g dan dituliskan f Є O(g) f(n) = 100 n2, g(n) = n4,

  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. f(n) = 100 n2, g(n) = n4, Ternyata f(n) ≤ g(n) untuk n ≥ 10 Ambil c = 1 dan n0 = 10, sedemikiansehingga |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 > n0sehingga30n+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. cn =31n n>k=8  Interpretasi Big-O secara grafis • 30n+8 tidak lebih kecil dr sembarang n(n>0). • Tidak jugalebih kecil dr 31ndi semua n. • Tetapi lebih kecil dari 31nuntuk n>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) = nJawab: 30n+8 ≤ 30n+8n = 38 n ambil c = 38 dan n0 = 1 sehingga 30n+8 ≤ 38 n untuk n ≥ 1 • Dalam hal ini: O(f) = O(g) = O(n)

  18. Tunjukkan bahwa n2+1 adalah O(n2). • Tunjukkan c, n0: n >n0sehingga n2+1  cn2. • Ambil c=2, n0=1. Asumsikan n >1, makacn 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. 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 & konstantaa,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 jikaf (x) adalah Ω(g (x) ) dan f (x) adalah O (g (x) )

  26. Cormen:

  27. 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

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

  29. ω (LittleOMEGA) (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:

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

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

  32. Analogi pada relasi asimtotik

  33. Cara lain utk menentukan ordo fungsi:

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

  35. f(x) = Θ (g(x)) f(x) = O (g(x))

  36. Teorema Stirling

  37. 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?

  38. 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?

  39. 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?

  40. Urutkan berdasar kompleksitasnya • log n • √n • 2n • n log n • nn • n! • n3 • n2 log n

  41. Perbandingan kompleksitas algoritme

  42. selesai

More Related