Untuk menentukan variabel keluar, maka variabel masuk dinaikan sebesar �
dari nol sampai suatu nilai positif. Nilai variabel dasar berubah sampai nilai variabel turun ke nol meninggalkan basis. Pada persamaan
=
∗
−
− � �
, berubah dari
∗
menjadi
∗
− � dengan merupakan kolom
− �
yang bersesuaian dengan variabel masuk atau dapat dituliskan
=
−
. Jika terdapat elemen yang memenuhi
∗
− � = maka variabel tersebut menjadi variabel keluar.
Berikut iterasi dari metode simpleks direvisi yaitu sebagai berikut. 1. Selesaikan sistem
= dimana adalah matriks basis awal, sehingga ditemukan vektor .
2. Tentukan kolom yang masuk, yaitu jika variabel tidak dasar berhubungan dengan elemen dari
�
dan kolom dari
�
, maka
�
−
�
= − .
Untuk masalah maksimum minimum, kolom dipilih yang memiliki −
paling positif negatif. Untuk masalah maksimum minimum jika semua elemen
− −
, maka tidak terdapat kolom masuk dan iterasi berhenti sehingga didapatkan solusi optimal. Jika tidak, maka lanjut ke
langkah 3. 3. Selesaikan sistem
= , sehingga didapat vektor . 4. Tentukan kenaikan nilai
� terbesar dari nol sampai suatu nilai positif dengan cara mencari nilai paling minimum dari
∗
sedemikian hingga
∗
− � .
Jika tidak terdapat nilai � atau terdapat elemen di
, maka solusi optimal PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
tak terbatas atau tidak memiliki penyelesaian. Jika terdapat elemen yang memenuhi
∗
− � = maka kolom tersebut menjadi kolom keluar. 5. Menukar kolom keluar dari dengan kolom masuk dan tukar variabel keluar
dengan variabel masuk. Lalu kembali pada langkah 1 sampai solusi optimal diperoleh.
Berikut diagram alir metode simpleks direvisi.
Awal
Akhir
Tidak
Tidak terdapat penyelesaian
Tidak Menyelesaikan sistem
=
−
.
Menyelesaikan sistem =
−
Apakah terdapat kenaikan nilai t terbesar
sedemikian hingga
∗
− � 0?
Terdapat suatu komponen
∗
− � = 0 yang berkorespondensi
dengan kolom keluar.
Didapat nilai B dan
∗
dengan
menggantikan kolom keluar dengan kolom masuk.
Solusi optimal dan didapat nilai B dan
∗
yang baru Ya
Ya
Menentukan nilai awal B dan
∗
Tidak terdapat kolom masuk
Terdapat kolom masuk
Mencari vektor a
kolom masuk yaitu elemen paling positif dari
�
−
�
. Apakah
semua elemen
�
−
�
0?
Gambar 2.1 : Diagram alir metode simpleks direvisi
Contoh 2.2
Misalkan diberikan masalah program linear berikut. Maksimumkan
= +
+ +
Dengan kendala +
+ +
+ +
+ +
+ +
, , , Ketiga kendala tersebut kemudian diubah ke dalam bentuk persamaan.
+ +
+ +
= +
+ +
+ =
+ +
+ +
= Dimana
, dan adalah variabel pengetat. Sehingga persamaan di atas dapat dituliskan dalam bentuk matriks
= dengan
= [ ], = [
], dan = [
] .
Setelah iterasi kedua dengan metode simpleks didapatkan kamus berikut. =
− , − ,
− , + ,
= − ,
− , + ,
− , =
+ , − ,
+ , + ,
= − ,
+ , − ,
− , Untuk menekankan fakta bahwa hanya variabel dasar
, dan yang tidak diketahui, maka dapat ditulis seperti persamaan 2.17 dimana
= [ ],
�
= [ ], = [ ],
�
= [ ], = [ ],
�
=
[ ], dan = [ ].
Dengan menggunakan metode simpleks direvisi, penyelesaian dari masalah program linear tersebut yaitu:
Pertama, menentukan matriks awal yaitu matriks dan vektor
∗
= [
∗ �
∗ �
∗
] =
[ ], kemudian mulai iterasi.
Iterasi 1: 1. Menyelesaikan sistem
= sehingga diperoleh vektor = [ ,
, ]. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
2. Tentukan kolom yang masuk dengan menyelesaikan
�
−
�
= − yaitu sebagai berikut
[ ] − [ ,
, ] [ ] = [ − ,
, − ,
− , ]
Dari hasil tersebut terlihat bahwa terdapat satu elemen yang memenuhi −
yaitu elemen kedua yang berkaitan dengan variabel . Jadi, variabel adalah variabel masuk dan vektor kolom dari variabel yang terkait
merupakan kolom masuk.
3. Selesaikan sistem = , sehingga didapat vektor = [
, ,
, ].
4. Didapatkan nilai � =
sedemikian hingga
∗
− � dan terdapat 1
komponen dari
∗
− � = yaitu variabel yang menjadi variabel keluar. 5. Didapat matriks awal yang baru dengan menukar kolom masuk dengan
kolom keluar yaitu = [
] dan vektor
∗
= [ ].
Iterasi 2: 1. Menyelesaikan sistem
= sehingga diperoleh vektor = [ ].
2. Tentukan kolom yang masuk dengan menyelesaikan
�
−
�
= − yaitu sebagai berikut
[ ] − [ ] [ ] = [ −
− −
− ]
Dari hasil tersebut terlihat bahwa semua elemen memenuhi −
. Jadi, tidak terdapat kolom masuk dan iterasi berhenti sehingga didapatkan solusi
optimal yaitu = [
] dan
∗
= [ ].
C. Program Linear Bilangan Bulat
Pada program linear, solusi dapat berupa pecahan dan bilangan bulat. Namun untuk kasus tertentu solusi mengharuskan untuk berupa bilangan bulat. Contohnya
pada masalah transportasi, masalah Knapsack, masalah penjadwalan, masalah pengiriman barang, dan masalah pemotongan persediaan. Program linear dengan
solusi bilangan bulat inilah yang disebut sebagai program linear bilangan bulat. Program linear bilangan bulat terdiri dari dua macam yaitu program linear bilangan
bulat murni dan program linear bilangan bulat campuran. Program linear bilangan bulat dikatakan program bilangan bulat murni jika semua variabel adalah bilangan
bulat. Sedangkan jika sebagian variabelnya bukan bilangan bulat atau sebagian bilangan real maka dapat dikatakan program linear bilangan bulat campuran.
Terdapat dua metode untuk menyelesaikan program linear bilangan bulat yaitu metode pemotongan bidang, dan metode pencabangan dan pembatasan. Pada
skripsi ini akan dibahas metode pencabangan dan pembatasan untuk menyelesaikan masalah porgram linear bilangan bulat murni.
Metode Pencabangan dan Pembatasan Branch and Bound Method
Metode pencabangan dan pembatasan adalah suatu metode untuk menyelesaikan persoalan program linear bilangan bulat murni dan persoalan
program linear bilangan bulat campuran. Metode ini diusulkan pertama kali oleh A. H. Land dan A. G. Doig pada tahun 1960.
Metode ini dilakukan dengan melakukan perhitungan satu persatu atau mengenumerasi semua nilai variabelnya melalui pencabangan. Dengan
mengenumerasi semua variabel tersebut, maka diperoleh suatu solusi optimal, yaitu solusi yang meminimumkan atau memaksimumkan fungsi tujuannya.
Metode pencabangan dan pembatasan merupakan suatu pendekatan untuk menyelesaikan persoalan yang didasarkan pada pembagian semua solusi layak
terhadap sebuah masalah ke dalam sub-masalah yang lebih kecil. Selanjutnya, sub- masalah ini dapat diselesaikan secara sistematis sampai diperoleh solusi optimal.
Cara inilah yang kemudian menjadi dasar metode pencabangan dan pembatasan. Dalam menyelesaikan program linear bilangan bulat menggunakan
pencabangan dan pembatasan terdapat 3 langkah utama, yaitu: 1. Pencabangan
Pencabangan dilakukan ketika solusi belum berbentuk bilangan bulat yaitu dengan memecah masalah program linear awal
� menjadi dua bagian yaitu � dan � dengan menambahkan kendala baru. Dalam pencabangan, kendala
yang ditambahkan merupakan pembulatan ke atas dan pembulatan ke bawah dari solusi yang masih berbentuk pecahan. Sehingga dari pencabangan tersebut
dihasilkan 2 sub-masalah baru, yaitu: PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
a. � = � +
, dimana adalah pembulatan ke bawah dari
solusi program linear berbentuk pecahan. b.
� = � + , dimana
adalah pembulatan ke atas dari solusi program linear berbentuk pecahan.
Proses ini terus berlangsung sampai diperoleh solusi bilangan bulat untuk pertama kalinya.
2. Pembatasan Pembatasan dilakukan setelah proses pencabangan. Langkah ini untuk
membatasi solusi agar didapatkan solusi optimal. Terdapat dua batas pada metode ini yaitu batas bawah dan batas atas. Batas bawah digunakan untuk
menyelesaikan masalah maksimum. Jika � menghasilkan solusi bilangan
bulat yang lebih baik atau lebih besar dari batas bawah, maka perbarui batas bawah dengan solusi tersebut. Jika tidak, maka solusi diabaikan dan memilih
sub-masalah baru lalu mengulangi terus sampai semua sub-masalah diteliti dan diperoleh solusi optimal yaitu batas bawah terakhir. Sedangkan untuk batas
atas digunakan untuk menyelesaikan masalah minimum. Jika �
menghasilkan solusi bilangan bulat yang lebih baik atau lebih kecil dari batas atas, maka perbarui batas atas dengan solusi tersebut. Jika tidak, maka solusi
diabaikan dan memilih sub-masalah baru lalu mengulangi terus sampai semua sub-masalah diteliti dan diperoleh solusi optimal yaitu batas atas terakhir.
3. Penghentian cabang Penghentian cabang dilakukan jika:
a. Sub-masalah tidak memiliki daerah layak, PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
b. Sub-masalah menghasilkan semua variabel keputusan bernilai bulat, dan c. Pada masalah maksimasi, fungsi tujuan tidak lebih besar atau sama dengan
nilai batas bawah. Sebaliknya, pada masalah minimisasi, fungsi tujuan tidak lebih kecil atau sama dengan nilai batas atas.
Berikut langkah-langkah metode pencabangan dan pembatasan untuk menyelesaikan program linear dengan solusi bilangan bulat:
1. Menyelesaikan masalah program linear sampai menghasilkan solusi optimum. Apabila solusi berbentuk bilangan bulat, maka perhitungan dihentikan.
Sebaliknya, jika solusi berbentuk bilangan pecahan maka perhitungan dilanjutkan.
2. Kemudian menambah kendala baru yang membatasi nilai salah satu variabel yang tidak bulat.
3. Penambahan ini akan berakibat terbelahnya daerah layak menjadi 2 bagian sehingga terbentuklah 2 sub-masalah baru yang kemudian harus diselesaikan.
Dengan kata lain, terjadi pencabangan dari masalah aslinya menjadi 2 sub- masalah baru.
4. Batas untuk nilai fungsi tujuan kemudian dapat ditentukan. Batas ini dapat digunakan untuk mengeliminasi sub-masalah yang tidak diperlukan dan
menentukan apakah solusi optimalnya sudah tercapai. 5. Jika solusi berbentuk bukan bilangan bulat, maka kembali ke langkah 2. Jika
solusi berbentuk bilangan bulat, maka kembali ke langkah 4. PLAGIAT MERUPAKAN TINDAKAN TIDAK TERPUJI
Contoh 2.3
Misalkan diberikan masalah program linear awal � sebagai berikut.
Minimumkan =
+ Dengan kendala
{ +
+ ,
dan bilan�an bulat Jawab:
1. Menyelesaikan masalah program linear tersebut sehingga mendapatkan solusi optimal
= , , = , dan = , . Solusi yang diperoleh tidak berbentuk bilangan bulat maka lanjut ke langkah 2.
2. Selanjutnya, masalah program linear bulat di atas dicabangkan menjadi dua masalah program linear bulat baru dengan menambahkan kendala
dan
. 3. Sehingga didapatkan dua sub-masalah baru yang harus diselesaikan sebagai
berikut. Sub-masalah 1:
� = � + , ,
Minimumkan =
+ Dengan kendala
{ +
+
, dan