Dokumen tersebut membahas metode percabangan dan pembatasan (branch and bound) untuk memecahkan masalah optimasi. Metode ini membagi masalah menjadi subregion yang mengarah pada solusi optimal dengan membangun pohon pencarian dan melakukan pembatasan untuk mencapai solusi terbaik. Algoritma branch and bound digunakan untuk berbagai masalah seperti traveling salesman, n-queen, dan masalah knapsack.
3. Definisi bilangan bulat
Bilangan bulat merupakan bilangan yang terdiri dari bilangan cacah dan negatifnya. Yang
termasuk dalam bilangan cacah yaitu 0,1,2,3,4,… sehingga negatif dari bilangan cacah yaitu -1,-
2,-3,-4,… dalam hal ini -0 = 0 maka tidak dimasukkan lagi secara terpisah.
Bilangan bulat dapat dituliskan tanpa menggunakan komponen desimal atau pecahan.
Himpunan semua bilangan bulat dilambangkan dengan Z atau yang berasal dari Zahlen ( bahasa
jerman untuk bilangan ).
4. Garis bilangan
Berdasarkan garis bilangan diatas, bilangan bulat positif terletak disebelah
kanan nol atau disebut dengan bilangan asli sedangkan bilangan bulat negatif
terletak disebelah kiri nol.
5. Operasi bilangan bulat (Penjumlahan dan Pengurangan
Bilangan Bulat)
d. Menjumlahkan bilangan bulat negatif
dengan bilangan positif.
Misalnya :
-5 + 8 = 3
-4 + 9 = 5
6. Perkalian Bilangan Bulat (Sifat-sifat perkalian suatu bilangan)
Perkalian bilangan positif dengan bilangan
positif, hasilnya positif.
Contoh:
1) 4 x 5 = 5 + 5 + 5 + 5 = 20
2) 7 x 8 = 56
3) 12 x 15 = 180
Perkalian bilangan positif dengan bilangan
negatif, hasilnya negatif.
Contoh:
1) 4 x (-5) = (-5) + (-5) +(-5) +(-5) = -20
2) 7 x (-8) = -56
3) 12 x (-15) = -180
Perkalian bilangan negatif dengan bilangan
positif, hasilnya negatif.
Contoh:
1) -4 x 5 = -(5 + 5 + 5 + 5) = -20.
2) -7 x 8 = -56
3) -12x 15 = -180
Perkalian bilangan negatif dengan bilangan
negatif, hasilnya positif.
Contoh:
1) -4 x (-5) = -[-5 + (-5) + (-5) + (-5)] = -[-20] =
20
2) -7 x (-8) = 56
3) -12 x (-15) = 180
7. Pembagian bilangan bulat (Sifat-sifat pembagian bilangan
bulat)
Pembagian bilangan positif dengan bilangan
positif, hasilnya positif
Contoh
1) 63 : 7 = 9
2) 143 : 11 = 13
Pembagian bilangan positif dengan bilangan
negatif, hasilnya negatif
Contoh:
1) 63 : (-9) = -7
2) 72 : (-6) = -12
Pembagian bilangan negatif dengan bilangan
positif, hasilnya negatif
Contoh:
1) -63 : 7 = -9
2) -120 : 10 = -12
Pembagian bilangan negatif dengan bilangan
negatif, hasilnya positif.
Contoh:
1) -72 : (-8) = 9
2) -120 : (-12) = 10
8. Sifat Operasi Hitung Bilangan Bulat
Sifat komutatif
Sifat komutatif (pertukaran) pada penjumlahan dan
perkalian.
a + b = b + a
a x b = b x a, berlaku untuk semua bilangan bulat
Sifat asosiatif
Sifat asosiatif (pengelompokan) pada penjumlahan
dan perkalian.
(a + b) + c = a + (b+c)
(a x b) x c = a x (bxc), berlaku untuk semua bilangan
bulat
Sifat distributif (penyebaran)
a x (b + c) = (a x b) + (a x c), yang berlaku untuk semua
bilangan bulat.
Operasi Campuran
Aturan dalam mengerjakan operasi campuran
adalah sebagai berikut.
1 .Operasi dalam tanda kurung dikerjakan terlebih
dahulu.
2. Perkalian dan pembagian adalah setara, yang
ditemui terlebih dahulu dikerjakan terlebih dahulu.
3. Penjumlahan dan pengurangan adalah setara,
yang ditemui terlebih dahulu dikerjakan terlebih
dahulu.
4. Perkalian atau pembagian dikerjakan lebih dahulu
daripada penjumlahan atau
pengurangan.
10. Algoritma percabangan dan pembatasan (Branch And Bound)
Branch and bound merupakan metode yang
membagi permasalahan menjadi subregion yang
mengarah ke solusi (branching) dengan
membentuk sebuah struktur pohon pencarian
(search tree) dan melakukan pembatasan
(bounding) untuk mencapai solusi optimal
11. 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).
12. 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.
13. 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
14. 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.
15. 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.
16. 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
17. 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 :
18. 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.
19. 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
20. 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.
21. Pemograman Bilangan Bulat
(Integer Programming)
Sebuah program linear dengan persyaratan tambahan bahwa semua variabelnya merupakan
bilangan bulat
Algoritma Pencabangan (Branching)
Algoritma Pemotongan/Gomory
Algoritma Pencabangan (Branching)
1. Aproksimasi pertama
Abaikan persyaratan bilangan bulat dan selesaikan pemrograman linearnya dengan salah satu
teknik yang telah dipelajari sebelumnya (misalkan dengan metoda grafik). Jika solusi optimalnya
berbentuk bilangan bulat maka pemecahan tersebut juga merupakan pemecahan optimal
untuk program bilangan bulat
22. 2. Aproksimasi kedua
Jika solusi optimal dengan teknik sebelumnya tidak bulat (keadaan ini sering terjadi) maka
komponen-komponen dari aproksimasi pertama dapat dibulatkan ke bilangan bulat terdekat
yang layak sehingga diperoleh aproksimasi kedua. Prosedur ini lebih efektif apabila
aproksaimasinya mengandung bilangan besar
Langkah/proses :
Jika aproksimasi pertama masih mengandung variabel yang tidak bulat, misalnya X*
j maka i1 <
< i2 dimana i1 dan i2 adalah dua bilangan bulat tak negatif yang berturutan.
Buatlah 2 program (model) bilangan bulat yang baru dengan cara memperluas program (model)
sebelumnya dengan kendala xj ≤ i1 atau kendala Xj ≥ i2. Proses ini disebut pencabangan
(Branching)
23. Contoh 1
Diketahui model matematis sbb:
Maksimumkan : Z = 10X1 + X2
dengan kendala : 2 X1 + 5 X2 ≤ 11
dan : x1 dan X2 bulat tak negatif
Dengan mengabaikan persyaratan bilangan bulat, dengan
metode grafik maka solusi optimalnya adalah:
X*1 = 5.5, X*2 = 0, dan Z* = 55
5 < X*1 < 6
Maks Z = 10X1 + X2
kendala 2X1 + 5 X2 ≤ 11
X1 ≤ 5
dan X1danX2 bulat tak negatif
Maks Z = 10X1 + X2
kendala 2X1 + 5 X2 ≤ 11
X1 ≥ 6
dan X1danX2 bulat tak negatif
X*1 = 5, X*2 = 0.2, dan Z* = 50.2 Pemecahan tidak layak
0 < X*2 < 1
Maks Z = 10X1 + X2
kendala 2X1 + 5 X2 ≤ 11
X1 ≤ 5
X2 ≤ 0
dan X1danX2 bulat tak negatif
Maks Z = 10X1 + X2
kendala 2X1 + 5 X2 ≤ 11
X1 ≥ 6
X2 ≥ 1
dan X1danX2 bulat tak negatif
X*1 = 5, X*2 = 0, dan Z* = 50 X*1 = 3, X*2 = 1, dan Z* = 31
24. Hasil Perhitungn dalam bentuk diagram
1
2
3
4
5
Z* = 55
Z* = 50.2
Z* = 50
Z* = 30
(5.5 , 0)
(5, 0.2)
(5, 0)
(3, 1)
Tidak Layak
Maksimumkan z = 3X1 + 4 X2
Dengan kendala 2X1 + X2 ≤ 6
2X1 + 3X2 ≤ 9
Dan X1 dab X2 bulat tak negatif
Latihan
Catatan:
Jika hasil aproksimasi pertamanya menunjukkan
kedua variabel keputusannya tidak bulat, pilihlah
yang paling besar penyimpangan dari bilangan bulat
terdekatnya
Jika kedua variabel tersebut penyimpangannya
sama maka kita bisa membuat pencabangan dari
salah satunya, atau pilihlah yang mempunyai nilai Z
25. 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
26. 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
27. 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
28. 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?