Implementasi Algoritma Branch & Bound

Nama: IMAM BUKHORI
NPM: 20372004P
Kelas: IF 20 DX

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 :

  1. Branch yang artinya membangun semua cabang tree yang mungkin menuju solusi. 
  2. 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

Ada beberapa teknik dalam Branch and Bound yaitu: 

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

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

  3. 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.

Algoritma Branch and Bound

Sebagaimana pada algortima runut-balik, algoritma Branch & Bound juga merupakan metode pencarian di dalam ruang solusi secara sistematis. Ruang Solusi diorganisasikan ke dalam pohon ruang status. Pembentukan pohon ruang status. Pembentukan pohon ruang status pada algoritma B&B berbeda dengan pembentukan pohon pada algoritma runutbalik. Bila pada algoritma runut-balik ruang solusi dibangun secara Depth-First Search(DFS), maka pada algoritma B&B ruang solusi dibangun dengan skema Breadth-First Search (BFS).

Pada algoritma B&B, pencarian ke simpul solusi dapat dipercepat dengan memilih simpul hidup berdasarkan nilai ongkos (cost). Setiap simpul hidup diasosiasikan dengan sebuah ongkos yang menyatakan nilai batas (bound). Pada prakteknya, nilai batas untuk setiap simpul umumnya berupa taksiran atau perkiraan. Fungsi heuristik untuk menghitung taksiran nilai tersebut dinyatakan secara umum sebagai :


(i) = (i) + (i)

yang Dalam hal ini,

(i) = ongkos untuk simpul i
(i) = ongkos mencapai simpul i dari akar
(i) = ongkos mencapai simpul tujuan dari simpul akar i (perkiraan)

Nilai digunakan untuk mengurutkan pencarian. Simpul berikutnya yang dipilih untuk diekspansi adalah simpul yang memiliki  minimum (Simpul-E). Strategi memilih simpul-E seperti ini dinamakan strategi pencarian berdasarkan biaya terkecil (least cost search).

Prinsip dari algoritma branch and bound ini adalah :

1. Masukkan simpul akar ke dalam antrian Q. Jika simpul akar adalah simpul solusi (goal node), maka solusi telah ditemukan. Stop.

2. Jika kosong, tidak ada solusi . Stop.

3. Jika tidak kosong, pilih dari antrian simpul yang mempunyai (i) paling kecil. Jika terdapatbeberapa simpul yang memenuhi, pilih satusecara sembarang.

4. Jika simpul adalah simpul solusi, berarti solusi sudah ditemukan, stop. Jika simpul bukan simpul solusi, maka bangkitkan semua anak-anaknya. Jika tidak mempunyai anak, kembali ke langkah 2.

5. Untuk setiap anak dari simpul i, hitung  (j), dan masukkan semua anak-anak tersebut ke dalam antrian Q.

6. Kembali ke langkah 2.


http://ti.ftik.teknokrat.ac.id/

http://ftik.teknokrat.ac.id/

https://www.teknokrat.ac.id/

Comments

Popular posts from this blog

Sejarah, Definisi dan Cara Kerja Algoritma Divide and Conquer

Implementasi Algoritma Divide and Conquer pada Sorting dan Searching