IMPLEMENTASI ALGORITMA BRANCH AND BOUND

 Metode Branch and Bound adalah sebuah teknik algoritma yang secara khusus mempelajari bagaimana caranya memperkecil Search Tree menjadi sekecil mungkin.

Sesuai dengan namanya, metode ini terdiri dari 2 langkah yaitu :

Branch yang artinya membangun semua cabang tree yang mungkin menuju solusi, Bound yang artinya menghitung node mana yang merupakan active node (E-node) dan node mana yang merupakan dead node (D-node) dengan menggunakan syarat batas constraint (kendala).

TEKNIK BRANCH AND BOUND

                    FIFO Branch and Bound

Adalah teknik Branch and Bound yang menggunakan bantuan queue untuk perhitungan Branch    and Bound secara First In First Out.

                    LIFO Branch and Bound

Adalah teknik Branch and Bound yang menggunakan bantuan stack untuk perhitungan Branch and Bound secara Last In First Out.

                    Least Cost Branch and Bound

Teknik ini akan menghitung cost setiap node. Node yang memiliki cost paling kecil dikatakan memiliki kemungkinan paling besar menuju solusi.

                Masalah Yang Dapat Dipecahkan Branch and Bound dapat digunakan untuk memecahkan berbagai masalah yang menggunakan Search Tree

-            Traveling Salesman Problem

-            N-Queen Problem

-            15 Puzzle Problem

-            0/1 Knapsack Problem

-            Shortest Path

Algoritma Branch and Bound Pemecahan masalah optimasi Travelling Salesman Problem (TSP) merupakan pekerjaan yang membutuhkan algoritma yang efisien dan Algoritma Branch and Bound merupakan salah satu algoritma untuk memecahkan masalah tersebut. Algoritma Branch and Bound mencari sejumlah solusi yang lengkap untuk masalah yang ada dengan hasil yang terbaik. Walaupun begitu, penggunaan satu per satu secara eksplisit tidak mungkin dilakukan dalam kaitan penambahan sejumlah solusi yang potensial. Penggunaan batas (bound) untuk fungsi yang akan dioptimalkan dikombinasikan dengan nilai solusi terbaik yang ada memungkinkan algoritma untuk mencari bagian-bagian dari sejumlah solusi secara implisit.  Pada titik sembarang sepanjang proses solusi, status solusi yang berkenaan dengan pencarian sejumlah solusi dijelaskan oleh sekelompok ahli yang mempelajari dan belum seluruhnya dieksplorasi tetapi sejauh ini

merupakan solusi terbaik yang ada saat ini. Pada awalnya hanya ada subset yaitu ruang solusi lengkap (complete solution space) dan solusi terbaik sejauh ini yang ditemukan baru 1 (satu) [6]. Subspace yang belum diperiksa direpresentasikan sebagai titik-titik dalam sebuah pohon pencarian yang dihasilkan secara dinamis, dimana awalnya hanya berisi root, dan setiap iterasi dari Algoritma Branch and Bound klasik memproses satu titik.  Iterasi memiliki tiga komponen utama yaitu pemilihan titik untuk diproses, kalkulasi batasan (bound), dan pencabangan. Urutan dari pencarian ini dapat dipertukarkan sembarang sesuai dengan strategi yang dipilih untuk memilih node berikutnya yang akan diproses. Jika pemilihan subproblem berikutnya didasarkan pada nilai batas (bound) dari subproblem, maka operasi pertama dari iterasi setelah pemilihan node adalah pencabangan (branching), yaitu pembagian ruang solusi dari node menjadi dua atau lebih subspace untuk diperiksa dalam sebuah iterasi sub rangkaian.  Untuk setiap rangkaian, akan diperiksa apakah subspace terdiri dari satu solusi, yang kemudian dibandingkan dengan solusi terbaik yang ada selama pencarian. Jika tidak, pembatasan fungsi untuk subspace dihitung dan dibandingkan dengan solusi terbaik yang diperoleh. Jika pencarian tidak dapat dilanjutkan dimana subspace tidak berisi solusi yang optimal, keseluruhan subspace akan dibuang, selain itu subspace akan disimpan dalam kelompok node bersama-sama dengan batasannya (bound). Alternatif lainnya adalah dengan memulai menghitung batas (bound) dari node yang terpilih dan kemudian mencabangkannya jika diperlukan. Node-node yang dibuat kemudian disimpan bersamaan dengan batas dari node yang diproses. Pencarian berakhir saat tidak ada lagi bagian dari ruang solusi yang diperiksa, dan solusi optimal kemudiandicatat sebagai solusi terbaik [7].

·      Pencarian solusi N-Queen Problem dengan cara terpendek menggunakan algoritma Branch and Bound

Prinsip algo ritma Branch and Boundsangat mirip dengan BFS, hanya saja pada algoritmaBranchand Boundditambahkan nilai cost atau ongkos dari setiap  simpul yang bertujuan sebagai penanda prioritas di dalam  antrian. Dengan menambah nilai ongko s dari masing -masing simpul  maka nilai ongko s tersebut  akan menjadi penentu prioritas yang ada di dalam antrianyang di pakai di dalam metode

BFS dengan prioritas terkecil akan

berada pada antrian terdepan.Nilai ongkos pada simpulsimpul bertujuan untuk menyatakan nilai batas (bound). Nilai batas dalam algoritma Branch and Bound dicari dengan suatu fungsi pembat

as yaitu suatu fungsi yang bertujuan membangkitkan suatu simpul dengan melihat apakah simpul tersebut mengarah ke simpul solusi dengan memberikan suatu nilai sebagai nilai batas (bound). Cara kerja dari fungsi pembatas dapat berupa [HOR78] yaitu dengan cara mencari jumlah simpul  dalam subpo hon X yang perlu dibangkitkan sebelum simpul solusi ditemukan atau panjang lintasan dari simpul  X ke simpul  solusi terdekat. Simpul  X adalah simpul  dimana akan diberi nilai batas atau nilai ongkos. Gambar dibawah ini adalah realisasi algo ritma BranchandBoundmenggunakan teori pohon dalam persoalan 4-Ratu.



Bila dilihat pada gambar 10, pada simpul-E pertama kali adalah simpul  1,  pada bagian bawah simpul  1 diberi nilai ongkos 4. Simpul 1 dilanjutkan dengan membangkitkan 4 simpul lainnya yaitu simpul 2,3,4, dan 5. Dengan menggunakan fungsi pembatas maka didapat pada simpul 2 dan 5 yaitu X1=1 dan X1=4 diberi nilai ongkos sebesar ∞ yang artinya simpul tersebut akan berada di paling belakang antrian sehingga tidak akan diproses karena tidak mengarah pada simpul solusisehingga tidak mungkin bidak Ratu berada pada posisi (1,1) atau (1,4).

Langkah selanjutnya dengan fungsi pembatas, nilai simpul 3 dan 4 yaitu X1=2 dan X1=3 diberi nilai batas sebesar 3. Simpul-simpul  yang telah diberi nilai batas dimasukkan ke dalam antrian dengan urutan simpul adalah 3,4,2, dan 5.Selanjutnya simpul yang akan diproses berdasarkan antrian adalah simpul 3. Pada simpul 3 dilakukan dengan membangkitkan 3 simpul dengan nama simpul 9,10, dan 11. Simpul-simpul  yang baru dibangki tkan diberi nilai batas dari fungsi pembatas sehingga hasil yang didapat berupa  simpul  9 dan simpul  10 diberi nilai ∞, simpul 11 diberi nilai 2.  Dengan simpul-simpul  yang telah diberikan nilai maka dimasukka n ke dalam antrian sehingga antrian berubah dengan urutan simpul menjadi 11, 4, 2, 5, 9,dan

10. Setelah itu simpul-E dilanjut kan dengan mengambil kepala antrian yaitu simpul 11. Pada simpul 11 dibangkitkan 2 simpul lainya dengan nama simpul 22 dan

23. Simpul 22 diberi ongkos 1 dan simpul 23 diberi ongkos

∞. Nilai simpul yang  telah diberikan dimasukkan ke dalam antrian dengan urutan simpul adalah 22,  4,  2,  5,  9, 10, dan 23.Simpul  dilanjut kan dengan mengambil nilai kepala antrian yaitu simpul 22. Pada simpul 22 diperluas dan di peroleh simpul 30 yang merupakan simpul solusi pertama sehingga hasil pencarian untuk solusi 4-Ratu. Jika dilanjutkan maka akan menemukan solusi yang berikutnya hingga semua antrian selesai diproses.

Dari algo ritma BFSdan algo ritma Branch and Bound dalam N

-

Queen Problem didapat kan bahwa algoritma

Branch and Bound lebih singka t dari algo ritma

BFS dalam  persoalan mencari cara terpendek dari N-Queen Problem. Dalam algo ritma

BFSsemua simpul  hasil perluasan dari simpul-E dipr oses dan diberi nilai pembatas,prosestersebut diulang hingga nilai simpul  solusi ditemuka n. Sedangkan algoritma Branch and Boundmelakukan pencarian dengan cara memberi nilai pembataspada semua simpul perluasan tetapi hanya diproses dari simpul yang memiliki pr ioritas simpul  tersebut  mengarah pada simpul  solusi, sehingga jalan terpendek dalam mencari simpul solusi dapat dengan cepat ditemukan.

Nama : Anan Krisna

NPM : 19312187

Kelas : IF 19 D


Universitas Teknokrat Indonesia : https://teknokrat.ac.id/

Fakultas Teknik dan Ilmu Komputer :http://ftik.teknokrat.ac.id/

Komentar

Postingan Populer