Vous êtes sur la page 1sur 13

METODE PEMECAHAN PEMROGAMAN INTEGER ALGORITMA BRANCH-AND BOUND

Disusun oleh Kelompok 1 : 1. 2. 3. 4. 5. 6. 7. 8. 9. Debora Drajat Indra P Nugroho Arif S Nurul Kustinah Niken Retnowati Rheni Puspitasari Suryanto Wibowo Titik Murdatik Karyanti (M0104024) (M0106038) (M0106053) (M0106057) (M0107012) (M0107051) (M0107059) (M0107061) (M0108051) (M0108067)

10. Susi Ranangga

Jurusan Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam Univrsitas Sebelas Maret Surakarta 2010

METODE PEMECAHAN PEMROGRAMAN INTEGER Dalam linier program (LP) , metode simpleks didasari oleh pengenalan bahwa pemecahan optimum terjadi di titik ekstrim dari ruang pemecahan. Hasil yang penting ini pada intinya mengurangi usaha pencarian pemecahan optimum dari sejumlah pemecahan yang tidak terbatas menjadi sejumlah yang terbatas. Sebaliknya, ILP memulai dengan sejumlah titik pemecahan yang terbatas (dengan asumsi ILP murni yang dibatasi). Tetapi sifat variabel yang terbentuk bilangan bulat mempersulit perancangan sebuah algoritma yang efektif untuk mencari secara langsung diantara titik integer yang layak dari ruang pemecahan. Mengingat kesulitan ini, para peneliti telah mengembangkan sebuah prosedur pemecahan yang didasari oleh pemanfaatan keberhasilan besar dalam memecahkan masalah masalah LP. Strategi untuk prosedur ini dapat diringkas dalam 3 langkah : 1. Melonggarkan ruang pemecahan dari masalah integer yang bersangkutan dengan mengabaikan batasan integer sama sekali. Langkah ini mengkonversikan menjadi LP biasa. 2. Memecahkan model LP yang longgar yang dihasilkan dan identifikasi titik optimum (kontinu) dari LP. 3. Dengan memulai dari titik optimum kontinu, menambahkan dengan batasan khusus yang akan secara berulang ulang memaksa titik ekstrim optimum dari model LP yang dihasilakan untuk bergerak ke arah batasan integer yang diinginkan. Alasan memulai pencarian pemecahan optimum ILP di pemecahan optimum LP adalah bahwa terdapat kemungkinan yang lebih besar bahwa kedua pemecahan itu akan terletak berdekatan satu sama lain, sehingga meningkatkan kemungkinan untuk menemukan pemecahan integer tersebut secara cepat. Inti dari prosedur yang diajukan ini adalah pendekatan ini memecahkan masalah masalah LP yang berturut turut, yang lebih dapat dikelola dari segi perhitungan dibandingkan memecahkan masalah masalah ILP secara langsung.

Terdapat dua metode untuk menghasilkan batasan batasan khusus yang akan memaksa pemecahan optimum dari masalah LP yang dilonggarkan untuk bergerak kea rah pemecahan integer yang diinginkan : 1. Branch and Bound (B&B) 2. Bidang pemotong Kedua metode ini, batasan yang ditambahkan secara efektif menyingkirkan beberapa bagian dari ruang pemecahan yang dilonggarkan, tetapi tidak pernah menyingkirkan satu pun titik integer yang layak. Tetapi tidak satu pun dari keduanya dapat dinyatakan terus menerus efektif dalam memecahkan masalah masalah ILP. Metode Branch and Bound (B&B) jauh lebih berhasil dari segi perhitungan daripada metode bidang pemotong. Karena sebagian besar program komputer komersial didasari oleh prosedur Branch and Bound (B&B) Teknik lainnya untuk pemecahan program integer biner (nol satu) adalah metode yang disebut enumerasi implisit. Metode ini diperkenalkan tahun 1965 setelah baik metode Branch and Bound (B&B) maupun bidang pemotong beredar selama tidaknya 5 tahun dan disajikan sebagai arah baru untuk memecahkan masalah masalah ILP umum melalui konversi ke ILP biner. Tetapi bahwa enumerasi implisit sebenarnya merupakan kasus khusus dari metode Branch and Bound (B&B) yang lebih umum. Secara historis, metode bidang pemotong adalah metode pertama yang diperkenalkan dalam literatur OR. Tetapi, memulai penyajian ini dengan prosedur Branch and Bound (B&B) karena kepentingan praktisnya.

ALGORITMA BRANCH-AND BOUND Untuk mempermudah penjelasan mengenai dasar-dasar algoritma branch-andbound (B&B) diberikan sebuah contoh sebagai berikut: Maksimumkan z = 5 x1 + 4 x2 dengan batasan : x1+ x2 x1 5 3

10 x1+ 6 x2 45 x1, x2 0 dan integer

Penyelesaian:

Optimum : x1 = 3.75, x2 = 1.25, z = 23.75.

Gambar 1 Dalam gambar 1, ruang pemecahan ILP ini diperlihatkan dengan titik-titik. Ruang pemecahan LP yang berkaitan, LP0 didefinisikan dengan mengabaikan batasan integer tersebut. Pemecahan optium LP0 ini diberikan dalam gambar 9-1 sebagai x 1 = 3.75, x2 = 1.25, dan z = 23.75.

Prosedur B&B didasari oleh penanganan masalah LP saja. Karena pemecahan LP optimum (x1 = 3.75, x2 = 1.25, dan z = 23.75) tidak memenuhi persyaratan integer, algoritma B&B menuntut modifikasi terhadap ruang pemecahan LP ini dengan cara yang akan akhirnya memungkinkan untuk mengidentifikasi pemecahan ILP optimum. Pertama, memilih salah satu variabel yang nilainya saat ini dalam pemecahan LP0 optimum melanggar persyaratan integer tersebut. Dengan memilih x1 = 3.75 secara sembarang, diamati bahwa bidang (3 < x 1 < 4) dari ruang pemecahan LP0, berdasarkan definisinya, tidak akan memuat pemecahan ILP yang layak. Karena itu memodifikasi ruang pemecahanya LP tersebut dengan meyingkirkan bidang yang tidak menjanjikan pemecahan ini, yang pada akhirnya adalah setara dengan mengganti ruang LP0 semula dengan ruang LP. LP1 dan LP2, yang didefinisikan sebagai berikut: 1. ruang LP1 = ruang LP0 + (x1 3) 2. ruang LP2 = ruang LP0 + (x1 4)

x1 3

x2

LP2
x1 + x2 5 10x1 +6 x2 45

Gambar 2

Gambar 2 memperlihatkan LP dan LP2 secara grafik. Kedua ruang ini memuat titik-titik integer yang layak yang sama dari model ILP ini. Hal ini berarti bahwa dari sudut pandang masalah ILP semula, menangani LP1 dan LP2 ini adalah sama dengan menangani LP0 semula. Perbedaan utamanya adalah bahwa pemilihan batasan baru (x 1 3 dan x1 4) akan meningkatkan kemugkinan untuk memaksa titik ekstrim optimum dari LP1 dan LP2 ke arah memenuhi persayratan integer tersebut. Pada kenyataannya, batasan tersebut berada di sekitar pemecahan LP0 yang kontinu akan meningkatkan peluang untuk menghasilkan pemecahan integer yang baik.

Seperti dapat dilihat dalam gambar 2, karena batasan baru x1 3 dan x1 4 tidak dapat dipenuhi secara bersamaan. LP1 dan LP2 harus ditangani sebagai dua program linear yang berbeda. Dikotomi ini menimbulkan konsep percabangan (branching) dalam algoritma B&B. Akibatnya, percabangan menunjukan pemisahan ruang pemecahan saat ini ke dalam beberapa bagian yang terpisah. Gambar 9-3 menunjukan pembuatan LP1 dan LP2 dari LP. Cabang tersebut didefinisikan dengan batasan x 1 3 dan x1 4, dimana x1 disebut variabel percabangan. Diketahui bahwa ILP optimum akan berada di LP1 atau LP2. tetapi dengan tidak ada ruang untuk menentukan di mana optium itu berada. Akibatnya, pemilihan kita satusatunya adalah meneliti kedua masalah ini. Hal ini dilakukan dengan mengerjakan masalah ini satu persatu (LP1 atau LP2). Anggaplah bahwa dimiliki secara sembarang LP1 yang berkaitan dengan x1 3. Dengan memecahkan masalah berikut ini : Maksimumkan z = 5 x1 + 4 x2 dengan batasan x1+ x2 x1 5 3 10 x1+ 6 x2 45 x1, x2 0 LP0 1 x1 = 3.75 , x2 = 1.25 , z = 23.75

x1

x1

LP2 3 Gambar 3 2

LP1 x1 = 3 , x2 = 2 , z = 23

LP1 merupakan LP0 dengan tambahan batas atas x1 3 . Jadi algoritma batas atas primal dapat digunakan untuk memecahkan masalah ini. Ini akan menghasilkan pemecahan optimum baru yaitu x1 = 3, x 2 = 2, dan z = 23 . Karena pemecahan ini

memenuhi persyaratan integer, maka dapat dikatakan LPI telah terukur yang berarti bahwa LP1 tidak dapat menghasilkan pemecahan IPL yang lebih baik dan karena itu tidak perlu diteliti lebih lanjut. Mendapatkan pemecahan integer ditahap awal dari perhitungan yang layak adalah penting untuk meningkatkan efisiensi algoritma B&B. Pemecahan seperti ini menetapkan batas bawah terhadap nilai tujuan optimum dari masalah ILP tersebut yang dapat digunakan secara otomatis untuk menyingkirkan bagian bagian masalah yang tidak diteliti (seperti LP2) yang tidak menghasilkan pemecahan integer yang lebih baik. Dalam contoh ini, LP1 menghasilkan batas bawah z = 23 . Ini berarti bahwa setiap pemecahan integer yang lebih baik akan memiliki nilai z yang lebih tinggi dari 23. Tetapi, karena pemecahan optimum dari masalah LP0 (semula) memiliki z = 23,75 dan karena semua koefisien dari fungsi tujuan kebetulan merupakan integer, dapat disimpulkan bahwa tidak ada bagian masalah yang berasal dari LP0 dapat menghasilkan nilai z yang lebih baik dari 23. Sebagai hasilnya, tanpa meneliti lebih lanjut, LP2 dapat disingkirkan. Dalam kasus ini LP2 dikatakan terukur karena tidak dapat menghasilkan pemecahan integer yang lebih baik. Dari pembahasan di atas, dapat dilihat bahwa sebuah bagian masalah menjadi terukur jika salah satu dari kondisi berikut terpenuhi: 1. Bagian maslah tersebut menghasilkan pemecahan integer yang layak bagi masalah IPL tersebut. 2. Bagian masalah tersebut tidak dapat menghasilkan pemecahan yang lebih baik daripada batas bawah (nilai z) terbaik yang tersedia dari masalah IPL tersebut. (Satu kasus khusus dari kondisi ini adalah ketika bagian masalah tersebut tidak memiliki pemecahan yang layak sama sekali). Dalam contoh ini LP1 dan LP2 terukur berdasarkan kondisi 1 dan 2 secara berturut turut. Karena tidak ada lagi bagian masalah yang akan diteliti, prosedur ini berakhir dan pemecahan integer optimum dari masalah ILP tersebut berkaitan dengan batas bawah saai ini yaitu x1 = 3, x 2 = 2, dan z = 23 . Jika meneliti prosedur di atas maka akan menemukan pertanyaan yang tidak terjawab.

1. Di LP0, dapatkah memilih x 2 sebagai variable percabangan sebagai pengganti


x1 ?

2. Ketika memilih bagian masalah berikutnya untuk diteliti, dapatkah memecahkan LP2 sebagai pengganti LP1? Jawaban untuk kedua pertanyaan tersebut adalah ya tetapi perincian untuk perhitungan yang mengikutinya dapat berbeda secara dramastis. Hal ini diilustrasikan dengan melihat gambar 3. Anggap bahwa LP2 ditiliti terlebih dahulu. Gambar 4 pemecahan yang dihasilkan adalah
x1 = 4, x 2 = 0,8333, z = 23,3333 .

Karena

x 2 = 0,8333 bukan integer maka LP2 harus diteliti lebih lanjut dengan membuat LP3

dan LP4 dengan menggunakan cabang masing masing x 2 0 dan x 2 1 . Ini berarti bahwa ; Ruang LP3 = Ruang LP0 + ( x1 4 ) + ( x 2 0) Ruang LP4 = Ruang LP0 + ( x1 4 ) + ( x 2 1) Di titik ini memiliki tiga bagian masalah untuk dipilih, LP1, LP3, dan LP4. Ketiga bagian maslah ini mencakup semua pemecahan integer yang layak dari masalah IPL semula. Memilih LP4 secara sembarang maka akan ditemukan bahwa masalah ini tidak memiliki pemecahan yang layak dan karena itu sudah terukur karena diperoleh nilai nilai z > z=23,333 dengan x2 = 1 (masukkan ke kendala 2) diperoleh x1 = 4,5 maka z = 26.5. Selanjutnya (secara sembarang) memilih LP3 untuk diteliti. Pemecahannya adalah x1 = 4,5, x 2 = 0, dan z = 22,5 . Karena x1 = 4,5 bukan integer, maka dibuat dua bagian masalah LP5 dan LP6 dari LP3 dengan menggunakan batasan x1 4 dan
x1 5 secara berturut turut sehingga diperoleh:

Ruang LP5 = Ruang LP0 + ( x1 4 ) + ( x 2 0) + ( x1 4 ) Ruang LP6 = Ruang LP0 + ( x1 4 ) + ( x 2 0) + ( x1 5)

Selanjutnya telah didapatkan LP1, LP5, dan LP6 untuk diteliti. Pertama, dipilih LP6 untuk diteliti, karena LP6 tidak memiliki pemecahan layak, bagian masalah ini terukur karena diperoleh nilai x1 =5, x2 = -5/6, x2 tidak memenuhi kendala tak negative sehingga penyelesaiannya tak fisibel. Oleh karena itu selanjutnya dipilih LP5, yang pemecahan optimumnya x1 = 4, x2 = 0, z= 20 memenuhi persyaratan integer. Akhirnya didapatkan pemecahan integer yang menetapkan batas bawah z = 20 di pemecahan integer yang optimum. Namun batas bawah ini terlalu lemah dan terlalu terlambat untuk dipergunakan. Satu-satunya node yang tersisa, LP1, terukur dengan z = 23, yang segera menetapkan batas bawah yang baru. Karena tidak ada lagi bagian masalah yang perlu diteliti, batas bawah terakhir mengkaitkan pemecahan ILP optimum dengan LP1.

Untuk lebih jelasnya dapat dilihat langkah-langkah tersebut dalam gambar berikut: LP0 1 x1 =3,75, x2 =1,25, z =23,75
x1 3

x1 4

LP2 2 x1 =4, x2 =0.8333, z =23,3333


x2 1 x2 0

LP1 7 x1 =3, x2 =2, z =23


Batas bawah (optimum)

LP4 3 Tanpa pemecahan 4

LP3 x1 =4,5, x2 =0, z =22,5

x1 5

x1 4

LP6 5 Tanpa pemecahan 6

LP5 x1 = 4, x2 =0, z =20


Batas bawah

Gambar 4 Urutan pemecahan dalam Gambar 4 sengaja dipilih menjadi skenario terburuk, untuk memperlihatkan salah satu kelemahan utama dari algoritma B&B yaitu, di salah satu bagian masalah tertentu, permasalahannya adalah bagimana cara memilih variabel

percabangan, dan di antara semua bagian masalah yang belum diteliti, bagian masalah mana yang harus diteliti berikutnya. Dalam Gambar 3 terlihat secara kebetulan ditemukan batas bawah yang baik di bagian masalah pertama LP1, yang memungkinkan untuk mengukur LP2 tanpa penelitian lebih lanjut. Pada intinya, masalah ILP dipecahkan dengan hanya meneliti satu bagian masalah. Dalam Gambar 4, harus dipecahkan enam bagian masalah sebelum didapatkan optimalisasi. Kasus ekstrim seperti dalam Gambar 4 tidaklah luar biasa dan dapat ditemukan dalam situasi nyata. Walapun terdapat banyak heuristik untuk meningkatkan kemampuan algoritma B&B untuk melihat ke depan dan membuat terkaan terbaik tentang apakah sebuah cabang akan mengarah pada pemecahan ILP yang lebih baik, tetapi tetap terdapat fakta bahwa tidak ada teori yang kuat yang dapat menyatakan diri memberikan hasil yang konsisten secara seragam untuk pemecahan masalah ILP umum. Dengan asumsi masalah maksimiasi, z didefinisikan sebagai batas bawah dari pemecahan ILP integer yang optimum, dengan langkah awal ditetapkan z = - dan i = 0. Langkah-langkah algoritma B&B dapat diringkas menjadi : Langkah 1 : Ukur/Batasi. Pilih LPi sebagai masalah berikutnya untuk diteliti. Pecahkan LPi dan coba ukur bagian masalah itu dengan menggunakan kondisi yang sesuai. a) Jika LPi terukur (pemecahan inferior, tidak layak atau integer), perbarui batas baah z jika pemecahan ILP yang lebih baik ditemui; jika tidak, dipilih bagian maslah baru i dan ulangi langkah 1. Jika semua bagian masalah telah diteliti, hentikan; ILP optimum berkaitan dengan batas bawah z terakhir, jika ada. b) Jika LP1 tidak terukur, lanjutkan ke langkah 2 untuk melakukan percabangan LPi. Langkah 2 : Percabangan. Pilih salah satu variabel xj yang nilai optimumnya xj* dalam pemecahan LPi tidak memenuhi batasan integer. Singkirkan bidang [xj*] < xj < [xj*] + 1 (dimana [a] mendefinisikan integer terbesar A) dengan membuat dua bagian masalah LP yang berkaitan dengan dua batasan yang tidak dapat dipenuhi secara bersamaan ini, xj [xj*] dan xj [xj*] + 1 , kembali ke langkah 1.

Soal latihan 9.3.1 Modifikasi algoritma B&B agar sesuai dengan masalah minimisasi! Jawab: Dengan menggunakan software TORA didapatkan hasil sebagai berikut:

Vous aimerez peut-être aussi