Jumat, 08 Januari 2021

Algoritma Branch and Bound

Algoritma B&B (Branch and Bound) adalah salah satu algoritma yang digunakan untuk pencarian jalur. Contoh yang dibahas kali ini adalah mengenai pencarian jalur yang melalui semua titik dengan biaya terendah.
Algoritma ini memiliki 2 prinsip, yaitu: 

1. Algoritma ini akan melakukan perhitungan secara rekursif, akan memecah masalah kedalam masalah-masalah kecil, sambil tetap menghitung nilai terendah / terbaik. Proses ini dinamakan branching.

2. Jika branching diterapkan secara sendirian, maka hasilnya akan tetap mencari setiap kemungkinan yang ada. Untuk meningkatkan performa, algoritma ini akan melakukan pencatatan biaya minimum sebagai bound dalam setiap perhitungan, sehingga untuk calon hasil jawaban yang diperkirakan akan melebihi bound akan dibuang karena tidak mungkin akan mencapai nilai terbaik.

Algoritma Branch and Bound (B&B) juga merupakan metode pencarian di dalam ruang solusi secara sistematis.

·       Algoritma runut-balik à skema DFS

    Algoritma B&B à skema BFS

·       Untuk mempercepat pencarian ke simpul solusi, maka setiap simpul diberi sebuah nilai ongkos (cost).

·       Simpul berikutnya yang akan diekspansi tidak lagi berdasarkan urutan pembangkitannya (sebagaimana pada BFS murni), tetapi simpul yang memiliki ongkos yang paling kecil (least cost search).

·       Nilai ongkos pada setiap simpul i menyatakan taksiran ongkos termurah lintasan dari simpul i ke simpul solusi (goal node):

= nilai taksiran lintasan termurah dari

simpul status i ke status tujuan

·       Dengan kata lain,  menyatakan batas bawah (lower bound) dari ongkos pencarian solusi dari status i.

Prinsip Pencarian Solusi pada Algoritma B&B

·       Skema BFS = skema FIFO (First In First Out).

·       Tinjau kembali persoalan 4-ratu yang diselesaikan dengan skema BFS (murni).

Gambar 1. Pohon ruang status yang terbentuk untuk persoalan 4-Ratu dengan metode BFS

·       Solusi pertama dicapai pada simpul 30, yaitu X = (2, 4, 1, 3). Dengan skema BFS murni / FIFO, kita harus memperluas dulu simpul 12, simpul 15, dan simpul 16 sebelum memperluas simpul 22 yang melahirkan simpul solusi, yaitu simpul 30.

·       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).

·       Simpul hidup yang menjadi simpul-E ialah simpul yang mempunyai nilai batas terkecil (strategi  pencarian berdasarkan biaya terkecil (least cost search).

·       Untuk setiap simpul X, nilai batas ini dapat berupa [HOR78]:

(a)       jumlah simpul dalam upapohon X yang perlu  dibangkitkan sebelum simpul solusi ditemukan, atau

(b)     panjang lintasan dari simpul X ke simpul solusi terdekat (dalam upapohon X ybs)

Misal digunakan ukuran (b):

·       Pemberian nilai batas seperti pada persoalan N-Ratu di atas adalah nilai batas yang ideal, karena letak simpul solusi diketahui.

·       Pada umumnya, untuk kebanyakan persoalan, letak simpul solusi tidak diketahui, karena itu, dalam prakteknya, nilai batas untuk setiap simpul umumnya berupa taksiran atau perkiraan.

·       Fungsi heuristik untuk menghitung taksiran cost:

        = ongkos untuk simpul i

            = ongkos mencapai simpul i dari akar

       = ongkos mencapai simpul tujuan dari simpul i.

·   Simpul berikutnya yang dipilih untuk diekspansi adalah simpul yang memiliki minimum.


Algoritma B&B:

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

2.   Jika Q kosong, tidak ada solusi. Stop.

3.  Jika Q tidak kosong, pilih dari antrian Q simpul i yang mempunyaipaling kecil. Jika terdapat beberapa simpul i  yang memenuhi, pilih satu secara sembarang.

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

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

6.   Kembali ke langkah 2. 


Nama            : Agnes Rantika

NPM              : 19312155

Kelas             : IF 19 D

 Mata Kuliah : Analisis dan Strategi Algoritma

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

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

Uniform Memory Access (UMA), Non-Uniform Memory Access (NUMA), Cache-Coherent NUMA (CC-NUMA)

Nama      : Agnes Rantika NPM       : 19312155 Kelas       : IF 22 Dx "Uniform Memory Access (UMA), Non-Uniform Memory Access (NUMA), C...