menyelesaikan permasalahan program linear integer biner. Algoritma ini memiliki beberapa
ketentuan yaitu:
Sehingga jika ditemukan permasalahan diluar ketentuan, dapat dilakukan perubahan sebagai berikut
:
𝑆𝑖 = 𝑏𝑖 − ∑ 𝑎𝑖𝑗
𝑗𝜖𝐽
𝑧 = ∑ 𝑐𝑗
𝑗∈𝐽
𝒙 = 0, 𝑺 = 𝒃 dan 𝑧 = 0
i. Jika terdapat 𝑖 ∈ 𝑀 sehingga pernyataan diatas tidak dipenuhi, maka lanjut Langkah 5.
ii. Jika pernyataan diatas terpenuhi untuk setiap 𝑖 dengan kendala pertidaksamaan, maka
hitung 𝑣𝑗 untuk semua 𝑗 ∈ 𝑁. Kemudian tentukan 𝑣 = max 𝑣𝑗 . Batalkan 𝑣𝑗 , dimana 𝑣𝑗 = 𝑣,
𝑗∈𝑁
dan lanjut Langkah 8.
iii. Jika pernyataan diatas terpenuhi untuk setiap 𝑖 dan terdapat 𝑖 ∈ 𝑀 sehingga pernyataan
diatas terpenuhi untuk kendala persamaan, maka lanjut Langkah 4.
Langkah 4: Cek ∑𝑗∈𝐹 𝑐𝑗 < 𝑧 ∗ − 𝑧 dengan 𝐹 merupakan himpunan 𝑗 ∈ 𝑁 dimana 𝑎𝑖𝑗 < 0 untuk paling
tidak satu 𝑖 ∈ 𝑀.
𝑆𝑖 = 𝑆𝑖 − ∑ 𝑎𝑖𝑗
𝑗∈𝐹
Kemudian lanjut iterasi berikutnya (Langkah 1 kembali).
ii. Jika pernyataan tidak dipenuhi, maka batalkan 𝑣𝑗 untuk semua 𝑗 ∈ 𝑁. Kemudian lanjut
Langkah 5.
Langkah 5: Tentukan 𝑁𝑘 .
i. Jika 𝑁𝑘 = ∅ , maka proses selesai. Jika 𝑍𝑘 = ∅, maka permasalahan tidak memiliki solusi
yang layak. Sebaliknya jika 𝑍𝑘 ≠ ∅, maka 𝑧 ∗ merupakan fungsi tujuan minimumnya dengan
solusi yang bersesuaian adalah solusi optimumnya.
ii. Jika 𝑁𝑘 ≠ ∅, maka lanjut Langkah 6.
i. Jika pernyataan diatas tidak dipenuhi, maka batalkan 𝑣𝑗 untuk 𝑗 ∈ 𝑁𝑘 dan ulang Langkah 5
untuk 𝑘 yang lain. Jika sudah tidak terdapat 𝑘, maka proses berhenti.
ii. Jika pernyataan diatas terpenuhi dengan kendala pertidaksamaan, maka hitung 𝑣𝑗 untuk
semua 𝑗 ∈ 𝑁𝑘 . Kemudian tentukan 𝑣 = max 𝑣𝑗 . Batalkan 𝑣𝑗 , dimana 𝑣𝑗 = 𝑣, dan lanjut
𝑗∈𝑁𝑘
Langkah 8.
iii. Jika pernyataan diatas terpenuhi dan terdapat 𝑖 ∈ 𝑀𝑘 sehingga pernyataan diatas terpenuhi
untuk kendala persamaan, maka lanjut Langkah 7.
𝑆𝑖 = 𝑆𝑖 − ∑ 𝑎𝑖𝑗
𝑗∈𝐹𝑘
Kemudian lanjut iterasi berikutnya (Langkah 1 kembali).
ii. Jika pernyataan diatas tidak dipenuhi, maka batalkan 𝑣𝑗 untuk semua 𝑗 ∈ 𝐹𝑘 dan ulangi
Langkah 5. Jika sudah tidak terdapat 𝑘, maka proses berhenti.
Langkah 8: Tentukan 𝐽 = 𝐽 + {𝑗} kemudian hitung fungsi tujuan dan variabel slack
𝑧 = 𝑧 + 𝑐𝑗 = ∑ 𝑐𝑗
𝑗∈𝐽
𝑆𝑖 = 𝑆𝑖 − 𝑎𝑖𝑗 = 𝑆𝑖 − ∑ 𝑎𝑖𝑗
𝑗∈𝐽
1. 5i tercapai
2. 6i tercapai
3. 7ii tercapai
Pendefinisian:
𝐽 = {𝑗|𝑗 ∈ N, 𝑥𝑗 = 1}.
𝑍 = {𝑧|𝒙, 𝑺 ≥ 0}.
∞ 𝑗𝑖𝑘𝑎 𝑍 = ∅
𝑧 ∗= { .
min 𝑧 𝑗𝑖𝑘𝑎 𝑍 ≠ ∅
𝐶 = ∅ untuk iterasi pertama. Merupakan himpunan 𝑗 dimana nilai 𝑣𝑗 dibatalkan sebelum solusi
diperoleh.
𝐷𝑘 = {𝑗|𝑗 ∈ (𝑁𝑘 − 𝐶𝑘 ), 𝑐𝑗 ≥ 𝑧 ∗ − 𝑧𝑘 }.
𝑁 = 𝑁 − {𝐶 ∪ 𝐷 ∪ 𝐸}.
𝑁𝑘 = 𝑁𝑘 − (𝐶𝑘 ∪ 𝐷𝑘 ).
Dengan batasan
Penyelesaian :
Kalikan dengan −1 dua pertidaksamaan berbentuk ≥ , yaitu pertidaksamaan (𝑖) dan (𝑖𝑖𝑖) sehingga
menjadi
Fungsi tujuan
(i)
(ii)
(iii)
𝑥2 − 2𝑥3 − (1 − 𝑥4 ) + 𝑥5 ≤ −2
𝑥2 − 2𝑥3 + 𝑥4 + 𝑥5 ≤ −1
Dengan menyimpan nilai ruas kanan pada fungsi tujuan (𝑅𝐾 = 8), maka diperloleh model PLI nya
Menggunakan cara yang sama seperti PL, ubah bentuk Primal diatas ke bentuk Standar sehingga
muncul variabel slack sejumlah batasan yang ada sebagai berikut :
𝑆𝑖 ≥ 0, 𝑖 = 1,2,3
Apabila kita sajikan dalam tabel Simpleks maka
Dikarenakan koefisien variabel pada fungsi tujuan pada tabel Simpleks ≤ 0 maka solusi sudah optimal.
Namun belum layak karena ruas kanan < 0. Kondisi ini disebut sebagai dual feasible.
Dapat juga dilihat dari model standar diatas dimana koefisien 𝑐𝑗 ≥ 0, 𝑗 = 1,2, … ,5, dan (𝑆1 , 𝑆2 , 𝑆3 ) =
(−2,0, −1).
Sehingga untuk menyelesaikan permasalahan ILP biasanya kita akan berangkat dari permasalahan
dual feasible dimana
𝐽 merupakan himpunan solusi dimana anggotanya bernilai sama dengan 1, secara matematis
dituliskan 𝐽 = {𝑗|𝑗 ∈ N, 𝑥𝑗 = 1}.
Iterasi 1 :
Langkah 3. Cek relasi untuk 𝑆𝑖 < 0, yaitu 𝑖 = 1,3, hitung nilai 𝑎𝑖𝑗
̅ (dengan 𝑎𝑖𝑗
̅ merupakan elemen
negatif) untuk 𝑖 = 1,3 dan 𝑗 ∈ 𝑁, yaitu 𝑗 = 1,3,4.
∑ 𝑎1𝑗
̅̅̅ = 𝑎11
̅̅̅̅ + 𝑎13
̅̅̅̅ + 𝑎14
̅̅̅̅ = −1 − 5 − 1 = −7 < 𝑆1 = −2
𝑗∈𝑁
∑ 𝑎3𝑗
̅̅̅ = 𝑎33
̅̅̅̅ = −2 = −2 < 𝑆3 = −1
𝑗∈𝑁
Karena semua pertidaksamaan memenuhi relasi tersebut maka hitung nilai 𝑣𝑗 untuk 𝑗 ∈ 𝑁, yaitu 𝑗 =
1,3,4. Dikarenakan:
Langkah 8. Diperoleh 𝐽𝑛𝑜𝑤 = 𝐽 ∪ {3} = {3} dikarenakan 𝑣3 yang diperoleh dari langkah sebelumnya.
Hitung fungsi objektif dari solusi baru:
𝑧𝑛𝑜𝑤 = 𝑧 + 𝑐3 = 0 + 10 = 10
Dan
𝑆1,𝑛𝑜𝑤 = 𝑆1 − 𝑎13 = −2 + 5 = 3
𝑆2,𝑛𝑜𝑤 = 𝑆2 − 𝑎23 = 0 − 3 = −3
𝑆3,𝑛𝑜𝑤 = 𝑆3 − 𝑎33 = −1 + 2 = 1
Iterasi 2
Diketahui 𝐶 = {3} (variabel yang baru dibatalkan sebelum solusi diperoleh), 𝐷 = ∅ (karena 𝑍 = ∅),
dan 𝐸 = {1,4} (karena 𝑆𝑖 < 0 ⇒ 𝑎𝑖𝑗 ≥ 0 untuk 𝑗 = 1,3,4).
∑ 𝑎̅̅̅
2𝑗 = 𝑎22
̅̅̅̅ + 𝑎25
̅̅̅̅ = −6 − 2 = −8 < 𝑆2 = −3
𝑗∈𝑁
Karena semua pertidaksamaan memenuhi relasi tersebut maka hitung nilai 𝑣𝑗 untuk 𝑗 ∈ 𝑁, yaitu 𝑗 =
2,5. Dikarenakan:
𝑀2− = ∅, maka 𝑣2 = 0
Langkah 8. Diperoleh 𝐽𝑛𝑜𝑤 = 𝐽 ∪ {2} = {2,3}. Hitung fungsi objektif dari solusi baru:
𝑧𝑛𝑜𝑤 = 𝑧 + 𝑐2 = 10 + 7 = 17
Dan
𝑆1,𝑛𝑜𝑤 = 𝑆1 − 𝑎12 = 3 − 3 = 0
𝑆2,𝑛𝑜𝑤 = 𝑆2 − 𝑎22 = −3 + 6 = 3
𝑆3,𝑛𝑜𝑤 = 𝑆3 − 𝑎32 = 1 + 1 = 0
Iterasi 3
𝑧 = 17 = 𝑧 ∗
Dan ditentukan 𝐷𝑘 untuk 𝑘 = 1,0 (karena 𝑘 < 𝑗𝑢𝑚𝑙𝑎ℎ 𝑖𝑡𝑒𝑟𝑎𝑠𝑖):
Untuk 𝑘 = 1:
𝑁1 = {2,5} (iterasi sebelumnya), dan 𝐶1 = {2} (variabel yang baru dibatalkan sebelum solusi
diperoleh) maka 𝑁1 − 𝐶1 = {5}.
Cek 𝑐𝑗 ≥ 𝑧 ∗ − 𝑧𝑘 .
Untuk 𝑘 = 0:
Cek 𝑐𝑗 ≥ 𝑧 ∗ − 𝑧𝑘 .
Untuk tahapan diatas ada baiknya jika dibuat tabel untuk mempermudah:
𝑘 𝑁 𝐶 𝑧
{1,2,3,4,5} ∅ Inisialisasi
0 {1,3,4} {3} 0 Iterasi 1
1 {2,5} {2} 10 Iterasi 2
Lanjut ke Langkah 5.
∑ 𝑎2𝑗
̅̅̅ = 𝑎25
̅̅̅̅ = −2 ≰ 𝑆2 = −3
𝑗∈𝑁1
Sehingga tidak dipenuhi, maka batalkan 𝑣𝑗 untuk 𝑗 ∈ 𝑁1 yaitu 𝑣5 dan kembali ke Langkah 5.
Langkah 6. Cek relasi untuk 𝑆𝑖 < 0, yaitu 𝑖 = 1,3, dimana 𝑆1 = −2, 𝑆3 = −1.
∑ 𝑎1𝑗
̅̅̅ = 𝑎11
̅̅̅̅ + 𝑎14
̅̅̅̅ = −1 − 1 = −2 = 𝑆2 = −2
𝑗∈𝑁0
∑ 𝑎3𝑗
̅̅̅ = 𝑎31
̅̅̅̅ = 0 ≰ 𝑆3 = −1
𝑗∈𝑁0
Karena pertidaksamaan tidak memenuhi relasi untuk 𝑖 = 3 maka batalkan 𝑣𝑗 untuk 𝑗 ∈ 𝑁0 yaitu 𝑣1
dan 𝑣4 .
Dikarenakan tidak terdapat 𝑘 yang memenuhi relasi tersebut, maka algoritma berhenti.
𝑥2 = 𝑥3 = 1
𝑥1 = 𝑥4 = 𝑥5 = 0
𝑆1 = 0, 𝑆2 = 3, 𝑆3 = 0
𝑧 = 17
Bersesuaian dengan permasalahan yang awal, maka solusi optimalnya (𝑅𝐾 = 8) :
𝑥1′ = 1 − 𝑥1 = 1
𝑥2′ = 𝑥2 = 1
𝑥3′ = 𝑥3 = 1
𝑥4′ = 1 − 𝑥4 = 1
𝑥5′ = 𝑥5 = 0
Dengan 𝑧 = 17 − 𝑅𝐾 = 17 − 8 = 9.