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
= 0 atau 1, menandakan bahwa investasi ke- diterima atau ditolak.
Asumsikan bahwa 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 adalah nilai atau kegunaan
dari barang yang di masukkan Dimana
, 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 langkah- langkah 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 Basis
variabel Nilai
1 1
1
Tahap 3 : 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