Design and Analysis of Algorithm Week 6: Brute Force Algorithm Part 1: Design Strategy
Dr. Putu Harry Gunawan1 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 n=0 0, T (n) = (1.1) 1, n=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
Dr. Putu Harry Gunawan (Telkom University)
Design and Analysis of Algorithm
(1.2)
4 / 43
Exercise 3
Tentukanlah kompleksitas waktu asimtotik menggunakan metode karakteristik. Exercise: diberikan relasi rekursi berikut (QUIZ II semster lalu) n=0 0, 1 T (n) = n=1 10 , n 1 49T 7 − 100 n, n≥2
Dr. Putu Harry Gunawan (Telkom University)
Design and Analysis of Algorithm
(1.3)
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) b
(1.4)
Jika f (n) ∈ O(nd ) dengan d ≥ 0, dalam persamaan general Divide and Conquer recurrence di atas, maka d a < bd O(n ) T (n) ∈ (1.5) O(nd log n) a = bd b log a O(n ) a > bd 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: n=1 0, (1.6) T (n) = 1, n=2 n n>2 2T 2 + 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 an 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 an = a| × a × {z· · · × a}
(2.1)
n kali
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 n = 2k1 + 2k2 + · · · + 2km sehingga k
k
km
an = a2 1 + a2 2 + · · · + a2
dengan kompleksitas waktu yang digunakan adalah O(log n). Sebagai contoh hitung a25 , maka (25)10 = (11001)2 yang dapat direpresentasikan menjadi bilangan biner sehingga: a25 = a4 + a3 + 0 + 0 + a0 . Dr. Putu Harry Gunawan (Telkom University)
Design and Analysis of Algorithm
12 / 43
Introduction
Example Contoh lain dengan kompleksitas waktu O(log n) adalah ( (an/2 )(an/2 ) (n mod 2 = 0), n f (x) = a = n−1 n−1 a(a 2 )(a 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 ( n−1 a(a2 ) 2 if n ganjil, n f (x) = a = n 2 (a ) 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 cij , aij , dan bij cij = ai1 b1j + ai2 b2j + · · · + ain bnj =
n X
aik bkj
k=1
Algoritma: hitung setiap elemen hasil perkalian satu persatu, dengan cara mengalikan dua vektor yang panjangnya n.
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 t a g ; 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[++ t a g ]= i ; a[++ t a g ]=n ; return ( a ) ; }
Dr. Putu Harry Gunawan (Telkom University)
Design and Analysis of Algorithm
18 / 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 ; }
Dr.
/* 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 ] ; Putu}Harry Gunawan (Telkom University) Design and Analysis of Algorithm 19 / 43
Example 4 Cont else { minmax . max = a r r [ 1 ] ; minmax . min = a r r [ 0 ] ; } for ( i = 2 ; 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 {a1 , a2 , · · · , an }. 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 Step Step Step Step Step Step Step
1: 2: 3: 4: 5: 6: 7: 8:
Set i to 1 if i > n then go to step 7 if A[i] = x then go to step 6 Set i to i + 1 Go to Step 2 Print Element x Found at index i and go to step 8 Print element not found 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 begin BubbleSort ( 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(n2 ). 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: p(x) = an x n + an−1 x n−1 + · · · + a1 x + a0 pada titik x = x0 .
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 4
NOT 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 4 5
NOT NOT 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 4 5 6
NOT NOT NOT 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 4 5 6 7
NOT NOT NOT NOT 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 4 5 6 7 8
NOT NOT NOT NOT NOT 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 4 5 6 7 8 9
NOT NOT NOT NOT NOT NOT NOT
Dr. 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 P1 = (x1 , y1 ) dan P2 = (x2 , y2 ) dapat dicari menggunakan rumus Euclidian: q d(P1 , P2 ) = ||P1 − P2 || = (x1 − x2 )2 + (y1 − 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(n2 ).
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
2
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 ). 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
2
3
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 ). 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. 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
2
3
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 ). 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. 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
2
3
4
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 ). 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. 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. 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
2
3
4
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 ). 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. 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. 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 {p1 , p2 , · · · pn }. 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) = an x n + an−1 x n−1 + · · · + a1 x + a0 at a given point x0 and determine its worst-case efficiency class.
2
3
If the algorithm you designed is in Θ(n2 ), design a linear algorithm for this problem. 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