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
1
Pertemuan-3Laju 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)
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
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
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,
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,
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
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)
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)
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:
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)
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 >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)
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:
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)
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))
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
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
29
Kenapa o(f )O(x)(x) ?
• Contoh fungsi O(x), tapi bukan o(x) atau (x):
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
31
Hubungan antar notasi asimtotik
RR( f )O( f )
( f ) ( f )o( f )• f
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)
33
Analogi pada relasi asimtotik
34
Cara lain utk menentukan ordo fungsi:
35
Contoh:
= 0
( 4x3 + 3x2 + 5 ) = o (x4 - 3x3 - 5x - 4 )
(4x3 + 3x2 + 5 ) (x4 - 3x3 - 5x - 4 ) = ω ( 4x3 + 3x2 + 5 )
36
f(x) = Θ (g(x))
f(x) = O (g(x))
37
TeoremaStirling
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
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
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?
41
Urutkan berdasar kompleksitasnya
• log n• √n• 2n
• n log n• nn
• n!• n3
• n2 log n
42
Perbandingan kompleksitas algoritme
43
44