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

Slides:



Advertisements
Presentasi serupa
Pencarian ( Searching)
Advertisements

Algoritma dan Struktur Data
Aryo Pinandito, ST, M.MT - PTIIK UB
Metode Analisis Asymtotic
Sorting (Pengurutan).
PERTEMUAN II ARRAY DIMENSI 1 & 2.
Desain Dan Analisis Algoritma
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
Pertemuan-4 : Recurrences
Design and Analysis of ALGORITHM (Session 3)
Tim Matematika Diskrit
Kompleksitas Algoritma
Desain dan Analisis Algoritma
Relasi.
Oleh: Mardiyana Jurusan Pendidikan Matematika
Kompleksitas Algoritma
Kompleksitas Waktu Asimptotik
4. RELASI.
STRUKTUR PEMILIHAN (KONTROL PROGRAM) Minggu III - 40 menit
14. KOMPLEKSITAS ALGORITMA.
Desain dan Analisis Algoritma
8. BARISAN DAN DERET.
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
Pertemuan-2 Kriteria kebaikan suatu algoritme Correctness
14. KOMPLEKSITAS ALGORITMA. Untuk keperluan analisis algoritma, kita perlu mengetahui seberapa cepat pertumbuhan atau perkembangan suatu fungsi. Pertumbuhan.
GRUP Misalkan S Himpunan tak kosong sembarang, kita definisikan A(S) sebagai himpunan semua pemetaan satu-satu dan pada dari S ke S. Untuk setiap dua unsur.
SUB GRUP Definisi. Suatu sub himpunan tak kosong H dari Grup G dikatakan subgrup dari G, jika dengan operasi perkalian dalam G, H membentuk Grup.
Algoritma Brute Force Oleh: Muhammad Musta’in ( )
Notasi Asimptotik Team Fasilkom.
KUG1A3 Algoritma& Pemrograman
Dosen Pembimbing Gisoesilo Abudi
Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir
Algoritma.
Strategi Algoritma Kuliah 2 : Kompleksitas Algoritma
MATERI PERKULIAHAN ANALISIS ALGORITMA
Pertemuan 10 SORTING.
Pertemuan 25 MERANCANG ALGORITMA DENGAN KOMPLEKSITAS TERTENTU
Pengujian Perangkat Lunak
Relasi Logika Matematika.
CSG523/ Desain dan Analisis Algoritma
Deklarasi Array X : array [ 1.. N ] of Type
Pengurutan (Sorting).
MATERI PERKULIAHAN ANALISIS ALGORITMA
Faktor analisa algoritma
BARISAN BILANGAN KOMPLEKS
Modul 6 : Analisis Algoritma dan Struktur Data
Struktur Dasar Algoritma dan Runtunan
MATERI PERKULIAHAN ANALISIS ALGORITMA
NOTASI ASIMTOTIK (ASYMTOTIC NOTATION)
ARRAY.
Notasi Asymtotik Pertemuan 2.
MATRIKS (ARRAY 2 DIMENSI)
Modul 4 : Analisis Algoritma & Struktur Data
Sorting (Pengurutan).
Analisa Algoritma Asimtotik.
Kompleksitas Algoritma
Struktur Data.
Variabel Berindeks / Variabel Array
Algoritme dan Pemrograman
Dasar-Dasar Pemrograman
Pencarian (searching)
Struktur Data.
Dr. Mufid Nilmada, SSi., MMSI
SIFAT KELENGKAPAN dan ARCHIMIDES OLEH: RINA AGUSTINA, M. Pd.
Definisi 1: Dipunyai himpunan A dan B. Suatu fungsi f dari himpunan A ke B merupakan himpunan pasangan terurut f ⊆ A x B sedemikian sehingga memenuhi:
ASSALAMU’ALAIKUM WR.WB
Notasi Asimptotik Team Fasilkom.
Sorting (Pengurutan).
Notasi Asimptotik Team Fasilkom.
Desain dan Analisis Algoritma
Transcript presentasi:

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

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

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

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

Penemu-penemu simbol

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.

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

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

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

Cormen:

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)

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)

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

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 →

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

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)

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)

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)

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

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

Cormen:

; untuk

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

Cormen:

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

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

(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:

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

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)

Analogi pada relasi asimtotik

Cara lain utk menentukan ordo fungsi:

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

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

Teorema Stirling

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?

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?

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?

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

Perbandingan kompleksitas algoritme

selesai