Algoritma Brute Force (2014)
Algoritma Brute Force (2014)
Contoh-contoh
(Berdasarkan pernyataan persoalan)
1. Mencari elemen terbesar (terkecil)
Persoalan: Diberikan sebuah senarai
yang beranggotakan n buah bilangan
bulat (a1, a2, , an). Carilah elemen
terbesar di dalam senarai tersebut.
Algoritma brute force: bandingkan setiap elemen
senarai untuk menemukan elemen terbesar
4
Contoh-contoh
(Berdasarkan definisi konsep yang terlibat)
1. Menghitung an (a > 0, n adalah bilangan bulat
tak-negatif)
Definisi:
an = a a a (n kali) , jika n > 0
=1
, jika n = 0
Algoritma brute force: kalikan 1 dengan a
sebanyak n kali
8
, jika n > 0
, jika n = 0
10
14
15
16
Selection Sort
Pass ke 1:
1. Cari elemen terkecil mulai di dalam s[1..n]
2. Letakkan elemen terkecil pada posisi ke-1 (pertukaran)
Pass ke-2:
1. Cari elemen terkecil mulai di dalam s[2..n]
2. Letakkan elemen terkecil pada posisi 2 (pertukaran)
Ulangi sampai hanya tersisa 1 elemen
Semuanya ada n 1 kali pass
17
18
19
Bubble Sort
Mulai dari elemen ke-1:
1. Jika s2 < s1, pertukarkan
2. Jika s3 < s2, pertukarkan
20
22
6. Mengevaluasi polinom
23
Algoritma:
p 0
for i n downto 0 do
pangkat 1
for j 1 to i do {hitung xi }
pangkat pangkat * t
endfor
p p + a[i] * pangkat
endfor
return p
24
Perbaikan (improve):
function polinom2(input t : real)real
{ Menghitung nilai p(x) pada x = t. Koefisien-koefisein polinom
sudah disimpan di dalam a[0..n].
Masukan: t
Keluaran: nilai polinom pada x = t.
}
Deklarasi
i, j : integer
p, pangkat : real
Algoritma:
p a[0]
pangkat1
for i 1 to n do
pangkat pangkat * t
p p + a[i] * pangkat
endfor
return p
25
26
4.
28
Contoh-contoh lain
1. Pencocokan String (String Matching)
Persoalan: Diberikan
a. teks (text), yaitu (long) string dengan
panjang n karakter
b. pattern, yaitu string dengan panjang m
karakter (asumsi: m < n)
Contoh 1:
Pattern: NOT
Teks: NOBODY NOTICED HIM
1
2
3
4
5
6
7
8
Contoh 2:
Pattern: 001011
Teks: 10010101001011110101010001
1
2
3
4
5
6
7
8
9
10010101001011110101010001
001011
001011
001011
001011
001011
001011
001011
001011
001011
32
33
34
36
Kelemahan:
1.
2.
3.
38
39
40
Exhaustive Search
Exhaustive search:
teknik pencarian solusi secara solusi brute
force untuk masalah-masalah kombinatorik;
biasanya di antara objek-objek kombinatorik
seperti permutasi, kombinasi, atau himpunan
bagian dari sebuah himpunan.
42
44
Contoh 4:
TSP dengan n = 4, simpul awal = a
a
10
d
12
5
b
9
15
8
c
12
10
d
8
15
12
15
b
10
c
b
5
8
c
49
52
53
54
55
56
Contoh: n = 4, K = 16
Objek Bobot
Profit ($)
1
2
20
2
5
30
3
10
50
4
5
10
Langkah-langkah pencarian solusi 0/1
Knapsack secara exhaustive search
dirangkum dalam tabel di bawah ini:
58
60
Latihan
(yang diselesaikan secara exhaustive search)
1.
C 6
4
3
8
1
5
7
6
9
Job 4
8 Orang a
7 Orang b
4 Orang c
4 Orang d
61
2.
62
63
Exhaustive Search
di dalam Kriptografi
Di dalam kriptografi, exhaustive search
merupakan teknik yang digunakan penyerang
untuk menemukan kunci enkripsi dengan cara
mencoba semua kemungkinan kunci.
Serangan semacam ini dikenal dengan nama
exhaustive key search attack atau brute force
attack.
64
Mempercepat Algoritma
Exhaustive Search
Algoritma exhaustive search dapat diperbaiki
kinerjanya sehingga tidak perlu melakukan
pencarian terhadap semua kemungkinan solusi.
Salah satu teknik yang digunakan untuk
mempercepat pencarian solusi, di mana
exhaustive search tidak praktis, adalah teknik
heuristik (heuristic).
Dalam exhaustive search, teknik heuristik
digunakan untuk mengeliminasi beberapa
kemungkinan solusi tanpa harus
mengeksplorasinya secara penuh.
67
68
Sejarah
Heuristik adalah seni dan
ilmu menemukan (art and
science of discovery).
Kata heuristik diturunkan dari
Bahasa Yunani yaitu eureka
yang berarti menemukan
(to find atau to discover).
Matematikawan Yunani yang bernama Archimedes
yang melontarkan kata "heureka", dari sinilah kita
menemukan kata eureka yang berarti
69
I have found it.
71
72