Desain Analisa Algoritma : Brute Force
Desain Analisa Algoritma : Brute Force
Elsen Ronando, S.Si.,M.Si.,M.Sc.
elsen.ronando@untag-sby.ac.id
Teknik Informatika
Fakultas Teknik
Universitas 17 Agustus 1945 Surabaya
2016
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
1 / 24
Rencana Presentasi
1
Brute Force
Seleksi Pengurutan dan Buble Sort
Pencarian Sekuensial dan Pencocokan String
Permasalahan Pasangan Terdekat dan Convex-Hull
Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Permasalahan Knapsack
Beberapa contoh lainnya
2
Catatan
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
2 / 24
Brute Force
Definisi
Sebuah pendekatan langsung untuk memecahkan suatu masalah.
Biasanya didasarkan pada pernyataan masalahnya.
Adanya keterlibatan definisi konsep.
Karakteristik
Sederhana, jelas, & mudah diimplementasikan.
Mengedepankan tenaga → tidak cerdas maupun efisien.
Mampu menyelesaikan hampir sebagian besar permasalahan berskala
kecil.
Memiliki kemampuan menganalisa dasar dan keteraturan dalam
menyelesaikan permasalahan.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
3 / 24
Brute Force (Lanjutan)
Contoh
Perhitungan an , dimana a > 0 dan n adalah bilangan bulat tak
negatif.
(
a × ... × a
jika n > 0
n
a =
0
jika n = 0
Perhitungan n!, dimana n adalah bilangan bulat tak negatif.
(
1 × 2 × 3 × ... × n
jika n > 0
n! =
1
jika n = 0
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
4 / 24
Seleksi Pengurutan dan Buble Sort
Seleksi Pengurutan
Cara kerja :
Cari data terkecil dari data pertama hingga ke-n.
Data terkecil tersebut ditukar dengan data pertama (data pertama
memiliki nilai terkecil).
Ulangi : Cari data terkecil kembali dari data kedua hingga ke-n.
Data terkecil tersebut ditukar dengan data kedua (data kedua
memiliki nilai terkecil).
Ulangi sampai berakhir ke-n.
Misal Posisi Awal :
Ai , ...., Amin , ..., An−1
Posisi Akhir :
A0 ≤ A1 ≤ ... ≤ Ai−1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
5 / 24
Seleksi Pengurutan dan Buble Sort
Algoritma Seleksi Pengurutan
Input : sebuah array A[0..n − 1] elemen random
Output : Array A[0..n − 1] diurutkan secara ascending
begin
for i ← 0 sampai n − 2 do
min ← i
for j ← i + 1 sampai n − 1 do
if A[j] < A[min] then
min ← j
end
end
tukar A[i] dan A[min]
end
end
Kompleksitas Waktu
C (n) =
n−1
n−2 X
X
i=0 j=i+1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
1=
n−2
X
i=0
(n − 1 − i) =
(n − 1)n
∈ O(n2 )
2
Desain Analisa Algoritma : Brute Force
2016
6 / 24
Seleksi Pengurutan dan Buble Sort
Buble Sort
Urutan data → perbandingan elemen saat ini dengan elemen
berikutnya.
Jika elemen saat ini lebih besar dari elemen berikutnya, maka elemen
tersebut ditukar (kasus ascending ).
Jika elemen saat ini lebih kecil dari elemen berikutnya, maka elemen
tersebut ditukar (kasus descending ).
Proses ini berakhir ketika seluruh array telah diperiksa dan tidak ada
pertukaran lagi.
Misal Posisi Awal :
A0 , ...., Aj ↔ Aj+1 , ..., An−i−1
Posisi Akhir :
An−i ≤ ... ≤ An−1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
7 / 24
Seleksi Pengurutan dan Buble Sort
Algoritma Buble Sort
Input : sebuah array A[0..n − 1] elemen random
Output : Array A[0..n − 1] diurutkan secara ascending
maupun descending
begin
for i ← 0 sampai n − 2 do
for j ← 0 sampai n − 2 − i do
if A[j + 1] < A[j] then
tukar A[j] dan A[j + 1]
end
end
end
end
Kompleksitas Waktu
C (n) =
n−2 n−2−i
X
X
i=0
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
j=0
1=
n−2
X
i=0
(n − 1 − i) =
(n − 1)n
∈ O(n2 )
2
Desain Analisa Algoritma : Brute Force
2016
8 / 24
Pencarian Sekuensial dan Pencocokan String
Pencarian Sekuensial
Melakukan perbandingan satu per satu secara berurutan dalam
kumpulan data dengan data yang dicari hinggi ditemukan atau tidak.
Umumnya, pencarian dilakukan secara perulangan dari 1 hingga
jumlah data (n).
Setiap perulangan, data ke-i akan dibandingankan dengan data yang
dicari.
Jika data sama dengan data yang dicari, maka data ditemukan.
Sebaliknya, jika tidak maka data tidak ditemukan.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
9 / 24
Pencarian Sekuensial dan Pencocokan String
Algoritma Pencarian Sekuensial
Input : sebuah array dengan n elemen random dan sebuah
data pencarian K
Output : Elemen indeks dari Array A[0..n − 1] dimana
nilainya sama dengan K atau -1 bila tidak ditemukan
begin
A[n] ← K
i ←0
while A[i] 6= K do
i ←i +1
end
if i < n then
return i
end
else
return −1
end
end
Kompleksitas Waktu
Best-Case : Ω(1).
Worst-Case : O(n).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
10 / 24
Pencarian Sekuensial dan Pencocokan String
Pencocokan String
Diberikan teks merupaan string dengan n karakter dan pola
merupakan substring dari teks dengan m karakter (m ≤ n).
Algoritma brute force mulai mencocokan pola pada teks awal dari kiri
ke kanan per karakter hinga terpenuhi.
Algoritma ini akan berjalan dan menggeser satu ke kanan untuk
melakukan pencocokan.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
11 / 24
Pencarian Sekuensial dan Pencocokan String
Algoritma Pencocokan String
Input : sebuah array T [0, n − 1] dari n karakter sebagai teks
sebuah array T [0, m − 1] dari m karakter sebagai pola
Output : indeks dari karakter pertama dalam teks yang
cocok dengan pola atau −1 bila tidak cocok
begin
for i ← 0 sampai n − m do
j ←0
while j < m dan P[j] = T [i + j] do
j ←j +1
end
if j = m then
return i
end
return −1
end
end
Kompleksitas Waktu
Best-Case : Ω(n).
Worst-Case : m(n − m + 1) ∈ O(mn).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
12 / 24
Permasalahan Pasangan Terdekat dan Convex-Hull
Permasalahan Pasangan Terdekat
Menyelesaikan permasalahan jarak antara titik koordinat.
Banyak diterapkan dalam bidang geometri untuk menentukan jarak
pesawat (agar tidak terjadi tabrakan), pencarian lokasi untuk
pembuatan kantor pos, dan beberapa bidang lainnya.
Ada kaitannya dengan proses kluster.
Brute Force : menghitung jarak antara koordinat dan mencari jarak
terdekat.
Jarak Euclidean (2 Dimensi)
dimana, i < j
q
d(pi , pj ) = (xi − xj )2 + (yi − yj )2
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
13 / 24
Permasalahan Pasangan Terdekat dan Convex-Hull
Algoritma Pasangan Terdekat
Input : sebuah list P dari n (n ≤ 2) poin
p1 (x1 , y1 ), ..., pn (xn , yn )
Output : Jarak terdekat diantara koordinat
begin
d ←∞
for i ← 1 sampai n − 1 do
for j ← i + 1 sampai n do
d ← min(d, sqrt((xi − xj )2 + (yi − yj )2 ))
end
return d
end
end
Kompleksitas Waktu
C (n) =
n−1
X
n
X
i=1 j=i+1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
2=2
n−1
X
(n − i) = (n − 1)n ∈ O(n2 )
i=1
Desain Analisa Algoritma : Brute Force
2016
14 / 24
Permasalahan Pasangan Terdekat dan Convex-Hull
Permasalahan Convex-Hull
Berkaitan erat dengan geometri.
Menghubungkan setiap koordinat titik hingga membentuk bidang
tertentu.
Pencarian titik-titik awal dapat dilakukan dengan memilih titik yang
memiliki komponen koordinat ekstrim.
Algoritma
1
2
Memilih titik pertama.
Memilih titik berikutnya, berdasarkan definisi :
Jika dibuat garis dengan titik sebelumnya maka seluruh titik lainnya
tidak ada yang berada disebelah kiri.
Jika titik tersebut sesuai maka dimasukkan dalam daftar titik terluar.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
15 / 24
Permasalahan Pasangan Terdekat dan Convex-Hull
Contoh Convex-Hull
Kompleksitas Waktu
Best-Case : Ω(mn).
Worst-Case : O(n2 ).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
16 / 24
Pencarian Exhaustive
Definisi
Teknik pencarian solusi secara brute force untuk menyelesaikan
masalah yang melibatkan pencarian elemen dengan sifat khusus.
Biasanya berkaitan erat dengan kombinatorik, seperti permutasi,
kombinasi, atau himpunan bagian.
Langkah-langkah :
Enumerasi (list) setiap solusi yang mungkin dengan sistematis.
Evaluasi setiap kemungkinan solusi satu per satu. Simpan solusi
terbaik dan keluarkan solusi yang tidak layak.
Jika pencarian berakhir, umumkan solusi terbaik.
Pencarian Exhaustive menemukan solusi, tetapi waktu yang
dibutukan dalam mencari solusi sangat besar
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
17 / 24
Contoh Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Tujuan : mencari jarak (rute) terpendek dari kota asal ke kota tujuan
atau kembali ke kota asal (setiap kota hanya dilewati satu kali).
Ada kaitannya dengan sirkuit halmiton dengan bobot minimum.
Coba cari jarak (rute) terpendek dari pola transportasi diatas !
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
18 / 24
Contoh Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Dari n simpul atau kota, maka diperlukan enumerasi sebanyak
(n − 1)! rute yang memungkinkan untuk dianalisa jarak terpendeknya.
Kompleksitas Waktu : banyaknya enumerasi dikali dengan waktu
menghitung bobot minimum setiap rute, dimana waktu menghitung
bobot minimum setiap rute adalah O(n). Sehingga, kompleksitas
waktunya adalah O(n.n!)
Dalam permasalahan ini, belum ada algoritma yang lebih baik
daripada pencarian exhaustive.
Kompleksitas waktu yang bagus adalah memiliki orde polinomial.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
19 / 24
Contoh Pencarian Exhaustive
Permasalahan Knapsack
Tujuan : Mencari keuntungan maksimun ketika nilai obyek
dimasukkan kedalam knapsack (K ) dengan kapasitas bobot wi dan
total bobot obyeknya tidak boleh melebihi kapasitas knapsack.
Dengan kata lain, mencari himpunan bagian dari keseluruhan obyek
yang muat masuk kedalam knapsack dengan keuntungan yang
maksimal.
Solusi permasalahan ini dalam n-tupel :
x = {x1 , x2 , ..., xn }
dimana, xi = 1 jika obyek ke-i dimasukkan ke dalam knapsack dan
xi = 0 jika tidak dimasukkan.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
20 / 24
Contoh Pencarian Exhaustive
Formulasi Matematis
Maksimumkan :
F =
n
X
p i xi
i=1
dengan kendala :
n
X
w i xi ≤ K
i=1
dimana xi = 0 atau 1, i = 1, 2, ..., n
Contoh :
Diketahui : n = 4, w1 = 2; p1 = 20; w2 = 5; p2 = 30; w3 = 10; p3 = 50;
w4 = 5; p4 = 10 dengan kapasitas knapsack K = 16. Tentukan solusi dari
keuntungan maksimumnya ! (2n : himpunan bagian dan total bobot O(n),
sehingga kompleksitas waktu O(n.2n ))
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
21 / 24
Contoh Pencarian Exhaustive
Beberapa contoh lainnya
Permasalahan tugas → mencari jumlah minimum waktu seseorang
dalam menyelesaikan beberapa tugasnya, sehingga efisiensi menjadi
prioritas utama.
Pencarian DFS (Depth-First Search) → pencarian berdasarkan
kedalamannya.
Pencarian BFS (Breadth-First Search) → pencarian berdasarkan
penyebarannya (atau levelnya).
Beberapa permasalahan exhaustive tidak dapat diselesaikan secara
polinomial, sehingga ini adalah permasalahan NP
(Non-deterministic Polynomial)
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
22 / 24
Catatan
Seluruh materi presentasi dapat didownload pada SIAKAD
masing-masing atau link berikut :
https://sites.google.com/site/elsenronandosite/teaching
Klik
.
Apabila ada pertanyaan mengenai desain analisa algoritma dapat
mengirim ke alamat email berikut : elsen.ronando@untag-sby.ac.id.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
23 / 24
Terimakasih Atas Perhatiaanya
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
24 / 24
Elsen Ronando, S.Si.,M.Si.,M.Sc.
elsen.ronando@untag-sby.ac.id
Teknik Informatika
Fakultas Teknik
Universitas 17 Agustus 1945 Surabaya
2016
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
1 / 24
Rencana Presentasi
1
Brute Force
Seleksi Pengurutan dan Buble Sort
Pencarian Sekuensial dan Pencocokan String
Permasalahan Pasangan Terdekat dan Convex-Hull
Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Permasalahan Knapsack
Beberapa contoh lainnya
2
Catatan
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
2 / 24
Brute Force
Definisi
Sebuah pendekatan langsung untuk memecahkan suatu masalah.
Biasanya didasarkan pada pernyataan masalahnya.
Adanya keterlibatan definisi konsep.
Karakteristik
Sederhana, jelas, & mudah diimplementasikan.
Mengedepankan tenaga → tidak cerdas maupun efisien.
Mampu menyelesaikan hampir sebagian besar permasalahan berskala
kecil.
Memiliki kemampuan menganalisa dasar dan keteraturan dalam
menyelesaikan permasalahan.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
3 / 24
Brute Force (Lanjutan)
Contoh
Perhitungan an , dimana a > 0 dan n adalah bilangan bulat tak
negatif.
(
a × ... × a
jika n > 0
n
a =
0
jika n = 0
Perhitungan n!, dimana n adalah bilangan bulat tak negatif.
(
1 × 2 × 3 × ... × n
jika n > 0
n! =
1
jika n = 0
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
4 / 24
Seleksi Pengurutan dan Buble Sort
Seleksi Pengurutan
Cara kerja :
Cari data terkecil dari data pertama hingga ke-n.
Data terkecil tersebut ditukar dengan data pertama (data pertama
memiliki nilai terkecil).
Ulangi : Cari data terkecil kembali dari data kedua hingga ke-n.
Data terkecil tersebut ditukar dengan data kedua (data kedua
memiliki nilai terkecil).
Ulangi sampai berakhir ke-n.
Misal Posisi Awal :
Ai , ...., Amin , ..., An−1
Posisi Akhir :
A0 ≤ A1 ≤ ... ≤ Ai−1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
5 / 24
Seleksi Pengurutan dan Buble Sort
Algoritma Seleksi Pengurutan
Input : sebuah array A[0..n − 1] elemen random
Output : Array A[0..n − 1] diurutkan secara ascending
begin
for i ← 0 sampai n − 2 do
min ← i
for j ← i + 1 sampai n − 1 do
if A[j] < A[min] then
min ← j
end
end
tukar A[i] dan A[min]
end
end
Kompleksitas Waktu
C (n) =
n−1
n−2 X
X
i=0 j=i+1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
1=
n−2
X
i=0
(n − 1 − i) =
(n − 1)n
∈ O(n2 )
2
Desain Analisa Algoritma : Brute Force
2016
6 / 24
Seleksi Pengurutan dan Buble Sort
Buble Sort
Urutan data → perbandingan elemen saat ini dengan elemen
berikutnya.
Jika elemen saat ini lebih besar dari elemen berikutnya, maka elemen
tersebut ditukar (kasus ascending ).
Jika elemen saat ini lebih kecil dari elemen berikutnya, maka elemen
tersebut ditukar (kasus descending ).
Proses ini berakhir ketika seluruh array telah diperiksa dan tidak ada
pertukaran lagi.
Misal Posisi Awal :
A0 , ...., Aj ↔ Aj+1 , ..., An−i−1
Posisi Akhir :
An−i ≤ ... ≤ An−1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
7 / 24
Seleksi Pengurutan dan Buble Sort
Algoritma Buble Sort
Input : sebuah array A[0..n − 1] elemen random
Output : Array A[0..n − 1] diurutkan secara ascending
maupun descending
begin
for i ← 0 sampai n − 2 do
for j ← 0 sampai n − 2 − i do
if A[j + 1] < A[j] then
tukar A[j] dan A[j + 1]
end
end
end
end
Kompleksitas Waktu
C (n) =
n−2 n−2−i
X
X
i=0
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
j=0
1=
n−2
X
i=0
(n − 1 − i) =
(n − 1)n
∈ O(n2 )
2
Desain Analisa Algoritma : Brute Force
2016
8 / 24
Pencarian Sekuensial dan Pencocokan String
Pencarian Sekuensial
Melakukan perbandingan satu per satu secara berurutan dalam
kumpulan data dengan data yang dicari hinggi ditemukan atau tidak.
Umumnya, pencarian dilakukan secara perulangan dari 1 hingga
jumlah data (n).
Setiap perulangan, data ke-i akan dibandingankan dengan data yang
dicari.
Jika data sama dengan data yang dicari, maka data ditemukan.
Sebaliknya, jika tidak maka data tidak ditemukan.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
9 / 24
Pencarian Sekuensial dan Pencocokan String
Algoritma Pencarian Sekuensial
Input : sebuah array dengan n elemen random dan sebuah
data pencarian K
Output : Elemen indeks dari Array A[0..n − 1] dimana
nilainya sama dengan K atau -1 bila tidak ditemukan
begin
A[n] ← K
i ←0
while A[i] 6= K do
i ←i +1
end
if i < n then
return i
end
else
return −1
end
end
Kompleksitas Waktu
Best-Case : Ω(1).
Worst-Case : O(n).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
10 / 24
Pencarian Sekuensial dan Pencocokan String
Pencocokan String
Diberikan teks merupaan string dengan n karakter dan pola
merupakan substring dari teks dengan m karakter (m ≤ n).
Algoritma brute force mulai mencocokan pola pada teks awal dari kiri
ke kanan per karakter hinga terpenuhi.
Algoritma ini akan berjalan dan menggeser satu ke kanan untuk
melakukan pencocokan.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
11 / 24
Pencarian Sekuensial dan Pencocokan String
Algoritma Pencocokan String
Input : sebuah array T [0, n − 1] dari n karakter sebagai teks
sebuah array T [0, m − 1] dari m karakter sebagai pola
Output : indeks dari karakter pertama dalam teks yang
cocok dengan pola atau −1 bila tidak cocok
begin
for i ← 0 sampai n − m do
j ←0
while j < m dan P[j] = T [i + j] do
j ←j +1
end
if j = m then
return i
end
return −1
end
end
Kompleksitas Waktu
Best-Case : Ω(n).
Worst-Case : m(n − m + 1) ∈ O(mn).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
12 / 24
Permasalahan Pasangan Terdekat dan Convex-Hull
Permasalahan Pasangan Terdekat
Menyelesaikan permasalahan jarak antara titik koordinat.
Banyak diterapkan dalam bidang geometri untuk menentukan jarak
pesawat (agar tidak terjadi tabrakan), pencarian lokasi untuk
pembuatan kantor pos, dan beberapa bidang lainnya.
Ada kaitannya dengan proses kluster.
Brute Force : menghitung jarak antara koordinat dan mencari jarak
terdekat.
Jarak Euclidean (2 Dimensi)
dimana, i < j
q
d(pi , pj ) = (xi − xj )2 + (yi − yj )2
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
13 / 24
Permasalahan Pasangan Terdekat dan Convex-Hull
Algoritma Pasangan Terdekat
Input : sebuah list P dari n (n ≤ 2) poin
p1 (x1 , y1 ), ..., pn (xn , yn )
Output : Jarak terdekat diantara koordinat
begin
d ←∞
for i ← 1 sampai n − 1 do
for j ← i + 1 sampai n do
d ← min(d, sqrt((xi − xj )2 + (yi − yj )2 ))
end
return d
end
end
Kompleksitas Waktu
C (n) =
n−1
X
n
X
i=1 j=i+1
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
2=2
n−1
X
(n − i) = (n − 1)n ∈ O(n2 )
i=1
Desain Analisa Algoritma : Brute Force
2016
14 / 24
Permasalahan Pasangan Terdekat dan Convex-Hull
Permasalahan Convex-Hull
Berkaitan erat dengan geometri.
Menghubungkan setiap koordinat titik hingga membentuk bidang
tertentu.
Pencarian titik-titik awal dapat dilakukan dengan memilih titik yang
memiliki komponen koordinat ekstrim.
Algoritma
1
2
Memilih titik pertama.
Memilih titik berikutnya, berdasarkan definisi :
Jika dibuat garis dengan titik sebelumnya maka seluruh titik lainnya
tidak ada yang berada disebelah kiri.
Jika titik tersebut sesuai maka dimasukkan dalam daftar titik terluar.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
15 / 24
Permasalahan Pasangan Terdekat dan Convex-Hull
Contoh Convex-Hull
Kompleksitas Waktu
Best-Case : Ω(mn).
Worst-Case : O(n2 ).
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
16 / 24
Pencarian Exhaustive
Definisi
Teknik pencarian solusi secara brute force untuk menyelesaikan
masalah yang melibatkan pencarian elemen dengan sifat khusus.
Biasanya berkaitan erat dengan kombinatorik, seperti permutasi,
kombinasi, atau himpunan bagian.
Langkah-langkah :
Enumerasi (list) setiap solusi yang mungkin dengan sistematis.
Evaluasi setiap kemungkinan solusi satu per satu. Simpan solusi
terbaik dan keluarkan solusi yang tidak layak.
Jika pencarian berakhir, umumkan solusi terbaik.
Pencarian Exhaustive menemukan solusi, tetapi waktu yang
dibutukan dalam mencari solusi sangat besar
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
17 / 24
Contoh Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Tujuan : mencari jarak (rute) terpendek dari kota asal ke kota tujuan
atau kembali ke kota asal (setiap kota hanya dilewati satu kali).
Ada kaitannya dengan sirkuit halmiton dengan bobot minimum.
Coba cari jarak (rute) terpendek dari pola transportasi diatas !
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
18 / 24
Contoh Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Dari n simpul atau kota, maka diperlukan enumerasi sebanyak
(n − 1)! rute yang memungkinkan untuk dianalisa jarak terpendeknya.
Kompleksitas Waktu : banyaknya enumerasi dikali dengan waktu
menghitung bobot minimum setiap rute, dimana waktu menghitung
bobot minimum setiap rute adalah O(n). Sehingga, kompleksitas
waktunya adalah O(n.n!)
Dalam permasalahan ini, belum ada algoritma yang lebih baik
daripada pencarian exhaustive.
Kompleksitas waktu yang bagus adalah memiliki orde polinomial.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
19 / 24
Contoh Pencarian Exhaustive
Permasalahan Knapsack
Tujuan : Mencari keuntungan maksimun ketika nilai obyek
dimasukkan kedalam knapsack (K ) dengan kapasitas bobot wi dan
total bobot obyeknya tidak boleh melebihi kapasitas knapsack.
Dengan kata lain, mencari himpunan bagian dari keseluruhan obyek
yang muat masuk kedalam knapsack dengan keuntungan yang
maksimal.
Solusi permasalahan ini dalam n-tupel :
x = {x1 , x2 , ..., xn }
dimana, xi = 1 jika obyek ke-i dimasukkan ke dalam knapsack dan
xi = 0 jika tidak dimasukkan.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
20 / 24
Contoh Pencarian Exhaustive
Formulasi Matematis
Maksimumkan :
F =
n
X
p i xi
i=1
dengan kendala :
n
X
w i xi ≤ K
i=1
dimana xi = 0 atau 1, i = 1, 2, ..., n
Contoh :
Diketahui : n = 4, w1 = 2; p1 = 20; w2 = 5; p2 = 30; w3 = 10; p3 = 50;
w4 = 5; p4 = 10 dengan kapasitas knapsack K = 16. Tentukan solusi dari
keuntungan maksimumnya ! (2n : himpunan bagian dan total bobot O(n),
sehingga kompleksitas waktu O(n.2n ))
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
21 / 24
Contoh Pencarian Exhaustive
Beberapa contoh lainnya
Permasalahan tugas → mencari jumlah minimum waktu seseorang
dalam menyelesaikan beberapa tugasnya, sehingga efisiensi menjadi
prioritas utama.
Pencarian DFS (Depth-First Search) → pencarian berdasarkan
kedalamannya.
Pencarian BFS (Breadth-First Search) → pencarian berdasarkan
penyebarannya (atau levelnya).
Beberapa permasalahan exhaustive tidak dapat diselesaikan secara
polinomial, sehingga ini adalah permasalahan NP
(Non-deterministic Polynomial)
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
22 / 24
Catatan
Seluruh materi presentasi dapat didownload pada SIAKAD
masing-masing atau link berikut :
https://sites.google.com/site/elsenronandosite/teaching
Klik
.
Apabila ada pertanyaan mengenai desain analisa algoritma dapat
mengirim ke alamat email berikut : elsen.ronando@untag-sby.ac.id.
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
23 / 24
Terimakasih Atas Perhatiaanya
Elsen Ronando, S.Si.,M.Si.,M.Sc. (UNTAG)
Desain Analisa Algoritma : Brute Force
2016
24 / 24