PERCABANGAN DAN PEMBATASAN BRANCH AND BOUND
Branch and bound 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 : Branch yang artinya membangun semua cabang tree yang mungkin menuju solusi. 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). Metode ini hanya dapat digunakan untuk masalah optimasi saja (optimazion problem).
TEKNIK BRANCH AND BOUND 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.
Branch and Bound dapat digunakan untuk memecahkan berbagai masalah yang menggunakan Search Tree –Traveling Salesman Problem –N-Queen Problem –15 Puzzle Problem –0/1 Knapsack Problem –Shortest Path
FIFO BRANCH AND BOUND Menggunakan queue E-node dimasukkan ke dalam queue, kemudian dibangun branch (cabang) berikutnya. D-node tidak digunakan untuk membangun branch berikutnya. Didapatkan Partial Space Tree yang dicari.
LIFO BRANCH AND BOUND Menggunakan stack E-node dimasukkan ke dalam stack, kemudian dibangun branch (cabang) berikutnya. D-node tidak digunakan untuk membangun branch berikutnya. Didapatkan Partial Space Tree yang dicari.
LEAST COST BRANCH AND BOUND Pada teknik FIFO dan LIFO, node dibuka sesuai urutannya Pada LC Branch and Bound, node yang memiliki cost terendah dibuka terlebih dulu (menjadi E-node berikutnya) Pada sebuah node x berlaku b ≤ c(x) ≤ u – b adalah batas bawah – c(x) adalah cost node x – u adalah batas atas Jika terjadi b > u maka simpul x dapat dimatikan (dinyatakan sebagai D-node). Contoh LC Branch and Bound yaitu Traveling Salesman Problem dapat dipecahkan dengan Least Cost Branch and Bound
Algoritma Branchand Bound untuk ILP (integer linier programing) Misalkan diberikan suatu masalah pemrograman bilangan bulat sebagai berikut: Maksimasi Z = cx dengan pembatas Ax = b x ≥ 0 xj bilangan bulat untuk j € I dimana I adalah himpunan variabel bilangan bulat. Langkah-langkah yang harus dilakukan untuk menyelesaikan masalah tersebut adalah :
Langkah pertama adalah memecahkan masalah ILP sebagai LP dengan mengabaikan pembatas bilangan bulat (bounding). Kemudian misalkan masalah LP dinyatakan sebagai LP-1 yang mempunyai nilai optimal dari fungsi tujuan Z1. Ø PL-1 Maksimasi Z = cx dengan pembatas Ax = b x ≥ 0 Jika solusi optimal dari LP-1 mengandung beberapa variabel bilangan bulat yang mempunyai nilai pecahan, maka solusi optimal bilangan bulat untuk ILP belum diperoleh dan Z1 menjadi batas atas (upper bound) dari nilai maksimum Z untuk ILP.
Langkah berikutnya adalah mempartisi daerah layak dari LP-1 dengan mencabangkan (branching) salah satu variabel bilangan bulat yang nilainya pecahan. Misalkan variabel xj dipilih untuk dicabangkan dengan nilai pecahan βj dalam LP-1. Kemudian dibuat dua masalah pemrograman linier baru, LP-2 dan LP-3 dengan memasukkan masing-masing pembatas baru xj ≤ [β] dan xj ≥ [β]+1 dan selesaikan kedua permasalahan hingga diperoleh x1,x2,dan z yang baru dari masalah tersebut : Ø PL-2 Ø PL-3 Maksimasi Z = cx Maksimasi Z = cx dengan pembatas dengan pembatas Ax = b Ax = b xj ≤ [β] xj ≥ [β]+1 x ≥ 0 x ≥ 0
Lakukan poin dua hingga semua node dalam kondisi fathomed Lakukan poin dua hingga semua node dalam kondisi fathomed. Fathoming suatu node (masalah LP) terjadi jika: a. Solusi optimal LP merupakan bilangan bulat (tidak terdapat lagi bilangan pecahan). dan nilainya lebih besar dari nilai solusi optimal sebelumnya yang semua variabelnya adalah bilangan bulat (jika ada) b. Masalah LP adalah tak layak (terjadi ketika salah satu atau kedua variabel masih mempunyai nilai pecahan, namun z nya lebih kecil daripada z sebelumnya) c. Nilai optimal Z dari masalah LP tidak lebih baik daripada batas bawah (lower bound) saat ini.
Contoh metode branch and bound Sebuah home-industry tekstil “NUYS COLLECTION” membuat dua macam produk tekstil yang sering digunakan masyarakat dewasa ini, yaitu kemeja dan kaos. Dalam home-industry tersebut, kemeja dan kaos harus melalui 4 workstation agar dapat menjadi produk jadi, yaitu: Workstation 1 : pemotongan kain dan pembuatan pola Workstation 2 : penjahitan Workstation 3 : pressing dan pemeriksaan (quality control) Workstation 4 : pengemasan
Pemilik home-industry tersebut memiliki 4 operator dan masing-masing operator menangani 1 workstation. Pemilik mengalokasikan waktu kerja per hari sebanyak 10 jam yang dimulai dari pukul 08.00 hingga pukul 18.00. Sistem kerja yang diterapkan pada home industry tersebut merupakan sistem kerja seri, yang artinya proses kerja tersebut dilakukan secara berurutan yang dimulai dari workstation 1 dan berakhir di workstation 4. Pemilik menerapkan waktu kerja per shift, yang dimaksudkan bahwa workstation 1 akan mendapatkan shift pertama, workstation 2 akan mendapatkan shift kedua, dan seterusnya Pemilik menetapkan shift per hari untuk 4 workstation seperti dibawah ini : Shift 1 (Workstation 1) : pukul 08.00-09.30 Shift 2 (Workstation 2) : pukul 09.30-13.00 Shift 3 (Workstation 3) : pukul 13.00-16.00 Shift 4 (Workstation 4) : pukul 16.00-18.00
Kapasitas produksi untuk kemeja dan kaos per harinya dalam home-industry tersebut adalah 200 buah dan 120 buah. Produk kemeja dan kaos tersebut memiliki waktu proses per produk yang berbeda-beda disetiap workstation seperti yang tertera pada Tabel 3.1
Pemilik menetapkan harga jual kemeja sebesar Rp Pemilik menetapkan harga jual kemeja sebesar Rp.35000 dan kaos sebesar Rp.40000. Pemilik akan mengambil profit sebesar 45% dari harga jual kemeja dan 50% dari harga jual kaos, sehingga keuntungan yang didapat sebesar Rp.15750 untuk satu kemeja dan sebesar Rp.20000 untuk satu kaos. Berapa kemeja dan kaos yang harus diproduksi setiap harinya agar home-industry tekstil tersebut memperoleh keuntungan yang optimal?
Jawaban Model matematika Definisi : X1 = Jumlah Produksi Kemeja Fungsi Tujuan : Memaksimasikan Z = 15750 X1 + 20000 X2 Pembatas : 0.45 X1 + 0.5 X2 ≤ 90 1.05 X1 + 0.45 X2 ≤ 210 0.9 X1 + 0.45 X2 ≤ 180 0.6 X1 + 0.5 X2 ≤ 120 X1 ≤ 200 X2 ≤ 120 X1 , X2 ≥ 0
Penyelesaian menggunakan metode branch and bound