Bab 2
LANDASAN TEORI
2.1 Program Linear
Menurut Sitorus, Parlin (1997), Program Linier merupakan suatu teknik penyelesaian optimal atas suatu problema keputusan dengan cara menentukan terlebih dahulu suatu fungsi tujuan (memaksimalkan atau meminimalkan) dan kendala-kendala yang ada ke dalam model matematik persamaan linear. Program Linear berkaitan dengan penjelasan suatu kasus dalam dunia nyata sebagai suatu model matematik yang terdiri dari sebuah fungsi tujuan linier dengan beberapa kendala linier yang dapat diselesaikan untuk mencapai suatu nilai optimum. Nilai optimum itu bisa meupakan nilai maksimum ataupun nilai minimum.
Metode ini paling banyak digunakan dalam bisnis dan ekonomi, namun juga dapat dimanfaatkan dalam sejumlah perhitungan ilmu teknik. Misalnya, dalam ekonomi, fungsi tujuan dapat berkaitan dengan pengaturan secara optimal sumbersumber daya untuk memperoleh keuntungan maksimal atau biaya minimal, sedangkan fungsi batasan menggambarkan batasan-batasan kapasitas yang tersedia yang dialokasikan secara optimal ke berbagai kegiatan. Industri yang memanfaatkan pemrograman linear di antaranya ialah industri transportasi, energi, telekomunikasi, dan manufaktur. Pemrograman linear juga terbukti berguna dalam membuat model berbagai jenis masalah dalam perencanaan, perancangan rute, penjadwalan, pemberian tugas, dan desain.
Dalam program linear mengenal mengenai fungsi tujuan dan fungsi kendala. Fungsi tujuan adalah nilai f untuk dan dinyatakan f(
tertentu dari suatu program linear,
). Dalam fungsi tujuan adapun nilai fungsi tujuan
yang
dikehendaki
adalah
kondisi
yang
menyebabkan
maksimum atau minimum. Fungsi kendala merupakan fungsi matematika yang mengendalikan nilai variabel keputusan. Fungsi kendala terdiri dari fungsi kendala berupa pembatas yang disimbolkan disimbolkan
, fungsi kendala berupa syarat yang
, dan fungsi kendala berupa keharusan yang disimbolkan
.
Dalam program linear terdapat beberapa karakteristik dalam menyelesaikan suaru persoalan yaitu 1.
Sifat linearitas, sifat linearitas suatu kasus dapat ditentukan dengan menggunakan beberapa cara. Secara statistik, kita dapat memeriksa kelinearan menggunakan grafik (diagram pencar).
2.
Sifat proporsional, sifat proporsional dipenuhi jika kontribusi setiap variabel pada fungsi tujuan atau penggunaan sumber daya yang membatasi proporsional terhadap level nilai variabel. Misalnya jika harga per unit produk adalah sama berapapun jumlah yang dibeli, maka sifat proporsional dipenuhi. Atau dengan kata lain, jika pembelian dalam jumlah besar mendapatkan diskon, maka sifat proporsional tidak dipenuhi.
3.
Sifat additivitas, sifat ini mengasumsikan bahwa tidak ada bentuk perkalian silang diantara berbagai aktivitas, sehingga tidak akan ditemukan bentuk perkalian silang pada model. Sifat additivitas berlaku baik bagi fungsi tujuan maupun pembatas (kendala). Sifat additivitas dipenuhi jika fungsi tujuan merupakan
penambahan
langsung
kontribusi
masing-masing
variabel
keputusan. Untuk fungsi kendala, sifat additivitas dipenuhi jika nilai kanan merupakan total penggunaaan masing-masing variabel keputusan. 4.
Sifat divisibilitas, sifat ini berarti unit aktivitas dapat dibagi ke dalam sembarang level fraksional, sehingga nilai variabel keputusan non integer dimungkinkan.
5.
Sifat kepastian, sifat ini menunjukkan bahwa semua parameter model berupa konstanta. Artinya koefisien fungsi tujuan maupun fungsi pembatas merupakan suatu nilai pasti, bukan merupakan nilai dengan peluang tertentu.
Ada beberapa syarat yang harus dipenuhi dalam merumuskan suatu problema keputusan ke dalam suatu model matematika program linearn yakni sebagai berikut: 1.
Memiliki kriteria tujuan.
2.
Sumber daya yang tersedia sifatnya terbatas.
3.
Semua variabel dalam model memiliki hubungan matematis bersifat linear.
4.
Koefisien model diketahui dengan pasti.
5.
Bilangan yang digunakan dapat bernilai bulat atau pecahan.
6.
Semua variabel harus bernilai nonnegatif.
Urutan pertama dalam penyelesaian program linear adalah mempelajari sistem relevan dan mengembangkan pernyataan permasalahan yang dipertimbangakan dengan jelas. Penggambaran sistem dalam pernyataan ini termasuk pernyataan tujuan, sumber daya yang membatasi, alternatif keputusan yang mungkin (kegiatan atau aktivitas), batasan waktu pengambilan keputusan, hubungan antara bagian yang dipelajari dan bagian lain dalam perusahaan, dan lain-lain.
Penetapan tujuan yang tepat merupakan aspek yang sangat penting dalam formulasi masalah. Untuk membentuk tujuan optimalisasi, diperlukan identifikasi anggota manajemen yang benar-benar akan melakukan pengambilan keputusan dan mendiskusikan pemikiran mereka tentang tujuan yang ingin dicapai.
Tahap berikutnya yang harus dilakukan setelah memahami permasalahan optimasi adalah membuat model yang sesuai untuk analisis. Pendekatan konvensional riset operasional untuk pemodelan adalah membangun model matematik yang menggambarkan inti permasalahan. Kasus dari bentuk cerita diterjemahkan ke model matematik. Model matematik merupakan representasi kuantitatif tujuan dan sumber daya yang membatasi sebagai fungsi variabel keputusan. Model
matematika
permasalahan optimal terdiri dari dua bagian. Bagian pertama memodelkan tujuan optimasi. Model matematik tujuan selalu menggunakan bentuk persamaan. Bentuk persamaan digunakan karena kita ingin mendapatkan solusi optimum pada satu titik. Fungsi tujuan yang akan dioptimalkan hanya satu. Bukan berarti bahwa permasalahan optimasi hanya dihadapkan pada satu tujuan. Tujuan dari suatu usaha bisa lebih dari
satu. Tetapi pada bagian ini kita hanya akan tertarik dengan permasalahan optimal dengan satu tujuan.
Bagian kedua merupakan model matematik yang merepresentasikan sumber daya yang membatasi. Fungsi kendala bisa berbentuk persamaan (=) atau pertidaksamaan (≤ atau ≥). Fungsi kendala disebut juga sebagai konstrain. Konstanta (baik sebagai koefisien maupun nilai kanan) dalam fungsi kendala maupun pada tujuan dikatakan sebagai parameter model. Model matematika mempunyai beberapa keuntungan dibandingakan pendeskripsian permasalahan secara verbal. Salah satu keuntungan yang paling jelas adala model matematik menggambarkan permasalahan secara lebih ringkas. Hal ini cenderung membuat struktur keseluruhan permasalahan lebih mudah dipahami, dan membantu mengungkapkan relasi sebab akibat penting. Model matematik juga memfasilitasi yang berhubungan dengan permasalahan dan keseluruhannya dan mempertimbangkan semua keterhubungannya secara simultan. Terakhir, model matematik membentuk jembatan ke penggunaan teknik matematik dan komputer kemampuan tinggi untuk menganalisis permasalahan.
Di sisi lain, model matematik mempunyai kelemahan. Tidak semua karakteristik sistem dapat dengan mudah dimodelkan menggunakan fungsi matematik. Meskipun
dapat
dimodelkan
dengan
fungsi
matematik,
kadang-kadang
penyelesaiannya sulit diperoleh karena kompleksitas fungsi dan teknik yang dibutuhkan.
Model umum program linear dapat dirumuskan ke dalam bentuk matematik sebagai berikut: Maks atau Min :
∑
, untuk
Kendala: ∑
atau
atau
Keterangan: = Fungsi tujuan = Variabel keputusan
, untuk
= koefisien dari variabel keputusan = Koefisien dari variabel keputusan dalam kendala ke= sumber daya yang tersedia dalam kendala ke-
Ada berbagai cara dalam menyelesaikan program linear diantaranya menggunakan metode grafik, metode simpleks, metode dual simpleks, metode Teknik M. Metode grafik digunakan untuk menyelesaikan program linear dengan dua variabel. Metode simpleks, metode dual simpleks dan teknik M banyak digunakan untuk menyelesaikan program linear dengan banyak variabel.
Kasus program linier sangat beragam. Dalam setiap kasus, hal yang penting adalah memahami setiap kasus dan memahami konsep permodelannya. Meskipun fungsi tujuan misalnya hanya mempunyai kemungkinan bentuk maksimisasi atau minimisasi, keputusan untuk memilih salah satunya bukan pekerjaan mudah. Tujuan pada suatu kasus bisa menjadi batasan pada kasus yang lain. Harus hati-hati dalam menentukan tujuan, koefisien fungsi tujuan, batasan dan koefisien pada fungsi pembatas agar dapat menyelesaikan program linear secara tepat.
2.2 Program Bilangan Bulat (Integer Programming)
Model Linear programming yang telah didiskusikan sejauh ini masih tetap berlanjut, dalam pengertian bahwa variabel keputusan diperbolehkan dalam bentuk pecahan. Sering ini sebagai asumsi realistik. Sebagai contoh sebuah perusahaan dapat memproduksi
dari bahan yang dapat dibagi seperti wine dan juga masih
beralasan untuk menerima sebuah solusi yang memberikan nilai perjam produksi automobile sebesar
jika modelnya berdasarkan pada rata-rata waktu produksi.
Pada saat lain, bagaimanapun solusi pecahan tidaklah nyata dan harus mempertimbangkan masalah optimisasi sebagai berikut:
∑
Maks atau Min : Kendala: ∑
(
)
(
)
bulat untuk semua
Keterangan: = Fungsi tujuan = Variabel keputusan = koefisien dari variabel keputusan = Koefisien dari variabel keputusan dalam kendala ke= sumber daya yang tersedia dalam kendala ke-
Masalah ini dikatakan sebagai Masalah Linear Integer Programming. Sitorus, Parlin (1997), Integer Programming merupakan suatu model program linear yang khusus Dimana nilai variabel-variabel keputusan dalam penyelesaian optimal harus merupakan bilangan integer (bulat). Persyaratan bahwa nilai variabel keputusan harus integer mengingat nilai (banyaknya/jumlah) tidak mungkin dalam bilangan pecahan, seperti kertas, barang produksi, tentara, dan lain sebagainya.
Terdapat 3 macam permasalahan dalam pemrograman bulat, yaitu: 1.
Pemrograman bulat murni, yaitu kasus dimana semua variabel keputusan harus berupa bilangan bulat.
2.
Pemrograman bulat campuran, yaitu kasus dimana beberapa, tapi tidak semua, variabel keputusan harus berupa bilangan bulat
3.
Pemrograman bulat biner, kasus dengan permasalahan khusus dimana semua variabel keputusan harus bernilai 0 dan 1
2.2.1 Beberapa Model Integer Programming
Thie, Paul. R. (1979) dalam bukunya memberikan beberapa persoalan yang dapat diformulasikan sebagai model integer programming. Ada dua hal yang akan dibahas yakni: modal penganggaran belanja, penjadwalan.
a. Modal Penganggaran Belanja Pada model masalah modal penganggaran belanja, keputusan menyangkut seleksi dari sejumlah nilai dari investasi potensial. Keputusan berinvestasi mungkin untuk memilih diantara lokaso penanaman yanng mungkin, untuk memilih sebuah bentuk dari perlengkapan modal, atau untuk menyelesaikan ketika sebuah himpunan dari proyek penelitian dan pengembangan. Hal itu selalu membuat tidak mengerti untuk mempertimbangkan memilih investasi dari aktivitas ini, dan akhirnya masalahnya akan menjadi program bilangan bulat ya atau tidak, Dimana variabel keputusan yang diambil menjadi Asumsikan bahwa
= 0 atau 1, menandakan bahwa investasi ke- diterima atau ditolak. adalah hasil konstribusi dari investasi ke- dan
adalah jumlah
sumber daya ke- , seperti uang atau tenaga kerja yang digunakan dalam investasi ke- , masalah ini dapat di formulasikan sebagai berikut: Maksimalkan ∑ Kendala ∑
(
)
(
)
Tujuannya adala untuk memaksimalkan total kontribusi dari semua investasi tanpa melebihi ketersediaan yang terbatas
dari sumber daya.
Pada umumnya, masalah ini juga disebut Knapsack problem, karena dapat disamakan pada sebuah situasi dimana pejalan kaki harus memutuskan barang-barang apa saja yang dimasukkan dalam perjalanannya. Di sini dari barang
yang di masukkan Dimana
adalah nilai atau kegunaan
, tujuannya adalah memaksimalkan
perjalanan yang menyenangkan dengan kendala berat yang dibatasi yang dapat dibawa pejalan kaki tidak lebih dari
kilogram. Model ini diubah dengan membawa lebih
dari sebuah dari beberapa barang yang diambil, dengan menulis
dan
bulat
dengan mengganti variabel pembatas 0-1. Knapsack problem penting karena sejumlah program bilangan bulat dapat ditunjukkan sama dengan masalahnya, dan lebih jauh, karena langkah-langkah penyelesaian pada model knapsack telah memotivasi langkahlangkah untuk menyelesaikan program bilangan bulat umum.
b. Penjadwalan Segala tingkat pada masalah yang menunjuk seperti antrian, penjadwalan, dan rute adalah tidak terpisahkan dengan program bilangan bulat. Sebagai contoh, menjadwalkan siswa, fakultas, dan ruang kelas sedemikian hingga jumlah dari siswa yang tidak mengambil pilihan pertama dari kelas di minimalkan. Ada batasan pada jumlah dan ukuran dari ruangan kelas yang tersedia pada suatu waktu, ketersediaan dari jumlah fakultas pada waktu tertentu, dan pilihan dari siswa untuk waktu tertentu. Lebih jelasnya, siswa ke- dijadwalkan pada kelas ke- selam periode ke- atau tidak. Oleh karena itu, variabelnya harus nol atau satu.
2.2.2
Metode penyelesaian Integer Programming
Beberapa metode penyelesaian masalah program bilangan bulat adalah metode pembulatan (rounding method), metode grafik (graphic method), metode cabang dan batas (branch and bound method), dan metode branch and price.
Metode pembulatan sangat sederhana dan cepat dalam menyelesaikan masalah yang dihadapi. Sebelum metode ini diterapkan, maka terlebih dahulu dicari penyelesaian optimal dari problema dengan menggunakan metode program linear biasa. Selanjutnya, metode ini diterapkan dengan cara melakukan pembulatan hasil nilai variabel keputusan (bilangan pecahan) yang di peroleh dari metode program linear. Kelemahan utama metode ini ialah bahwa hasil pembulatan yang dilakukan dapat menyimpang jauh dari penyelesaian optimal integer yang sesungguhya dalam penyelesaiannya dianggap tidak layak apabila hasilnya lebih besar daripada penyelesaian optimal pecahan.
Metode grafik hanya dapat dilakukan apabila jumlah variabel keputusan adalah dua. Metode ini menggunakan pendekatan pencarian. Untuk mencari penyelesaian optimal, dilakukan dengan cara mencari titik penyelesaian optimal yang terdapat di dalam daerah kelayakandengan koordinatnya harus bilangan integer yang mendekati titik optimal yang diperoleh dengan menggunakan metode grafik biasa. Metode branch and bound dan metode branch and price lebih sering digunakan karena hasil yang diperoleh lebih baik dan lebih teliti dari kedua metode lainnya.
2.3
Metode Simpleks
Dalam penyelesaian program linear metode grafik mempunyai kelemahan yaitu variabel keputusannya harus dua. Pelu diketahui bahwa hanya sedikit masalah dalam kehidupan nyata yang mengandung dua variabel. Pada kenyataanya beberapa situasi melibatkan banyak variabel keputusan dan banyak kendala. Oleh karena itu haruslah ada metode yang dapat menyelesaikan program linear dengan banyak variabel. Metode ini dinamakan metode simpleks.
Metode simpleks sebenarnya sama saja dengan metode grafik di dalam mencari titik penyelesaian optimal di daerah kelayakan (mencari nilai titik-titik ekstrim di daerah kelayakan). Dalam pengoperasiannya, metode simpleks dimulai dari titik awal (titik 0) dan bergerak ke titik ekstrim lain yang memiliki nilai penyelesaian yang optimal.
Ada beberapa istilah yang sangat sering digunakan dalam metode simpleks, diantaranya : 1. Iterasi adalah tahapan perhitungan dimana nilai dalam perhitungan itu tergantung dari nilai tabel sebelumnya. 2. Variabel non basis adalah variabel yang nilainya diatur menjadi nol pada sembarang iterasi. Dalam terminologi umum, jumlah variabel non basis selalu sama dengan derajat bebas dalam sistem persamaan. 3. Variabel basis merupakan variabel yang nilainya bukan nol pada sembarang iterasi. Pada solusi awal, variabel basis merupakan variabel slack (jika fungsi
kendala merupakan pertidaksamaan ≤ ) atau variabel buatan (jika fungsi kendala menggunakan
pertidaksamaan ≥ atau =). Secara umum, jumlah
variabel basis selalu sama dengan jumlah fungsi pembatas (tanpa fungsi non negatif). 4. Solusi atau nilai kanan merupakan nilai sumber daya pembatas yang masih tersedia. Pada solusi awal, nilai kanan atau solusi sama dengan jumlah sumber daya pembatas awal yang ada, karena aktivitas belum dilaksanakan. 5. Variabel slack adalah variabel yang ditambahkan ke model matematik kendala untuk mengkonversikan pertidaksamaan ≤ menjadi persamaan (=). Penambahan variabel ini terjadi pada tahap inisialisasi. Pada solusi awal, variabel slack akan berfungsi sebagai variabel basis. 6. Variabel surplus adalah variabel yang dikurangkan dari model matematik kendala untuk mengkonversikan pertidaksamaan ≥ menjadi persamaan (=). Penambahan ini terjadi pada tahap inisialisasi. Pada solusi awal, variabel surplus tidak dapat berfungsi sebagai variabel basis. 7. Variabel buatan adalah variabel yang ditambahkan ke model matematik kendala dengan bentuk ≥ atau = untuk difungsikan sebagai variabel basis awal. Penambahan variabel ini terjadi pada tahap inisialisasi. Variabel ini harus bernilai 0 pada solusi optimal, karena kenyataannya variabel ini tidak ada. Variabel hanya ada di atas kertas. 8. Kolom pivot (kolom kerja) adalah kolom yang memuat variabel masuk. Koefisien pada kolom ini akn menjadi pembagi nilai kanan untuk menentukan baris pivot (baris kerja). 9. Baris pivot (baris kerja) adalah salah satu baris dari antara variabel basis yang memuat variabel keluar. 10. Elemen pivot (elemen kerja) adalah elemen yang terletak pada perpotongan kolom dan baris pivot. Elemen pivot akan menjadi dasar perhitungan untuk tabel simpleks berikutnya. 11. Variabel masuk adalah variabel yang terpilih untuk menjadi variabel basis pada iterasi berikutnya. Variabel masuk dipilih satu dari antara variabel non basis pada setiap iterasi. Variabel ini pada iterasi berikutnya akan bernilai positif.
12. Variabel keluar adalah variabel yang keluar dari variabel basis pada iterasi berikutnya dan digantikan oleh variabel masuk. Variabel keluar dipilih satu dari antara variabel basis pada setiap iiterasi. Variabel ini pada iterasi berikutnya akan bernilai nol.
Prosedur (tahap proses) untuk menyelesaikan program linear dengan menggunakan metode simpleks sebagai berikut: Tahap 1 :
Merumuskan problema ke dalam bentuk standar (model simpleks). Bentuk kanonik merupakan suatu bentuk Dimana bagian kanan pembatas ( ) adalah non negatif. Dengan demikian, jika salah satu dari negatif, maka diperlukan untuk mengalikannya dengan -1. Sebagai penambahan bahwa penting juga semua pembatas haruslah dalam bentuk persamaan. Agar mencapai bentuk itu maka diperlukan untuk menambah nilai non negatif yang dinamakan slack variabel
. Variabel
slack ini menyeimbangkan kegunaan sebenarnya dari bagian kiri pada pertidaksamaan dengan adanya bagian kanan. Dengan demikian bentuk umum persamaan linear sekarang dapat ditulis sebgai berikut: Maksimalkan Kendala :
Dimana
Dalam bentuk ini slack variabel tidak dimasukkan dalam fungsi tujuan karena tidak akan mempengaruhi nilai fungsi tujuan. Dengan demikian,
adalah nol pada fungsi
tujuan.
Tahap 2 :
Menyusun tabel simpleks Masukkan bentuk persamaan kanonik tersebur ke dalam bentuk tabel simpleks seperti berikut:
Tabel 2.1 : Tabel simpleks 0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
Basis
Nilai
variabel
Tahap 3 :
0
Tentukan kolom pivot. Penentuan kolom pivot dilihat dari koefisien fungsi tujuan (nilai di sebelah kanan baris z) dan tergantung dari bentuk tujuan. Jika tujuan maksimisasi, maka kolom pivot adalah kolom dengan koefisien paling negatif. Jika tujuan minimisasi , maka kolom pivot adalah kolom dengan koefisien positif terbesar. Jika kolom pivot ditandai dan ditarik ke atas, maka kita akan mendapatkan variabel keluar. Jika nilai paling negatif (untuk tujuan maksimisasi) atau positif terbesar (untuk tujuan minimisasi) lebih dari satu, pilih salah satu secara sembarang.
Tahap 4:
Tentukan baris pivot. Baris pivot ditentukan setelah membagi nilai solusi dengan nilai kolom pivot yang bersesuaian (nilai yang terletak dalam satu baris). Dalam hal ini, nilai negatif dan 0 pada kolom pivot tidak diperhatikan, artinya tidak ikut menjadi pembagi. Baris pivot adalah baris dengan rasio pembagian terkecil. Jika baris pivot ditandai dan ditarik ke kiri, maka kita akan mendapatkan variabl keluar. Jika rasio pembagian terkecil lebih dari satu, pilih salah sau secara sembarang.
Tahap 5 :
Tentukan elemen pivot. Elemen pivot merupakan nilai yang terletak pada perpotongan kolom dan baris pivot.
Tahap 6 :
Bentuk tabel simpleks baru. Tabel simpleks baru dibentuk dengan pertama sekali menghitung nilai baris pivot baru. Baris pivot baru adalah baris pivot lama dibagi dengan elemen pivot. Baris baru lainnya merupakan pengurangan nilai kolom pivot baris yang bersangkutan dikali baris pivot baru dalam satu kolom terhadap baris lamanya yang terletak pada kolom tersebut.
Tahap 7 :
Periksa apakah tabel sudah optimal. Keoptimalan tabel dilihat dari koefisien fungsi tujuan (nilai pada baris z) dan tergantung dari bentuk tujuan. Untuk tujuan maksimisasi, tabel sudah optimal jika semua nilai pada baris z sudah positif atau 0. Pada tujuan minimisasi, tabel sudah optimal jika semua nilai pada baris z sudah negatif atau 0. Jika belum, kembali ke tahap 3 , jika sudah optimal baca solusi optimalnya.
2.4 Metode Branch and Bound
Lev, Benjamin dan Weiss, Howard J. (1982), metode Branch and Bound (cabang dan batas) adalah suatu metode umum untuk mencari solusi optimal dari berbagai permasalahan optimasi, terutama untuk optimasi diskrit dan kombinatorial. Konsep dari metode branch and bound pertama sekali ditemukan oleh Land and Doig (1960). Ide dasarnya adalah membagi daerah fisible menjadi daerah yang lebih kecil. Metode branch and bound menggunakan sebuah langkah yang menempatkan batas atas dan batas bawah sebagai solusi ketika secara sistematis menyelesaikan subproblem.
Sesuai dengan namanya, metode ini terdiri dari 2 bagian 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)
Prosedur penyelesaiaan problema program linear integer dengan metode ini adalah sebagai berikut: 1.
Penyelesaian optimal dengan metode program linear biasa. Problema yang dihadapi diselesaikan terlebih dahulu dengan menggunakan metode program linear biasa (metode grafik atau metode simpleks) sampai diperoleh hasil optimal.
2.
Pemeriksaan Penyelesaian Optimal Hasil optimal pada langkah pertama diperiksa apakah variabel keputusan yang diperoleh bernilai integer atau pecahan. Apabila ternyata nilai semua variabel keputusan tersebut merupakan bilangan bulat positif (non negative integer), maka penyelesaian optimal telah tercapai. Apabila tidak, maka proses iterasi dilanjutkan.
3.
Branching Apabila penyelesaian optimal belum tercapai, maka peroblema tersebut dimodifikasi ke dalam dua sub problema (branching) dengan memasukkan kendala baru ke masing-masing subproblema tersebut. Variabel kendala baru tersebut harus bersifat saling pengecualian (mutually exclusive constraints) sehingga memenuhi persyaratan penyelesaian integer.
4.
Bounding Pada kasus memaksimalkan hasil optimal yang diperoleh dengan metode program linear biasa (noninteger) merupakan nilai batas atas (upper bound) dan pada kasus minimalkan meupakan batas bawah (lower bound) bagi setiap subproblema. Pada kasus maksimalkan hasil pembulatan ke bawah pada penyelesaian integer merupakan nilai batas bawah (lower bound) bagi masingmasing subproblema. Pada kasus minimalkan hasil pembulatan ke atas pada penyelesaian integer merupakan nilai batas atas (upper bound) bagi masingmasing
subproblema.
Selanjutnya,
pada
kasus
maksimalkan
apabila
subproblema yang memiliki batas atas yang lebih rendah dari batas bawah yang berlaku, maka subproblema tersebut tidak perlu dianalisa lagi. Sedangkan, pada kasus minimasi apabila subproblema yang memiliki batas bawah yang lebih tinggi dari batas atas yang berlaku, maka subproblema tersebut tidak perlu dianalisa lagi. Apabila dalam penyelesaian integer menghasilkan hasil yang sama atau lebih baik daripada nilai batas atas atau
nilai batas bawah dari setiap problema, maka penyelesaian optimal integer telah tercapai. Apabila tidak, maka subproblema yang memiliki nilai batas atas dan nilai batas bawah yang terbaik dipilih selanjutnya menjadi subproblema yang baru. Proses iterasi kembali pada langkah 2, sehingga demikian terus.
Penggunaan metode branch and bound banyak sekali diantaranya knapsack problem, integer programming, travelling sales problem, cutting stock problem dan banyak lagi kegunaanya. Penggunaan metode ini tentulah untuk mencari nilai pembulatan terbaik pada masing-masing masalah.
2.5 Metode Branch and Price
Metode branch and price adalah ssuatu teknik dalam menyelesaikan program integer yang berskala besar. Dantzig dan Wolfe (1960) mengusulkan teknik column generasi sebagai sebuah skema untuk menyelesaikan masalah linear programming berskala besar yang mempunyai banyak variabel. Algoritma umum dari metode branch and price ini diperkenalkan oleh Barnhart (1998) dan Vanderbeck dan Wolsey (1996).
Berikut ini merupakan ringkasan pengertian mengenai algoritma branch and price: 1.
Branch and price merupakan teknik column generation untuk menyelesaikan program integer berskala besar.
2.
Pada tiap node dari tree branch and price, kolom dapat dibangkitkan untuk memperkuat linear programming relaksasi.
3.
Pada branch and price, kumpulan kolom dibuang dari linear programming relaxation sebuah program integer berskala besar karena terdapat terlalu banyak kolom yang harus ditangani secara efisien dan kebanyakan dari kolom itu menghasilkan variabel yang bernilai nol padaa solusi optimal.
4.
Kemudian cek keoptimalan, sebuah subproblem yang disebut juga dengan „pricing problem‟ diselesaikan untuk mengidentifikasi adanya kolom yang memasuki basis. Pricing problem dilakukan untuk mengetahui adanya variabel keputusan yang memiliki reduced cost negatif.
5.
Jika kolom tersebut ditemukan, linear programming kembali dioptimasi.
6.
Percabangan terjadi ketika tidak terdapat kolom yang melalui proses pricing dan solusi program integer tidak memenuhi batasan kondisi integral.
Column Generation menyediakan penguraian dari sebuah masalah menjadi master dan subproblem. Penguraian ini memungkinkan adanya penafsiran dan pengaturan kontektual untuk penambahan beberapa batasan penting. Dalam branch and price, kolom disisihkan dari relaksasi linear programming karena terdapat terlalu banyak kolom yang ditangani secara efisien. Kemudian untuk memeriksa keoptimalan dari sebuah solusi linear programming, subproblem yang disebut pricing problem, yang merupakan bagian permasalahan untuk dual linear programming diselesaikan untuk mencoba mengidentifikasi kolom yang akan memasuki basis. Jika terdapat kolom yang di maksud tersebut, maka solusi linear programming dioptimasi kembali. Percabangan terjadi ketika tidak terdapat kolom yang dinilai dapat memasuki basis dan solusi linear programming tidak memenuhi batasan integral.
Terdapat beberapa kesulitan dalam penggunaan teknik column generation untuk linear programming dalam solusi integer programming, yaitu: 1. Integer programming konvensional bercabang pada variabel yang mungkin tidak efektif karena memperbaiki variabel yang dapat merusak struktur pricing problem. Menyelesaikan linear programming dan subproblem menjadi optimal mungkin menjadi tidak efisien, dimana beberapa aturan berbeda akan digunakan untuk menangani pohon branch and price. 2. Linear programming relaksasi dari master problem diselesaikan yang dengan column generation integral dan menggunakan prosedur standard branch and bound untuk master problem pada kolom yang ada tidak seperti halnya mencari solusi optimal, atau yang baik atau yang mungkin fisibel terhadap permasalahan yang sebenarnya.
Perlu diperhatikan, ketika memproses suatu node tidak dibutuhkan untuk menyelesaikan LP sampai optimal. Alasan utama untuk menyelesakan LP sampai optimal adalah adanya kemungkinan untuk memotong node berdasarkan bound. Pemangkasan masih mungkin terjadi tanpa menyelesaikan LP sampai optimal jika kita dapat menghitung bound yang tepat.