1 / 59

Design and Analysis of Algorithm Brute Force and Exhaustive Search Algorithm

Design and Analysis of Algorithm Brute Force and Exhaustive Search Algorithm. Aryo Pinandito, ST, M.MT - PTIIK UB. Brute Force Algorithm. Definisi Brute Force.

binah
Download Presentation

Design and Analysis of Algorithm Brute Force and Exhaustive Search Algorithm

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Design and Analysis of AlgorithmBrute Force and Exhaustive Search Algorithm Aryo Pinandito, ST, M.MT - PTIIK UB

  2. Brute Force Algorithm

  3. Definisi Brute Force • Brute force adalahsebuahpendekatan yang lempang (straightforward) untukmemecahkansuatumasalah, biasanyadidasarkanpadapernyataanmasalah (problem statement) dandefinisikonsep yang dilibatkan. • Algoritmabrute force memecahkanmasalahdengansangatsederhana, langsungdandengancara yang jelas (obvious way).

  4. Contoh-contoh Brute Force • Menghitung an (a > 0, n adalahbilanganbulattak-negatif) an = a × a × … × a (n kali) , jika n > 0 = 1 , jika n = 0 • Algoritma: kalikan 1 dengan a sebanyak n kali

  5. Contoh-contoh Brute Force (2) • Menghitung n! (n bilanganbulattak-negatif) n! = 1 × 2 × 3 × … × n , jika n > 0 = 1 , jika n = 0 • Algoritma: kalikan n buahbilangan, yaitu 1, 2, 3, …, n, bersama-sama

  6. 3. Mengalikanduabuahmatrik yang berukurann×n. Misalkan C = A × B danelemen-elemenmatrikdinyatakansebagaicij, aij, danbij Algoritma: hitungsetiapelemenhasilperkaliansatu per satu, dengancaramengalikanduavektor yang panjangnya n. Contoh-contoh Brute Force (3)

  7. PerkalianMatriks Adakah algoritma perkalian matriks yang lebih mangkus daripada brute force?

  8. PencarianNilaiFaktordariBilangan • Menemukansemuafaktordaribilanganbulat n selaindari 1 dan n itusendiri. • Definisi: Bilanganbulat a adalahfaktordaribilanganbulat b jika a habismembagi b.

  9. PencarianNilaiFaktordariBilangan Adakahalgoritmapemfaktoran yang lebihbaikdaripadabrute force?

  10. MencariElemenTerbesar(atauTerkecil) • Persoalan: Diberikansebuahhimpunan yang beranggotakan n buahbilanganbulat. • Bilangan-bilanganbulattersebutdinyatakansebagai a1, a2, …, an. • Carilahelementerbesar di dalamhimpunantersebut!

  11. MencariElemenTerbesar Kompleksitasalgoritmainiadalah O(n).

  12. Sequential Search • Persoalan: Diberikan n buahbilanganbulat yang dinyatakansebagai a1, a2, …, an. • Carilahapakah x terdapat di dalamhimpunanbilanganbulattersebut! • Jika x ditemukan, makalokasi (indeks) elemen yang bernilai x disimpan di dalamvariabelidx. Jika x tidakterdapat di dalamhimpunantersebut, makaidxdiisidengannilai 0.

  13. Sequential Search Kompleksitasalgoritmainiadalah O(n).

  14. Bubble Sort • Apametode yang paling lempang (to the point) dalammemecahkanmasalahpengurutan? • Jawabnyaadalahalgoritmapengurutan bubble sort. • Algoritma bubble sort mengimplementasikanteknik brute force denganjelassekali.

  15. Bubble Sort Kompleksitasalgoritmainiadalah O(n2). Adakahalgoritmapengurutanelemenelemen yang lebihmangkusdaripadabrute force?

  16. UjiKeprimaan • Persoalan: • Diberikansebuahbilanganbilanganbulatpositif. Ujilahapakahbilangantersebutmerupakanbilangan prima ataubukan.

  17. UjiKeprimaan Adakahalgoritmapengujianbilangan prima yang lebihmangkusdaripadabrute force?

  18. KarakteristikAlgoritmaBrute Force • Algoritmabrute forceumumnyatidak"cerdas"dantidakmangkus, karenaiamembutuhkanjumlahlangkah yang besardalampenyelesaiannya. Kadang-kadangalgoritmabrute force disebutjugaalgoritmanaif (naïve algorithm). • Algoritmabrute force seringkalimerupakanpilihan yang kurangdisukaikarenaketidakmangkusannyaitu, tetapidenganmencaripola-pola yang mendasar, keteraturan, atautrik-trikkhusus, biasanyaakanmembantukitamenemukanalgoritma yang lebihcerdasdanlebihmangkus.

  19. Karakteristik Algoritma Brute Force (2) • Untukmasalah yang ukurannyakecil, kesederhanaanbrute force biasanyalebihdiperhitungkandaripadaketidakmangkusannya • Algoritmabrute force seringdigunakansebagai basis bilamembandingkanbeberapaalternatifalgoritma yang mangkus. • Algoritmabrute force seringkalilebihmudahdiimplementasikandaripadaalgoritma yang lebihcanggih, dankarenakesederhanaannya, kadang-kadangalgoritmabrute force dapatlebihmangkus (ditinjaudarisegiimplementasi).

  20. Contoh-contoh lain • 1. Pencocokan String (String Matching) Diberikan: • teks (text), yaitu(long) string yang panjangnya n karakter • pattern, yaitustringdenganpanjang m karakter (m < n) yang akandicari di dalamteks. Carilahlokasipertama di dalamteks yang bersesuaiandenganpattern!

  21. Algoritma Brute Force • Mula-mula pattern dicocokkanpadaawalteks. • Denganbergerakdarikirikekanan, bandingkansetiapkarakter di dalam pattern dengankarakter yang bersesuaian di dalamtekssampai: • semuakarakter yang dibandingkancocokatausama (pencarianberhasil), atau • dijumpaisebuahketidakcocokankarakter (pencarianbelumberhasil) • Bila pattern belumditemukankecocokannyadanteksbelumhabis, geser pattern satukarakterkekanandanulangilangkah 2.

  22. Contoh Pattern: NOT Teks: NOBODY NOTICED HIM NOBODY NOTICED HIM 1 NOT 2 NOT 3 NOT 4 NOT 5 NOT 6 NOT 7 NOT 8 NOT

  23. Contoh 2: Pattern: 001011 Teks: 10010101001011110101010001 10010101001011110101010001 1 001011 2 001011 3 001011 4 001011 5 001011 6 001011 7 001011 8 001011 9 001011

  24. Pencocokan String Kompleksitasalgoritma: O(nm) padakasusterburuk O(n) padakasus rata-rata.

  25. MencariPasanganTitikDenganJarakTerdekat Persoalan: Diberikannbuahtitik (2-D atau 3-D), tentukanduabuahtitik yang terdekatsatusama lain.

  26. Euclidean Formula • Jarakduabuahtitik di bidang 2-D, p1 = (x1, y1) danp2 = (x2, y2) adalah (rumus Euclidean): • Algoritmabrute force: • Hitungjaraksetiappasangtitik. • Pasangantitik yang mempunyaijarakterpendekitulahjawabannya. • Algoritmabrute forceakanmenghitungsebanyakC(n, 2) = n(n – 1)/2 pasangantitikdanmemilihpasangantitik yang mempunyaijarakterkecil. KompleksitasalgoritmaadalahO(n2).

  27. MencariJarakDuaTitikTerdekat Kompleksitasalgoritma: O(n2).

  28. KekuatanMetode Brute Force • Metodebrute force dapatdigunakanuntukmemecahkanhampirsebagianbesarmasalah (wide applicability). • Metodebrute force sederhanadanmudahdimengerti. • Metodebrute forcemenghasilkanalgoritma yang layakuntukbeberapamasalahpentingsepertipencarian, pengurutan, pencocokan string, perkalianmatriks. • Metodebrute forcemenghasilkanalgoritmabaku (standar) untuktugas-tugaskomputasisepertipenjumlahan/perkalian n buahbilangan, menentukanelemen minimum ataumaksimum di dalamtabel (list).

  29. Kelemahan Metode Brute Force • Metodebrute force jarangmenghasilkanalgoritma yang mangkus. • Beberapaalgoritmabrute force lambatsehinggatidakdapatditerima. • Tidaksekonstruktif/sekreatifteknikpemecahanmasalahlainnya. • Ken Thompson (salahseorangpenemu Unix) mengatakan: • "When in doubt, use brute force" • Faktanya kernel Unix yang aslilebihmenyukaialgoritma yang sederhanadankuat (robust) daripadaalgoritma yang cerdastapirapuh.

  30. Exhaustive Search

  31. Exhaustive Search • Exhaustive search adalah: teknikpencariansolusisecarabrute force untukmasalah yang melibatkanpencarianelemendengansifatkhusus. • Biasanya di antaraobjek-objekkombinatoriksepertipermutasi, kombinasi, atauhimpunanbagiandarisebuahhimpunan.

  32. Langkah-langkah Metode Exhaustive Search • Enumerasi (list) setiapsolusi yang mungkindengancara yang sistematis. • Evaluasisetiapkemungkinansolusisatu per satu, mungkinsajabeberapakemungkinansolusi yang tidaklayakdikeluarkan, dansimpansolusiterbaik yang ditemukansampaisejauhini. • the best solution found so far • Bilapencarianberakhir, umumkansolusiterbaik (the winner) • Meskipunalgoritma exhaustive secarateoritismenghasilkansolusi, namunwaktuatausumberdaya yang dibutuhkandalampencariansolusinyasangatbesar.

  33. Contoh-contohExhaustive search • 1. Travelling Salesperson Problem (TSP) • Persoalan: Diberikan n buahkotasertadiketahuijarakantarasetiapkotasatusama lain. Temukanperjalanan (tour) terpendek yang melaluisetiapkotalainnyahanyasekalidankembalilagikekotaasalkeberangkatan. • Persoalan TSP tidak lain adalahmenemukansirkuit Hamilton denganbobot minimum.

  34. Travelling Salesperson Problem • Algoritma exhaustive search untukpersoalan TSP: • Enumerasikan (list) semuasirkuit Hamilton darigraflengkapdengan n buahsimpul. • Hitung (evaluasi) bobotsetiapsirkuit Hamilton yang ditemukanpadalangkah 1. • Pilihsirkuit Hamilton yang mempunyaibobotterkecil.

  35. TSP dengan n = 4, simpul awal = a Ruteperjalanananterpendekadalah acbda adbca denganbobot = 32.

  36. Travelling Salesperson Problem • Untuk n buahsimpulsemuaruteperjalanan yang mungkindibangkitkandenganpermutasidari n – 1 buahsimpul. • Permutasidari n – 1 buahsimpuladalah (n – 1)! • Padacontoh di atas, untuk n = 6 akanterdapat (4 – 1)! = 3! = 6 • buahruteperjalanan.

  37. Travelling Salesperson Problem • Jikadiselesaikandenganmetode exhaustive search, makakitaharusmengenumerasisebanyak (n – 1)! buahsirkuit Hamilton, menghitungsetiapbobotnya, danmemilihsirkuit Hamilton denganbobotterkecil. • Kompleksitaswaktualgoritma exhaustive search untukpersoalan TSP sebandingdengan (n – 1)! dikalidenganwaktuuntukmenghitungbobotsetiapsirkuit Hamilton. • Menghitungbobotsetiapsirkuit Hamilton membutuhkanwaktu O(n), sehinggakompleksitaswaktualgoritma exhaustive search untukpersoalan TSP adalah O(n  n!).

  38. Travelling Salesperson Problem • Perbaikan: Setengahdariruteperjalananadalahhasilpencerminandarisetengahrute yang lain, yaknidenganmengubaharahruteperjalanan • 1 dan 6 • 2 dan 4 • 3 dan 5

  39. Travelling Salesperson Problem • makadapatdihilangkansetengahdarijumlahpermutasi (dari 6 menjadi 3). • Ketigabuahsirkuit Hamilton yang dihasilkanadalahsepertigambar di bawahini:

  40. Travelling Salesperson Problem • Dengandemikian, untukgrafdengan n buahsimpul, kitahanyaperlumengevaluasisirkuit Hamilton sebanyak: (n – 1)!/2 buah. • Untukukuranmasukan yang besar, algoritma exhaustive search menjadisangattidakmangkus. • Padapersoalan TSP misalnya, untukjumlahsimpul n = 20 akanterdapat (19!)/2 = 6  1016 sirkuit Hamilton yang harusdievaluasisatu per satu.

  41. Travelling Salesperson Problem • Sayangnya, untukpersoalan TSP tidakadaalgoritma lain yang lebihbaikdaripadaalgoritma exhaustive search. • Jikaandadapatmenemukanalgoritma yang mangkusuntuk TSP, Andaakanmenjaditerkenaldan kaya! Algoritma yang mangkusselalumempunyaikompleksitaswaktudalamordepolinomial.

  42. 1/0 Knapsack • Persoalan: Diberikan n buahobjekdansebuah knapsack dengankapasitasbobot K. Setiapobjekmemilikipropertibobot (weight) widankeuntungan (profit) pi. • Bagaimanamemilihmemilihobjek-objek yang dimasukkankedalam knapsack sedemikiansehinggamemaksimumkankeuntungan. Total bobotobjek yang dimasukkankedalam knapsack tidakbolehmelebihikapasitas knapsack. • Persoalan 0/1 Knapsack dapatkitapandangsebagaimencarihimpunanbagian (subset) darikeseluruhanobjek yang muatkedalam knapsack danmemberikan total keuntunganterbesar.

  43. 1/0 Knapsack • Solusipersoalandinyatakansebagaivektor n-tupel: X = {x1, x2, …, xn} xi = 1 jikaobjekke-idimasukkankedalam knapsack, xi = 0 jikaobjekke-itidakdimasukkan.

  44. FormulasiMatematis 0/1 Knapsack • Maksimasikan • Dengankendala (constraint) • Dalamhalini, xi = 0 atau 1, i = 1, 2, 3, … , n

  45. 0/1 Knapsack • Algoritma exhaustive search untukpersoalan 0/1 Knapsack: • Enumerasikan (list) semuahimpunanbagiandarihimpunandengan n objek. • Hitung (evaluasi) total keuntungandarisetiaphimpunanbagiandarilangkah 1. • Pilihhimpunanbagian yang memberikantotal keuntunganterbesar.

  46. 0/1 Knapsack, n = 4 w1 = 2; p1 = 20 w2 = 5; p2 = 30 w3 = 10; p3 = 50 w4 = 5; p4 = 10 Kapasitas knapsack K = 16 • Langkah-langkahpencariansolusi 0/1 Knapsack secara exhaustive search dirangkumdalamtabel di bawahini:

  47. 0/1 Knapsack • Himpunanbagianobjek yang memberikankeuntunganmaksimum • adalah {2, 3} dengan total keuntunganadalah 80. • Solusi: X = {0, 1, 1, 0}

  48. 0/1 Knapsack • Berapabanyakhimpunanbagiandarisebuahhimpunandengan n elemen? Jawabnyaadalah 2n. • Waktuuntukmenghitung total bobotobjek yang dipilih= O(n) • Sehingga, Kompleksitasalgoritmaexhaustive search untukpersoalan 0/1 Knapsack = O(n. 2n). • TSP dan 0/1 Knapsack, adalahcontohpersoalaneksponensial. Keduanyadigolongkansebagaipersoalan NP (Non-deterministic Polynomial), karenatidakmungkindapatditemukanalgoritmapolinomialuntukmemecahkannya.

  49. Exhaustive Search dalamBidangKriptografi • Di dalambidangkriptografi, exhaustive search merupakanteknik yang digunakanpenyeranguntukmenemukankuncienkripsidengancaramencobasemuakemungkinankunci. • Serangansemacaminidikenaldengannamaexhaustive key search attack ataubrute force attack.

  50. EnkripsidalamBidangKriptografi • Contoh: Panjangkuncienkripsipadaalgoritma DES (Data Encryption Standard) = 64 bit. • Dari 64 bit tersebut, hanya 56 bit yang digunakan (8 bit paritaslainnyatidakdipakai). • Jumlahkombinasikunci yang harusdievaluasiolehpihaklawanadalahsebanyak (2)(2)(2) … (2)(2) = 256 = 720.575.940.379.279 x 1016 • Jikauntukpercobaandengansatukuncimemerlukanwaktu 1 detik, makauntukjumlahkuncisebanyakitudiperlukanwaktukomputasikuranglebihselama 2.284.931.317,79325025367834 tahun!

More Related