• Tidak ada hasil yang ditemukan

TINJAUAN PUSTAKA

2.4 Branch and Bound

Pemecahan masalah optimasi Travelling Salesman Problem merupakan pekerjaan yang membutuhkan algoritma yang efisien. Algoritma Branch and Bound adalah salah satu algoritma untuk memecahkan masalah Travelling Salesman Problem. Algoritma Branch and Bound mencari sejumlah solusi yang lengkap untuk masalah optimasi dengan hasil yang terbaik. Walaupun begitu, penggunaan satu-satu secara eksplisit tidak mungkin dilakukan dalam kaitan penambahan sejumlah solusi yang potensial.

(Mulyono, 2007) teknik Branch and Bound dapat diterapkan dengan baik untuk masalah pure maupun mixed integer programming. Metode Branch and Bound adalah salah satu metode untuk menghasilkan penyelesaian optimal program linear yang menghasilkan variabel-variabel keputusan bilangan bulat. Sesuai dengan namanya metode ini membatasi penyelesaian optimum yang akan menghasilkan bilangan pecahan dengan cara membuat cabang atas atau bawah bagi masing-masing variabel keputusan yang bernilai pecahan agar bernilai bulat sehingga setiap pembatasan menghasilkan cabang baru (Widi Hartono, 2014)

Kelebihan dari metode Branch and Bound adalah mampu menyelesaikan permasalahan program integer sehingga keuntungan dari metode ini adalah cara yang efisien untuk mendapatkan jawaban layak (fisibel), sedangkan kekurangan metode ini akan mencari semua jawaban pada setiap titik sehingga persoalan yang besar akan memerlukan memori yang cukup banyak dan waktu yang cukup lama.

Metode Branch and Bound merupakan suatu metode pencarian solusi yang ditransformasikan dalam bentuk pohon percabangan dan pembatasan. Metode ini mula-mula dipakai oleh A. H. Land dan A. G. Doig pada tahun 1960. Algoritma Branch and Bound adalah suatu yang membagi (devine) dan menaklukkan (conquer) sehingga mengurangi masalah asli untuk satu rangkaian lebih kecil dari sub persoalan kemudian secara berulang memecahkan masalah masing-masing sub persoalan tersebut. Ada tiga komponen dalam algoritma Branch and Bound, yaitu sebagai berikut:

1. Fungsi pembatas (bounding) adalah fungsi yang disediakan ruang subspace dari ruang solusi dengan batas rendah untuk nilai solusi terbaik yang diperoleh dalam subspace. Metode dalam bounding ada dua, yaitu sebagai berikut:

1. Metode upper bounding merupakan metode untuk menentukan suatu

batas atas untuk solusi optimum.

2. Metode lower bounding merupakan metode untuk menentukan suatu batas bawah dari fungsi objektif.

3. Strategi pencarian merupakan suatu strategi untuk menyeleksi tiap-tiap simpul yang dihasilkan dan mendapatkan simpul yang optimum.

4. Metode percabangan (brancing) merupakan suatu metode yang diaplikasikan jika subspace setelah diperiksa tidak dapat dibatalkan.

Pembentukan pohon ruang status pada algoritma ini dibangun secara dinamis dengan skema Breadth First Search (BFS) ditambah least cost search. Breadth First Search (BFS) merupakan metode yang menguji semua keadaan dalam pohon pelacakan dalam waktu yang sama. BFS murni simpul berikutnya yang akan diekspansi berdasarkan urutan pembangkitnya. Perhitungan secara kuantitatif akan mempercepat pencarian suatu jawaban, oleh karena itu setiap simpul diberi nilai.

Berdasarkan nilai dari simpul yang dieksplorasi, maka bisa diambil keputusan untuk melakukan eksplorasi berikutnya. Dengan kata lain bahwa simpul yang dieksplorasi berikutnya tidak lagi berdasarkan urutan pembangkitnya (seperti pada BFS murni) tetapi berdasarkan nilai simpul yang paling kecil (least search cost). Nilai ada setiap simpul 𝑖 menyatakan tafsiran biaya termurah atau lintasan minimum dari simpul 𝑖 ke simpul tujuan (simpul solusi).

Gambar 2.31 Breadth First Search

Untuk permasaahan yang simultan, sistem digambarkan dengan matriks 𝑀 dengan ukuran 𝑛 × 𝑛. Dalam hal ini simpul anak beserta nilai batasnya dimasukkan kedalam sebuah antrian untuk dipilih simpul mana yang akan diekplorasi. Simpul yang akan dieksplorasi berikutnya adalah simpul dengan nilai batas terkecil. Nilai batas didapatkan dari hasil reduksi baris dan kolom pada matriks 𝑀.

Matriks tereduksi adalah matriks yang tiap kolom dan tiap barisnya

mengandung paling sedikit satu buah angka 0 dan elemen-elemen lainnya bernilai non-negatif. Untuk mendapatkan matriks tereduksi, maka tiap baris atau kolom yang belum mengandung angka 0 dikurangi dengan nilai terkecil pada baris atau kolom tersebut.

Semua angka yang digunakan untuk mengurangi tiap baris atau kolom tersebut kemudian dijumlahkan. Hasil penjumlahan inilah yang kemudian dijadikan sebagai 𝑐̂(𝑟𝑜𝑜𝑡) atau nilai ongkos dari simpul awal/akar. Hal ini juga berarti bahwa solusi pada persoalan Ttravelling Salesman Problem (TSP) tersebut paling tidak memiliki bobot minimum sebesar nilai 𝑐̂(𝑟𝑜𝑜𝑡) yang diperoleh tersebut.

Langkah-langkah penggunaan algoritma Branch and Bound pada Travelling Salesman Problem sebagai berikut:

1. Melakukan reduksi matriks

Matriks tereduksi adalah matriks yang tiap kolom atau tiap barisnya mengandung paling sedikit satu buah angka 0 dan elemen-elemen lainnnya bernilai non negatif. Untuk mendapatkan matriks tereduksi, maka tiap baris atau kolom yang belum mengandung angka 0 dikurangi dengan nilai terkecil pada baris atau kolom tersebut.

2. Menentukan nilai simpul awal/akar

Semua angka yang digunakan untuk mengurangi atau mereduksi tiap baris atau kolom tersebut kemudian dijumlahkan. Hasil dari penjumlahan inilah yang kemudian dijadikan sebagai ĉ(𝑟𝑜𝑜𝑡) atau nilai ongkos dari simpul awal/akar.

Hal ini juga berarti bahwa solusi pada persoalan TSP tersebut paling tidak memiliki bobot minimum sebesar nilai ĉ(𝑟𝑜𝑜𝑡) yang diperoleh tersebut.

3. Membangkitkan pohon ruang status

Setelah dihasilkan nilai batas simpul akar, maka dapat dibangkitkan pohon ruang status yang masih berisi satu buah simpul yang berbobot sama dengan nilai batas simpul akar atau ĉ(𝑟𝑜𝑜𝑡)

4. Menentukan matriks berikutnya dari matriks yang telah tereduksi

Selanjutnya, misal 𝐴 adalah matriks tereduksi untuk simpul 𝑅, dan misalkan 𝑆 adalah anak dari simpul 𝑅 sehingga sisi (𝑅, 𝑆) pada pohon ruang status berkorespondensi dengan sisi (𝑖, 𝑗), maka dilakukan langkah-langkah sebagai berikut:

1. Mengubah semua nilai pada baris 𝑖 dan kolom 𝑗 menjadi ∞

2. Mengubah 𝐴(𝑗, 1) mnejadi ∞ 3. Mereduksi kembali matriks 𝐴

4. Memperoleh nilai 𝑟 yang merupakan total semua pengurang dari matriks yang telah direduksi sebelumnya, sehingga dapat ditentukan nilai batas dari simpul S sebagai berikut :

ĉ(𝑆) = ĉ(𝑅) + 𝐴(𝑖, 𝑗) + 𝑟 dimana,

𝑐̂(𝑆) = bobot perjalanan minimum yang melalui simpul S (simpul di pohon ruang status)

𝑐̂(𝑅) = bobot perjalanan minimum yang melalui simpul R,

𝐴(i, j) = bobot sisi (i,j) pada graf G yang berkoresponden dengan sisi (R,S) pada pohon ruang status.

r = jumlah semua pengurang pada proses memperoleh matriks tereduksi pada simpul S

BAB 3

Dokumen terkait