b Daerah feasible dari masalah master baik lebih dibatasi. Lihat Magnanti
dan Wong,. Dan Sherali c
Bila mungkin, kendala harus dimasukkan dalam masalah master menghalangi solusi layak yang belum realistis suboptimal untuk
keseluruhan masalah. Lihat kendala mesin minimum di Danok, McCarl dan White, 1978.
Bruce A. McCarl dan T.H.Spreen, 1997.
2.3 Pencabangan dan Pembatasan Branch and Bound
Branch and bound bukan sebuah teknik solusi khusus terbatas untuk masalah integer programming. Branch and bound adalah pendekatan solusi yang dapat diterapkan
pada beberapa jenis masalah. Pendekatan Branch and bound didasarkan pada prinsip bahwa himpunan total solusi layak dapat dipartisi menjadi subset yang lebih kecil dari
solusi. Subset yang lebih kecil ini kemudian dapat dievaluasi secara sistematis sampai solusi terbaik ditemukan. Ketika pendekatan Branch and bound diterapkan untuk
masalah integer programming, akan digunakan konjungsi dengan pendekatan solusi noninteger yang normal Paul R. Thie, 1979.
Menurut Taha 1975, untuk melaksanakan teknik pencabangan dan pembatasan branch and bound ada dua operasi dasar, yaitu:
1. Pencabangan Branching, merupakan pembagian persoalan jawab kontinu
menjadi subpersoalan di mana semuanya juga kontinu. 2.
Pembatasan Bounding, merupakan pembatasan setiap subpersoalan yang dibuat dengan pencabangan. Batas ini penting untuk tingkatan jawab optimal
dari sub persoalan dan penemuan jawab optimal bilangan bulat.
Teknik pencabangan dan pembatasan branch and bound mencari solusi optimal dari suatu persoalan pemrograman bilangan bulat Integer Programming dengan
mengenumerasi titik-titik dalam daerah fisibel dari suatu subpersoalan Dimyati dan A. Dimyati, 1992.
Universitas Sumatera Utara
Branch and Bound adalah algoritma umum untuk mencari solusi optimal dari berbagai masalah optimasi. Metode ini pertama kali diperkenalkan oleh A.H. Land
dan A.G. Doig pada tahun 1960.
Gagasan penting dari cabang-dan-terikat adalah untuk membagi daerah layak dan mengembangkan batas
pada z . Untuk masalah maksimisasi, batas bawah
adalah nilai tertinggi dari setiap titik bulat layak yang diperoleh. Batas atas diberikan oleh nilai optimal dari program linier yang asli atau dengan nilai terbesar untuk fungsi
tujuan pada setiap kotak yang menggantung. Langkah selanjutnya, harus mencabangkan ke pindah ke subdivisi lain dan menganalisanya. Begitu selanjutnya,
jika solusi belum diperoleh i
Program linier atas L
j
tidak layak ii
Solusi optimal program linier atas L
j
adalah integer; atau iii
Nilai dari solusi program linier z
j
atas L
j
memenuhi z
j
≤ jika maksimasi, maka L
j
tidak perlu dibagi. Dalam kasus ini, IP terminologi mengatakan bahwa L
j
telah terukur fathomed. kasus i disebut fathoming oleh ketidaklayakan, ii fathoming oleh kebulatan dan iii fathoming oleh batas Bradley dkk, 1977.
Prinsip dasar metode ini adalah memecah daerah fisibel suatu masalah program linier dengan membuat subproblem-subproblem. Ada dua konsep dasar dalam
algoritma branch and bound : 1.
Branching adalah proses membagi-bagi permasalahan menjadi subproblem- subproblem yang mungkin mengarah ke solusi.
2. Bounding adalah suatu proses untuk mencarimenghitung batas atas dalam
masalah minimisasi dan batas bawah dalam masalah maksimisasi untuk solusi optimal pada subproblem yang mengarah ke solusi.
Metode branch and bound diawali dengan menyelesaikan program linier dari suatu masalah program integer. Jika semua nilai variabel keputusan solusi optimal
sudah berupa integer, maka solusi tersebut merupakan solusi optimal program linier integer. Jika tidak, dilakukan pencabangan dan penambahan batasan pada program
liniernya kemudian diselesaikan.
Universitas Sumatera Utara
Winston 2004 menyebutkan bahwa nilai fungsi objektif optimal untuk program linier integer lebih kecil sama dengan nilai fungsi objektif optimal untuk program
linier masalah maksimisasi, sehingga nilai fungsi objektif optimal program linier merupakan batas atas bagi nilai fungsi objektif optimal untuk masalah program linier
integer.
Diungkapkan pula oleh Winston 2004 bahwa nilai fungsi objektif optimal untuk suatu kandidat solusi merupakan batas bawah nilai fungsi objektif optimal untuk
masalah program linier integer asalnya. Suatu kandidat solusi diperoleh jika solusi dari suatu subproblem sudah memenuhi kendala integer pada masalah program linier
integer, artinya semua variabelnya sudah bernilai integer.
Berikut ini adalah langkah-langkah penyelesaian suatu masalah maksimisasi dengan metode branch and bound :
1 Langkah 0
Didefinisikan z sebagai batas bawah dari nilai fungsi objektif solusi program linier integer yang optimal. Pada awalnya ditetapkan z = -
∞ dan i = 0. 2
Langkah 1 Subproblem program linier PL
i
dipilih sebagai bagian masalah berikutnya untuk dipecahkan. Subproblem PL
i
diselesaikan. a
Jika PL
i
terukur dan solusi program linier yang ditemukan lebih baik maka batas bawah z diperbarui. Jika tidak bagian masalah subproblem
baru i dipilih dan langkah 1 diulangi. Jika semua subproblem telah dipecahkan, maka proses dihentikan.
b Jika PL
i
tidak terukur, proses dilanjutkan ke langkah 2 untuk melakukan pencabangan PL
i
Suatu subproblem dikatakan terukur fathomed jika terdapat kondisi sebagai berikut :
1. Subproblem tersebut tak fisibel, sehingga tidak dapat menghasilkan solusi
optimal untuk program linier integer. 2.
Subproblem tersebut menghasilkan suatu solusi optimal dengan semua variabelnya bernilai integer. Jika solusi optimal ini mempunyai nilai fungsi
Universitas Sumatera Utara
objektif yang lebih baik daripada solusi fisibel yang diperoleh sebelumnya, maka solusi ini menjadi kandidat solusi optimal dan nilai fungsi
objektifnya menjadi batas bawah nilai fungsi objektif optimal bagi masalah program linier integer pada saat itu. Bias jadi subproblem ini menghasilkan
solusi optimal untuk masalah program linier integer. 3.
Nilai fungsi objektif optimal untuk subproblem tersebut tidak melebihi batas bawah saat itu, maka subproblem ini dapat dieliminasi.
3 Langkah 2
Dipilih salah satu variabel x
j
yang nilai optimalnya adalah yang tidak
memenuhi batasan integer dalam solusi PL
i
. Bidang disingkirkan dengan membuat dua subproblem program linier, yaitu
dan , sehingga diperoleh kendala subproblem baru sebagai
berikut : a.
Subproblem baru 1 : kendala subproblem lama + kendala b.
Subproblem baru 2 : kendala subproblem lama + kendala dengan
didefinisikan sebagai integer terbesar yang kurang dari atau sama dengan
. Selanjutnya kembali ke langkah 1 Winston, 1975.
Ringkasan langkah-langkah metode branch and bound dalam menentukan solusi integer optimal untuk model maksimisasi adalah sebagai berikut:
a Dapatkan solusi simpleks optimal dari model program linear dengan batasan
integer yang dilepaskan b
Tentukan solusi simpleks relaxed sebagai batas atas sedangkan solusi hasil pembulatan ke bawah sebagai batas bawah pada node 1.
c Pilih peubah dengan bagian pecahan yang terbesar untuk percabangan.
Ciptakan dua batasan baru untuk peubah ini yang mencerminkan pembagian nilai integer. Hasilnya adalah sebuah batasan
≤ dan sebuah batasan ≥. d
Ciptakan dengan node baru, satu dengan batasan ≤ dan satu dengan batasan ≥ e
Selesaikan model program linear relaxed dengan batasan baru yang ditambahkan pada tiap node
Universitas Sumatera Utara
f Solusi simpleks relaxed adalah merupakan batas atas pada tiap node, dan
solusi maksimum integer merupakan batas bawah dari node. g
Jika proses ini menghasilkan solusi integer feasible dengan nilai batas atas terbesar pada akhir node mana saja, maka solusi integer optimal tercapai. Jika
tidak muncul suatu solusi integer fisibel, lakukan percabangan dari node dengan batas atas terbesar.
h Ulangi langkah c.
Winston, 2004
Suatu bentuk khusus dari algoritma cabang dan terikat untuk nol-satu program yang dikembangkan oleh Balas. Algoritma ini disebut enumerasi implisit. Metode ini
juga telah diperluas untuk kasus bilangan bulat campuran seperti yang diterapkan di LINDO Schrage, 1981b Bruce A. McCarl dan T.H.Spreen, 1997.
Universitas Sumatera Utara
Inisialisasi pohon ruang solusi Branch and bound
Mulai
Ambil submasalah
Lakukan iterasi untuk setiap kemungkinan
Apakah a tidak mungkin mengarah
ke solusi atau a b?
Apakah variabel bertipe pecahan?
Apakah solusi bertipe integer?
Bunuh cabang
Buat cabang
b
b = maks Ya
Y
a Tidak
Tidak
Tidak
Output solusi
Pohon kosong?
Ya
Akhir
Gambar 2.1 Flowchart Algoritma Branch and Bound untuk IP optimasi maksimum
Universitas Sumatera Utara
Inisialisasi pohon ruang solusi Branch and bound
Mulai
Ambil submasalah
Lakukan iterasi untuk setiap kemungkinan
Pohon kosong?
Apakah a tidak mungkin mengarah
ke solusi atau a b?
Apakah variabel
Tidak
Ya Bunuh
cabang
Buat cabang
b
b = minb,a Tidak
Apakah solusi bertipe integer?
Ya
Output solusi
Akhir
Ya
Tidak
Gambar 2.2 Flowchart Algoritma Branch and Bound untuk IP optimasi minimum
Universitas Sumatera Utara
Keuntungan dari cara pencabangan dan pembatasan adalah cara yang efisien untuk mendapatkan seluruh jawaban layak fisibel, sedangkan kerugian cara ini
adalah ia akan rnencari seluruh jawaban program linier pada setiap titik. Pada persoalan yang besar akan memerlukan waktu yang cukup lama, terutama bila yang
dibutuhkan hanya keterangan mengenai nilai objektif yang optimum Aswan, 1979.
Universitas Sumatera Utara
Mulai Data harga perumahan dan
ketersediaan bahan baku
Formulasi permasalahan penentuan peubah keputusan Sesuai dengan permasalahan
Formulasi fungsi tujuan Maksimasi keuntungan
Pemrograman linier Solusi optimal dan
non integer
Solusi integer
Ya Pemograman Bilangan Bulat
Integer Programming
Metode Branch and Bound
Tidak
Selesai
Gambar 2.3 Skema Pengolahan Data
Universitas Sumatera Utara
BAB 3
PEMBAHASAN
3.1 Pengumpulan Data