Design and Analysis of Algorithm

dokumen-dokumen yang mirip
Design and Analysis of Algorithms CNH2G3- Week 4 Kompleksitas waktu algoritma rekursif part 1

Design and Analysis of Algorithm

Design and Analysis of Algorithms CNH2G3- Week 5 Kompleksitas waktu algoritma rekursif part 2: Metode Karakteristik

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 03

Design and Analysis Algorithm

Divide and Conqueradalah strategi militer yang dikenal dengan nama divide ut imperes.

Algoritma Pemrograman

Decrease and Conquer

Algoritma Pemrograman

Design and Analysis of Algorithm

Design and Analysis of Algorithm

Algoritma Pemrograman

Algoritma Divide and Conquer (Bagian 1)

Design and Analysis of Algorithm

Rekursif. Rekursif adalah salah satu metode dalam dunia matematika dimana definisi sebuah fungsi mengandung fungsi itu sendiri.

SATUAN ACARA PERKULIAHAN (SAP) Mata Kuliah : Struktur Data Kode : TIS3213 Semester : III Waktu : 1 x 3 x 50 Menit Pertemuan : 3

NASKAH UJIAN UTAMA. JENJANG/PROG. STUDI : DIPLOMA TIGA / MANAJEMEN INFORMATIKA HARI / TANGGAL : Kamis / 18 FEBRUARI 2016

ALGORITHM. 3 Rekursif Algorithm. Dahlia Widhyaestoeti, S.Kom dahlia74march.wordpress.com

BAB VII ALGORITMA DIVIDE AND CONQUER

Design and Analysis of Algorithms CNH2G3- Week 8 Greedy Algorithm

STRATEGI DIVIDE AND CONQUER

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 2: 16 Mei 2016

Algoritma Divide and Conquer. (Bagian 2)

Algoritma Divide and Conquer (Bagian 2)

Algoritma dan Pemrograman Lanjut. Pertemuan Ke-5 Rekursif

BAB I PENDAHULUAN Latar Belakang

Kompleksitas Waktu untuk Algoritma Rekursif. ZK Abdurahman Baizal

ANALISIS ALGORITMA. Disusun Oleh: Analisis Masalah dan Running Time. Adam Mukharil Bachtiar Teknik Informatika UNIKOM

Kompleksitas Algoritma

Design and Analysis of Algorithm

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

RESUME ALGORITMA MERGE SORT DAN REKURENS

Algoritma Heap Sort. Sekolah Teknik Elektro & Informatika Departemen Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung

AnalisisFramework. Mengukur ukuran atau jumlah input Mengukur waktu eksekusi Tingkat pertumbuhan Efiesiensi worst-case, best-case dan average-case

UNIVERSITAS GUNADARMA

Kompleksitas Algoritma (1)

ALGORITMA DIVIDE AND CONQUER

MAKALAH ALGORITMA DIVIDE AND CONQUER

Sebuah algoritma tidak saja harus benar, tetapi juga harus mangkus (efisien). Algoritma yang bagus adalah algoritma yang mangkus.

BAB V Tujuan 5.1 Rekursi Dasar

Design and Analysis of Algorithms CNH2G3- Week 6 Brute Force Algorithm Part 1: Design Strategy

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

Catatan Kuliah STRUKTUR DATA BAB III REKURSIF

Kompleksitas Algoritma

Karena relasi rekurens menyatakan definisi barisan secara rekursif, maka kondisi awal merupakan langkah basis pada definisi rekursif tersebut.

A. TUJUAN PEMBELAJARAN

Perulangan Rekursif dan Perulangan Iteratif

Algoritma Brute Force

TELAAH WAKTU EKSEKUSI PROGRAM TERHADAP KOMPLEKSITAS WAKTU ALGORITMA BRUTE FORCE DAN DIVIDE AND CONQUER DALAM PENYELESAIAN OPERASI LIST

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 07

Algoritma dan Struktur Data

Algoritma Brute Force

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Kompleksitas Algoritma

FUNGSI. setiap elemen di dalam himpunan A mempunyai pasangan tepat satu elemen di himpunan B.

Matematika Diskrit Kompleksitas Algoritma. Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

Design and Analysis Algorithm

Solusi Rekursif pada Persoalan Menara Hanoi

Pertemuan 4 Diagram Alur / Flowchart

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

Algoritma Divide and Conquer

Aplikasi Divide and Conquer pada Perkalian Large Integer untuk Menghitung Jumlah Rute TSP Brute Force

Kompleksitas Algoritma

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

Recursion, Algoritma, Struktur Data. Recursion. Erick Pranata. Edisi II

I Putu Gede Darmawan

CCH1A4 / Dasar Algoritma & Pemrogramanan

METODE DEVIDE AND CONQUER (DANDC)

Design and Analysis of Algorithms CNH2G3- Week 7 Brute Force Algorithm Part 2: Exhaustive Search

Strategi Algoritma Penyelesaian Puzzle Hanjie

Perbandingan Algoritma Brute Force, Divide and conquer, dan Dynamic Programming untuk Solusi Maximum Subarray Problem

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Algoritma Pemrograman 2B (Pemrograman C++)

PENGGUNAAN ALGORITMA DIVIDE AND CONQUER UNTUK OPTIMASI KONVERSI BILANGAN DESIMAL KE BINER

PERBANDINGAN KOMPLEKSITAS ALGORITMA PENCARIAN BINER DAN ALGORITMA PENCARIAN BERUNTUN

STRUKTUR DATA. Nama : Sulfikar Npm : STMIK Handayani Makassar

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Recursion Properties. Factorial: MaxSubseqSum Recursive version. MaxSubseqSum Recursive version

FUNGSI MINGGU KE: 4 TUJUAN: Mahasiswa dapat memahami definisi fungsi. Mahasiswa dapat mendefinisikan fungsi. Mahasiswa dapat menggunakan fungsi.

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif

Pendahuluan. Sebuah algoritma tidak saja harus benar, tetapi juga harus efisien. Algoritma yang bagus adalah algoritma yang efektif dan efisien.

Analisis Algoritm. Fundamentals of the Anlysis of Algorithm Efficiency

Penerapan Algoritma Runut-balik pada Permainan Math Maze

MODUL PRAKTIKUM. MODUL I - VIII Modul penuntun dan bahan praktikum matakuliah algoritma dan pemograman

a. TRUE b. FALSE c. Jawaban A dan B keduanya dimungkinkan benar d. Tidak dapat ditentukan e. Tidak ada jawaban di antara A, B, C, D yang benar

Pohon Biner Sebagai Struktur Data Heap dan Aplikasinya

Penyelesaian Masalah Closest Pair dengan Algoritma Divide and Conquer

A. TUJUAN PEMBELAJARAN 1. Memahami mengenai konsep rekursif 2. Mampu memecahkan permasalahan dengan konsep rekursif

CHAPTER 3 ALGORITHMS 3.1 ALGORITHMS

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

Recursion, Algoritma, Struktur Data. Recursion. Erick Pranata. Edisi I

Dasar Komputer & Pemrograman 2A

Penerapan Algoritma Greedy untuk Permainan Flood It

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

REKURSIF. Arkham Zahri Rakhman, S.Kom., M.Eng. Rev.: Dr. Fazat Nur Azizah

KONSEP DASAR. menyusunnya menjadi potongan-potongan mudah untuk ditangani dibanding. conquer.

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Analisis dan Strategi Algoritma

Transkripsi:

Design and Analysis of Algorithm Week 4: Kompleksitas waktu algoritma rekursif part 1 Dr. Putu Harry Gunawan 1 1 Department of Computational Science School of Computing Telkom University Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 1 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 2 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 3 / 48

Exercise 1 Quiz I Kuis I dimulai selama 45 menit. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 4 / 48

Exercise 1 Buatlah algoritma rekursif untuk menghitung faktorial! Contoh 10! = 10 9 2 1 (2.1) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 5 / 48

Exercise 2 Buatlah algoritma rekursif untuk menentukan nilai baris fibonanci ke-n Contoh: Baris fibonanci ke 6 1, 1, 2, 3, 5, 8 (2.2) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 6 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 7 / 48

Pendahuluan Pada bab ini, akan dibahas mengenai menghitung waktu asismtotik untuk algoritma rekursif. Kita mulai dengan definisi-definisi algoritma rekursif: Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 8 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 9 / 48

Rekursif Dikatkan bentuk rekursif: Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 48

Rekursif Dikatkan bentuk rekursif: 1 suatu subrutin atau fungsi/ prosedur yang memanggil dirinya sendiri. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 48

Rekursif Dikatkan bentuk rekursif: 1 suatu subrutin atau fungsi/ prosedur yang memanggil dirinya sendiri. 2 bentuk dimana pemanggilan subrutin terdapat di dalam body subrutin Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 48

Rekursif Dikatkan bentuk rekursif: 1 suatu subrutin atau fungsi/ prosedur yang memanggil dirinya sendiri. 2 bentuk dimana pemanggilan subrutin terdapat di dalam body subrutin 3 dengan rekursi, program akan lebih mudah dilihat. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 11 / 48

Rekursif Tujuan dibuat rekursif: r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 12 / 48

Rekursif Tujuan dibuat rekursif: 1 menyederhanakan penulisan program r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 12 / 48

Rekursif Tujuan dibuat rekursif: 1 menyederhanakan penulisan program 2 menggantikan bentuk iterasi r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 12 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 13 / 48

Rekursif Syarat bentuk rekursif: r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 14 / 48

Rekursif Syarat bentuk rekursif: 1 ada kondisi terminal r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 14 / 48

Rekursif Syarat bentuk rekursif: 1 ada kondisi terminal 2 ada subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 14 / 48

Rekursif Syarat bentuk rekursif: 1 ada kondisi terminal 2 ada subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal Sehingga untuk menghitung kompleksitas bentuk rekursif, maka digunakan teknik perhitungan kompleksitas dengan relasi rekurens. r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 14 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 15 / 48

Faktorial Perhatikan algoritma berikut: Function Factorial(input n: integer) -> integer Algoritma if n=0 then return 1 else return (n * Factorial(n-1)) endif Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 16 / 48

Faktorial Kompleksitas waktu: untuk kasus basis, tidak ada operasi perkalian 0 untuk kasus rekurens, kompleksitas waktu diukur dari jumlah perkalian (1) ditambah kompleksitas wasktu untuk faktorial (n-1). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 17 / 48

Faktorial Sehingga relasi rekursinya dapat dibentuk menjadi: { 0, n = 0, T (n) = T (n 1) + 1, n > 0. (4.1) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 18 / 48

Faktorial Jadi menghitung waktunya adalah T (n) = 1 + T (n 1) = 1 + 1 + T (n 2) = 2 + T (n 2) = 2 + 1 + T (n 3) = 3 + T (n 3) = = n + T (0) = n + 0 Jadi T (n) = n O(n). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 19 / 48

Generally Secara umum, untuk menganalisis waktu efisiensi dari algoritma rekursif: 1 Putuskan dalam parameter, yang mengindikasikan ukuran inputan. 2 Identifikasi operasi dasar algoritma 3 Cek apakah jumlah operasi dasar akan berbeda jika ukuran masukan berbeda?, kalau iya maka dapat dihitung, waktu terbaik, terburuk, dan rata-rata secara terpisah. 4 Buat relasi rekursi dengan kondisi awal yang sesuai, untuk jumlah operasi dasar yang dijalankan. 5 Selesaikan relasi rekursi, atau paling tidak tentukan orde kenaikannya. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 20 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 21 / 48

Hanoi Tower Selanjutnya adalah contoh masalah yang dikenal sebagai the Tower of Hanoi puzzle. Dalam permainan ini, pemain diberikan tiga buah batu yang memiliki ukuran berbeda. Batu-batu tersebut selanjutnya disusun berdasarakan ukuran, yakni ukuran terbesar berada paling bawah. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 22 / 48

Hanoi Tower Selanjutnya adalah contoh masalah yang dikenal sebagai the Tower of Hanoi puzzle. Dalam permainan ini, pemain diberikan tiga buah batu yang memiliki ukuran berbeda. Batu-batu tersebut selanjutnya disusun berdasarakan ukuran, yakni ukuran terbesar berada paling bawah. Tujuan dari permainan ini adalah, memindahkan tumpukan batu di tiang A ke B tanpa mengubah posisi batu besar paling bawah. Disediakan tiang C sebagai perantara. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 22 / 48

Hanoi Tower Figure : Solusi rekursif untuk masalah Menara Hanoi. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 23 / 48

Hanoi Tower Procedure Hanoi (input n, A, B, C:integer) Algoritma If n=1 then Write (Pindahkan piringan dari,a,ke,b) Else Hanoi(n-1,A,C,B) Writeln(Pindahkan piringan dari,a,ke,b) Hanoi(n-1,C,B,A) Endif Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 24 / 48

Hanoi Tower Operasi dasar dari algoritma Hanoi adalah Writeln(), sehingga dengan jelas bahwa pergerakan T (n) bergantung pada n yang relasi rekursinya berupa: T (n) = T (n 1) + 1 + T (n 1) n > 1 (5.1) Dengan kondisi awal T (1) = 1, maka relasi rekursinya ditulis ulang dalam bentuk: { 1, n = 1 T (n) = (5.2) 2T (n 1) + 1, n > 1 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 25 / 48

Hanoi Tower Maka kompleksitas waktunya dapat dihitung sebagai berikut: T (n) = 2T (n 1) + 1 = 2(2T (n 2) + 1) + 1 = 2 2 T (n 2) + 2 + 1 = 2 2 (2T (n 3) + 1) + 2 + 1 = 2 3 T (n 3) + 2 2 + 2 + 1 = = 2 n 2 (2T (n (n 1)) + 1) + 2 n 3 + + 2 2 + 2 + 1 = 2 n 2 2T (1) + ( 2 n 2 + 2 n 3 + + 2 2 + 2 + 1 ) = 2 n 1 + 2 n 2 + 2 n 3 + + 2 2 + 2 + 1 = 2 n 1 Sehingga T (n) = 2 n 1 O(2 n ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 26 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 48

Min Max Perhatikan algoritma mencari data maksimum dan minimum dari suatu tabel berikut procedure MinMaks2(input A : TabelInt, i, j : integer, output { Mencari nilai maksimum dan minimum di dalam tabel A yang berukuran n elemen secara Divide and Conquer. Masukan: tabel A yang sudah terdefinisi elemen- elemennya Keluaran: nilai maksimum dan nilai minimum tabel } Deklarasi min1, min2, maks1, maks2 : integer if i=j then min <-- A[i] maks <-- A[i] else {Jika satu elemen} Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 28 / 48

Min Max else if (i = j-1) then if A[i] < A[j] then maks <-- A[j] min <-- A[i] else maks <-- A[i] min <-- A[j] endif {Jika dua elemen} Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 29 / 48

Min Max else k=(i+j) div 2 { bagidua tabel pada posisi k } MinMaks2(A, i, k, min1, maks1) MinMaks2(A, k+1, j, min2, maks2) if min1 < min2 then min <-- min1 else min <-- min2 endif if maks1<maks2 then maks <-- maks2 else maks <-- maks2 endif endif endif Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 30 / 48

Min Max Dari algoritma tersebut dapat dibuat relasi rekursi sebagai berikut: T (n) = 0, n = 1 1, n = 2 2T (n/2) + 2, n > 2 (6.1) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 48

Min Max Sehingga waktu asismtotiknya bisa dicari yaitu: Misal n = 2 k, sehingga T (n) = 2T (n/2) + 2 = 2(2T (n/4) + 2) + 2 = 4T (n/4) + 4 + 2 = 4(2T (n/8) + 2) + 4 + 2 = 8T (n/8) + 8 + 4 + 2 = 2 3 T (2 k /2 3 ) + 8 + 4 + 2 = 2 3 T (2 k 3 ) + 2 3 + 2 2 + 2 1, n = 2 k = = 2 k 1 T (2) + 2 k 1 + + 2 2 + 2 1 k 1 = 2 k 1 + i=1 2 i = 2 k 1 + 2 k 2 Selanjutnya bawa ke bentuk n atau k = 2 log n, Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 32 / 48

Min Max T (n) = 2 k 1 + 2 k 2 = 2 2 log n 1 + 2 2 log n 2 = n 2 + n 2 = 3n 2 2 O(n) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 48

Tambahan Untuk mengetahui kompleksitas bentuk rekursif, maka T (n) harus diubah dalam bentuk yang bukan rekursif. Bagaimana mengubah bentuk rekursif ke non rekursif? Ada dua macam cara untuk menyelesaikan masalah ini, yaitu cara coba-coba dan dengan persamaan karakteristik : 1 Cara coba-coba (deret). 2 Metode dengan persamaan karakteristik Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 35 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 36 / 48

Metode Coba-Coba Cara ini dilakukan dengan menentukan pola deret yang terbentuk (cara deret). Contoh untuk cara ini telah ditunjukkan dalam mencari kompleksitas waktu untuk beberapa bentuk rekursif sebelumnya. Cara ini agak sulit dan perlu pengalaman. Example Tentukan waktu rekursi berikut: { a, n = 1, 2 T (n) = T (n 1) + T (n 2) + b, n 3 (7.1) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 37 / 48

Metode Coba-Coba Solusi dari contoh diatas dengan cara coba coba adalah sebagi berikut: T (1) = T (2) = a T (3) = T (2) + T (1) + b = a + a + b = 2a + b T (4) = T (3) + T (2) + b = (2a + b) + a + b = 3a + 2b T (5) = T (4) + T (3) + b = (3a + 2b) + (2a + b) + b = 5a + 4b T (6) = T (5) + T (4) + b = (5a + 4b) + (3a + 2b) + b = 8a + 7b Sangat sulit untuk bisa diformulasikan. Sehingga harus mencari cara lain utntuk menghitung waktu algoritma. Salah satu caranya adalah dengan menggunakan metode karakteristik. Metode ini akan dijelaskan pada peretemuan selanutnya. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 38 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 39 / 48

References References 1 Anany, L. (2003). Introduction to the design and analysis of algorithms. Villanova University. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 40 / 48

Outline 1 Quiz I Quiz I 2 Review 3 Pendahuluan Pendahuluan Dikatkan bentuk rekursif: Tujuan dibuat rekursif: Syarat bentuk rekursif: 4 Relasi Rekurens Faktorial Relasi Rekurens Faktorial 5 Relasi Rekurens Hanoi Tower Relasi Rekurens Hanoi Tower 6 Relasi Rekursi Min Max Relasi Rekursi Min Max 7 Tambahan Tambahan Cara coba-coba Dr. 8PutuReferences Harry Gunawan (Telkom University) Design and Analysis of Algorithm 41 / 48

Exercise 1 Selesaikan relasi rekurensi berikut: { 0, n = 1 T (n) = T (n 1) + 5, n 2 (9.1) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 42 / 48

Exercise 2 Selesaikan relasi rekurensi berikut: { 4, n = 1 T (n) = 3T (n 1), n 2 (9.2) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 43 / 48

Exercise 3 Selesaikan relasi rekurensi berikut: { 0, n = 0 T (n) = T (n 1) + n, n > 0 (9.3) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 44 / 48

Exercise 4 Selesaikan relasi rekurensi berikut: { 1, n = 1 T (n) = T (n/2) + n, n > 1 (9.4) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 45 / 48

Exercise 5 Selesaikan relasi rekurensi berikut: { 1, n = 1 T (n) = T (n/3) + 1, n > 1 (9.5) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 46 / 48

Exercise 6 Diberikan algoritma untuk menghitung jumlah pangkat 3 dari deret, S(n) = n 3 + (n 1) 3 + + 2 3 + 1 3. ALGORITHM S(n) //Input: A positive integer n //Output: The sum of the first n cubes if n = 1 return 1 else return S(n - 1) + n * n * n 1 Tentukan relasi rekursi dari algoritma di atas dan selesaikan. 2 Bandingkan dengan algoritma yang tidak ditulis dengan rekursif. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 47 / 48

The end of week 4 Thank you for your attention! Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 48 / 48