Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web...

39
Algoritma Brute Force (lanjutan) Strategi Algoritma Universitas Ahmad Dahlan

Transcript of Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web...

Page 1: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Algoritma Brute Force (lanjutan)

Strategi Algoritma Universitas Ahmad Dahlan

Page 2: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Contoh-contoh lainContoh-contoh lain

1. Pencocokan String1. Pencocokan String (String Matching) (String Matching)

Persoalan: Diberikan Persoalan: Diberikan a. teks (a. teks (texttext), yaitu (), yaitu (longlong) ) stringstring yang yang

panjangnya panjangnya nn karakter karakterb. b. patternpattern, yaitu , yaitu stringstring dengan panjang dengan panjang mm

karakter (karakter (mm < < nn) yang akan dicari di dalam) yang akan dicari di dalam teks. teks.

Carilah lokasi pertama di dalam teks yang Carilah lokasi pertama di dalam teks yang bersesuaian dengan bersesuaian dengan patternpattern. .

Page 3: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Algoritma Algoritma brute forcebrute force::

1.1. Mula-mula Mula-mula patternpattern dicocokkan pada awal teks. dicocokkan pada awal teks.

2.2. Dengan bergerak dari kiri ke kanan, bandingkan Dengan bergerak dari kiri ke kanan, bandingkan setiap karakter di dalam setiap karakter di dalam patternpattern dengan karakter dengan karakter yang bersesuaian di dalam teks sampai:yang bersesuaian di dalam teks sampai:

• semua karakter yang dibandingkan cocok atau sama semua karakter yang dibandingkan cocok atau sama (pencarian berhasil), atau (pencarian berhasil), atau

• dijumpai sebuah ketidakcocokan karakter (pencarian dijumpai sebuah ketidakcocokan karakter (pencarian belum berhasil)belum berhasil)

3.3. Bila Bila patternpattern belum ditemukan kecocokannya dan belum ditemukan kecocokannya dan teks belum habis, geser teks belum habis, geser patternpattern satu karakter ke satu karakter ke kanan dan ulangi langkah 2.kanan dan ulangi langkah 2.

Page 4: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Contoh 1:Contoh 1:PatternPattern: : NOTNOTTeks: Teks: NOBODY NOTICED HIMNOBODY NOTICED HIM NOBODY NOBODY NOTNOTICED HIMICED HIM1 NOT1 NOT2 NOT2 NOT3 NOT3 NOT4 NOT4 NOT5 NOT5 NOT6 NOT6 NOT7 NOT 7 NOT 8 8 NOTNOT

Page 5: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Contoh 2:Contoh 2:PatternPattern: 001011: 001011Teks: 10010101Teks: 10010101001011001011110101010001110101010001 10010101100101010010110010111101010100011101010100011 0010111 0010112 0010112 0010113 0010113 0010114 0010114 0010115 0010115 0010116 0010116 0010117 0010117 0010118 0010118 0010119 9 001011001011

Page 6: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

procedure PencocokanString(input P : string, T : string, n, m : integer, output idx : integer) { Masukan: pattern P yang panjangnya m dan teks T yang panjangnya n. Teks T direpresentasika sebagai string (array of character) Keluaran: lokasi awal kecocokan (idx) } Deklarasi i : integer ketemu : boolean Algoritma: i0 ketemufalse while (i n-m) and (not ketemu) do j1 while (j m) and (Pj = Ti+j ) do jj+1 endwhile { j > m or Pj Ti+j } if j = m then { kecocokan string ditemukan } ketemutrue else ii+1 {geser pattern satu karakter ke kanan teks } endif endfor { i > n – m or ketemu } if ketemu then idxi+1 else idx-1 endif

Kompleksitas algoritma: O(nm) pada kasus terburuk O(n) pada kasus rata-rata.

Page 7: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

2. Mencari Pasangan Titik yang 2. Mencari Pasangan Titik yang Jaraknya TerdekatJaraknya Terdekat

PersoalanPersoalan: Diberikan : Diberikan nn buah titik (2-D atau 3- buah titik (2-D atau 3-D), tentukan dua buah titik yang terdekat satu D), tentukan dua buah titik yang terdekat satu sama lain.sama lain.

p1

p2

p3

p4

p5

p6

p7

p8

x

y

Page 8: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Jarak dua buah titik di bidang 2-D, Jarak dua buah titik di bidang 2-D, pp11 = ( = (xx11, , yy11) ) dan dan pp22 = ( = (xx22, , yy22) adalah (rumus Euclidean):) adalah (rumus Euclidean):

Algoritma Algoritma brute forcebrute force::1.1. Hitung jarak setiap pasang titik.Hitung jarak setiap pasang titik.2.2. Pasangan titik yang mempunyai jarak terpendek Pasangan titik yang mempunyai jarak terpendek

itulah jawabannya. itulah jawabannya.

Algoritma Algoritma brute forcebrute force akan menghitung sebanyak akan menghitung sebanyak CC((nn, 2) = , 2) = nn((nn – 1)/2 pasangan titik dan memilih – 1)/2 pasangan titik dan memilih pasangan titik yang mempunyai jarak terkecil. pasangan titik yang mempunyai jarak terkecil.

Kompleksitas algoritma adalah Kompleksitas algoritma adalah OO((nn22). ).

2

21

2

21)()( yyxxd

Page 9: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

procedure CariDuaTitikTerdekat(input P : SetOfPoint, n : integer, output P1, P2 : Point) { Mencari dua buah titik di dalam himpunan P yang jaraknya terdekat. Masukan: P = himpunan titik, dengan struktur data sebagai berikut type Point = record(x : real, y : real) type SetOfPoint = array [1..n] of Point Keluaran: dua buah titik, P1 dan P2 yang jaraknya terdekat. } Deklarasi d, dmin : real i, j : integer Algoritma: dmin9999 for i1 to n-1 do for ji+1 to n do d((Pi.x-Pj.x)2 + ((Pi.y-Pj.y)2) if d < dmin then { perbarui jarak terdekat } dmind P1Pi P2Pj endif endfor endfor

Kompleksitas algoritma: O(n2).

Page 10: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Kekuatan dan Kelemahan Kekuatan dan Kelemahan Metode Metode Brute ForceBrute Force

Kekuatan:Kekuatan:

1.1. Metode Metode brute forcebrute force dapat digunakan untuk memecahkan dapat digunakan untuk memecahkan hampir sebagian besar masalah (hampir sebagian besar masalah (wide applicabilitywide applicability). ).

2.2. Metode Metode brute forcebrute force sederhana dan mudah dimengerti. sederhana dan mudah dimengerti.

3.3. Metode Metode brute force brute force menghasilkan algoritma yang layak menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan pengurutan, pencocokan stringstring, perkalian matriks., perkalian matriks.

4.4. Metode Metode brute forcebrute force menghasilkan algoritma baku menghasilkan algoritma baku (standard) untuk tugas-tugas komputasi seperti (standard) untuk tugas-tugas komputasi seperti penjumlahan/perkalian penjumlahan/perkalian nn buah bilangan, menentukan buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel (elemen minimum atau maksimum di dalam tabel (listlist).).

Page 11: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Kelemahan:Kelemahan:1.1. Metode Metode brute forcebrute force jarang menghasilkan jarang menghasilkan

algoritma yang mangkus.algoritma yang mangkus.

2.2. Beberapa algoritma Beberapa algoritma brute forcebrute force lambat lambat sehingga tidak dapat diterima.sehingga tidak dapat diterima.

3.3. Tidak sekontruktif/sekreatif teknik pemecahan Tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya.masalah lainnya.

Ken Thompson (salah seorang penemu Unix) Ken Thompson (salah seorang penemu Unix) mengatakan: “mengatakan: “When in doubt, use brute forceWhen in doubt, use brute force”, ”, faktanya kernel Unix yang asli lebih menyukai faktanya kernel Unix yang asli lebih menyukai algoritma yang sederhana dan kuat (algoritma yang sederhana dan kuat (robustrobust) ) daripada algoritma yang cerdas tapi rapuh.daripada algoritma yang cerdas tapi rapuh.

Page 12: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Exhaustive SearchExhaustive SearchExhaustive searchExhaustive search adalah adalah teknik pencarian solusi secara solusi teknik pencarian solusi secara solusi brute brute

forceforce untuk masalah yang melibatkan untuk masalah yang melibatkan pencarian elemen dengan sifat khusus;pencarian elemen dengan sifat khusus;

biasanya di antara objek-objek biasanya di antara objek-objek kombinatorik seperti permutasi, kombinatorik seperti permutasi, kombinasi, atau himpunan bagian dari kombinasi, atau himpunan bagian dari sebuah himpunan. sebuah himpunan.

Page 13: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Langkah-langkah metode Langkah-langkah metode exhaustiveexhaustive searchsearch::

1.1. Enumerasi (Enumerasi (listlist) setiap solusi yang mungkin dengan cara ) setiap solusi yang mungkin dengan cara yang sistematis.yang sistematis.

2.2. Evaluasi setiap kemungkinan solusi satu per satu, Evaluasi setiap kemungkinan solusi satu per satu, mungkin saja beberapa kemungkinan solusi yang tidak mungkin saja beberapa kemungkinan solusi yang tidak layak dikeluarkan, dan simpan solusi terbaik yang layak dikeluarkan, dan simpan solusi terbaik yang ditemukan sampai sejauh ini (ditemukan sampai sejauh ini (the best solusi found so farthe best solusi found so far).).

3.3. Bila pencarian berakhir, umumkan solusi terbaik (Bila pencarian berakhir, umumkan solusi terbaik (the the winnerwinner))

Meskipun algoritma Meskipun algoritma exhaustiveexhaustive secara teoritis secara teoritis menghasilkan solusi, namun waktu atau sumberdaya menghasilkan solusi, namun waktu atau sumberdaya yang dibutuhkan dalam pencarian solusinya sangat besar.yang dibutuhkan dalam pencarian solusinya sangat besar.

Page 14: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Contoh-contoh Contoh-contoh exhaustive searchexhaustive search

1. Travelling Salesperson Problem (TSP)1. Travelling Salesperson Problem (TSP)

Persoalan: Diberikan Persoalan: Diberikan nn buah kota serta buah kota serta diketahui jarak antara setiap kota satu sama diketahui jarak antara setiap kota satu sama lain. Temukan perjalanan (lain. Temukan perjalanan (tourtour) terpendek yang ) terpendek yang melalui setiap kota lainnya hanya sekali dan melalui setiap kota lainnya hanya sekali dan kembali lagi ke kota asal keberangkatan. kembali lagi ke kota asal keberangkatan.

Persoalan Persoalan TSPTSP tidak lain adalah menemukan tidak lain adalah menemukan sirkuit Hamilton dengan bobot minimum. sirkuit Hamilton dengan bobot minimum.

Page 15: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Algoritma Algoritma exhaustive search exhaustive search untuk untuk persoalan TSP:persoalan TSP:

1.1. Enumerasikan (Enumerasikan (listlist) semua sirkuit ) semua sirkuit Hamilton dari graf lengkap dengan Hamilton dari graf lengkap dengan nn buah simpul.buah simpul.

2.2. Hitung (evaluasi) bobot setiap sirkuit Hitung (evaluasi) bobot setiap sirkuit Hamilton yang ditemukan pada langkah Hamilton yang ditemukan pada langkah 1.1.

3.3. Pilih sirkuit Hamilton yang mempunyai Pilih sirkuit Hamilton yang mempunyai bobot terkecil.bobot terkecil.

Page 16: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Contoh 4Contoh 4: : TSP dengan TSP dengan nn = 4, simpul awal = = 4, simpul awal = aa

a b

cd

12

8

15

1095

Rute perjalananan terpendek adalah acbda adbca dengan bobot = 32.

No. Rute perjalanan (tour) Bobot 1. 2. 3. 4. 5. 6

a b c d a a b d c a a c b d a a c d b a a d b c a a d c b a

10+12+8+15 = 45 12+5+9+15 = 41 10+5+9+8 = 32 12+5+9+15 = 41 10+5+9+8 = 32 10+12+8+15 = 45

Page 17: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Untuk Untuk nn buah simpul semua rute perjalanan yang buah simpul semua rute perjalanan yang mungkin dibangkitkan dengan permutasi dari mungkin dibangkitkan dengan permutasi dari nn – – 1 buah simpul. 1 buah simpul.

Permutasi dari Permutasi dari nn – 1 buah simpul adalah – 1 buah simpul adalah

((nn – 1)! – 1)!

Pada contoh di atas, untuk Pada contoh di atas, untuk nn = 6 akan terdapat = 6 akan terdapat

(4 – 1)! = 3! = 6(4 – 1)! = 3! = 6 buah rute perjalanan. buah rute perjalanan.

Page 18: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Jika diselesaikan dengan metode Jika diselesaikan dengan metode exhaustive exhaustive searchsearch, maka kita harus mengenumerasi , maka kita harus mengenumerasi sebanyak (sebanyak (nn – 1)! buah sirkuit Hamilton, – 1)! buah sirkuit Hamilton, menghitung setiap bobotnya, dan memilih sirkuit menghitung setiap bobotnya, dan memilih sirkuit Hamilton dengan bobot terkecil. Hamilton dengan bobot terkecil.

Kompleksitas waktu algoritma Kompleksitas waktu algoritma exhaustive searchexhaustive search untuk persoalan TSP sebanding dengan (untuk persoalan TSP sebanding dengan (nn – 1)! – 1)! dikali dengan waktu untuk menghitung bobot dikali dengan waktu untuk menghitung bobot setiap sirkuit Hamilton. setiap sirkuit Hamilton.

Menghitung bobot setiap sirkuit Hamilton Menghitung bobot setiap sirkuit Hamilton membutuhkan waktu membutuhkan waktu OO((nn), sehingga ), sehingga kompleksitas waktu algoritma kompleksitas waktu algoritma exhaustive searchexhaustive search untuk persoalan TSP adalah untuk persoalan TSP adalah OO((nn nn!). !).

Page 19: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Perbaikan: setengah dari rute Perbaikan: setengah dari rute perjalanan adalah hasil pencerminan perjalanan adalah hasil pencerminan dari setengah rute yang lain, yakni dari setengah rute yang lain, yakni dengan mengubah arah rute dengan mengubah arah rute perjalananperjalanan

1 dan 61 dan 62 dan 42 dan 43 dan 53 dan 5

Page 20: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

maka dapat dihilangkan setengah dari maka dapat dihilangkan setengah dari jumlah permutasi (dari 6 menjadi 3). jumlah permutasi (dari 6 menjadi 3).

Ketiga buah sirkuit Hamilton yang Ketiga buah sirkuit Hamilton yang dihasilkan adalah seperti gambar di bawah dihasilkan adalah seperti gambar di bawah ini:ini:

a b

cd

12

8

15

10

a b

cd

12

15

95

a b

cd

81095

Page 21: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Dengan demikian, untuk graf dengan Dengan demikian, untuk graf dengan nn buah simpul, kita hanya perlu buah simpul, kita hanya perlu mengevaluasi sirkuit Hamilton sebanyakmengevaluasi sirkuit Hamilton sebanyak

((nn – 1)!/2 buah. – 1)!/2 buah.

Untuk ukuran masukan yang besar, Untuk ukuran masukan yang besar, algoritma algoritma exhaustive searchexhaustive search menjadi menjadi sangat tidak mangkus. sangat tidak mangkus.

Pada persoalan Pada persoalan TSPTSP misalnya, untuk jumlah misalnya, untuk jumlah simpul simpul nn = 20 akan terdapat (19!)/2 = 6 = 20 akan terdapat (19!)/2 = 6 1016 sirkuit Hamilton yang harus dievaluasi 1016 sirkuit Hamilton yang harus dievaluasi satu per satu. satu per satu.

Page 22: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Sayangnya, untuk persoalan TSP Sayangnya, untuk persoalan TSP tidak ada algoritma lain yang lebih tidak ada algoritma lain yang lebih baik daripada algoritma baik daripada algoritma exhaustive exhaustive searchsearch. .

Jika anda dapat menemukan Jika anda dapat menemukan algoritma yang mangkus untuk TSP, algoritma yang mangkus untuk TSP, anda akan menjadi terkenal dan anda akan menjadi terkenal dan kaya! Algoritma yang mangkus kaya! Algoritma yang mangkus selalu mempunyai kompleksitas selalu mempunyai kompleksitas waktu dalam orde polinomial.waktu dalam orde polinomial.

Page 23: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

2. 1/0 Knapsack2. 1/0 Knapsack

Persoalan:Persoalan: Diberikan Diberikan nn buah objek dan sebuah buah objek dan sebuah knapsackknapsack dengan kapasitas bobot dengan kapasitas bobot KK. Setiap objek memiliki properti . Setiap objek memiliki properti bobot (bobot (weigthweigth) ) wwii dan keuntungan(dan keuntungan(profitprofit) ) ppii. .

Bagaimana memilih memilih objek-objek yang Bagaimana memilih memilih objek-objek yang dimasukkan ke dalam dimasukkan ke dalam knapsack knapsack sedemikian sehingga sedemikian sehingga memaksimumkan keuntungan. Total bobot objek yang memaksimumkan keuntungan. Total bobot objek yang dimasukkan ke dalam dimasukkan ke dalam knapsackknapsack tidak boleh melebihi tidak boleh melebihi kapasitas kapasitas knapsackknapsack. .

Persoalan 0/1 Persoalan 0/1 KnapsackKnapsack dapat kita pandang sebagai dapat kita pandang sebagai mencari himpunan bagian (mencari himpunan bagian (subsetsubset) dari keseluruhan ) dari keseluruhan objek yang muat ke dalam objek yang muat ke dalam knapsackknapsack dan memberikan dan memberikan total keuntungan terbesar. total keuntungan terbesar.

Page 24: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Solusi persoalan dinyatakan sebagai Solusi persoalan dinyatakan sebagai vektor vektor nn-tupel:-tupel:

XX = { = {xx11, , xx22, …, , …, xxnn}}

xxii = 1 jika objek ke- = 1 jika objek ke-ii dimasukkan ke dimasukkan ke dalam dalam knapsackknapsack, ,

xxii = 0 jika objek ke- = 0 jika objek ke-ii tidak tidak dimasukkan. dimasukkan.

Page 25: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Formulasi secara matematis: Formulasi secara matematis:

Maksimasi F =

n

iii

xp1

dengan kendala (constraint)

Kxwn

iii

1

yang dalam hal ini, xi = 0 atau 1, i = 1, 2, …, n

Page 26: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Algoritma Algoritma exhaustive searchexhaustive search untuk untuk persoalan 0/1 persoalan 0/1 KnapsackKnapsack::

1. Enumerasikan (1. Enumerasikan (listlist) semua himpunan ) semua himpunan bagian dari himpunan dengan n objek. bagian dari himpunan dengan n objek.

2. Hitung (evaluasi) total keuntungan dari2. Hitung (evaluasi) total keuntungan dari setiap himpunan bagian dari langkah 1.setiap himpunan bagian dari langkah 1.

3. Pilih himpunan bagian yang memberikan3. Pilih himpunan bagian yang memberikan total keuntungan terbesar.total keuntungan terbesar.

Page 27: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

ContohContoh: : nn = 4. = 4. ww11 = 2; = 2; pp11 = 20 = 20ww22 = 5; = 5; pp22 = 30 = 30ww33 = 10; = 10; pp33 = 50 = 50ww44 = 5; = 5; pp44 = 10 = 10Kapasitas Kapasitas knapsackknapsack KK = 16 = 16

Langkah-langkah pencarian solusi 0/1 Langkah-langkah pencarian solusi 0/1 KnapsackKnapsack secara secara exhaustive searchexhaustive search dirangkum dalam tabel di bawah ini:dirangkum dalam tabel di bawah ini:

Page 28: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Himpunan Bagian Total Bobot Total keuntungan {} {1} {2} {3} {4} {1, 2} {1, 3} {1, 4} {2, 3} {2, 4} {3, 4} {1, 2, 3} {1, 2, 4} {1, 3, 4} {2, 3, 4} {1, 2, 3, 4}

0 2 5 10 5 7 12 7 15 10 15 17 12 17 20 22

0 20 30 50 10 50 70 30 80 40 60 tidak layak 60 tidak layak tidak layak tidak layak

• Himpunan bagian objek yang memberikan keuntungan maksimum adalah {2, 3} dengan total keuntungan adalah 80. • Solusi: X = {0, 1, 1, 0}

Page 29: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Berapa banyak himpunan bagian dari sebuah Berapa banyak himpunan bagian dari sebuah himpunan dengan himpunan dengan nn elemen? Jawabnya adalah 2 elemen? Jawabnya adalah 2nn. .

Waktu untuk menghitung total bobot objek yang Waktu untuk menghitung total bobot objek yang dipilih = dipilih = OO((nn))

Sehingga, Kompleksitas algoritma Sehingga, Kompleksitas algoritma exhaustive exhaustive searchsearch untuk persoalan 0/1 untuk persoalan 0/1 KnapsackKnapsack = = OO((nn. 2. 2nn). ).

TSP dan 0/1 TSP dan 0/1 KnapsackKnapsack, adalah contoh persoalan , adalah contoh persoalan eksponensial. Keduanya digolongkan sebagai eksponensial. Keduanya digolongkan sebagai persoalan persoalan NPNP ( (Non-deterministic PolynomialNon-deterministic Polynomial), ), karena tidak mungkin dapat ditemukan algoritma karena tidak mungkin dapat ditemukan algoritma polinomial untuk memecahkannya. polinomial untuk memecahkannya.

Page 30: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Exhaustive Search Exhaustive Search dalam Bidang Kriptografidalam Bidang Kriptografi

Di dalam bidang kriptografi, Di dalam bidang kriptografi, exhaustive exhaustive searchsearch merupakan teknik yang digunakan merupakan teknik yang digunakan penyerang untuk menemukan kunci penyerang untuk menemukan kunci enkripsi dengan cara mencoba semua enkripsi dengan cara mencoba semua kemungkinan kunci. kemungkinan kunci.

Serangan semacam ini dikenal dengan Serangan semacam ini dikenal dengan nama nama exhaustive key search attackexhaustive key search attack atau atau brute force attackbrute force attack. .

Page 31: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Contoh: Panjang kunci enkripsi pada algoritma Contoh: Panjang kunci enkripsi pada algoritma DESDES ( (Data Encryption StandardData Encryption Standard) = 64 bit. ) = 64 bit.

Dari 64 bit tersebut, hanya 56 bit yang digunakan Dari 64 bit tersebut, hanya 56 bit yang digunakan (8 bit paritas lainnya tidak dipakai). (8 bit paritas lainnya tidak dipakai).

Jumlah kombinasi kunci yang harus dievaluasi Jumlah kombinasi kunci yang harus dievaluasi oleh pihak lawan adalah sebanyakoleh pihak lawan adalah sebanyak

(2)(2)(2)(2)(2) … (2)(2) = 2(2)(2)(2)(2)(2) … (2)(2) = 25656 = = 7.205.759.403.7927.9367.205.759.403.7927.936

Jika untuk percobaan dengan satu kunci Jika untuk percobaan dengan satu kunci memerlukan waktu 1 detik, maka untuk jumlah memerlukan waktu 1 detik, maka untuk jumlah kunci sebanyak itu diperlukan waktu komputasi kunci sebanyak itu diperlukan waktu komputasi kurang lebih selama 228.4931.317 tahun!kurang lebih selama 228.4931.317 tahun!

Page 32: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Meskipun algoritma Meskipun algoritma exhaustive exhaustive searchsearch tidak mangkus, namun – tidak mangkus, namun –sebagaimana ciri algoritma sebagaimana ciri algoritma brute brute forceforce pada umumnya– nilai plusnya pada umumnya– nilai plusnya terletak pada keberhasilannya yang terletak pada keberhasilannya yang selalu menemukan solusi (jika selalu menemukan solusi (jika diberikan waktu yang cukup). diberikan waktu yang cukup).

Page 33: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Mempercepat Algoritma Mempercepat Algoritma Exhaustive SearchExhaustive Search

Algoritma Algoritma exhaustive searchexhaustive search dapat diperbaiki dapat diperbaiki kinerjanya sehingga tidak perlu melakukan kinerjanya sehingga tidak perlu melakukan pencarian terhadap semua kemungkinan solusi.pencarian terhadap semua kemungkinan solusi.

Salah satu teknik yang digunakan untuk Salah satu teknik yang digunakan untuk

mempercepat pencarian solusi adalah teknik mempercepat pencarian solusi adalah teknik heuristikheuristik ( (heuristicheuristic). ).

Teknik heuristik digunakan untuk mengeliminasi Teknik heuristik digunakan untuk mengeliminasi beberapa kemungkinan solusi tanpa harus beberapa kemungkinan solusi tanpa harus mengeksplorasinya secara penuh. Selain itu, mengeksplorasinya secara penuh. Selain itu, teknik heuristik juga membantu memutuskan teknik heuristik juga membantu memutuskan kemungkinan solusi mana yang pertama kali kemungkinan solusi mana yang pertama kali perlu dievaluasi. perlu dievaluasi.

Page 34: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Heuristik adalah seni dan ilmu Heuristik adalah seni dan ilmu menemukan (menemukan (art and science of art and science of discoverydiscovery). ).

Kata heuristik diturunkan dari Bahasa Kata heuristik diturunkan dari Bahasa Yunani yaitu “Yunani yaitu “eurekaeureka” yang berarti ” yang berarti “menemukan” (“menemukan” (to findto find atau atau to discoverto discover). ).

Matematikawan Yunani yang bernama Matematikawan Yunani yang bernama Archimedes yang melontarkan kata Archimedes yang melontarkan kata ""heurekaheureka", dari sinilah kita menemukan ", dari sinilah kita menemukan kata “kata “eurekaeureka” yang berarti “” yang berarti “I have found I have found itit.”.”

Page 35: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Heuristik berbeda dari algoritma karena heuristik Heuristik berbeda dari algoritma karena heuristik berlaku sebagai panduan (berlaku sebagai panduan (guidelineguideline), sedangkan ), sedangkan algoritma adalah urutan langkah-langkah algoritma adalah urutan langkah-langkah penyelesaian. penyelesaian.

Heuristik mungkin tidak selalu memberikan hasil Heuristik mungkin tidak selalu memberikan hasil yang diinginkan, tetapi secara ekstrim ia bernilai yang diinginkan, tetapi secara ekstrim ia bernilai pada pemecahan masalah. pada pemecahan masalah.

Heuristik yang bagus dapat secara dramatis Heuristik yang bagus dapat secara dramatis mengurangi waktu yang dibutuhkan untuk mengurangi waktu yang dibutuhkan untuk memecahkan masalah dengan cara mengeliminir memecahkan masalah dengan cara mengeliminir kebutuhan untuk mempertimbangkan kebutuhan untuk mempertimbangkan kemungkinan solusi yang tidak perlu. kemungkinan solusi yang tidak perlu.

Page 36: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Heuristik tidak menjamin selalu Heuristik tidak menjamin selalu dapat memecahkan masalah, tetapi dapat memecahkan masalah, tetapi seringkali memecahkan masalah seringkali memecahkan masalah dengan cukup baik untuk dengan cukup baik untuk kebanyakan masalah, dan seringkali kebanyakan masalah, dan seringkali pula lebih cepat daripada pencarian pula lebih cepat daripada pencarian solusi secara lengkap. solusi secara lengkap.

Sudah sejak lama heuristik Sudah sejak lama heuristik digunakan secara intensif di dalam digunakan secara intensif di dalam bidang intelijensia buatan (bidang intelijensia buatan (artificial artificial intelligenceintelligence). ).

Page 37: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Contoh penggunaan heuristik untuk Contoh penggunaan heuristik untuk mempercepat algoritma exhaustive searchmempercepat algoritma exhaustive search

ContohContoh: Masalah : Masalah anagramanagram. . AnagramAnagram adalah penukaran huruf dalam sebuah adalah penukaran huruf dalam sebuah kata atau kalimat sehingga kata atau kata atau kalimat sehingga kata atau kalimat yang baru mempunyai arti lain. kalimat yang baru mempunyai arti lain.

Contoh-contoh Contoh-contoh anagramanagram (semua contoh (semua contoh dalam Bahasa Inggris):dalam Bahasa Inggris):

livedlived devildevilteatea eateatcharmcharm marchmarch

Page 38: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Bila diselesaikan secara Bila diselesaikan secara exhaustive searchexhaustive search, kita , kita harus mencari semua permutasi huruf-huruf harus mencari semua permutasi huruf-huruf pembentuk kata atau kalimat, lalu memerika pembentuk kata atau kalimat, lalu memerika apakah kata atau kalimat yang terbentuk apakah kata atau kalimat yang terbentuk mengandung arti. mengandung arti.

Teknik heuristik dapat digunakan untuk Teknik heuristik dapat digunakan untuk mengurangi jumlah pencarian solusi. Salah satu mengurangi jumlah pencarian solusi. Salah satu teknik heuristik yang digunakan misalnya teknik heuristik yang digunakan misalnya membuat aturan bahwa dalam Bahasa Inggris membuat aturan bahwa dalam Bahasa Inggris huruf huruf cc dan dan hh selalu digunakan berdampingan selalu digunakan berdampingan sebagai sebagai chch (lihat contoh (lihat contoh charmcharm dan dan marchmarch), ), sehingga kita hanya membuat permutasi huruf-sehingga kita hanya membuat permutasi huruf-huruf dengan huruf dengan cc dan dan hh berdampingan. Semua berdampingan. Semua permutasi dengan huruf permutasi dengan huruf cc dan dan hh tidak tidak berdampingan ditolak dari pencarian. berdampingan ditolak dari pencarian.

Page 39: Algoritma Brute Force (lanjutan) - Dimensi pembelajaran | Just … · PPT file · Web view2011-04-28 · ... sedangkan algoritma adalah urutan langkah-langkah penyelesaian. ... Kekuatan

Referensi Referensi Rinaldi Munir, 2010, Rinaldi Munir, 2010, Diktat Kuliah Strategi Diktat Kuliah Strategi

Algoritma Algoritma ITBITB Gilles Brassard, 1996, Gilles Brassard, 1996, Fundamental Of Fundamental Of

AlgoritmhAlgoritmh, Prentice Hall, New Jersey, Prentice Hall, New Jersey Cormen et al, 2009, Introduction to Cormen et al, 2009, Introduction to

Algorithms : thrid edition, MITAlgorithms : thrid edition, MIT