Anda di halaman 1dari 6

12,6 CABANG DAN TEKNIK BOUND DAN APLIKASI PERUSAHAAN UNTUK

BINARY INTEGER PROGRAMMING


Karena setiap dibatasi masalah IP murni hanya memiliki jumlah terbatas solusi layak,
adalah wajar untuk mempertimbangkan menggunakan beberapa jenis prosedur pencacahan untuk
menemukan solusi yang optimal. Sayangnya, seperti yang kita bahas di bagian sebelumnya, jumlah
terbatas ini dapat, dan biasanya, sangat besar. Oleh karena itu, sangat penting bahwa prosedur
pencacahan akan cerdik terstruktur sehingga hanya sebagian kecil dari solusi layak sebenarnya
perlu diperiksa. Sebagai contoh, pemrograman dinamis (lihat Bab. 11) menyediakan satu jenis
seperti prosedur untuk banyak masalah memiliki jumlah terbatas solusi layak (meskipun tidak
terlalu efisien untuk sebagian besar masalah IP). Pendekatan lain seperti disediakan oleh teknik
cabang-dan-terikat. Teknik ini dan variasi itu telah diterapkan dengan beberapa keberhasilan untuk
berbagai masalah OR,
Konsep dasar yang mendasari teknik cabang-dan-terikat adalah untuk membagi dan
menaklukkan. Karena asli “besar” masalah adalah terlalu sulit untuk dipecahkan secara langsung,
itu dibagi menjadi submasalah yang lebih kecil dan lebih kecil sampai submasalah ini bisa
ditaklukkan. Membagi (bercabang) dilakukan dengan membagi seluruh rangkaian solusi layak
menjadi subset yang lebih kecil dan lebih kecil. The menaklukkan (fathoming) dilakukan secara
parsial oleh bounding seberapa baik solusi terbaik dalam subset bisa dan kemudian membuang
subset jika terikat menunjukkan bahwa tidak mungkin mengandung solusi optimal untuk masalah
asli.
Sekarang kita akan menjelaskan pada gilirannya tiga langkah-bercabang dasar ini,
bounding, dan fathoming-dan menggambarkan mereka dengan menerapkan algoritma cabang-
dan-terikat dengan contoh prototipe (California Manufacturing Co masalah) disajikan dalam Sec.
12.1 dan diulang di sini
(Dengan kendala nomor untuk referensi nanti)
FUNGSI
Percabangan
Ketika Anda berurusan dengan variabel biner, cara yang paling mudah untuk partisi
himpunan solusi layak menjadi himpunan bagian adalah untuk memperbaiki nilai salah satu
variabel (katakanlah, x1) di x1 = 0 untuk satu bagian dan x1 = 1 untuk lainnya subset. Melakukan
hal ini untuk contoh prototipe membagi seluruh masalah ke dalam dua submasalah yang lebih kecil
ditunjukkan di bawah ini.
FUNGSI
GAMBAR 12,4 Solusi pohon diciptakan oleh braching fot iterasi pertama dari cabang BIP
dan algotirhm terikat misalnya di sec 12.1
Gambar 12.4 menggambarkan pemisah ini (bercabang) menjadi submasalah oleh pohon
(didefinisikan dalam Sec. 9.2) dengan cabang (busur) dari All simpul (sesuai dengan seluruh
masalah memiliki semua solusi layak) untuk dua node sesuai dengan dua subproblem. pohon ini,
yang akan terus “cabang tumbuh” iterasi oleh iterasi, disebut sebagai pohon solusi (atau pohon
enumerasi) untuk algoritma. Variabel yang digunakan untuk melakukan percabangan ini pada
iterasi setiap dengan menetapkan nilai ke variabel (seperti dengan x1 atas) disebut variabel
bercabang. (Metode canggih untuk memilih bercabang variabel adalah bagian penting dari
beberapa algoritma cabang-dan-terikat tetapi, untuk kesederhanaan, kami selalu memilih mereka
di alam agar-x1 mereka, x2,..., Xn-seluruh bagian ini.)
Kemudian pada bagian Anda akan melihat bahwa salah satu dari submasalah ini bisa
ditaklukkan (dimengerti) segera, sedangkan subproblem lainnya perlu dibagi lebih lanjut ke
submasalah yang lebih kecil dengan menetapkan x2 0 atau x2 1.
Untuk masalah IP lain di mana variabel bilangan bulat memiliki lebih dari dua nilai yang
mungkin, percabangan masih bisa dilakukan dengan menetapkan variabel bercabang di nilai-nilai
individu masing-masing, sehingga menciptakan lebih dari dua subproblems baru. Namun,
pendekatan alternatif yang baik adalah untuk menentukan rentang nilai (misalnya, XJ 2 atau XJ 3)
untuk variabel bercabang untuk setiap subproblem baru. Ini adalah pendekatan yang digunakan
untuk algoritma yang disajikan dalam Sec. 12,7.
bounding
Untuk masing-masing submasalah ini, kita sekarang perlu untuk mendapatkan terikat pada
seberapa baik solusi terbaik yang layak dapat. Cara standar untuk melakukan hal ini adalah dengan
cepat memecahkan relaksasi sederhana dari subproblem tersebut. Dalam kebanyakan kasus,
relaksasi masalah diperoleh hanya dengan menghapus ( “santai”) satu set kendala yang membuat
masalah sulit untuk memecahkan. Untuk masalah IP, kendala yang paling merepotkan adalah
mereka yang membutuhkan variabel masing-masing untuk menjadi integer. Oleh karena itu,
relaksasi yang paling banyak digunakan adalah relaksasi LP yang menghapus set kendala.
Untuk menggambarkan misalnya, menganggap pertama seluruh masalah yang diberikan
dalam Sec. 12.1. Its LP relaksasi diperoleh dengan mengganti baris terakhir dari model (xj adalah
biner, untuk j 1, 2, 3, 4) oleh kendala yang XJ 1 dan XJ 0 untuk j 1, 2, 3, 4. Menggunakan simpleks
metode untuk cepat menyelesaikan relaksasi LP ini menghasilkan solusi yang optimal
(X1, x2, x3, x4)

Oleh karena itu, Z 16 untuk semua solusi layak untuk masalah BIP asli (karena solusi ini
adalah bagian dari solusi layak untuk relaksasi LP). Bahkan, dengan rincian sebagai berikut, ini
terikat dari 16 dapat dibulatkan ke bawah ke 16, karena semua koefisien dalam fungsi tujuan yang
integer, sehingga semua solusi bilangan bulat harus memiliki nilai integer untuk Z.
Terikat untuk seluruh masalah: Z 16.
Sekarang mari kita mendapatkan batas untuk dua subproblem dengan cara yang sama.
relaksasi LP mereka diperoleh dari model dalam ayat sebelumnya dengan mengganti kendala yang
XJ adalah biner untuk j 2, 3, 4 oleh kendala 0 XJ 1 untuk j 2, 3, 4. Menerapkan metode simpleks
kemudian menghasilkan solusi optimal (ditambah nilai tetap x1) ditunjukkan di bawah ini.
LP relaksasi dari subproblem 1: (x1, x2, x3, x4) (0, 1, 0, 1) dengan Z 9.
LP relaksasi dari subproblem 2: (x1, x2, x3, x4) 1,
batas yang dihasilkan untuk subproblem maka yang
Terikat untuk subproblem 1: Z 9,
Terikat untuk subproblem 2: Z 16.
GAMBAR 12.5 Hasil berlari untuk iterasi pertama dari cabang BIP dan algoritma terikat misalnya
di sec 12.1
Gambar 12.5 merangkum hasil ini, di mana angka-angka yang diberikan tepat di bawah
node batas dan di bawah masing-masing terikat adalah solusi optimal diperoleh untuk relaksasi
LP.
fathoming
Sebuah subproblem bisa ditaklukkan (dimengerti), dan dengan demikian diberhentikan
dari pertimbangan lebih lanjut, dalam tiga cara yang dijelaskan di bawah.
Salah satu cara diilustrasikan oleh hasil untuk subproblem 1 diberikan oleh x1 0 simpul
pada Gambar. 12,5. Perhatikan bahwa (unik) solusi optimal untuk relaksasi nya LP, (x1, x2, x3,
x4) (0, 1, 0, 1), merupakan solusi integer. Oleh karena itu, solusi ini juga harus menjadi solusi
optimal untuk subproblem 1 itu sendiri. Solusi ini harus disimpan sebagai incumbent pertama
(yang terbaik solusi yang layak ditemukan sejauh ini) untuk seluruh masalah, bersama dengan nilai
dari Z. Nilai ini dilambangkan dengan
Z * nilai Z untuk berkuasa saat ini,
sehingga Z * 9 pada saat ini. Sejak solusi ini telah disimpan, tidak ada alasan untuk
mempertimbangkan subproblem 1 lebih jauh oleh percabangan dari x1 0 node, dll Melakukan
sehingga hanya dapat menyebabkan solusi layak lain yang lebih rendah daripada incumbent, dan
kami tidak tertarik seperti solusi. Karena telah diselesaikan, kami memahami (mengabaikan)
subproblem 1 sekarang.
Hasil di atas menunjukkan tes fathoming kunci kedua. Sejak Z * 9, tidak ada alasan untuk
mempertimbangkan lebih lanjut subproblem setiap yang terikat 9, karena subproblem tersebut
tidak dapat memiliki solusi yang layak lebih baik dari incumbent. Lain lebih umum, subproblem
sebuah dimengerti setiap kali nya Bound <Z *.
Hasil ini tidak terjadi pada iterasi saat ini misalnya karena subproblem 2 telah menjadi
terikat dari 16 yang lebih besar dari 9. Namun, mungkin terjadi kemudian untuk keturunan
subproblem ini (subproblem baru yang lebih kecil yang diciptakan oleh percabangan pada
subproblem ini, dan kemudian mungkin bercabang lebih lanjut melalui “generasi” berikutnya).
Selain itu, sebagai pemain lama baru dengan nilai yang lebih besar dari Z * ditemukan, itu akan
menjadi lebih mudah untuk memahami cara ini.
Cara ketiga fathoming cukup mudah. Jika metode simpleks temuan bahwa relaksasi LP
sebuah subproblem ini tidak memiliki solusi layak, maka subproblem itu sendiri harus tidak
memiliki solusi layak, sehingga dapat diberhentikan (dimengerti).
Dalam semua tiga kasus, kami sedang melakukan pencarian kami untuk solusi optimal
dengan mempertahankan untuk penyelidikan lebih lanjut hanya mereka submasalah yang mungkin
bisa memiliki solusi yang layak lebih baik dari incumbent saat ini.
Ringkasan Tes fathoming. Sebuah subproblem yang dimengerti (diberhentikan dari
pertimbangan lebih lanjut) jika
Test 1: Its terikat Z *,
atau
Test 2: Its LP relaksasi tidak memiliki solusi layak,
atau
Uji 3: Solusi optimal untuk relaksasi LP adalah integer. (Jika solusi ini lebih baik dari
incumbent, menjadi incumbent baru, dan uji 1 diterapkan kembali untuk semua subproblem
unfathomed dengan yang baru yang lebih besar Z *.)
Gambar 12.6 merangkum hasil dari menerapkan tiga tes ini untuk subproblem 1 dan 2
dengan menunjukkan pohon solusi saat ini. Hanya subproblem 1 telah dimengerti, dengan uji 3,
seperti yang ditunjukkan oleh F (3) sebelah x1 0 simpul. incumbent dihasilkan juga diidentifikasi
di bawah node ini.
Iterasi berikutnya akan menggambarkan aplikasi yang sukses dari ketiga tes. Namun,
sebelum melanjutkan contoh, kita meringkas algoritma yang diterapkan untuk masalah BIP ini.
(Algoritma ini mengasumsikan bahwa semua koefisien dalam fungsi tujuan adalah bilangan bulat
dan bahwa urutan variabel untuk percabangan adalah x1, x2,..., Xn.)

Ringkasan Algoritma BIP Cabang-dan-Bound.


Inisialisasi: Set Z *. Terapkan langkah berlari, fathoming langkah, dan uji optimalitas diuraikan di
bawah untuk seluruh masalah. Jika tidak dimengerti, mengklasifikasikan masalah ini sebagai salah
satu yang tersisa “subproblem” untuk melakukan iterasi penuh pertama di bawah ini.
Langkah untuk setiap iterasi:
1. Percabangan: Di antara sisa (unfathomed) submasalah, pilih salah satu yang telah dibuat baru-
baru ini. (Ikatan istirahat sesuai dengan yang memiliki lebih besar terikat.) Cabang dari node untuk
subproblem ini untuk membuat dua subproblem baru dengan memperbaiki variabel berikutnya
(variabel bercabang) di 0 atau 1.
2. Batas: Untuk setiap subproblem baru, mendapatkan nya terikat dengan menerapkan metode
simpleks untuk relaksasi LP dan pembulatan ke bawah nilai Z untuk solusi optimal yang
dihasilkan.
3. fathoming: Untuk setiap subproblem baru, menerapkan tiga tes fathoming dirangkum di atas,
dan membuang mereka submasalah yang dimengerti oleh salah satu tes.
GAMBAR 12.6 Solusi pohon setelah iterasi pertama dari BIP cabang-dan-terikat algoritma
untuk contoh di Sec. 12.1.
uji optimalitas: Berhenti ketika tidak ada subproblem yang tersisa; incumbent saat ini adalah
optimal.1 Jika tidak, kembali untuk melakukan iterasi lain.
Percabangan langkah untuk algoritma ini menjamin komentar untuk mengapa subproblem
ke cabang dari dipilih dengan cara ini. Salah satu pilihan tidak digunakan akan selalu memilih
subproblem yang tersisa dengan yang terbaik terikat, karena subproblem ini akan menjadi yang
paling menjanjikan yang mengandung solusi optimal untuk seluruh masalah. Alasan bukannya
memilih subproblem yang terakhir dibuat adalah bahwa LP relaksasi sedang diselesaikan pada
langkah melompat-lompat. Daripada memulai metode simpleks dari awal setiap kali, masing-
masing relaksasi LP umumnya diselesaikan dengan reoptimization dalam implementasi skala
besar algoritma ini. reoptimization ini melibatkan merevisi tablo simpleks akhir dari relaksasi LP
sebelumnya yang diperlukan karena beberapa perbedaan dalam model (seperti untuk analisis
sensitivitas) dan kemudian menerapkan beberapa iterasi dari mungkin metode ganda simpleks.
reoptimization ini cenderung menjadi jauh lebih cepat daripada memulai dari awal, asalkan model
sebelumnya dan saat ini berkaitan erat. Model akan cenderung terkait erat di bawah mistar
bercabang digunakan, tetapi tidak ketika Anda melewatkan sekitar di pohon solusi dengan memilih
subproblem dengan yang terbaik terikat.
Melengkapi Contoh
Pola untuk iterasi yang tersisa akan sangat mirip dengan yang untuk iterasi pertama yang
dijelaskan di atas kecuali untuk cara di mana fathoming terjadi. Oleh karena itu, kita akan
merangkum langkah-langkah bercabang dan berlari cukup sebentar dan kemudian fokus pada
langkah fathoming.
Iterasi 2. The subproblem bersesuaian hanya tersisa ke node x1 1 pada Gambar. 12,6, jadi kami
akan cabang dari node ini untuk membuat dua subproblem baru diberikan di bawah ini.
FUNGSI
1 jika tidak ada incumbent, kesimpulannya adalah bahwa masalah tidak memiliki solusi
layak
FUNGSI
The relaksasi LP dari submasalah ini diperoleh dengan mengganti kendala XJ adalah biner untuk
j 3, 4 oleh kendala 0 XJ 1 untuk j 3, 4. solusi optimal mereka (ditambah nilai-nilai tetap x1 dan x2)
adalah
LP relaksasi subproblem 3
LP relaksasi subproblem 4
batas yang dihasilkan untuk subproblem yang
Terikat untuk subproblem 3: Z 13,
Terikat untuk subproblem 4: Z 16.
Perhatikan bahwa kedua batas ini lebih besar dari Z * 9, sehingga fathoming test 1 gagal
dalam kedua kasus. Test 2 juga gagal, karena kedua relaksasi LP memiliki solusi layak (seperti
yang ditunjukkan oleh adanya solusi optimal). Sayangnya, tes 3 gagal juga, karena kedua solusi
optimal termasuk variabel dengan nilai-nilai noninteger.
Gambar 12.7 menunjukkan pohon solusi yang dihasilkan pada saat ini. Kurangnya F ke
kanan baik node baru menunjukkan bahwa keduanya tetap unfathomed.
Iterasi 3.Sejauh ini, algoritma telah menciptakan empat subproblems. Subproblem 1 telah
dimengerti, dan subproblem 2 telah digantikan oleh (dipisahkan menjadi) submasalah 3 dan 4, tapi
ini dua terakhir tetap berada di bawah pertimbangan. Karena mereka diciptakan secara bersamaan,
tapi subproblem 4 (x1 1, x2 1) memiliki lebih besar terikat (16 13), percabangan berikutnya
dilakukan dari (x1, x2) (1, 1) node di pohon solusi, yang menciptakan berikut submasalah baru (di
mana kendala 3 menghilang karena tidak mengandung x4).
GAMBAR 12.7 Solusi pohon setelah iterasi 2 cabang BIP dan algoritma terikat misalnya di sec
12.1
FUNGSI
hasil sebagai berikut diperoleh:
LP relaksasi dari subproblem 5: (x1, x2, x3, x4)
LP relaksasi subproblem 6: Tidak ada solusi layak.
Terikat untuk subproblem 5: Z 16.
Perhatikan bagaimana kombinasi kendala 1 dan 5 di relaksasi LP dari subproblem 6
mencegah setiap solusi layak. Oleh karena itu, subproblem ini dimengerti dengan uji 2. Namun,
subproblem 5 gagal tes ini, serta uji 1 (16 9) dan uji 3 (x4 = ½ tidak integer), sehingga masih dalam
pertimbangan.
Kami sekarang memiliki pohon solusi ditunjukkan pada Gambar. 12,8.
iterasi 4. Subproblem yang sesuai dengan node (1, 0) dan (1, 1, 0) pada Gambar. 12,8 masih
dipertimbangkan, tetapi simpul yang terakhir diciptakan baru-baru ini, sehingga dipilih untuk
percabangan dari depan. Sejak dihasilkan bercabang variabel x4 adalah variabel terakhir,
memperbaiki nilainya di 0 atau 1 benar-benar menciptakan solusi tunggal daripada submasalah
yang membutuhkan penyelidikan lebih lengkap. Solusi-solusi tunggal
x4 = 0: (x1, x2, x3, x4) (1, 1, 0, 0) adalah layak, dengan Z 14,
x4 = 1: (x1, x2, x3, x4) (1, 1, 0, 1) adalah tidak layak.
Secara resmi menerapkan tes fathoming, kita melihat bahwa solusi pertama melewati tes 3
dan yang kedua melewati tes 2. Selanjutnya, layak solusi pertama ini lebih baik dari incumbent
(14 9), sehingga menjadi incumbent baru, dengan Z * 14.
Karena Incumbent baru telah ditemukan, sekarang kita mengajukan permohonan kembali
fathoming uji 1 dengan nilai baru yang lebih besar dari Z * ke subproblem hanya tersisa, satu di
simpul (1, 0).
GAMBAR 12.8 Pohon solusi setelah iterasi 3 dari cabang BIP dan algoritma terikat untuk contoh
di sec 12.1

Subproblem 3:
Bound 13 Z * 14.
Oleh karena itu, subproblem ini sekarang dimengerti.
Kami sekarang memiliki pohon solusi ditunjukkan pada Gambar. 12,9. Perhatikan bahwa tidak
ada yang tersisa (unfathomed) subproblems. Akibatnya, tes optimalitas menunjukkan bahwa
incumbent saat ini
(X1, x2, x3, x4) (1, 1, 0, 0)
Optimal, sehingga kita selesai
GAMBAR 12,9Solusi pohon setelah final cabang BIP dan algoritma terikat misalnya di sec 12.1
OR Tutor Anda termasuk contoh lain penerapan algoritma ini. Juga termasuk dalam OR
Courseware adalah rutin interaktif untuk mengeksekusi algoritma ini. Seperti biasa, Excel, LINGO
/ LINDO, dan MPL / CPLEX file untuk bab ini dalam acara OR Courseware Anda bagaimana
versi mahasiswa paket perangkat lunak ini diterapkan pada berbagai contoh dalam bab ini.
Algoritma yang mereka gunakan untuk BIP promblems semua mirip dengan yang dijelaskan atas.1
1. dalam versi profesional LINGO, LINDO, CPLEX, algoritma BIP juga menggunakan berbagai
teknik canggih sepanjang garis yang dijelaskan dalam sec 12,8

Anda mungkin juga menyukai