Design and Analysis of Algorithm

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

Design and Analysis of Algorithm

Algoritma Brute Force

Algoritma Brute Force

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

Algoritma Brute Force (lanjutan)

Design and Analysis of Algorithm

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Algoritma Brute Force (lanjutan)

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

Design and Analysis of Algorithm

Design and Analysis of Algorithm

Strategi Algoritma Penyelesaian Puzzle Hanjie

Algoritma Brute Force Oleh: Rinaldi Munir

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

Penerapan Algoritma Brute Force di Permainan Nonogram

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Design and Analysis Algorithm

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Penerapan Algoritma Brute Force pada permainan Countdown Number

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

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

Algoritma Brute Force pada Fluid Particle Engine

Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

Analisis Algoritma Bubble Sort

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

Adam Mukharil Bachtiar English Class Informatics Engineering Algorithms and Programming Searching

Design and Analysis of Algorithm

Analisis Algoritma: Anany Levitin, Introduction to Design and Analysis of Algorithm, 3 rd Edition, Pearson Education, Inc.

Analisa dan Perancangan Algoritma. Ahmad Sabri, Dr Sesi 1: 9 Mei 2016

STRATEGI DIVIDE AND CONQUER

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

Outline. Struktur Data & Algoritme (Data Structures & Algorithms) Pengantar. Definisi. 2-3 Trees

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Algoritma Brute Force

Algoritma dan Struktur Data

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

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

Pendahuluan. Ukuran input (input s size)

Design and Analysis of Algorithms CNH2G3- Week 8 Greedy Algorithm

MENENTUKAN PRIMALITAS SEMUA BILANGAN YANG TERDAPAT PADA SELANG TERTENTU SECARA BRUTE FORCE

Design and Analysis Algorithm

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

Decrease and Conquer

1/5. while and do Loops The remaining types of loops are while and do. As with for loops, while and do loops Praktikum Alpro Modul 3.

Algoritma Divide and Conquer (Bagian 2)

ALGORITMA DIVIDE AND CONQUER

Kompleksitas Algoritma

MAKALAH ALGORITMA DIVIDE AND CONQUER

Algoritma Divide and Conquer. (Bagian 2)

Algoritma Brute Force

Sorting Algorithms. Algoritma dan Struktur Data. Sorting algorithms

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

ALGORITMA PENGURUTAN & PENCARIAN

Kompleksitas Algoritma

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

SORTING (BAGIAN II) Proses kelima

Algoritma Greedy (Bagian 2) IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Kompleksitas Algoritma

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

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

Analisis Kecepatan Sorting Dengan Notasi Big O

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

5.3 RECURSIVE DEFINITIONS AND STRUCTURAL INDUCTION

ANALISIS PERBANDINGAN ALGORITMA SELECTION SORT DENGAN MERGE SORT

Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

BAB 2 LANDASAN TEORI

Analisis Kompleksitas Algoritma dalam Operasi BigMod

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

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

Objectives. Struktur Data & Algoritme (Data Structures & Algorithms) Sort. Outline. Bubble Sort: idea. Bubble Sort. Sorting

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Outline STRUKTUR DATA. VII. Sorting

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

Quick Sort dan Merge Sort. Arna Fariza Yuliana Setiowati

Kompleksitas Algoritma

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

Sorting. Struktur Data dan Algoritma. Suryana Setiawan, Ruli Manurung & Ade Azurat (acknowledgments: Denny) Fasilkom UI

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

SOAL EKSPLORASI. Jawab: (a) Tiga buah (4 4 1, 3 3 3, 4 3 2) Skema penilaian: Satu jawaban benar nilainya 1. Dua jawaban benar nilainya

Algoritma Divide and Conquer (Bagian 1)

Dynamic Programming Matakuliah Desain & Analisis Algoritma (CS 3024) ZK Abdurahman Baizal STT Telkom Bandung

BAB VII ALGORITMA DIVIDE AND CONQUER

PENGGUNAAN ALGORITMA BRUTE FORCE DALAM PERMAINAN PERMAINAN THE LEGEND OF DRUNKEN MAN

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

Kompleksitas Algoritma

Aturan Untuk Menentukan Kompleksitas Waktu Asimptotik. Penjelasannya adalah sebagai berikut: T(n) = (n + 2) log(n 2 + 1) + 5n 2

BAB II LANDASAN TEORI

ANALISIS ALGORITMA BINARY SEARCH

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

UNIVERSITAS GUNADARMA

ABSTRACT. Keyword: Algorithm, Depth First Search, Breadth First Search, backtracking, Maze, Rat Race, Web Peta. Universitas Kristen Maranatha

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

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

JARINGAN UNTUK MERGING

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

Nama Soal Pembagian Ring Road Batas Waktu 1 detik Nama Berkas Ringroad[1..10].out Batas Memori 32 MB Tipe [output only] Sumber Brian Marshal

Sorting Algorithms. Buble Sort

Transkripsi:

Design and Analysis of Algorithm Week 6: Brute Force Algorithm Part 1: Design Strategy 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 / 43

Outline 1 Review 2 Introduction and Definitions Introduction and Definitions 3 Contoh-contoh algoritma brute force Contoh-contoh algoritma brute force 4 Karakteristik algoritma brute force Karakteristik algoritma brute force 5 Advantages and Disadvantages of brute force Algorithm Advantages and Disadvantages of brute force Algorithm 6 References References 7 Homeworks Homeworks Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 2 / 43

Exercise 1 Tentukanlah kompleksitas waktu asimtotik menggunakan metode karakteristik. Exercise: diberikan relasi rekursi dari masalah Barisan Fibonacci berikut 0, n = 0 T (n) = 1, n = 1 (1.1) T (n 1) + T (n 2), n 2 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 3 / 43

Exercise 2 Tentukanlah kompleksitas waktu asimtotik menggunakan metode karakteristik. Exercise: diberikan relasi rekursi berikut 0, n = 0 1, n = 1 T (n) = 2, n = 2 7T (n 1) 15T (n 2) + 9T (n 3), n 3 (1.2) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 4 / 43

Exercise 3 Tentukanlah kompleksitas waktu asimtotik menggunakan metode karakteristik. Exercise: diberikan relasi rekursi berikut (QUIZ II semster lalu) T (n) = 0, n = 0 1 10, n = 1 49T ( n 7 ) 1 100 n, n 2 (1.3) Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 5 / 43

Teorema Master Pembahasan menggunakan metode karakteristik untuk algoritma rekursif pada bab sebelumnya hanya berlaku untuk kasus umum. Kasus khusus yakni untuk strategi Divide & Conquer, Kompleksitas waktu asimtotik dapat dicari menggunakan teorema Master Theorem (Master) Untuk suatu general Divide and Conquer recurrence: ( n ) T (n) = at + f (n) (1.4) b Jika f (n) O(n d ) dengan d 0, dalam persamaan general Divide and Conquer recurrence di atas, maka O(n d ) a < b d T (n) O(n d log n) a = b d (1.5) O(n b log a ) a > b d Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 6 / 43

Teorema Master Exercise Gunakan Teorema Master untuk mencari kompleksitas waktu asimtotik pada relasi rekursi untuk masalah Minimum dan Maksimum di bawah ini: 0, n = 1 T (n) = 1, n = 2 2T ( (1.6) ) n 2 + 2, n > 2 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 7 / 43

Outline 1 Review 2 Introduction and Definitions Introduction and Definitions 3 Contoh-contoh algoritma brute force Contoh-contoh algoritma brute force 4 Karakteristik algoritma brute force Karakteristik algoritma brute force 5 Advantages and Disadvantages of brute force Algorithm Advantages and Disadvantages of brute force Algorithm 6 References References 7 Homeworks Homeworks Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 8 / 43

Introduction Setelah pemaparan analisi algoritma, maka akan dilanjutkan dengan strategi mendesain sutau algoritma. Bab ini ditujukan untuk berbagai macam strategi yang ada pada algoritma tipe Brute Force. Berikut adalah definisi dari Brute Force: Definition (Levitin) Brute force is a straightforward approach to solving a problem, usually directly based on the problem statement and definitions of the concepts involved. Definition (Levitin) Brute force adalah pendekatan yang langsung/lempeng untuk menyelesaikan suatu masalah, biasanya secara langusng sesuai dengan pernyataan masalah dan definisi dari konsep yang ada. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 9 / 43

Introduction Kata force mempengaruhi definisi strategi yaitu suatu mesin/robot/komputer bukan sesutu yang berbau pintar( intelligent). Just do it! dapat merupakan cara lain untuk mendeskripsikan pengertian dari brute force. dan tentu saja strategi brute-force merupakan strategi yang paling mudah diaplikasikan. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 10 / 43

Introduction Sebagai contoh, misalkan masalah eksponensial: Hitung a n untuk a R {0} dan n Z +. Meskipun masalah ini terlihat trivial, akana tetapi masalah ini dapat digunakan sebagai ilustrasi dari mendesain strategi suatu algoritma, dalam hal ini bisa dalam brute force. Secara definisi a n = a a a }{{} n kali (2.1) Dari definisi diatas, maka agoritma brute force akan mengalikan a sebanyak n kali. Dan, tentu saja dengan cara ini akan mendapatkan O(n). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 11 / 43

Introduction Jika tidak menggunakan brute force, maka waktu asimtotiknya dapat diperkecil seperti pada contoh -contoh berikut berikut: Example Bilangan n dapat direpresentasikan menjadi bilangan 2 pangkat sehingga n = 2 k 1 + 2 k 2 + + 2 km a n = a 2k1 + a 2k2 + + a 2km dengan kompleksitas waktu yang digunakan adalah O(log n). Sebagai contoh hitung a 25, maka (25) 10 = (11001) 2 yang dapat direpresentasikan menjadi bilangan biner sehingga: a 25 = a 4 + a 3 + 0 + 0 + a 0. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 12 / 43

Introduction Example Contoh lain dengan kompleksitas waktu O(log n) adalah { f (x) = a n (a n/2 )(a n/2 ) (n mod 2 = 0), = a(a n 1 2 )(a n 1 2 ) otherwise, Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 13 / 43

Introduction Example Contoh lain bentuk rekursif dengan kompleksitas waktu O(log n) adalah { f (x) = a n a(a 2 ) n 1 2 if n ganjil, = (a 2 ) n 2 if n genap, Dari contoh di atas dapat kita simpulkan bahwa, brute force, memecahkan masalah dengan sangat sederhana, langsung, dan dengan cara yang jelas (obvious way). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 14 / 43

Outline 1 Review 2 Introduction and Definitions Introduction and Definitions 3 Contoh-contoh algoritma brute force Contoh-contoh algoritma brute force 4 Karakteristik algoritma brute force Karakteristik algoritma brute force 5 Advantages and Disadvantages of brute force Algorithm Advantages and Disadvantages of brute force Algorithm 6 References References 7 Homeworks Homeworks Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 15 / 43

Example 1 Menghitung n! untuk n Z + + {0}. Algoritma untuk menghitung faktorial adalah { 1, n = 0 n! = n (n 1) 2 1, n 1 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 16 / 43

Example 2 Menghitung perkalian dua buah matrix yang berukuran n n. Misalkan C = AB dan elemen-elemen matrik dinyatakan sebagai c ij, a ij, dan b ij c ij = a i1 b 1j + a i2 b 2j + + a in b nj = n a ik b kj Algoritma: hitung setiap elemen hasil perkalian satu persatu, dengan cara mengalikan dua vektor yang panjangnya n. k=1 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 17 / 43

Example 3 Menemukan semua faktor dari bilangan bulat n selain 1 dan n itu sendiri. int tag ; int f a c t o r s ( int n ) { int a [ 1 0 0 0 0 0 0 ] ; for ( int i =1; i <=n / 2 ; i ++) if ( n%i ==0) a[++tag ]= i ; a[++tag ]=n ; return ( a ) ; } Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 18 / 43

/* If there are more than one elements, then initialize min and max */ if ( a r r [ 0 ] > a r r [ 1 ] ) { minmax. max = a r r [ 0 ] ; minmax. min = a r r [ 1 ] ; } Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 19 / 43 Example 4 Mencari elemen terbesar atau terkecil. struct p a i r getminmax ( int a r r [ ], int n ) { struct p a i r minmax ; int i ; /* If there is only one element then return it as min and max b if ( n == 1) { minmax. max = a r r [ 0 ] ; minmax. min = a r r [ 0 ] ; return minmax ; }

Example 4 Cont else { minmax. max = a r r [ 1 ] ; minmax. min = a r r [ 0 ] ; } for ( i = 2 ; i <n ; i ++) { if ( a r r [ i ] > minmax. max ) minmax. max = a r r [ i ] ; } else if ( a r r [ i ] < minmax. min ) minmax. min = a r r [ i ] ; } return minmax ; Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 20 / 43

Example 5 Sequential Search: Diberikan n buah bilangan bulat yang dinyatakan sebagain {a 1, a 2,, a n }. Carilah apakah x terdapat di dalam himpunan bilangan bulat tersebut. Jika x ditemukan, maka lokasi index elemen yang bernilai x disimpan di dalam peubah idx. Jika x tidak terdapat di dalam himpunan tersebut, maka idx diisi dengan nilai 0. Sequential/Linear Search ( Array A, Value x) Step 1: Set i to 1 Step 2: if i > n then go to step 7 Step 3: if A[i] = x then go to step 6 Step 4: Set i to i + 1 Step 5: Go to Step 2 Step 6: Print Element x Found at index i and go to step 8 Step 7: Print element not found Step 8: Exit Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 21 / 43

Example 6 Bubble Sort: Apa metode yang paling lempeng dalam memecahkan masalah pengurutan? Jawabannya adalah algoritma bubble sort. Algoritma bubble sort mengimplementasikan teknik brute force dengan jelas sekali Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 22 / 43

Example 6 Cont b e g i n B u bblesort ( l i s t ) for a l l e l e m e n t s o f l i s t if l i s t [ i ] > l i s t [ i +1] swap ( l i s t [ i ], l i s t [ i +1]) end if end for return l i s t end B u b b l e S o r t Bubble sort sendiri merupakan algoritma pengurutan data yang paling sederhana. Algoritma ini membandingkan elemen bertetanggan dan menukarkannya jika tidak dalam urutan yang benar. Algoritma ini tidak cocok digunakan untuk data set yang besar karena memiliki waktu terburuk (worst case complexity) O(n 2 ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 23 / 43

Example 7 Uji keprimaan: Persoalan: Diberikan sebuah bilangan bulat positif. Ujilah apakah bilangan tersebut merupakan bilangan prima atau bukan. function is_prime(n) if n 1 return false else if n 3 return true else if n mod 2 = 0 or n mod 3 = 0 return false let i 5 while i * i n if n mod i = 0 or n mod (i + 2) = 0 return false i i + 6 return true Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 24 / 43

Example 8 Menghitung nilai polinom secara brute force Persolana: Hitung nilai polinom: pada titik x = x 0. p(x) = a n x n + a n 1 x n 1 + + a 1 x + a 0 Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 25 / 43

Example 9 Pencocokan string: Persoalan : Diberikan teks ( text ), yaitu ( long ) string yang panjangnya n karakter. 1 pattern, yaitu string dengan panjang m karakter ( m < n ) yang akan dicari di dalam teks. 2 Kemudian, carilah lokasi pertama di dalam teks yang bersesuaian dengan pattern. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 26 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM 2 NOT Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM 2 NOT 3 NOT Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM 2 NOT 3 NOT 4 NOT Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM 2 NOT 3 NOT 4 NOT 5 NOT r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM 2 NOT 3 NOT 4 NOT 5 NOT 6 NOT r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM 2 NOT 3 NOT 4 NOT 5 NOT 6 NOT 7 NOT r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM 2 NOT 3 NOT 4 NOT 5 NOT 6 NOT 7 NOT 8 NOT r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 9 Cont Example (String) Example Pattern : NOT Teks : NOBODY NOTICED HIM 1 NOBODY NOTICED HIM 2 NOT 3 NOT 4 NOT 5 NOT 6 NOT 7 NOT 8 NOT 9 NOT r. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 27 / 43

Example 10 Mencari pasangan titik terdekat: Diberikan sembarang titik dalam 2D atau 3D, lalu carilah dua pasang titik yang memiliki jarak terkecil. Contoh dalam 2D lihat pada gambar berikut: Figure : Contoh sebaran 6 titik pada domain kartesian. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 28 / 43

Example 10 Cont Jarak dua buah titik di bidang 2-D dengan P 1 = (x 1, y 1 ) dan P 2 = (x 2, y 2 ) dapat dicari menggunakan rumus Euclidian: d(p 1, P 2 ) = P 1 P 2 = (x 1 x 2 ) 2 + (y 1 y 2 ) 2 Algoritma brute force: 1. Hitung jarak setiap pasang titik. 2. Pasangan titik yang memepunyai jarak terpendek itulah jawabnnya. Algortma brute force akan menghitung sebanyak C(n, 2) = n (n 1) 2 pasangan titik dan memeilih pasangan titik yang mempunyai jarak terkecil. Kompleksitas waktu algoritma ini adalah O(n 2 ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 29 / 43

Outline 1 Review 2 Introduction and Definitions Introduction and Definitions 3 Contoh-contoh algoritma brute force Contoh-contoh algoritma brute force 4 Karakteristik algoritma brute force Karakteristik algoritma brute force 5 Advantages and Disadvantages of brute force Algorithm Advantages and Disadvantages of brute force Algorithm 6 References References 7 Homeworks Homeworks Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 30 / 43

Karakteristik Berikut adalah karakteristik algoritma brute force: Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Karakteristik Berikut adalah karakteristik algoritma brute force: 1 Algoritma brute force umumnya tidak cerdas dan tidak mangkus, karena membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang - kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Karakteristik Berikut adalah karakteristik algoritma brute force: 1 Algoritma brute force umumnya tidak cerdas dan tidak mangkus, karena membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang - kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ). 2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar, keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Karakteristik Berikut adalah karakteristik algoritma brute force: 1 Algoritma brute force umumnya tidak cerdas dan tidak mangkus, karena membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang - kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ). 2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar, keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus. 3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanya lebih diperhitungkan dari pada ketidakmangkusannya. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Karakteristik Berikut adalah karakteristik algoritma brute force: 1 Algoritma brute force umumnya tidak cerdas dan tidak mangkus, karena membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang - kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ). 2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar, keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus. 3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanya lebih diperhitungkan dari pada ketidakmangkusannya. Algoritma brute force sering digunakan sebagai basis bila membandingkan dengan beberapa alternatif algoritma yang mangkus. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Karakteristik Berikut adalah karakteristik algoritma brute force: 1 Algoritma brute force umumnya tidak cerdas dan tidak mangkus, karena membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang - kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ). 2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar, keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus. 3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanya lebih diperhitungkan dari pada ketidakmangkusannya. Algoritma brute force sering digunakan sebagai basis bila membandingkan dengan beberapa alternatif algoritma yang mangkus. 4 Algoritma brute force seringkali lebih mudah diimplementasikan dari pada algoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadang algoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Karakteristik Berikut adalah karakteristik algoritma brute force: 1 Algoritma brute force umumnya tidak cerdas dan tidak mangkus, karena membutuhkan jumlah langkah yang besar dalam penyelesaiannya. Kadang - kadang algoritma brute force disebut juga algoritma naif ( naive algorithm ). 2 Algoritma brute force seringkali merupakan pilihan yang kurang disukai karena ketidakmangkusannya itu, tetapi dengan mencari pola -pola yang mendasar, keteraturan, atau trik - trik khusus, biasanya akan membantu kita menemukan algoritma yang lebih cerdas dan lebih mangkus. 3 Untuk masalah yang ukurannya kecil, kesederhanaan brute force biasanya lebih diperhitungkan dari pada ketidakmangkusannya. Algoritma brute force sering digunakan sebagai basis bila membandingkan dengan beberapa alternatif algoritma yang mangkus. 4 Algoritma brute force seringkali lebih mudah diimplementasikan dari pada algoritma yang lebih canggih, dan karena kesederhanaannya, kadang-kadang algoritma brute force dapat lebih mangkus (ditinjau dari segi implementasi). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 31 / 43

Outline 1 Review 2 Introduction and Definitions Introduction and Definitions 3 Contoh-contoh algoritma brute force Contoh-contoh algoritma brute force 4 Karakteristik algoritma brute force Karakteristik algoritma brute force 5 Advantages and Disadvantages of brute force Algorithm Advantages and Disadvantages of brute force Algorithm 6 References References 7 Homeworks Homeworks Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 32 / 43

Kekuatan Berikut akan diberikan beberapa kekuatan dan kelemahan dari menggunakan algoritma brute force. Kekuatan: Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Kekuatan Berikut akan diberikan beberapa kekuatan dan kelemahan dari menggunakan algoritma brute force. Kekuatan: 1 Metode brute force dapat digunakan untuk memecahkan hampir sebagian besar masalah ( wide applicability ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Kekuatan Berikut akan diberikan beberapa kekuatan dan kelemahan dari menggunakan algoritma brute force. Kekuatan: 1 Metode brute force dapat digunakan untuk memecahkan hampir sebagian besar masalah ( wide applicability ). 2 Metode brute force sederhana dan mudah dimengerti. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Kekuatan Berikut akan diberikan beberapa kekuatan dan kelemahan dari menggunakan algoritma brute force. Kekuatan: 1 Metode brute force dapat digunakan untuk memecahkan hampir sebagian besar masalah ( wide applicability ). 2 Metode brute force sederhana dan mudah dimengerti. 3 Metode brute force menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Kekuatan Berikut akan diberikan beberapa kekuatan dan kelemahan dari menggunakan algoritma brute force. Kekuatan: 1 Metode brute force dapat digunakan untuk memecahkan hampir sebagian besar masalah ( wide applicability ). 2 Metode brute force sederhana dan mudah dimengerti. 3 Metode brute force menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks. 4 Metode brute force menghasilkan algoritma baku (standard) untuk tugas - tugas komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel ( list ). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 33 / 43

Kelemahan Sedangkan Kelemhan: 1 Metode brute force jarang menghasilkan algoritma yang mangkus. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 43

Kelemahan Sedangkan Kelemhan: 1 Metode brute force jarang menghasilkan algoritma yang mangkus. 2 Beberapa algoritma brute force lambat sehingga tidak dapat diterima. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 43

Kelemahan Sedangkan Kelemhan: 1 Metode brute force jarang menghasilkan algoritma yang mangkus. 2 Beberapa algoritma brute force lambat sehingga tidak dapat diterima. 3 Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 43

Kelemahan Sedangkan Kelemhan: 1 Metode brute force jarang menghasilkan algoritma yang mangkus. 2 Beberapa algoritma brute force lambat sehingga tidak dapat diterima. 3 Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya. 4 Ken Thompson ( salah seorang penemu Unix) mengatakan : When in doubt, use brute force, faktanya kernel Unix yang asli lebih menyukai algoritma yang sederhana dan kuat ( robust ) daripada algoritma yang cerdas tapi rapuh. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 34 / 43

Outline 1 Review 2 Introduction and Definitions Introduction and Definitions 3 Contoh-contoh algoritma brute force Contoh-contoh algoritma brute force 4 Karakteristik algoritma brute force Karakteristik algoritma brute force 5 Advantages and Disadvantages of brute force Algorithm Advantages and Disadvantages of brute force Algorithm 6 References References 7 Homeworks Homeworks Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 35 / 43

References References 1 Anany, L. (2003). Introduction to the design and analysis of algorithms. Villanova University. 2 https://www.quora.com/what-are-some-fast-algorithms-forcomputing-the-nth-power-of-a-number 3 http://www.geeksforgeeks.org/maximum-and-minimum-in-an-array/ 4 https://www.tutorialspoint.com/data structures algorithms/bubble sort Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 36 / 43

Outline 1 Review 2 Introduction and Definitions Introduction and Definitions 3 Contoh-contoh algoritma brute force Contoh-contoh algoritma brute force 4 Karakteristik algoritma brute force Karakteristik algoritma brute force 5 Advantages and Disadvantages of brute force Algorithm Advantages and Disadvantages of brute force Algorithm 6 References References 7 Homeworks Homeworks Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 37 / 43

HM 1 Diberikan n titik pada daerah 2-D Euclidean, yaitu {p 1, p 2, p n }. Buatlah algoritma brute force untuk menentukan titik paling bawah dalam daerah 2-D Euclidean. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 38 / 43

HM 2 Consider the problem of counting, in a given text, the number of substrings that start with an A and end with a B. For example, there are four such substrings in CABAAXBYA. 1 Design a brute-force algorithm for this problem and determine its efficiency class. 2 Design a more efficient algorithm for this problem. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 39 / 43

HM 3 Word Find A popular diversion in the United States, word find (or word search) puzzles ask the player to find each of a given set of words in a square table filled with single letters. A word can read horizontally (left or right), vertically (up or down), or along a 45 degree diagonal (in any of the four directions) formed by consecutively adjacent cells of the table; it may wrap around the tables boundaries, but it must read in the same direction with no zigzagging. The same cell of the table may be used in different words, but, in a given word, the same cell may be used no more than once. Write a computer program for solving this puzzle. (See http://thewordsearch.com/ for more detail). Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 40 / 43

HM 4 1 Design a brute-force algorithm for computing the value of a polynomial p(x) = a n x n + a n 1 x n 1 + + a 1 x + a 0 at a given point x 0 and determine its worst-case efficiency class. 2 If the algorithm you designed is in Θ(n 2 ), design a linear algorithm for this problem. 3 Is it possible to design an algorithm with a better-than-linear efficiency for this problem? Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 41 / 43

HM 5 Alternating disks You have a row of 2n disks of two colors, n dark and n light. They alternate: dark, light, dark, light, and so on. You want to get all the dark disks to the right-hand end, and all the light disks to the left-hand end. The only moves you are allowed to make are those that interchange the positions of two neighboring disks. Design an algorithm for solving this puzzle and determine the number of moves it takes. Dr. Putu Harry Gunawan (Telkom University) Design and Analysis of Algorithm 42 / 43

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