Algoritma Brute Force (lanjutan) - Simulation...

38
Algoritma Brute Force (lanjutan)

Transcript of Algoritma Brute Force (lanjutan) - Simulation...

Page 1: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

Algoritma Brute Force(lanjutan)

Page 2: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

ContohContoh--contohcontoh lainlain

1. 1. PencocokanPencocokan StringString (String Matching)(String Matching)

PersoalanPersoalan: : DiberikanDiberikana. a. teksteks ((texttext), ), yaituyaitu ((longlong) ) stringstring yang yang

panjangnyapanjangnya nn karakterkarakterb. b. patternpattern, , yaituyaitu stringstring dengandengan panjangpanjang mm

karakterkarakter ((mm < < nn) yang ) yang akanakan dicaridicari didi dalamdalamteksteks. .

CarilahCarilah lokasilokasi pertamapertama didi dalamdalam teksteks yang yang bersesuaianbersesuaian dengandengan patternpattern. .

Page 3: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

AlgoritmaAlgoritma brute forcebrute force::

1.1. MulaMula--mulamula patternpattern dicocokkandicocokkan padapada awalawal teksteks..

2.2. DenganDengan bergerakbergerak daridari kirikiri keke kanankanan, , bandingkanbandingkansetiapsetiap karakterkarakter didi dalamdalam patternpattern dengandengankarakterkarakter yang yang bersesuaianbersesuaian didi dalamdalam tekstekssampaisampai::

•• semuasemua karakterkarakter yang yang dibandingkandibandingkan cocokcocok atauatau samasama((pencarianpencarian berhasilberhasil), ), atauatau

•• dijumpaidijumpai sebuahsebuah ketidakcocokanketidakcocokan karakterkarakter ((pencarianpencarianbelumbelum berhasilberhasil))

3.3. BilaBila patternpattern belumbelum ditemukanditemukan kecocokannyakecocokannya dandanteksteks belumbelum habishabis, , gesergeser patternpattern satusatu karakterkarakter kekekanankanan dandan ulangiulangi langkahlangkah 2.2.

Page 4: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

ContohContoh 1:1:PatternPattern: : NOTNOTTeksTeks: : 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) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

ContohContoh 2:2:PatternPattern: 001011: 001011TeksTeks: 10010101: 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) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

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: i←0 ketemu←false while (i ≤ n-m) and (not ketemu) do j←1 while (j ≤ m) and (Pj = Ti+j ) do j←j+1 endwhile { j > m or Pj ≠ Ti+j } if j = m then { kecocokan string ditemukan } ketemu←true else i←i+1 {geser pattern satu karakter ke kanan teks } endif endfor { i > n – m or ketemu } if ketemu then idx←i+1 else idx←-1 endif

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

Page 7: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

2. 2. MencariMencari PasanganPasangan TitikTitik yang yang JaraknyaJaraknya TerdekatTerdekat

PersoalanPersoalan: : DiberikanDiberikan nn buahbuah titiktitik (2(2--D D atauatau 33--D), D), tentukantentukan duadua buahbuah titiktitik yang yang terdekatterdekat satusatusamasama lain.lain.

p1

p2

p3

p4

p5

p6

p7

p8

x

y

Page 8: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

JarakJarak duadua buahbuah titiktitik didi bidangbidang 22--D, D, pp11 = (= (xx11, , yy11) ) dandan pp22 = (= (xx22, , yy22) ) adalahadalah ((rumusrumus Euclidean):Euclidean):

AlgoritmaAlgoritma brute forcebrute force::1.1. HitungHitung jarakjarak setiapsetiap pasangpasang titiktitik..2.2. PasanganPasangan titiktitik yang yang mempunyaimempunyai jarakjarak terpendekterpendek

itulahitulah jawabannyajawabannya. .

AlgoritmaAlgoritma brute forcebrute force akanakan menghitungmenghitungsebanyaksebanyak CC((nn, 2) = , 2) = nn((nn –– 1)/2 1)/2 pasanganpasangan titiktitikdandan memilihmemilih pasanganpasangan titiktitik yang yang mempunyaimempunyaijarakjarak terkecilterkecil. .

KompleksitasKompleksitas algoritmaalgoritma adalahadalah OO((nn22).

2

21

2

21 )()( yyxxd −+−=

).

Page 9: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

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: dmin←9999 for i←1 to n-1 do for j←i+1 to n do d←√((Pi.x-Pj.x)2 + ((Pi.y-Pj.y)2) if d < dmin then { perbarui jarak terdekat } dmin←d P1←Pi P2←Pj endif endfor endfor

Kompleksitas algoritma: O(n2).

Page 10: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

KekuatanKekuatan dandan KelemahanKelemahanMetodeMetode Brute ForceBrute Force

KekuatanKekuatan::

1.1. MetodeMetode brute forcebrute force dapatdapat digunakandigunakan untukuntuk memecahkanmemecahkanhampirhampir sebagiansebagian besarbesar masalahmasalah ((wide applicabilitywide applicability). ).

2.2. MetodeMetode brute forcebrute force sederhanasederhana dandan mudahmudah dimengertidimengerti..

3.3. MetodeMetode brute force brute force menghasilkanmenghasilkan algoritmaalgoritma yang yang layaklayakuntukuntuk beberapabeberapa masalahmasalah pentingpenting sepertiseperti pencarianpencarian, , pengurutanpengurutan, , pencocokanpencocokan stringstring, , perkalianperkalian matriksmatriks..

4.4. MetodeMetode brute forcebrute force menghasilkanmenghasilkan algoritmaalgoritma bakubaku(standard) (standard) untukuntuk tugastugas--tugastugas komputasikomputasi sepertisepertipenjumlahan/perkalianpenjumlahan/perkalian nn buahbuah bilanganbilangan, , menentukanmenentukanelemenelemen minimum minimum atauatau maksimummaksimum didi dalamdalam tabeltabel ((listlist).).

Page 11: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

KelemahanKelemahan::

1.1. MetodeMetode brute forcebrute force jarangjarang menghasilkanmenghasilkanalgoritmaalgoritma yang yang mangkusmangkus..

2.2. BeberapaBeberapa algoritmaalgoritma brute forcebrute force lambatlambatsehinggasehingga tidaktidak dapatdapat diterimaditerima..

3.3. TidakTidak sekontruktif/sekreatifsekontruktif/sekreatif teknikteknik pemecahanpemecahanmasalahmasalah lainnyalainnya..

Ken Thompson (Ken Thompson (salahsalah seorangseorang penemupenemu Unix) Unix) mengatakanmengatakan: : ““When in doubt, use brute forceWhen in doubt, use brute force””, , faktanyafaktanya kernel Unix yang kernel Unix yang asliasli lebihlebih menyukaimenyukaialgoritmaalgoritma yang yang sederhanasederhana dandan kuatkuat ((robustrobust) ) daripadadaripada algoritmaalgoritma yang yang cerdascerdas tapitapi rapuhrapuh..

Page 12: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

Exhaustive SearchExhaustive SearchExhaustive searchExhaustive search adalahadalah

teknikteknik pencarianpencarian solusisolusi secarasecara solusisolusi brute brute forceforce untukuntuk masalahmasalah yang yang melibatkanmelibatkanpencarianpencarian elemenelemen dengandengan sifatsifat khususkhusus;;

biasanyabiasanya didi antaraantara objekobjek--objekobjekkombinatorikkombinatorik sepertiseperti permutasipermutasi, , kombinasikombinasi, , atauatau himpunanhimpunan bagianbagian daridarisebuahsebuah himpunanhimpunan. .

Page 13: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

LangkahLangkah--langkahlangkah metodemetode exhaustiveexhaustivesearchsearch::

1.1. EnumerasiEnumerasi ((listlist) ) setiapsetiap solusisolusi yang yang mungkinmungkin dengandengan caracarayang yang sistematissistematis..

2.2. EvaluasiEvaluasi setiapsetiap kemungkinankemungkinan solusisolusi satusatu per per satusatu, , mungkinmungkin sajasaja beberapabeberapa kemungkinankemungkinan solusisolusi yang yang tidaktidaklayaklayak dikeluarkandikeluarkan, , dandan simpansimpan solusisolusi terbaikterbaik yang yang ditemukanditemukan sampaisampai sejauhsejauh iniini ((the best the best solusisolusi found so found so farfar).).

3.3. BilaBila pencarianpencarian berakhirberakhir, , umumkanumumkan solusisolusi terbaikterbaik ((the the winnerwinner))

MeskipunMeskipun algoritmaalgoritma exhaustiveexhaustive secarasecara teoritisteoritismenghasilkanmenghasilkan solusisolusi, , namunnamun waktuwaktu atauatau sumberdayasumberdayayang yang dibutuhkandibutuhkan dalamdalam pencarianpencarian solusinyasolusinya sangatsangat besarbesar..

Page 14: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

ContohContoh--contohcontoh exhaustive searchexhaustive search

1. 1. TravellingTravelling Salesperson Problem (TSP)Salesperson Problem (TSP)

PersoalanPersoalan: : DiberikanDiberikan nn buahbuah kotakota sertasertadiketahuidiketahui jarakjarak antaraantara setiapsetiap kotakota satusatu samasamalain. lain. TemukanTemukan perjalananperjalanan ((tourtour) ) terpendekterpendekyang yang melaluimelalui setiapsetiap kotakota lainnyalainnya hanyahanya sekalisekalidandan kembalikembali lagilagi keke kotakota asalasal keberangkatankeberangkatan. .

PersoalanPersoalan TSPTSP tidaktidak lain lain adalahadalah menemukanmenemukansirkuitsirkuit Hamilton Hamilton dengandengan bobotbobot minimum. minimum.

Page 15: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

AlgoritmaAlgoritma exhaustive search exhaustive search untukuntukpersoalanpersoalan TSP:TSP:

1.1. EnumerasikanEnumerasikan ((listlist) ) semuasemua sirkuitsirkuitHamilton Hamilton daridari grafgraf lengkaplengkap dengandengan nnbuahbuah simpulsimpul..

2.2. HitungHitung ((evaluasievaluasi) ) bobotbobot setiapsetiap sirkuitsirkuitHamilton yang Hamilton yang ditemukanditemukan padapada langkahlangkah1.1.

3.3. PilihPilih sirkuitsirkuit Hamilton yang Hamilton yang mempunyaimempunyaibobotbobot terkecilterkecil..

Page 16: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

ContohContoh 44: : TSP TSP dengandengan nn = 4, = 4, simpulsimpul awalawal = = aa

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

a b

cd

12

8

15

1095

Rute perjalananan terpendek adalaha→c→b→d→aa→d→b→c→a

dengan bobot = 32.

Page 17: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

UntukUntuk nn buahbuah simpulsimpul semuasemua ruterute perjalananperjalanan yang yang mungkinmungkin dibangkitkandibangkitkan dengandengan permutasipermutasi daridari nn ––1 1 buahbuah simpulsimpul. .

PermutasiPermutasi daridari nn –– 1 1 buahbuah simpulsimpul adalahadalah

((nn –– 1)!1)!

PadaPada contohcontoh didi atasatas, , untukuntuk nn = 4 = 4 akanakan terdapatterdapat

(4 (4 –– 1)! = 3! = 61)! = 3! = 6

buahbuah ruterute perjalananperjalanan. .

Page 18: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

JikaJika diselesaikandiselesaikan dengandengan metodemetode exhaustive exhaustive searchsearch, , makamaka kitakita harusharus mengenumerasimengenumerasisebanyaksebanyak ((nn –– 1)! 1)! buahbuah sirkuitsirkuit Hamilton, Hamilton, menghitungmenghitung setiapsetiap bobotnyabobotnya, , dandan memilihmemilih sirkuitsirkuitHamilton Hamilton dengandengan bobotbobot terkecilterkecil. .

KompleksitasKompleksitas waktuwaktu algoritmaalgoritma exhaustive searchexhaustive searchuntukuntuk persoalanpersoalan TSP TSP sebandingsebanding dengandengan ((nn –– 1)! 1)! dikalidikali dengandengan waktuwaktu untukuntuk menghitungmenghitung bobotbobotsetiapsetiap sirkuitsirkuit Hamilton. Hamilton.

MenghitungMenghitung bobotbobot setiapsetiap sirkuitsirkuit Hamilton Hamilton membutuhkanmembutuhkan waktuwaktu OO((nn), ), sehinggasehinggakompleksitaskompleksitas waktuwaktu algoritmaalgoritma exhaustive searchexhaustive searchuntukuntuk persoalanpersoalan TSP TSP adalahadalah OO((nn ⋅⋅ nn!). !).

Page 19: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

PerbaikanPerbaikan: : setengahsetengah daridari ruteruteperjalananperjalanan adalahadalah hasilhasil pencerminanpencerminandaridari setengahsetengah ruterute yang lain, yang lain, yakniyaknidengandengan mengubahmengubah araharah ruteruteperjalananperjalanan

1 1 dandan 662 2 dandan 443 3 dandan 55

Page 20: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

makamaka dapatdapat dihilangkandihilangkan setengahsetengah daridarijumlahjumlah permutasipermutasi ((daridari 6 6 menjadimenjadi 3). 3).

KetigaKetiga buahbuah sirkuitsirkuit Hamilton yang Hamilton yang dihasilkandihasilkan adalahadalah sepertiseperti gambargambar didi bawahbawahiniini::

a b

cd

12

8

15

10

a b

cd

12

15

95

a b

cd

81095

Page 21: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

DenganDengan demikiandemikian, , untukuntuk grafgraf dengandengan nnbuahbuah simpulsimpul, , kitakita hanyahanya perluperlumengevaluasimengevaluasi sirkuitsirkuit Hamilton Hamilton sebanyaksebanyak((nn –– 1)!/2 1)!/2 buahbuah. .

UntukUntuk ukuranukuran masukanmasukan yang yang besarbesar, , algoritmaalgoritma exhaustive searchexhaustive search menjadimenjadisangatsangat tidaktidak mangkusmangkus. .

PadaPada persoalanpersoalan TSPTSP misalnyamisalnya, , untukuntuk jumlahjumlahsimpulsimpul nn = 20 = 20 akanakan terdapatterdapat (19!)/2 = 6 (19!)/2 = 6 ××10101616 sirkuitsirkuit Hamilton yang Hamilton yang harusharus dievaluasidievaluasisatusatu per per satusatu. .

Page 22: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

SayangnyaSayangnya, , untukuntuk persoalanpersoalan TSP TSP tidaktidak adaada algoritmaalgoritma lain yang lain yang lebihlebihbaikbaik daripadadaripada algoritmaalgoritma exhaustive exhaustive searchsearch. .

JikaJika andaanda dapatdapat menemukanmenemukanalgoritmaalgoritma yang yang mangkusmangkus untukuntuk TSP, TSP, andaanda akanakan menjadimenjadi terkenalterkenal dandankayakaya! ! AlgoritmaAlgoritma yang yang mangkusmangkusselaluselalu mempunyaimempunyai kompleksitaskompleksitaswaktuwaktu dalamdalam ordeorde polinomialpolinomial..

Page 23: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

2. 0/1 Knapsack Problem2. 0/1 Knapsack Problem

PersoalanPersoalan:: DiberikanDiberikan nn buahbuah objekobjek dandan sebuahsebuah knapsackknapsackdengandengan kapasitaskapasitas bobotbobot KK. . SetiapSetiap objekobjek memilikimemilikipropertiproperti bobotbobot ((weigthweigth) ) wwii dandan keuntungan(keuntungan(profitprofit) ) ppii. .

BagaimanaBagaimana memilihmemilih memilihmemilih objekobjek--objekobjek yang yang dimasukkandimasukkan keke dalamdalam knapsack knapsack sedemikiansedemikian sehinggasehinggamemaksimumkanmemaksimumkan keuntungankeuntungan. Total . Total bobotbobot objekobjek yang yang dimasukkandimasukkan keke dalamdalam knapsackknapsack tidaktidak bolehboleh melebihimelebihikapasitaskapasitas knapsackknapsack. .

PersoalanPersoalan 0/1 0/1 KnapsackKnapsack dapatdapat kitakita pandangpandang sebagaisebagaimencarimencari himpunanhimpunan bagianbagian ((subsetsubset) ) daridari keseluruhankeseluruhanobjekobjek yang yang muatmuat keke dalamdalam knapsackknapsack dandan memberikanmemberikantotal total keuntungankeuntungan terbesarterbesar. .

Page 24: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

SolusiSolusi persoalanpersoalan dinyatakandinyatakan sebagaisebagaivektorvektor nn--tupeltupel::

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

xxii = 1 = 1 jikajika objekobjek keke--ii dimasukkandimasukkan kekedalamdalam knapsackknapsack, ,

xxii = 0 = 0 jikajika objekobjek keke--ii tidaktidakdimasukkandimasukkan. .

Page 25: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

FormulasiFormulasi secarasecara matematismatematis: :

Maksimasi F =∑=

n

iiixp

1

dengan kendala (constraint)

Kxwn

iii ≤∑

=1

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

Page 26: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

AlgoritmaAlgoritma exhaustive searchexhaustive search untukuntukpersoalanpersoalan 0/1 0/1 KnapsackKnapsack::

1. 1. EnumerasikanEnumerasikan ((listlist) ) semuasemua himpunanhimpunanbagianbagian daridari himpunanhimpunan dengandengan n n objekobjek. .

2. 2. HitungHitung ((evaluasievaluasi) total ) total keuntungankeuntungan daridarisetiapsetiap himpunanhimpunan bagianbagian daridari langkahlangkah 1.1.

3. 3. PilihPilih himpunanhimpunan bagianbagian yang yang memberikanmemberikantotal total keuntungankeuntungan terbesarterbesar..

Page 27: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

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

LangkahLangkah--langkahlangkah pencarianpencarian solusisolusi 0/1 0/1 KnapsackKnapsack secarasecara exhaustive searchexhaustive searchdirangkumdirangkum dalamdalam tabeltabel didi bawahbawah iniini::

Page 28: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

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 maksimumadalah {2, 3} dengan total keuntungan adalah 80.

• Solusi: X = {0, 1, 1, 0}

Page 29: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

BerapaBerapa banyakbanyak himpunanhimpunan bagianbagian daridari sebuahsebuahhimpunanhimpunan dengandengan nn elemenelemen? ? JawabnyaJawabnya adalahadalah22nn. .

WaktuWaktu untukuntuk menghitungmenghitung total total bobotbobot objekobjek yang yang dipilihdipilih = = OO((nn))

SehinggaSehingga, , KompleksitasKompleksitas algoritmaalgoritma exhaustive exhaustive searchsearch untukuntuk persoalanpersoalan 0/1 0/1 KnapsackKnapsack = = OO((nn. 2. 2nn). ).

TSP TSP dandan 0/1 0/1 KnapsackKnapsack, , adalahadalah contohcontoh persoalanpersoalaneksponensialeksponensial. . KeduanyaKeduanya digolongkandigolongkan sebagaisebagaipersoalanpersoalan NPNP ((NonNon--deterministic Polynomialdeterministic Polynomial), ), karenakarena tidaktidak mungkinmungkin dapatdapat ditemukanditemukan algoritmaalgoritmapolinomialpolinomial untukuntuk memecahkannyamemecahkannya. .

Page 30: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

Exhaustive Search Exhaustive Search dalamdalam BidangBidang KriptografiKriptografi

DiDi dalamdalam bidangbidang kriptografikriptografi, , exhaustive exhaustive searchsearch merupakanmerupakan teknikteknik yang yang digunakandigunakanpenyerangpenyerang untukuntuk menemukanmenemukan kuncikuncienkripsienkripsi dengandengan caracara mencobamencoba semuasemuakemungkinankemungkinan kuncikunci. .

SeranganSerangan semacamsemacam iniini dikenaldikenal dengandengannamanama exhaustive key search attackexhaustive key search attack atauataubrute force attackbrute force attack. .

Page 31: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

ContohContoh: : PanjangPanjang kuncikunci enkripsienkripsi padapada algoritmaalgoritmaDESDES ((Data Encryption StandardData Encryption Standard) = 64 bit. ) = 64 bit. Dari 64 bit Dari 64 bit tersebuttersebut, , hanyahanya 56 bit yang 56 bit yang digunakandigunakan(8 bit (8 bit paritasparitas lainnyalainnya tidaktidak dipakaidipakai). ).

JumlahJumlah kombinasikombinasi kuncikunci yang yang harusharus dievaluasidievaluasioleholeh pihakpihak lawanlawan adalahadalah sebanyaksebanyak

(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

JikaJika untukuntuk percobaanpercobaan dengandengan satusatu kuncikuncimemerlukanmemerlukan waktuwaktu 1 1 detikdetik, , makamaka untukuntuk jumlahjumlahkuncikunci sebanyaksebanyak ituitu diperlukandiperlukan waktuwaktu komputasikomputasikurangkurang lebihlebih selamaselama 228.4931.317 228.4931.317 tahuntahun!!

Page 32: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

MeskipunMeskipun algoritmaalgoritma exhaustive exhaustive searchsearch tidaktidak mangkusmangkus, , namunnamun ––sebagaimanasebagaimana ciriciri algoritmaalgoritma brute brute forceforce padapada umumnyaumumnya–– nilainilai plusnyaplusnyaterletakterletak padapada keberhasilannyakeberhasilannya yang yang selaluselalu menemukanmenemukan solusisolusi ((jikajikadiberikandiberikan waktuwaktu yang yang cukupcukup). ).

Page 33: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

MempercepatMempercepat AlgoritmaAlgoritmaExhaustive SearchExhaustive Search

AlgoritmaAlgoritma exhaustive searchexhaustive search dapatdapat diperbaikidiperbaikikinerjanyakinerjanya sehinggasehingga tidaktidak perluperlu melakukanmelakukanpencarianpencarian terhadapterhadap semuasemua kemungkinankemungkinan solusisolusi..

SalahSalah satusatu teknikteknik yang yang digunakandigunakan untukuntukmempercepatmempercepat pencarianpencarian solusisolusi adalahadalah teknikteknikheuristikheuristik ((heuristicheuristic). ).

TeknikTeknik heuristikheuristik digunakandigunakan untukuntuk mengeliminasimengeliminasibeberapabeberapa kemungkinankemungkinan solusisolusi tanpatanpa harusharusmengeksplorasinyamengeksplorasinya secarasecara penuhpenuh. . SelainSelain ituitu, , teknikteknik heuristikheuristik jugajuga membantumembantu memutuskanmemutuskankemungkinankemungkinan solusisolusi manamana yang yang pertamapertama kali kali perluperlu dievaluasidievaluasi. .

Page 34: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

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

KataKata heuristikheuristik diturunkanditurunkan daridari BahasaBahasaYunaniYunani yaituyaitu ““eurekaeureka”” yang yang berartiberarti““menemukanmenemukan”” ((to findto find atauatau to discoverto discover). ).

MatematikawanMatematikawan YunaniYunani yang yang bernamabernamaArchimedes yang Archimedes yang melontarkanmelontarkan katakata""heurekaheureka", ", daridari sinilahsinilah kitakita menemukanmenemukankatakata ““eurekaeureka”” yang yang berartiberarti ““I have found I have found itit..””

Page 35: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

HeuristikHeuristik berbedaberbeda daridari algoritmaalgoritma karenakarena heuristikheuristikberlakuberlaku sebagaisebagai panduanpanduan ((guidelineguideline), ), sedangkansedangkanalgoritmaalgoritma adalahadalah urutanurutan langkahlangkah--langkahlangkahpenyelesaianpenyelesaian. .

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) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

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) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

ContohContoh penggunaanpenggunaan heuristikheuristik untukuntukmempercepatmempercepat algoritmaalgoritma exhaustive searchexhaustive search

ContohContoh: : MasalahMasalah anagramanagram. . AnagramAnagramadalahadalah penukaranpenukaran hurufhuruf dalamdalam sebuahsebuahkatakata atauatau kalimatkalimat sehinggasehingga katakata atauataukalimatkalimat yang yang barubaru mempunyaimempunyai artiarti lain. lain.

ContohContoh--contohcontoh anagramanagram ((semuasemua contohcontohdalamdalam BahasaBahasa InggrisInggris):):

livedlived →→ devildevilteatea →→ eateatcharmcharm →→ marchmarch

Page 38: Algoritma Brute Force (lanjutan) - Simulation Laboratoryphg-simulation-laboratory.com/wp-content/uploads/2016/02/M08... · p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 x y ... Berapa banyak himpunan

BilaBila diselesaikandiselesaikan secarasecara exhaustive searchexhaustive search, , kitakitaharusharus mencarimencari semuasemua permutasipermutasi hurufhuruf--hurufhurufpembentukpembentuk katakata atauatau kalimatkalimat, , lalulalu memerikamemerikaapakahapakah katakata atauatau kalimatkalimat yang yang terbentukterbentukmengandungmengandung artiarti. .

TeknikTeknik heuristikheuristik dapatdapat digunakandigunakan untukuntukmengurangimengurangi jumlahjumlah pencarianpencarian solusisolusi. . SalahSalah satusatuteknikteknik heuristikheuristik yang yang digunakandigunakan misalnyamisalnyamembuatmembuat aturanaturan bahwabahwa dalamdalam BahasaBahasa InggrisInggrishurufhuruf cc dandan hh selaluselalu digunakandigunakan berdampinganberdampingansebagaisebagai chch ((lihatlihat contohcontoh charmcharm dandan marchmarch), ), sehinggasehingga kitakita hanyahanya membuatmembuat permutasipermutasi hurufhuruf--hurufhuruf dengandengan cc dandan hh berdampinganberdampingan. . SemuaSemuapermutasipermutasi dengandengan hurufhuruf cc dandan hh tidaktidakberdampinganberdampingan ditolakditolak daridari pencarianpencarian. .