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
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
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.
Brute Force (Lanjutan)
Contoh
Perhitunganan, dimanaa>0 dan n adalah bilangan bulat tak negatif.
an=
(
a×...×a jikan >0
0 jikan = 0
Perhitungann!, dimanan adalah bilangan bulat tak negatif.
n! =
(
1×2×3×...×n jikan>0
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 :
Seleksi Pengurutan dan
Buble Sort
Algoritma Seleksi Pengurutan
Input: sebuah arrayA[0..n−1] elemen random
Output: ArrayA[0..n−1] diurutkan secaraascending
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 :
Seleksi Pengurutan dan
Buble Sort
Algoritma Buble Sort
Input: sebuah arrayA[0..n−1] elemen random
Output: ArrayA[0..n−1] diurutkan secaraascending
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.
Pencarian Sekuensial dan Pencocokan String
Algoritma Pencarian Sekuensial
Input: sebuah array dengannelemen random dan sebuah
data pencarianK
Output: Elemen indeks dari ArrayA[0..n−1] dimana
nilainya sama dengan K atau -1 bila tidak ditemukan
begin
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.
Pencarian Sekuensial dan Pencocokan String
Algoritma Pencocokan String
Input: sebuah arrayT[0,n−1] darinkarakter sebagai teks
sebuah arrayT[0,m−1] darimkarakter sebagai pola
Output: indeks dari karakter pertama dalam teks yang
cocok dengan pola atau−1 bila tidak cocok
begin
Best-Case: Ω(n).
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)
d(pi,pj) = q
(xi−xj)2+ (yi−yj)2
Permasalahan Pasangan Terdekat dan
Convex-Hull
Algoritma Pasangan Terdekat
Input: sebuah listPdarin(n≤2) poin
p1(x1,y1), ...,pn(xn,yn)
Output: Jarak terdekat diantara koordinat
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 Memilih titik pertama.
2 Memilih titik berikutnya, berdasarkan definisi :
Jika dibuat garis dengan titik sebelumnya maka seluruh titik lainnya tidak ada yang berada disebelah kiri.
Permasalahan Pasangan Terdekat dan
Convex-Hull
Contoh Convex-Hull
Kompleksitas Waktu
Best-Case : Ω(mn).
Pencarian Exhaustive
Definisi
Teknik pencarian solusi secarabrute 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.
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.
Contoh Pencarian Exhaustive
Travelling Salesman Problem (TSP)
Darin 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 pencarianexhaustive.
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 kapasitasknapsack.
Dengan kata lain, mencari himpunan bagian dari keseluruhan obyek
yang muat masuk kedalamknapsack dengan keuntungan yang
maksimal.
Solusi permasalahan ini dalamn-tupel :
x ={x1,x2, ...,xn}
dimana, xi = 1 jika obyek ke-i dimasukkan ke dalam knapsack dan
Contoh Pencarian Exhaustive
dengan kendala :
n
w4= 5; p4 = 10 dengan kapasitas knapsackK = 16. Tentukan solusi dari
keuntungan maksimumnya ! (2n: himpunan bagian dan total bobot O(n),
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
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