LANDASAN TEORI
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(
yang
dikehendaki
adalah
kondisi
yang
menyebabkan
2.
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.
2.
3.
4.
5.
6.
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.
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.
dapat
dimodelkan
dengan
fungsi
matematik,
kadang-kadang
, untuk
Kendala:
atau
atau
Keterangan:
= Fungsi tujuan
= Variabel keputusan
, untuk
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.
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
Pada saat lain, bagaimanapun solusi pecahan tidaklah nyata dan harus
mempertimbangkan masalah optimisasi sebagai berikut:
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.
2.
Pemrograman bulat campuran, yaitu kasus dimana beberapa, tapi tidak semua,
variabel keputusan harus berupa bilangan bulat
3.
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.
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
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
perjalanan yang menyenangkan dengan kendala berat yang dibatasi yang dapat dibawa
pejalan kaki tidak lebih dari
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 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
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
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.
. Variabel
Dimana
Dalam bentuk ini slack variabel tidak dimasukkan dalam fungsi tujuan karena tidak
akan mempengaruhi nilai fungsi tujuan. Dengan demikian,
tujuan.
Tahap 2 :
Basis
Nilai
variabel
Tahap 3 :
Tahap 4:
Tahap 5 :
Tahap 6 :
Tahap 7 :
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.
2.
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.
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.
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.
5.
6.
Percabangan terjadi ketika tidak terdapat kolom yang melalui proses pricing dan
solusi program integer tidak memenuhi batasan kondisi 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.