Jenis algoritma
Divide and conquer : menyederhanakan problem
yang besar.
Greedy methode : mencari yang optimal pada
saat itu.
Algoritma : jumlah langkah yang berhingga (finite)
instruksinya jelas
Contoh : for i do 10 then .....
Analisis algoritma
Menentukan karakteristik kinerja (memprediksi
sumber daya)
Mengapa ?
Memilih algoritma yang paling efisien dari beberapa
alternatif penyelesaian untuk kasus yang sama
Mencari waktu yang terbaik untuk keperluan praktis
Apakah algoritma itu optimal untuk beberapa kasus
atau ada yang lebih baik
Runing time
fungsi dari input size
Memanggil instruksi sederhana dan
mengakses ke memory word sebagai
primitive operation atau step
Jumlah step eksekusi algoritma pada
input tersebut
Dikenal juga complexity and input
Kompleksitas tergantung
Ukuran input bergantung pada
problem
Misalkan jumlah data yang diurutkan
Karakter lain dari input
Apakah data sudah terurut
Apakah ada lingkaran dalam grafik
Kompleksitas
Worst-case : kompleksitas waktu untuk waktu
terburuk (waktu tempuh bernilai maksimum
dari suatu fungsi f(n)) atau Tmax(n)
Best-case : kompleksitas waktu untuk waktu
terbaik (kompleksitas waktu yang bernilai
minimum dari suatu fungsi f(n)) atau Tmin(n)
Average-case : kompleksitas waktu untuk
kasus rata-rata
Metode Analisis
1. Asymptotic/theoretic/mathematic
: berdasarkan pendekatan secara
teori atau atas dasar analisa secara
matematik
2. Empirical/Practical/Empiris/Praktis
: berdasarkan pendekatan praktis
yang biasanya didasarkan atas datadata yang telah ada atau data-data
yang di-generete / dibangkitkan
Asymptotic
Menggambarkan karakteristik/perilaku
suatu algoritma pada batasan tertentu
(berupa suatu fungsi matematis)
Dituliskan dengan notasi matematis yg
dikenal dgn notasi asymptotic
Notasi asymptotic dapat dituliskan
dengan beberpa simbul berikut
, O, , o,
Notasi Asymptotic
, O, , o,
Didefinisikan untuk fungsi diatas nilai biasa
Contoh: f(n) = (n2).
Menggambarkan bagaimana fungsi f(n)
tumbuh pd pembandingan untuk n2.
Mendefinisikan himpunan fungsi ;
Pada prakteknya untuk membandingan 2
ukuran fungsi.
Notasi menggambarkan perbedaan rate-ofgrowth hubungan antara definisi fungsi dan
definisi himpunan fungsi.
Ada konstanta n
Lanjt
f(n) Secara intuitif : himpunan
seluruh fungsi yg rate of growth
nya adalah sama atau lebih kecil
dari g(n).
Lanjt
Contoh
f(n) = 3n + 4 berapa / apa big oh-nya ?
n0 = 2
C =3
3n+4 <= Cn ?
3*2+4 <=3*3 10<=9 ?
Bgm dgn n0 = 2
C =4
Bgm dgn n0 = 3
C =4
Bgm dgn n0 = 4
C =4
3n+4 <= cn ?
3*2+4 <=4*2 ?
3n+4 <= cn ?
3*3+4 <=4*3 ?
3n+4 <= cn ?
3*4+4 <=4*4 ?
Apa
kesimp
ulannya
Lanjt
Sehingga dari f(n) = 3n+4
akan terpenuhi f(n) <= 4n untuk n >= 4
berarti f(n)=O(4n) untuk n0=4
f(n)
4n
3n+4
n=4
Lanjt
f(n) Secara intuitif : himpunan
dari semua nilai fungsi yang rate
of growth-nya adalah sama atau
lebih tinggi dari g(n).
Lanjt
2.0001 =
2.50 =
2.99 =
3n + 7 =
2n2 + 5 =
Lanjt
Big theta
adalah merupakan
tight bound dari
suatu fungsi
f(n) merupakan (g(n))
pada nilai antara c1 smp
c2
g(n) adalah asymptotically tight bound untuk f(n).
Lanjt
Secara intuitif : himpunan
seluruh fungsi yang
rate of growth-nya sama
dengan g(n).
Secara teknik, f(n) (g(n)).
Penggunan sebelumnya,
f(n) = (g(n)).
Mana yg akan kita teima ?
Contoh
(g(n)) = {f(n) : konstanta positif c1, c2, dan n0,
yg mana n n0, 0 c1g(n) f(n) c2g(n)}
10n2 - 3n = (n2)
Apa nilai konstanta n0, c1, dan c2 sehingga
akan terpenuhi fungsi tsb?
Buat c1 sedkit lebih kecil dari koefisien
utama, dan c2 sedikit lebih besar.
Untuk membandingkan tingkat
pertumbuhan, lihat term utama.
Latihan: Buktikan bahwa n2/2-3n = (n2)
Relasi antara , O,
Relasi antara , O,
Teorema
Teorema :: untuk
untuk 22 fungsi
fungsi g(n)
g(n) dan
dan f(n),
f(n),
f(n)
f(n) == (g(n))
(g(n)) jika
jika
f(n)
f(n) == O(g(n))
O(g(n)) dan
dan f(n)
f(n) == (g(n)).
(g(n)).
Running Time
Running time dari suatu algoritma, secara
matematis adalah suatu fungsi input n
untuk sejumlah n data
Lanjt
Running time-nya O(f(n)) O(f(n)) adalah
sbgWorst case-nya
O(f(n)) batasan pd worst-case running time
O(f(n)) batasan pada running time dari setiap
input.
(f(n)) batasan pd worst-case running time
(f(n)) batasan pd running time dari setiap
input.
Running time -nya (f(n)) (f(n)) sbg Best
case-nya
Analisis Empiris ?