Design and Analysis of ALGORITHM (Session 3)

Slides:



Advertisements
Presentasi serupa
Latihan Algoritma Greedy
Advertisements

Desain Dan Analisis Algoritma
Algoritma dan Struktur Data
Design and Analysis of Algorithm Recursive Algorithm Analysis
Fundamentals Of Algorithmics Gilles Brassard & Paul Bratley.
Gilles Brassard and Paul Bratley
Suksesor bilangan asli adalah bilangan asli
7. PENJUMLAHAN DUA BUAH MATRIKS
Algoritma dan Struktur Data
Algoritma Divide and Conquer
Bahan Kuliah IF3051 Strategi Algoritma Oleh: Rinaldi Munir
Rekursif Yuliana Setiowati.
Pertemuan-4 : Recurrences
Desain dan Analisis Algoritma
Fungsi Rekursif.
LOGIKA DAN ALGORITMA - PERTEMUAN 8 - REKURSI.
Modul-8 : Algoritma dan Struktur Data
Quick Sort dan Merge Sort
Pertemuan-3 Laju Pertumbuhan Fungsi : Pengertian, motivasi dan manfaat
Algoritma dan Struktur Data
Design and Analysis Algorithm
Algoritma dan Struktur Data
11. STRATEGI PARTISI DAN DIVIDE & CONQUER 11.1 Partisi Strategi Divide & Conquer Divide & Conquer M-ary 11.2 Contoh Divide & Conquer Sortir dengan Bucket.
Kasus Buat algoritma untuk menghitung total pembayaran dari proses pembelian.
Sorting 2007/2008 – Ganjil – Minggu 5.
Pertemuan 3 ALGORITMA & FUNGSI KOMPLEKSITAS
1 Nama Kelompok : Doddy Setiawan Moh. Abdul Latief Yosep Pangky ALGORITMA MERGE SORT.
1 Pertemuan 9 DIVIDE And CONQUER Matakuliah: T0034/Perancangan & Analisis Algoritma Tahun: 2005 Versi: R1/0.
Pertemuan 10 DIVIDE And CONQUER Lanjutan ….
Algoritma Divide and Conquer (Bagian 1) Wahyul Wahidah Maulida, ST., M.Eng.
12-CRS-0106 REVISED 8 FEB 2013 CSG523/ Desain dan Analisis Algoritma Divide and Conquer Intelligence, Computing, Multimedia (ICM)
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Pokok Bahasan 5 Algoritma Pemrosesan Paralel
Recurrence relations.
Bahan Kuliah IF2211 Strategi Algoritma Oleh: Rinaldi Munir
Algoritma rekursif dan relasi rekurensi
MATERI PERKULIAHAN ANALISIS ALGORITMA
MATERI PERKULIAHAN ANALISIS ALGORITMA
Pertemuan 10 SORTING.
Pertemuan 25 MERANCANG ALGORITMA DENGAN KOMPLEKSITAS TERTENTU
Design and Analysis Algorithm
Analisa Algoritma (IF1282)
Pertemuan 13 DYNAMIC PROGRAMMING : FIBONACCI SEQUENCE PROBLEM
MATERI PERKULIAHAN ANALISIS ALGORITMA
Faktor analisa algoritma
REKURSI Struktur data.
Algoritma Percabangan
Modul 6 : Analisis Algoritma dan Struktur Data
Analisa Algoritma : Pendahuluan
MATERI PERKULIAHAN ANALISIS ALGORITMA
Modul-7 : Analisis Algoritma dan Struktur data
Seleksi Kondisi merupakan perintah yang memungkinkan pemilihan atas perintah yang akan dijalankan sesuai dengan kondisi tertentu. Operator yang digunakan.
FUNGSI.
Rekursif- studi kasus.
Gambaran Kuliah Pemrograman Terstruktur
Recursive function.
Modul 4 : Analisis Algoritma & Struktur Data
Strategi Algoritma Kuliah 3 : Algoritma Efisien
Kompleksitas Algoritma
Algoritma Divide and Conquer
Algoritma Rekursif Alpro-2.
Algoritma Divide and Conquer
Rekursif By Serdiwansyah N. A..
Algoritma Divide and Conquer
Analisa algoritma rekursif
Algoritma Divide and Conquer
Pengulangan FOR - DO Temu 9.
Rekursif Yuliana Setiowati. Rekursif Proses yang memanggil dirinya sendiri. Merupakan suatu fungsi atau prosedur Terdapat suatu kondisi untuk berhenti.
Transcript presentasi:

Design and Analysis of ALGORITHM (Session 3) DR. Gatot F. Hertono, MSc. Design and Analysis of ALGORITHM (Session 3)

Rekursif Bentuk rekursif banyak digunakan di dalam rancangan suatu algoritma Suatu fungsi rekursif f(x): adalah suatu fungsi dimana evaluasi untuk suatu input xi (xi bukan initial input x0) memerlukan evaluasi fungsi dirinya sendiri untuk input xj yang lain. Contoh: Fact(n) = n * Fact(n-1), dengan kondisi awal: Fact(1) = 1 Fibo(n) = Fibo(n-1)+Fibo(n-2), dengan kondisi awal: Fibo(0)=0, Fibo(1)=1 Gcd(a,b)=Gcd(b,a mod b), dengan kondisi awal: Gcd(a,0) = a

Top-Down dan Bottom-Up Strategi Top-Down dan Bottom-Up pada struktur rekursif Function Fib1(n) recursive Input: n (n  0) Output: Bilangan Fibonacci ke-n if n  1 then return(n) else return(Fib1(n-1) + Fib1(n-2)) endif end Fib1 Function Fib2(n) Prev:=0; Curr:=1 for i:=2 to n do Next := Prev + Curr; Prev:=Curr; Curr := Next; endfor return(Curr) end Fib2

Top-Down vs Bottom-Up 5 5 4 3 4 + 3 2 2 1 3 + 2 1 1 1 2 + 1 1 + 1 2 + 1 1 + Top-Down Bottom-Up

Recurrence Relations Recurrences are a major tool for analysis of algorithms Beberapa algoritma dapat memiliki versi rekursif: Mis. Binary search, Insertion sort & Merge sort Analisa kompleksitas algoritma rekursif lebih rumit. Running time berupa recurrence relations Contoh: kompleksitas Merge sort Yang memiliki solusi: T(n) = (n log n)

Recurrence Relations (cont.)

Recurrence Relations (cont.) Homogen f(n)=0 Linear Recurrence t(n)= c1.t(n-1) + c2.t(n-2)+…+ ck.t(n-k) + f(n), c1, c2, …, ck 0 konstanta non-homogen f(n)0 Recurrence Relation f(n) = c Non-Linear Recurrence (e.q. from divide and conquer) f(n) = c.n

Linear Recurrence First-order : t(n) = c.t(n-1) + f(n), n > 0, c0 positif konstanta, dan suatu fungsi f(n) tertentu. Initial cond. t(0) = d0 Higher-order : t(n)= c1.t(n-1) + c2.t(n-2)+…+ ck.t(n-k) + f(n), c1, c2, …, ck 0 konstanta k-th order Initial cond. t(0) = d0 , … , t(k-1) = dk-1 Suatu linier recurrence dikatakan homogeneous bila f(n) = 0,  n

Metode penyelesaian First-order linear homogeneous: t(n) = c.t(n-1), n > 0 dan t(0) = d0 solution : t(n) = d0.cn , n  0 Solusi: t(n)= 5.3n Contoh: t(n) = 3.t(n-1), t(0) = 5 First-order linear nonhomogeneous: t(n) = c.t(n-1) + f(n), n > 0 dan t(0) = d0 solution : Contoh: W(n) = W(n-1) + (n-1), init. cond. W(1)= 0 Solusi:

Metode Penyelesaian (lanj.) Recurrence relation yang muncul dari suatu teknik algoritma divide-and-conquer : Solusi: Jika f(n) = c Jika f(n) = c.n

Metode Penyelesaian (lanj.) Sebuah fungsi h(n) dikatakan eventually non-decreasing bila Proposisi: Bila t(n) adalah fungsi eventually non-decreasing dan berbentuk: t(n) = a.t(n/b)+c, dengan init.cond. t(1)=c1 , a,b,c, c1 konstanta positif dan b > 1, maka:

Metode Penyelesaian (lanj.) 2. Bila t(n) adalah fungsi eventually non-decreasing dan berbentuk: t(n) = a.t(n/b)+c.n, dengan init.cond. t(1)=c1 , a,b,c, c1 konstanta positif dan b > 1, maka: Contoh: worst case untuk Merge-sort Solusi W(n) ? W(n)  (?) W(n) = W(n/2)+1, W(1) = 1

Rekursif Homogen

Rekursif Homogen (cont.) Persamaan karakteristik dengan semua akar berbeda Persamaan karakteristik dengan beberapa akar sama

Rekursif Homogen (cont.)

Rekursif Homogen (cont.)

Rekursif Homogen (cont.)

Rekursif Inhomogen

Recursive Divide and Conquer

Metode Penyelesaian Lainnya Metode substitusi Metode iterasi Metode master Metode penyelesaian yang lain: Master Theorem (see Cormen): Misal a  1, b  1 adalah konstanta, dan f(n) adalah suatu fungsi. Misalkan t(n) adalah suatu recurrence relation berbentuk t(n) = a.t(n/b) + f(n) Maka t(n) memiliki batas-batas asymptot sbb: Jika f(n)=O(n logb a-), untuk beberapa >0, maka t(n)=(n logb a). Jika f(n)=(n logb a), maka t(n)=(n logb a log n). Jika f(n)=(n logb a+) , untuk beberapa >0, dan jika a.f(n/b)  c.f(n), untuk c < 1, maka t(n)= (f(n)).

Master theorem (contoh) t(n)=9.t(n/3) + n a=9, b=3, f(n)=n=O(nlog39 - ), =1 t(n)=(n2). t(n)=t(2n/3)+1 a=1, b=3/2, f(n)=1 t(n)=(log n). t(n)=3.t(n/4)+n log n t(n) = ?