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

Pertemuan-3

  • Upload
    reuel

  • View
    79

  • Download
    0

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Pertemuan-3

1

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

manfaat• Notasi-notasi asimtotik• Perbandingan kompleksitas

fungsi

Page 2: Pertemuan-3

2

Laju pertumbuhan fungsi :• Menggambarkan perilaku fungsi pada nilai

variabel bebas yang sangat besar

Page 3: Pertemuan-3

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?

Page 4: Pertemuan-3

4

Motivasi (lanjutan)

fA(n)=30n+8

fB(n)=n2+1

Pada grafik terlihat, semakin ke kanan, fungsi yang tumbuh lebih cepat pada akhirnya selalu menjadi yang terbesar

Page 5: Pertemuan-3

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

Page 6: Pertemuan-3

6

Notasi Asimtotik

Terdapat 5 simbol masing-masing untuk

kelas yang berbeda :

•O (Big Oh) •Ω (Big OMEGA) •Θ (Big THETA) •o (Little Oh) •ω (Little OMEGA)

Page 7: Pertemuan-3

7

Penemu-penemu simbol

Page 8: Pertemuan-3

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.

Page 9: Pertemuan-3

9

n f(n) g(n)

10 10,000 10,000

50 250,000 6,250,000

100 1,000,000 100,000,000

150 2,250,000 506,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,

Page 10: Pertemuan-3

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

Page 11: Pertemuan-3

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

Page 12: Pertemuan-3

12

Cormen:

Page 13: Pertemuan-3

13

n f(n) g(n)

10 10,000 10,000

50 250,000 6,250,000

100 1,000,000 100,000,000

150 2,250,000 506,250,000

f(n) = 100 n2, g(n) = n4,

Ternyata f(n) ≤ g(n) untuk n ≥ 10Ambil c = 1 dan n0 = 10, sedemikiansehingga |f(n)| ≤ c |g(n)| untuk n ≥ n0

Jadi, f Є O(g)

Page 14: Pertemuan-3

14

f(n) = 100 n2, g(n) = n4,

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)

Tunjukkan bahwa g ≠ O(f)

Page 15: Pertemuan-3

15

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

Contoh:

Page 16: Pertemuan-3

16

• 30n+8 tidak lebih kecil dr sembarang n(n>0).

• Tidak jugalebih kecil dr 31ndi semua n.

• Tetapi lebih kecil dari 31n untuk n>8.

n>k=8

Interpretasi Big-O secara grafis

n menaik →

Nil

ai f

ungs

i n

30n+8cn =31n

30n+8O(n)

Page 17: Pertemuan-3

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)

Page 18: Pertemuan-3

18

• Tunjukkan bahwa n2+1 adalah O(n2).

– Tunjukkan c, n0 : n >n0 sehingga 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)

Page 19: Pertemuan-3

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)

Page 20: Pertemuan-3

20

Sifat-sifat Big-oh:• Big-oh, sebagai relasi bersifat transitif:

fO(g) gO(h) fO(h)• Jika gO(f) dan hO(f), maka

g+hO(f)c > 0, O(cf)=O(f+c)=O(fc)=O(f)• f1O(g1) f2O(g2)

– f1 f2 O(g1g2)– f1+f2 O(g1+g2)

= O(max(g1,g2)) = O(g1) jika g2O(g1)

Page 21: Pertemuan-3

21

f,g & konstanta a,bR, dengan b0,– 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))

Page 22: Pertemuan-3

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

Page 23: Pertemuan-3

23

Cormen:

Page 24: Pertemuan-3

24

untuk ;

Page 25: Pertemuan-3

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

Page 26: Pertemuan-3

26

Cormen:

Page 27: Pertemuan-3

27

Page 28: Pertemuan-3

28

tetapiContoh:

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

Page 29: Pertemuan-3

29

Kenapa o(f )O(x)(x) ?

• Contoh fungsi O(x), tapi bukan o(x) atau (x):

Page 30: Pertemuan-3

30

Contoh: tetapi

ω (Little OMEGA)

((gg) = {) = {ff ; ; cc>0 >0 nn00 x> nx> n00 : | : |cgcg((xx)| < |)| < |ff((xx)|})|}

((gg) ) ((gg) ) ((g)g)

adalah fungsi-fungsi yang mempunyai order yang lebih besar dari g

Page 31: Pertemuan-3

31

Hubungan antar notasi asimtotik

RR( f )O( f )

( f ) ( f )o( f )• f

Page 32: Pertemuan-3

32

Definisi-definisi orde pertumbuhan, g:RR

• 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 ; gO(f)}(g) : {f ; go(f)}(g) : O(g) (g)

Page 33: Pertemuan-3

33

Analogi pada relasi asimtotik

Page 34: Pertemuan-3

34

Cara lain utk menentukan ordo fungsi:

Page 35: Pertemuan-3

35

Contoh:

= 0

( 4x3 + 3x2 + 5 ) = o (x4 - 3x3 - 5x - 4 )

(4x3 + 3x2 + 5 ) (x4 - 3x3 - 5x - 4 ) = ω ( 4x3 + 3x2 + 5 )

Page 36: Pertemuan-3

36

f(x) = Θ (g(x))

f(x) = O (g(x))

Page 37: Pertemuan-3

37

TeoremaStirling

Page 38: Pertemuan-3

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?

Page 39: Pertemuan-3

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?

Page 40: Pertemuan-3

40

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] endBerapa kompleksitasnya?

Page 41: Pertemuan-3

41

Urutkan berdasar kompleksitasnya

• log n• √n• 2n

• n log n• nn

• n!• n3

• n2 log n

Page 42: Pertemuan-3

42

Perbandingan kompleksitas algoritme

Page 43: Pertemuan-3

43

Page 44: Pertemuan-3

44