Anda di halaman 1dari 28

Algoritma Brute

Force & Algoritma


Greedy

Kelompok 2

Cicilia Indriana Sari


Desy Atika Sari
Devi Liana
Ranny Vania Hastuti

(52414405)
(52414795)
(52414843)
(5D414318)

ALGORITMA BRUTE
FORCE

DEFINISI ALGORITMA BRUTE


FORCE
Brute force adalah sebuah pendekatan yang langsung
(straightforward) untuk memecahkan suatu masalah,
biasanya didasarkan pada pernyataan masalah (problem
statement) dan definisi konsep yang dilibatkan.

Algoritma brute force memecahkan masalah dengan


sangat sederhana, langsung dan dengan cara yang jelas
(obvious way).

CONTOH-CONTOH BRUTE FORCE


1. Menghitung an (a > 0, n adalah bilangan
bulat tak-negatif)
an = a x a x x a (n kali) , jika n > 0
=1
, jika n = 0
Algoritma: kalikan 1 dengan a sebanyak n
kali

2. Menghitung n! (n bilangan bulat taknegatif)


n! = 1 2 3 n, jika n > 0
=1
, jika n = 0
Algoritma: kalikan n buah bilangan, yaitu
1, 2, 3, , n, bersama-sama

3.

Mengalikan dua buah matrik yang


berukuran n n

Misalkan C = A B dan elemen-elemen matrik


dinyatakan sebagai cij, aij, dan bij

Algoritma: hitung setiap elemen hasil perkalian satu


per satu, dengan cara mengalikan dua vektor yang
panjangnya n.

Karakteristik Algoritma
Brute Force
1. Algoritma brute force umumnya tidak cerdas dan tidak

mangkus, karena ia membutuhkan jumlah langkah yang besar


dalam penyelesaiannya. Kadang-kadang algoritma brute force
disebut juga algoritma naif (nave 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
daripada
ketidakmangkusannya.
Algoritma brute force sering digunakan sebagai basis bila
membandingkan beberapa alternatif algoritma yang
mangkus.

4. Algoritma

brute
force
seringkali
lebih
mudah
diimplementasikan daripada algoritma yang lebih canggih,
dan karena kesederhanaannya, kadang-kadang algoritma
brute force dapat lebih mangkus (ditinjau dari segi
implementasi).

ALGORITMA GREEDY

DEFINISI ALGORITMA GREEDY


Algoritma Greedy adalah algoritma yang menggunakan pendekatan
penyelesaian masalah dengan mencari nilai maksimum sementara
dalam setiap langkahnya atau local maxium.

Algoritma greedy biasanya memberikan solusi yang mendekati nilai


optimum dalam waktu yang cukup cepat. Metode ini banyak
digunakan dalam berbagai penyelesaian masalah, antara lain adalah :
Optimal
Minimum
Storage on
Knapsack
Spanning
Tapes
Problem
Tree
Problem
Problem

Optimal Storage on Tapes Problem


Bagaimana mengoptimalkan
penyimpanan, agar data yang disimpan
dapat termuat dengan optimal.
Bagaimana susunan yang harus dibentuk
Proses pemecahannya

1. Tentukan nilai panjang data (L), waktu penyimpanan (t) dan waktu
rata-rata (MRT) jika ada

2. Tentukan urutan penyimpanan datanya


3. Hitung total penyimpanan (jika

ada
kapasitas
penyimpanan maka total tidak boleh melebihi)

media

4. Pilih total yang minimum (sesuai dengan unsur efisiensi dan


efektifitas)

Diketahui 3 program yang akan disimpan dalam media penyimpanan


dengan panjang masing-masing 5, 10, dan 3. Bagaimana proses
penyimpanan yang optimal dengan metode greedy ?
Jawab :

Ket. No:1 : Order 1 = 5


Order 1, 2 =5+10
Order 1,2,3 = 5+10+3
Jadi
Total
Order
1,2,3
5+(5+10)+(5+10+3)

Dari tabel tersebut, didapat Susunan / order yg


optimal,sbb :
Susunan pertama untuk program ketiga
Susunan kedua untuk program kesatu
Susunan ketiga untuk program kedua

Knapsack Problem
Knapsack problem adalah suatu masalah bagaimana cara
menentukan pemilihan barang dari sekumpulan barang di
mana setiap barang tersebut mempunyai berat dan profit
masing masing, sehingga dari pemilihan barang tersebut
didapatkan profit yang maksimum.

Knapsack 0/1
Knapsack 0/1, yaitu suatu objek diambil seluruh bagiannya atau tidak sama

sekali.
Cara terbaik agar menguntungkan : bukan hanya dari hasilnya optimal
tetapi juga banyaknya langkah yang dibutuhkan
Diberikan n buah objek dan sebuah knapsack dengan kapasitas bobot W.
Setiap objek
memiliki properti bobot (weigth) wi dan keuntungan(profit)
pi.
Persoalan adalah memilih memilih objek-objek yang dimasukkan ke
dalam
knapsack sedemikian sehingga memaksimumkan keuntungan.
Total bobot objek yang dimasukkan ke dalam knapsack tidak
boleh melebihi kapasitas knapsack.

Solusi persoalan dinyatakan sebagai vektor n-tupel:


X = {x1, x2, , xn}
Ket : xi = 1 jika objek ke-i dimasukkan ke dalam knapsack,
xi = 0 jika objek ke-i tidak dimasukkan.

Persoalan 0/1 Knapsack dapat kita pandang :


Sebagai
mencari
himpunan
bagian
(subset)
dari
keseluruhan objek yang muat ke dalam knapsack dan
memberikan total keuntungan terbesar.

1.

Greedy by profit.
2. Greedy by weight.
Pada setiap langkah, pilih
- Pada setiap langkah, pilih
objek yang
objek yang
mempunyai keuntungan
mempunyai berat teringan.
terbesar.
Mencoba memaksimumkan
Mencoba memaksimumkan
keuntungan
keuntungan
dengan
dengan
dengan memilih objek yang
memasukkan
sebanyak
paling
mungkin objek ke dalam
knapsack.
menguntungkan
terlebih
3. Greedy
by density.
dahulu.
- Pada setiap langkah, knapsack
diisi dengan objek yang
mempunyai pi /wi terbesar.
- Mencoba memaksimumkan
keuntungan dengan memilih
objek yang mempunyai
keuntungan per unit berat
terbesar.

Contoh
w1 = 2; p1 = 12;

w2 = 5;

w3 = 10; p1 = 50; w4 = 5;
Kapasitas knapsack K = 16

p1 = 15;
p1 = 10

Solusi optimal: X = (0, 1,

1, 0)
Greedy by profit dan
greedy by density
memberikan solusi
optimal

Minimum Spanning Tree Problem


Permasalahan umum dari minimum spanning tree adalah
mencari minimum biaya (cost) spanning tree dari setiap
ruas (edge) suatu graph yang membentuk pohon (tree).
Dalam mendapatkan solusi yang diharapkan maka akan
dipilih
ruas
menurut
kriteria
optimisasi
yang
menghasilkan
biaya
minimum.
Dengan
demikian
penambahan jumlah biayanya relatif kecil dari setiap ruas
yang telah terpilih dan membentuk spanning tree.

Untuk masalah minimum spanning tree, syarat graph dapat


dicari minimum spanning treenya adalah :
Graph harus terhubung
Ruasnya punya bobot / nilai
Graphnya tidak berarah

Algoritma yang dapat dipakai untuk menentukan minimum


spanning tree adalah :

Algoritma
Solin

Algoritma
Kruskal

Algoritma Solin
Urutkan Ruas Graf (G) menurut bobotnya dari bobot yang
terbesar sampai bobotyang terkecil.
Lakukan penghapusan masing-masing ruas yang tidak
menyebabkan graf menjaditidak terhubung atau
membentuk sirkuit.

Algoritma Kruskal
Mula-mula kita buat Graf G hanya terdiri dari simpul saja.
Urutkan Ruas dari bobot kecil ke besar.
Berdasarkan urutan tersebut, kita tambahkan ruas
dengan
mencegah terbentuknya sirkuit.

Minimun Spanning
Tree =
12+7+7+6+6+5 =
43

Lintasan Terpendek (Shortest


Path)
Beberapa macam persoalan lintasan terpendek:
Lintasan terpendek antara dua buah simpul tertentu
(a pair shortest path).
Lintasan terpendek antara semua pasangan simpul
(all pairs shortest path).
Lintasan terpendek dari simpul tertentu ke semua
simpul yang lain (single-source shortest path).
Lintasan terpendek antara dua buah simpul yang
melalui beberapa simpul tertentu (intermediate
shortest path).

Persoalan:
Diberikan graf berbobot G = (V, E). Tentukan lintasan
terpendek dari sebuah simpul asal a ke setiap simpul lainnya di
G.
Asumsi yang kita buat adalah bahwa semua sisi berbobot positif.
Strategi greedy:
Lintasan dibentuk satu per satu. Lintasan berikutnya yang
dibentuk ialah lintasan yang meminimumkan jumlah jaraknya.

45
1

50
40

20

15

10

15

10

20

35
30

DAFTAR PUSTAKA
https://
www.academia.edu/9035957/Makalah_Algoritma_Greedy_K
elas_3IA11

http://ana.staff.gunadarma.ac.id

Anda mungkin juga menyukai