SlideShare a Scribd company logo
ANALISIS ALGORITMA
Penerapan Strategi Algoritma: Brute Force
Pemateri:
Adam Mukharil Bachtiar
adam@email.unikom.ac.id
Pada materi sebelumnya kita
sudah melihat pola pikir Brute
Force yang Straight Forward.
Sekarang mari kita lihat
pengaplikasiannya pada dua
problem, yaitu Exhaustive Search
dan 1/0 Knapsack.
Problem 1: Exhaustive Search
Exhaustive Search:
Teknik pencarian solusi secara brute force untuk masalah yang
melibatkan pencarian elemen dengan sifat khusus (objek-objek
kombinatorik atau himpunan bagian dari suatu himpunan)
Langkah-langkah:
1 Enumerasi (list) setiap solusi yang mungkin dengan cara yang sistematis.
2 Evaluasi setiap kemungkinan solusi satu per satu, mungkin saja beberapa
kemungkinan solusi yang tidak layak dikeluarkan, dan simpan solusi
terbaik yang ditemukan sampai sejauh ini (the best solusi found so far).
3 Bila pencarian berakhir, maka umumkan solusi terbaik.
Untuk bisa melihat strategi algoritma
Brute Force pada Exhaustive Search
mari kita lihat penerapannya.
Kasus:
Travelling Salesman Problem (TSP)
Persoalan:
Diberikan n buah kota serta diketahui jarak antara setiap kota satu
sama lain. Temukan perjalanan (tour) terpendek yang melalui setiap
kota lainnya hanya sekali dan kembali lagi ke kota asal keberangkatan
(sirkuit Hamilton dengan bobot minimum).
Langkah-langkah TSP:
1 Enumerasi (list) semua sirkuit Hamilton dari graph lengkap dengan n
buah simpul.
2 Hitung (evaluasi) bobot setiap sirkuit Hamilton yang ditemukan pada
langkah 1.
3 Pilih sirkuit Hamilton yang mempunyai bobot terkecil.
No. Rute Perjalanan Bobot
1 aàbàcàdàa 10+12+8+15 = 45
2 aàbàdàcàa 12+5+9+15 = 41
3 aàcàbàdàa 10+5+9+8 = 32
4 aàcàdàbàa 12+5+9+15 = 41
5 aàdàbàcàa 10+5+9+8 = 32
6 aàdàcàbàa 10+12+8+15 = 45
Rute perjalananan terpendek adalah
aàcàbàdàa
aàdàbàcàa
dengan bobot = 32.
Untuk n buah simpul, semua rute
perjalanan yang mungkin dibangkitkan
dengan permutasi n-1 buah simpul à (n-1)!
Untuk menghitung bobot dari enumerasi
yang sudah dibangkitkan membutuhkan
waktu O(n).
Sehingga kebutuhan waktu untuk
exhaustive search adalah O(n . n!).
Perbaikan dari pola pikir tersebut adalah
memangkas setengah enumerasi yang
terbentuk karena hanya pencerminan
dari dari setengah enumerasi yang ada.
Problem 2: 1/0 Knapsack
Kasus:
1/0 Knapsack
Persoalan:
Diberikan n buah objek dan sebuah knapsack dengan kapasitas
bobot K. Setiap objek memiliki properti bobot (weigth) wi dan
keuntungan(profit) pi.
Bagaimana memilih objek-objek yang akan dimasukkan ke
dalam knapsack agar memiliki keuntungan maksimum tanpa
melebihi bobot tampungan knapsack.
Tampilan Solusi:
! = {!$, !&, … , !(}
Dimana:
Xi = 1 jika objek ke-i dimasukkan ke dalam knapsack
Xi = 0 jika objek ke-i tidak dimasukkan ke dalam knapsack
Langkah-langkah 1/0 Knapsack:
1 Enumerasi (list) semua himpunan bagian dari himpunan dengan n objek.
2 Hitung (evaluasi) total keuntungan dari setiap himpunan bagian dari
langkah 1.
3 Pilih himpunan bagian yang memberikan total keuntungan terbesar.
Contoh Kasus:
n = 4.
w1 = 2; p1 = 20
w2 = 5; p2 = 30
w3 = 10; p3 = 50
w4 = 5; p4 = 10
Kapasitas knapsack K = 16
Cari kombinasi untuk mencari
keuntungan maksimum
menggunakan 1/0 knapsack!
Himpunan Bagian Total Bobot Total Keuntungan
{} 0 0
{1} 2 20
{2} 5 30
{3} 10 50
{4} 5 10
{1,2} 7 50
{1,3} 12 70
{1,4} 7 30
{2,3} 15 80
{2,4} 10 40
{3,4} 15 80
{1,2,3} 17 Tidak layak
{1,2,4} 12 60
{1,3,4} 17 Tidak layak
{2,3,4} 20 Tidak layak
{1,2,3,4} 22 Tidak layak
Himpunan bagian objek yang
memberikan keuntungan
maksimum adalah {2,3} dengan
total keuntungan adalah 80.
Solusi:
X = {0, 1, 1, 0}

More Related Content

What's hot

Analisis Algoritma - Pengantar Analisis Algoritma
Analisis Algoritma - Pengantar Analisis AlgoritmaAnalisis Algoritma - Pengantar Analisis Algoritma
Analisis Algoritma - Pengantar Analisis Algoritma
Adam Mukharil Bachtiar
 
Analisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi AsimptotikAnalisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi Asimptotik
Adam Mukharil Bachtiar
 
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi AlgoritmaAnalisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Adam Mukharil Bachtiar
 
Pertemuan 12 Algoritma Greedy
Pertemuan 12 Algoritma GreedyPertemuan 12 Algoritma Greedy
Pertemuan 12 Algoritma Greedy
Endang Retnoningsih
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
DEDE IRYAWAN
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
ohohervin
 
Pertemuan 04 Teknik Pencarian (Search)
Pertemuan 04 Teknik Pencarian (Search)Pertemuan 04 Teknik Pencarian (Search)
Pertemuan 04 Teknik Pencarian (Search)
Endang Retnoningsih
 
Makalah Algoritma kruskal
Makalah Algoritma kruskalMakalah Algoritma kruskal
Makalah Algoritma kruskal
zaenal mustofa
 
Algoritma Pencarian String matching
Algoritma Pencarian String matching Algoritma Pencarian String matching
Algoritma Pencarian String matching
Kukuh Setiawan
 
Algoritma Divide and Conquer
Algoritma Divide and ConquerAlgoritma Divide and Conquer
Algoritma Divide and Conquer
Edho Pratama
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
Irwan Anwar
 
Bab 12 metode greedy
Bab 12 metode greedyBab 12 metode greedy
Bab 12 metode greedyrisal07
 
Algoritma dan Struktur Data - Merge Sort
Algoritma dan Struktur Data - Merge SortAlgoritma dan Struktur Data - Merge Sort
Algoritma dan Struktur Data - Merge Sort
KuliahKita
 
Kelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptxKelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptx
EriekOrlando
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
KuliahKita
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuan
ahmad haidaroh
 
5 penjadwalan aplod
5 penjadwalan aplod5 penjadwalan aplod
5 penjadwalan aplod
Setia Juli Irzal Ismail
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristikBaguss Chandrass
 

What's hot (20)

Analisis Algoritma - Pengantar Analisis Algoritma
Analisis Algoritma - Pengantar Analisis AlgoritmaAnalisis Algoritma - Pengantar Analisis Algoritma
Analisis Algoritma - Pengantar Analisis Algoritma
 
Algoritma brute force
Algoritma brute forceAlgoritma brute force
Algoritma brute force
 
Analisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi AsimptotikAnalisis Algoritma - Notasi Asimptotik
Analisis Algoritma - Notasi Asimptotik
 
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi AlgoritmaAnalisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
Analisis Algoritma - Kelas-kelas Dasar Efisiensi Algoritma
 
Pertemuan 12 Algoritma Greedy
Pertemuan 12 Algoritma GreedyPertemuan 12 Algoritma Greedy
Pertemuan 12 Algoritma Greedy
 
Sorting ppt
Sorting ppt Sorting ppt
Sorting ppt
 
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas WidyatamaMakalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
Makalah Peranan Semaphore Sistem Operasi - Universitas Widyatama
 
Perbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquerPerbandingan algoritma brute force , divide and conquer
Perbandingan algoritma brute force , divide and conquer
 
Pertemuan 04 Teknik Pencarian (Search)
Pertemuan 04 Teknik Pencarian (Search)Pertemuan 04 Teknik Pencarian (Search)
Pertemuan 04 Teknik Pencarian (Search)
 
Makalah Algoritma kruskal
Makalah Algoritma kruskalMakalah Algoritma kruskal
Makalah Algoritma kruskal
 
Algoritma Pencarian String matching
Algoritma Pencarian String matching Algoritma Pencarian String matching
Algoritma Pencarian String matching
 
Algoritma Divide and Conquer
Algoritma Divide and ConquerAlgoritma Divide and Conquer
Algoritma Divide and Conquer
 
Insertion sort
Insertion sortInsertion sort
Insertion sort
 
Bab 12 metode greedy
Bab 12 metode greedyBab 12 metode greedy
Bab 12 metode greedy
 
Algoritma dan Struktur Data - Merge Sort
Algoritma dan Struktur Data - Merge SortAlgoritma dan Struktur Data - Merge Sort
Algoritma dan Struktur Data - Merge Sort
 
Kelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptxKelompok 1 Brute Force - PPT.pptx
Kelompok 1 Brute Force - PPT.pptx
 
Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03Matematika Diskrit - 11 kompleksitas algoritma - 03
Matematika Diskrit - 11 kompleksitas algoritma - 03
 
Modul 4 representasi pengetahuan
Modul 4   representasi pengetahuanModul 4   representasi pengetahuan
Modul 4 representasi pengetahuan
 
5 penjadwalan aplod
5 penjadwalan aplod5 penjadwalan aplod
5 penjadwalan aplod
 
Metode pencarian heuristik
Metode pencarian heuristikMetode pencarian heuristik
Metode pencarian heuristik
 

Similar to Analisis Algoritma - Penerapan Strategi Algoritma Brute Force

Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)
Ajeng Savitri
 
TEKNIK MENENTUKAN KOMPOSISI BUAH PADA MASALAH PENGANGKUTAN DENGAN MENGGUNAKAN...
TEKNIK MENENTUKAN KOMPOSISI BUAH PADA MASALAH PENGANGKUTAN DENGAN MENGGUNAKAN...TEKNIK MENENTUKAN KOMPOSISI BUAH PADA MASALAH PENGANGKUTAN DENGAN MENGGUNAKAN...
TEKNIK MENENTUKAN KOMPOSISI BUAH PADA MASALAH PENGANGKUTAN DENGAN MENGGUNAKAN...
faisalpiliang1
 
Exhaustive Search - Knapsack
Exhaustive Search - KnapsackExhaustive Search - Knapsack
Exhaustive Search - Knapsack
Ajeng Savitri
 
PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH...
PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH...PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH...
PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH...
faisalpiliang1
 
Matematika Diskrit 4.pdf
Matematika Diskrit 4.pdfMatematika Diskrit 4.pdf
Matematika Diskrit 4.pdf
GunkSatria1
 
Metody Gredy
Metody GredyMetody Gredy
Metody Gredy
irwanhs
 
Tugas2 -metode searching ai
Tugas2 -metode searching aiTugas2 -metode searching ai
Tugas2 -metode searching ai
Muhammad Irfan Irfan
 
Knapsack Problem : Greedy vs Dynamic Programming
Knapsack Problem : Greedy vs Dynamic ProgrammingKnapsack Problem : Greedy vs Dynamic Programming
Knapsack Problem : Greedy vs Dynamic Programming
VinsensiusFeri
 
Pengantar strategi algoritma (2015)
Pengantar strategi algoritma (2015)Pengantar strategi algoritma (2015)
Pengantar strategi algoritma (2015)
RikaDewi18
 

Similar to Analisis Algoritma - Penerapan Strategi Algoritma Brute Force (15)

12 metode greedy
12 metode greedy12 metode greedy
12 metode greedy
 
12 metode greedy
12 metode greedy12 metode greedy
12 metode greedy
 
12 metode greedy
12 metode greedy12 metode greedy
12 metode greedy
 
Greedy knapsack
Greedy knapsackGreedy knapsack
Greedy knapsack
 
Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)Algoritma Greedy (contoh soal)
Algoritma Greedy (contoh soal)
 
TEKNIK MENENTUKAN KOMPOSISI BUAH PADA MASALAH PENGANGKUTAN DENGAN MENGGUNAKAN...
TEKNIK MENENTUKAN KOMPOSISI BUAH PADA MASALAH PENGANGKUTAN DENGAN MENGGUNAKAN...TEKNIK MENENTUKAN KOMPOSISI BUAH PADA MASALAH PENGANGKUTAN DENGAN MENGGUNAKAN...
TEKNIK MENENTUKAN KOMPOSISI BUAH PADA MASALAH PENGANGKUTAN DENGAN MENGGUNAKAN...
 
Exhaustive Search - Knapsack
Exhaustive Search - KnapsackExhaustive Search - Knapsack
Exhaustive Search - Knapsack
 
PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH...
PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH...PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH...
PENERAPAN METODE GREEDY KNAPSACK DALAM MENENTUKAN KOMPOSISI BUAH PADA MASALAH...
 
207 p12
207 p12207 p12
207 p12
 
Matematika Diskrit 4.pdf
Matematika Diskrit 4.pdfMatematika Diskrit 4.pdf
Matematika Diskrit 4.pdf
 
Metody Gredy
Metody GredyMetody Gredy
Metody Gredy
 
Tugas2 -metode searching ai
Tugas2 -metode searching aiTugas2 -metode searching ai
Tugas2 -metode searching ai
 
Knapsack Problem : Greedy vs Dynamic Programming
Knapsack Problem : Greedy vs Dynamic ProgrammingKnapsack Problem : Greedy vs Dynamic Programming
Knapsack Problem : Greedy vs Dynamic Programming
 
Pengantar strategi algoritma (2015)
Pengantar strategi algoritma (2015)Pengantar strategi algoritma (2015)
Pengantar strategi algoritma (2015)
 
Greedy (1)
Greedy (1)Greedy (1)
Greedy (1)
 

More from Adam Mukharil Bachtiar

Materi 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdfMateri 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdf
Adam Mukharil Bachtiar
 
Clean Code - Formatting Code
Clean Code - Formatting CodeClean Code - Formatting Code
Clean Code - Formatting Code
Adam Mukharil Bachtiar
 
Clean Code - Clean Comments
Clean Code - Clean CommentsClean Code - Clean Comments
Clean Code - Clean Comments
Adam Mukharil Bachtiar
 
Clean Method
Clean MethodClean Method
Clean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful NamesClean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful Names
Adam Mukharil Bachtiar
 
Model Driven Software Development
Model Driven Software DevelopmentModel Driven Software Development
Model Driven Software Development
Adam Mukharil Bachtiar
 
Scrum: How to Implement
Scrum: How to ImplementScrum: How to Implement
Scrum: How to Implement
Adam Mukharil Bachtiar
 
Pengujian Perangkat Lunak
Pengujian Perangkat LunakPengujian Perangkat Lunak
Pengujian Perangkat Lunak
Adam Mukharil Bachtiar
 
Data Mining Clustering
Data Mining ClusteringData Mining Clustering
Data Mining Clustering
Adam Mukharil Bachtiar
 
Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)
Adam Mukharil Bachtiar
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
Adam Mukharil Bachtiar
 
UML dan Use Case View
UML dan Use Case ViewUML dan Use Case View
UML dan Use Case View
Adam Mukharil Bachtiar
 
Validasi ide Menggunakan Javelin Board (Idea Validation)
Validasi ide Menggunakan Javelin Board (Idea Validation)Validasi ide Menggunakan Javelin Board (Idea Validation)
Validasi ide Menggunakan Javelin Board (Idea Validation)
Adam Mukharil Bachtiar
 
Mini Google Design Sprint
Mini Google Design SprintMini Google Design Sprint
Mini Google Design Sprint
Adam Mukharil Bachtiar
 
Scrum: How to Implements (Update)
Scrum: How to Implements (Update)Scrum: How to Implements (Update)
Scrum: How to Implements (Update)
Adam Mukharil Bachtiar
 
Business Model Canvas: Cara Pengisian
Business Model Canvas: Cara PengisianBusiness Model Canvas: Cara Pengisian
Business Model Canvas: Cara Pengisian
Adam Mukharil Bachtiar
 
SCRUM: How to implements
SCRUM: How to implementsSCRUM: How to implements
SCRUM: How to implements
Adam Mukharil Bachtiar
 
Tugas Besar RPL 1
Tugas Besar RPL 1Tugas Besar RPL 1
Tugas Besar RPL 1
Adam Mukharil Bachtiar
 
RPL 1 (Lama) - Pengujian Perangkat Lunak
RPL 1 (Lama) - Pengujian Perangkat LunakRPL 1 (Lama) - Pengujian Perangkat Lunak
RPL 1 (Lama) - Pengujian Perangkat Lunak
Adam Mukharil Bachtiar
 
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat LunakRPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
Adam Mukharil Bachtiar
 

More from Adam Mukharil Bachtiar (20)

Materi 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdfMateri 8 - Data Mining Association Rule.pdf
Materi 8 - Data Mining Association Rule.pdf
 
Clean Code - Formatting Code
Clean Code - Formatting CodeClean Code - Formatting Code
Clean Code - Formatting Code
 
Clean Code - Clean Comments
Clean Code - Clean CommentsClean Code - Clean Comments
Clean Code - Clean Comments
 
Clean Method
Clean MethodClean Method
Clean Method
 
Clean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful NamesClean Code and Design Pattern - Meaningful Names
Clean Code and Design Pattern - Meaningful Names
 
Model Driven Software Development
Model Driven Software DevelopmentModel Driven Software Development
Model Driven Software Development
 
Scrum: How to Implement
Scrum: How to ImplementScrum: How to Implement
Scrum: How to Implement
 
Pengujian Perangkat Lunak
Pengujian Perangkat LunakPengujian Perangkat Lunak
Pengujian Perangkat Lunak
 
Data Mining Clustering
Data Mining ClusteringData Mining Clustering
Data Mining Clustering
 
Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)Data Mining Klasifikasi (Updated 30 Desember 2020)
Data Mining Klasifikasi (Updated 30 Desember 2020)
 
Activity Diagram
Activity DiagramActivity Diagram
Activity Diagram
 
UML dan Use Case View
UML dan Use Case ViewUML dan Use Case View
UML dan Use Case View
 
Validasi ide Menggunakan Javelin Board (Idea Validation)
Validasi ide Menggunakan Javelin Board (Idea Validation)Validasi ide Menggunakan Javelin Board (Idea Validation)
Validasi ide Menggunakan Javelin Board (Idea Validation)
 
Mini Google Design Sprint
Mini Google Design SprintMini Google Design Sprint
Mini Google Design Sprint
 
Scrum: How to Implements (Update)
Scrum: How to Implements (Update)Scrum: How to Implements (Update)
Scrum: How to Implements (Update)
 
Business Model Canvas: Cara Pengisian
Business Model Canvas: Cara PengisianBusiness Model Canvas: Cara Pengisian
Business Model Canvas: Cara Pengisian
 
SCRUM: How to implements
SCRUM: How to implementsSCRUM: How to implements
SCRUM: How to implements
 
Tugas Besar RPL 1
Tugas Besar RPL 1Tugas Besar RPL 1
Tugas Besar RPL 1
 
RPL 1 (Lama) - Pengujian Perangkat Lunak
RPL 1 (Lama) - Pengujian Perangkat LunakRPL 1 (Lama) - Pengujian Perangkat Lunak
RPL 1 (Lama) - Pengujian Perangkat Lunak
 
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat LunakRPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
RPL 1 (Lama) - Template Dokumen Perancangan Perangkat Lunak
 

Analisis Algoritma - Penerapan Strategi Algoritma Brute Force

  • 1. ANALISIS ALGORITMA Penerapan Strategi Algoritma: Brute Force Pemateri: Adam Mukharil Bachtiar adam@email.unikom.ac.id
  • 2. Pada materi sebelumnya kita sudah melihat pola pikir Brute Force yang Straight Forward.
  • 3. Sekarang mari kita lihat pengaplikasiannya pada dua problem, yaitu Exhaustive Search dan 1/0 Knapsack.
  • 5. Exhaustive Search: Teknik pencarian solusi secara brute force untuk masalah yang melibatkan pencarian elemen dengan sifat khusus (objek-objek kombinatorik atau himpunan bagian dari suatu himpunan)
  • 6. Langkah-langkah: 1 Enumerasi (list) setiap solusi yang mungkin dengan cara yang sistematis. 2 Evaluasi setiap kemungkinan solusi satu per satu, mungkin saja beberapa kemungkinan solusi yang tidak layak dikeluarkan, dan simpan solusi terbaik yang ditemukan sampai sejauh ini (the best solusi found so far). 3 Bila pencarian berakhir, maka umumkan solusi terbaik.
  • 7. Untuk bisa melihat strategi algoritma Brute Force pada Exhaustive Search mari kita lihat penerapannya.
  • 8. Kasus: Travelling Salesman Problem (TSP) Persoalan: Diberikan n buah kota serta diketahui jarak antara setiap kota satu sama lain. Temukan perjalanan (tour) terpendek yang melalui setiap kota lainnya hanya sekali dan kembali lagi ke kota asal keberangkatan (sirkuit Hamilton dengan bobot minimum).
  • 9. Langkah-langkah TSP: 1 Enumerasi (list) semua sirkuit Hamilton dari graph lengkap dengan n buah simpul. 2 Hitung (evaluasi) bobot setiap sirkuit Hamilton yang ditemukan pada langkah 1. 3 Pilih sirkuit Hamilton yang mempunyai bobot terkecil.
  • 10. No. Rute Perjalanan Bobot 1 aàbàcàdàa 10+12+8+15 = 45 2 aàbàdàcàa 12+5+9+15 = 41 3 aàcàbàdàa 10+5+9+8 = 32 4 aàcàdàbàa 12+5+9+15 = 41 5 aàdàbàcàa 10+5+9+8 = 32 6 aàdàcàbàa 10+12+8+15 = 45 Rute perjalananan terpendek adalah aàcàbàdàa aàdàbàcàa dengan bobot = 32.
  • 11. Untuk n buah simpul, semua rute perjalanan yang mungkin dibangkitkan dengan permutasi n-1 buah simpul à (n-1)!
  • 12. Untuk menghitung bobot dari enumerasi yang sudah dibangkitkan membutuhkan waktu O(n).
  • 13. Sehingga kebutuhan waktu untuk exhaustive search adalah O(n . n!).
  • 14. Perbaikan dari pola pikir tersebut adalah memangkas setengah enumerasi yang terbentuk karena hanya pencerminan dari dari setengah enumerasi yang ada.
  • 15. Problem 2: 1/0 Knapsack
  • 16. Kasus: 1/0 Knapsack Persoalan: Diberikan n buah objek dan sebuah knapsack dengan kapasitas bobot K. Setiap objek memiliki properti bobot (weigth) wi dan keuntungan(profit) pi. Bagaimana memilih objek-objek yang akan dimasukkan ke dalam knapsack agar memiliki keuntungan maksimum tanpa melebihi bobot tampungan knapsack.
  • 17. Tampilan Solusi: ! = {!$, !&, … , !(} Dimana: Xi = 1 jika objek ke-i dimasukkan ke dalam knapsack Xi = 0 jika objek ke-i tidak dimasukkan ke dalam knapsack
  • 18. Langkah-langkah 1/0 Knapsack: 1 Enumerasi (list) semua himpunan bagian dari himpunan dengan n objek. 2 Hitung (evaluasi) total keuntungan dari setiap himpunan bagian dari langkah 1. 3 Pilih himpunan bagian yang memberikan total keuntungan terbesar.
  • 19. Contoh Kasus: n = 4. w1 = 2; p1 = 20 w2 = 5; p2 = 30 w3 = 10; p3 = 50 w4 = 5; p4 = 10 Kapasitas knapsack K = 16 Cari kombinasi untuk mencari keuntungan maksimum menggunakan 1/0 knapsack!
  • 20. Himpunan Bagian Total Bobot Total Keuntungan {} 0 0 {1} 2 20 {2} 5 30 {3} 10 50 {4} 5 10 {1,2} 7 50 {1,3} 12 70 {1,4} 7 30 {2,3} 15 80 {2,4} 10 40 {3,4} 15 80 {1,2,3} 17 Tidak layak {1,2,4} 12 60 {1,3,4} 17 Tidak layak {2,3,4} 20 Tidak layak {1,2,3,4} 22 Tidak layak Himpunan bagian objek yang memberikan keuntungan maksimum adalah {2,3} dengan total keuntungan adalah 80. Solusi: X = {0, 1, 1, 0}