• Tidak ada hasil yang ditemukan

Pencabangan dan Pembatasan (Branch and Bound)

LANDASAN TEOR

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

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 Lj tidak layak

ii) Solusi optimal program linier atas Lj adalah integer; atau

iii) Nilai dari solusi program linier zj atas Lj memenuhi zj≤ (jika maksimasi),

maka Lj tidak perlu dibagi. Dalam kasus ini, IP terminologi mengatakan bahwa Lj

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 mencari/menghitung 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.

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

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 xj 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

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

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 Ya Tidak Tidak Tidak Output solusi Pohon kosong? Ya Akhir

Gambar 2.1 Flowchart Algoritma Branch and Bound untuk IP optimasi maksimum

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 = min(b,a) Tidak Apakah solusi bertipe integer? Ya Output solusi Akhir Ya Tidak

Gambar 2.2 Flowchart Algoritma Branch and Bound untuk IP optimasi minimum

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

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

BAB 3

PEMBAHASAN

Dokumen terkait