KOMPLEKSITAS WAKTU ASIMPTOTIK Kompleksitas Waktu Asimptotik Definisi Notasi

  • Slides: 13
Download presentation
KOMPLEKSITAS WAKTU ASIMPTOTIK

KOMPLEKSITAS WAKTU ASIMPTOTIK

Kompleksitas Waktu Asimptotik Definisi : Notasi asimtotik merupakan himpunan fungsi yang dibatasi oleh suatu

Kompleksitas Waktu Asimptotik Definisi : Notasi asimtotik merupakan himpunan fungsi yang dibatasi oleh suatu fungsi n N yang cukup besar. Fungsi : N → R (sering R+) Notasi Asimtotik digunakan untuk menentukan kompleksitas suatu algoritma dengan melihat waktu tempuh algoritma. Waktu tempuh algoritma merupakan fungsi : N → R+

Kompleksitas Waktu Asimptotik Terdapat tiga macam yaitu : • Keadaan terbaik (best case) Dilambangkan

Kompleksitas Waktu Asimptotik Terdapat tiga macam yaitu : • Keadaan terbaik (best case) Dilambangkan dengan notasi (. . . ) dibaca Theta • Keadaan rata-rata (average case) Dilambangkan dengan notasi (. . . ) dibaca Omega • Keadaan terburuk (worst case) Kinerja sebuah algoritma diukur dengan Dilambangkan denganbiasanya notasi O(. . . ) dibaca Big-O menggunakan patokan keadaan terburuk (worst case) yang dinyatakan dengan Big-O

Notasi Big Oh v Definisi 1 : waktu terburuk no iff ada dua bilangan

Notasi Big Oh v Definisi 1 : waktu terburuk no iff ada dua bilangan konstanta c dan Theorema : Misal adalah suatu polinom derajat n. Maka

Notasi Theta v Definisi 2 : waktu tercepat iff ada dua konstanta c dan

Notasi Theta v Definisi 2 : waktu tercepat iff ada dua konstanta c dan no

Notasi Omega v Definisi 3 : waktu rata-rata iff ada tiga konstanta positif c

Notasi Omega v Definisi 3 : waktu rata-rata iff ada tiga konstanta positif c 1, c 2, dan no

7

7

Fungsi Kompleksitas 8

Fungsi Kompleksitas 8

MENGHITUNG WAKTU PROSES (1) Contoh : Pseudocode Selection Sort (pseudocode 3. 6) 1 for

MENGHITUNG WAKTU PROSES (1) Contoh : Pseudocode Selection Sort (pseudocode 3. 6) 1 for i=1 to N-1 do 2 min=i 3 for j=i+1 to N do 4 if A[j]<A[min] then 5 min=j 6 end if 7 end for 8 swap(A[i], A[min]) 9 end for Hitung waktu proses algoritma yang diperlukan untuk mengurutkan deretan yang berisi 8 angka acak ! Bagaimana jika ukuran input belum diketahui? Dinyatakan dengan N Waktu proses dinyatakan dengan sebuah persamaan N, selanjutnya disebut Fungsi Kompleksitas menyatakan seberapa kompleksnya sebuah algoritma

MENGHITUNG WAKTU PROSES (2) Asumsi bahwa nilai N belum diketahui Bisa dihitung bahwa untuk

MENGHITUNG WAKTU PROSES (2) Asumsi bahwa nilai N belum diketahui Bisa dihitung bahwa untuk setiap perulangan i akan terjadi perulangan j sebanyak N-1, N-2, N -3, . . . , 1 kali Misalkan nilai N adalah 5, berarti kita perlu menghitung 5+4+3+2+1 (rumus deret hitung) Dengan nilai a dan b = 1 diperoleh :

FUNGSI KOMPLEKSITAS Fungsi Kompleksitas algoritma Selection Sort di atas Dengan rumus Fungsi Kompleksitas N(N+1)/2

FUNGSI KOMPLEKSITAS Fungsi Kompleksitas algoritma Selection Sort di atas Dengan rumus Fungsi Kompleksitas N(N+1)/2 berarti jika N=5 maka waktu proses adalah 15. Jika nilai N diperbesar menjadi 8, maka waktu proses menjadi 36. Nilai N dan waktu proses bisa dipetakan dalam sebuah koordinat Cartesius dengan N di sumbu x dan waktu proses di sumbu y. Terlihat bahwa waktu proses algoritma Selection Sort bertumbuh (growth rate) secara linear.

MEMBACA BIG-OH O(1) artinya algoritma konstan O(n) artinya algoritma linear O(n 2) artinya algorritma

MEMBACA BIG-OH O(1) artinya algoritma konstan O(n) artinya algoritma linear O(n 2) artinya algorritma quadratic O(n 3) artinya algoritma qubic O(log n) contohnya pada full balanced Binary Search Tree O(nm) artinya algoritma eksponensial Notasi Big-O bisa berisi kombinasi dari contoh di atas Penyederhanaan Big-O dilakukan pada komponen yang “less important”

LATIHAN Hitunglah Fungsi Kompleksitas untuk algoritma bilangan Fibonacci

LATIHAN Hitunglah Fungsi Kompleksitas untuk algoritma bilangan Fibonacci