Salah satu teknik penentuan
solusi optimal yang digunakan dalam pemrograman linier adalah metode
simpleks. Penentuan solusi optimal
menggunakan metode simpleks didasarkan pada teknik eleminasi Gauss Jordan.
Penentuan solusi optimal dilakukan dengan memeriksa titik ekstrim satu per satu
dengan cara perhitungan iteratif. Sehingga penentuan solusi optimal dengan
simpleks dilakukan tahap demi tahap yang disebut dengan iterasi. Iterasi ke-i
hanya tergantung dari iterasi sebelumnya (i-1).
Ada beberapa istilah yang
sangat sering digunakan dalam metode simpleks, diantaranya :
- Iterasi adalah tahapan perhitungan dimana nilai dalam perhitungan itu tergantung dari nilai tabel sebelumnya.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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).
- Baris pivot (baris kerja) adalah salah satu baris dari antara variabel basis yang memuat variabel keluar.
- Elemen pivot (elemen kerja) adalah elemen yang terletak pada perpotongan kolom dan baris pivot. Elemen pivot akan menjadi dasar perhitungan untuk tabel simpleks berikutnya.
- 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.
- 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.
BENTUK BAKU
Sebelum melakukan perhitungan
iteratif untuk menentukan solusi optimal, pertama sekali bentuk umum
pemrograman linier dirubah ke dalam bentuk baku terlebih dahulu. Bentuk baku
dalam metode simpleks tidak hanya mengubah persamaan kendala ke dalam bentuk
sama dengan, tetapi setiap fungsi kendala harus diwakili oleh satu variabel
basis awal. Variabel basis awal menunjukkan status sumber daya pada kondisi
sebelum ada aktivitas yang dilakukan. Dengan kata lain, variabel keputusan
semuanya masih bernilai nol. Dengan demikian, meskipun fungsi kendala pada
bentuk umum pemrograman linier sudah dalam bentuk persamaan, fungsi kendala
tersebut masih harus tetap berubah.
Ada beberapa hal yang harus diperhatikan dalam
membuat bentuk baku, yaitu :
- Fungsi kendala dengan pertidaksamaan ≤ dalam bentuk umum, dirubah menjadi persamaan (=) dengan menambahkan satu variabel slack.
- Fungsi kendala dengan pertidaksamaan ≥ dalam bentuk umum, dirubah menjadi persamaan (=) dengan mengurangkan satu variabel surplus dan menambahkan satu variabel artificial.
- Fungsi kendala dengan persamaan dalam benttuk umum,ditambahkan satu artificial variabel (variabel buatan).
Perhatikan kasus A berikut :
Fungsi tujuan : minimumkan z = 2 x1 + 5.5 x2
Kendala :
x1 + x2 = 90
0.001
x1 + 0.002 x2 ≤ 0.9
0.09
x1 + 0.6 x2 ≥ 27
0.02
x1 + 0.06 x2 ≤ 4.5
x1,
x2 ≥ 0
Bentuk di atas adalah bentuk umum pemrograman
liniernya. Kedalam bentuk baku, model matematik tersebut akan berubah menjadi :
Fungsi tujuan :
minimumkan z = 2 x1 + 5.5 x2+ 0.S1+0. S2+0.
S3+ M.A4+ M.A2
Kendala :
x1
+ x2 + A1 = 90
0.001
x1 + 0.002 x2 + S1 = 0.9
0.09
x1 + 0.6 x2 – S2 + A2 = 27
0.02
x1 + 0.06 x2 + S3 = 4.5
Fungsi
kendala pertama mendapatkan variable buatan (A1), karena bentuk umumnya sudah menggunakan
bentuk persamaan. Fungsi kendala kedua dan keempat mendapatkan variabel slack (S1 dan S3) karena bentuk
umumnya menggunakan pertidaksamaan ≤, sedangkan
fungsi kendala ketiga mendapatkan variabel surplus (S2) dan variabel
buatan (A2) karena bentuk
umumnya menggunakan pertidaksamaan ≥.
Perhatikan pula kasus B berikut ini :
Maksimumkan
z = 2x1 + 3x2
Kendala :
10 x1
+ 5 x2 ≤ 600
6 x1 +
20 x2 ≤ 600
8 x1
+ 15 x2 ≤ 600
x1, x2 ≥
Bentuk di atas juga merupakan bentuk umum.
Perubahan ke dalam bentuk baku hanya membutuhkan variabel slack, karena semua
fungsi kendala menggunakan bentuk pertidaksamaan ≤ dalam bentuk umumnya. Maka
bentuk bakunya adalah sebagai berikut :
Maksimumkan z = 2x1 + 3x2
+ 0s1 + 0s2 + 0s3
Kendala :
10 x1 + 5 x2 + S1 = 600
6 x1 + 20 x2 + S2 = 600
8 x1 + 15 x2 + S3 = 600
S1 , S2 , S3 merupakan variable slack.
PEMBENTUKAN TABEL SIMPLEKS
Dalam perhitungan iterative, kita akan bekerja
menggunakan tabel. Bentuk baku yang sudah diperoleh, harus dibuat ke dalam
bentuk tabel.
Semua variabel yang bukan variabel basis mempunyai
solusi (nilai kanan) sama dengan nol dan koefisien variabel basis pada baris
tujuan harus sama dengan 0. Oleh karena itu kita harus membedakan pembentukan
tabel awal berdasarkan variabel basis awal. Dalam sub bab ini kita hanya akan
memperhatikan fungsi kendala yang menggunakan variabel slack
dalam bentuk bakunya, sedangkan yang menggunakan variabel buatan akan dibahas
pada sub bab lainnya.
Gunakan kasus B di atas, maka tabel awal
simpleksnya adalah :
Var
Dasar
|
Cj
|
X1
|
X2
|
S1
|
S2
|
S3
|
Konstanta
|
2
|
3
|
0
|
0
|
0
|
|||
S1
|
0
|
10
|
5
|
1
|
0
|
0
|
600
|
S2
|
0
|
6
|
20
|
0
|
1
|
0
|
600
|
S3
|
0
|
8
|
15
|
0
|
0
|
1
|
600
|
|
Zj
|
0
|
0
|
0
|
0
|
0
|
0
|
|
Zj - Cj
|
-2
|
-3
|
0
|
0
|
0
|
|
LANGKAH-LANGKAH PENYELESAIAN
Langkah-langkah penyelesaian adalah sebagai
berikut :
- Periksa apakah tabel optimum atau tidak. Tabel dikatakan optimum apabila tidak ada nilai Zj - Cj ( masalah maksimalisasi) atau nilai Cj - Zj ( masalah minimalisasi) yang negatif. Apabila ada yang negatif maka tabel simplek diperbaiki ( Langkah 2 – 5)
- Tentukan kolom pivot.
Penentuan kolom pivot ditentukan dari nilai nilai Zj - Cj
( masalah maksimalisasi) atau nilai Cj - Zj ( masalah
minimalisasi) yang negatif terkecil
- Tentukan baris pivot.
Baris pivot dipilih dari nilai
rasio konstanta/nilai kolom pivot yang positif terkecil
- Tentukan elemen pivot.
Elemen pivot merupakan nilai
yang terletak pada perpotongan kolom dan baris pivot.
- Bentuk tabel simpleks baru.
Tabel simpleks baru dibentuk
dengan pertama sekali menghitung nilai baris pivot baru. Baris pivot baru = baris pivot lama/elemen pivot.
Baris baru lainnya = baris lama - nilai kolom pivot baris yang bersangkutan dikali
baris pivot baru
Selesaikan kasus berikut ini menggunakan metode
simpleks :
Maksimum z = 8 x1 + 9 x2 + 4x3
Kendala :
x1 + x2 + 2x3 ≤ 2
2x1 + 3x2 + 4x3 ≤ 3
7x1 + 6x2 + 2x3 ≤ 8
x1,x2,x3 ≥ 0
Penyelesaian :
Bentuk bakunya adalah :
Maksimum Z = 8 x1 + 9 x2 + 4x3 + 0S1 + 0S2 + 0S3
Kendala :
x1 + x2 + 2x3 + s1 = 2
2x1 + 3x2 + 4x3 + s2
= 3
7x1 + 6x2 + 2x3 + s3 = 8
Solusi / table awal simpleks :
Var Dasar
|
Cj
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
Kuantitas
|
8
|
9
|
4
|
0
|
0
|
0
|
|||
S1
|
0
|
1
|
1
|
2
|
1
|
0
|
0
|
2
|
S2
|
0
|
2
|
3
|
4
|
0
|
1
|
0
|
3
|
S3
|
0
|
7
|
6
|
2
|
0
|
0
|
1
|
8
|
|
Zj
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
|
Zj - Cj
|
-8
|
-9
|
-4
|
0
|
0
|
0
|
|
Karena nilai negative terkecil ada pada kolom X2, maka
kolom X2 adalah kolom pivot dan X2 adalah variabel masuk.
Rasio pembagian nilai kanan dengan kolom
pivot terkecil adalah 1 bersesuaian
dengan baris s2, maka
baris s2 adalah baris pivot dan s2 adalah varisbel
keluar. Elemen pivot adalah 3.
Var Dasar
|
Cj
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
Kuantitas
|
Rasio
|
8
|
9
|
4
|
0
|
0
|
0
|
|
|||
S1
|
0
|
1
|
1
|
2
|
1
|
0
|
0
|
2
|
2/1=2
|
S2
|
0
|
2
|
3
|
4
|
0
|
1
|
0
|
3
|
3/3=1
|
S3
|
0
|
7
|
6
|
2
|
0
|
0
|
1
|
8
|
8/6=4/3
|
|
Zj
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
|
|
Zj - Cj
|
-8
|
-9
|
-4
|
0
|
0
|
0
|
|
|
Iterasi 1
Nilai pertama yang kita miliki adalah nilai
baris pivot baru (baris x2). Semua nilai pada baris s2 pada
tabel solusi awal dibagi dengan 3 (elemen pivot).
Var Dasar
|
Cj
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
Kuantitas
|
8
|
9
|
4
|
0
|
0
|
0
|
|||
S1
|
0
|
|
|
|
|
|
|
|
X2
|
9
|
2/3
|
3/3
|
4/3
|
0/3
|
1/3
|
0/3
|
3/3
|
S3
|
0
|
|
|
|
|
|
|
|
|
Zj
|
|
|
|
|
|
|
|
|
Zj - Cj
|
|
|
|
|
|
|
|
Perhitungan nilai baris baru yang lainnya :
Baris s1 :
1 1 2 1 0 0 2
1 (2/3 1 4/3 0 1/3 0 1 ) -
1/3 0 2/3 1 -1/3 0 1
Baris s3 :
7 6 2 0 0 1 8
6 ( 2/3 1 4/3 0 1/3 0 1 ) -
3 0 -6 0 -2 1 2
Maka tabel iterasi 1 ditunjukkan tabel di bawah.
Selanjutnya kita periksa apakah tabel sudah optimal atau belum. Karena nilai
baris z di bawah variabel x1 masih negatif, maka tabel belum
optimal. Kolom dan baris
pivotnya ditandai pada tabel di bawah ini :
Var Dasar
|
Cj
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
Kuantitas
|
8
|
9
|
4
|
0
|
0
|
0
|
|||
S1
|
0
|
1/3
|
0
|
2/3
|
1
|
-1/3
|
0
|
2
|
X2
|
9
|
2/3
|
1
|
4/3
|
0
|
1/3
|
0
|
3
|
S3
|
0
|
3
|
0
|
-6
|
0
|
-2
|
1
|
8
|
|
Zj
|
6
|
9
|
12
|
0
|
3
|
0
|
27
|
|
Zj - Cj
|
-2
|
0
|
8
|
0
|
3
|
0
|
|
VB
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
NK
|
Rasio
|
Z
|
-2
|
0
|
8
|
0
|
3
|
0
|
9
|
-
|
S1
|
1/3
|
0
|
2/3
|
1
|
-1/3
|
0
|
1
|
3
|
X2
|
2/3
|
1
|
4/3
|
0
|
1/3
|
0
|
1
|
3/2
|
S3
|
3
|
0
|
-6
|
0
|
-2
|
1
|
2
|
2/3
|
Iterasi 2 :
Var Dasar
|
Cj
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
Kuantitas
|
Rasio
|
8
|
9
|
4
|
0
|
0
|
0
|
||||
S1
|
0
|
1/3
|
0
|
2/3
|
1
|
-1/3
|
0
|
2
|
3
|
X2
|
9
|
2/3
|
1
|
4/3
|
0
|
1/3
|
0
|
3
|
3/2
|
S3
|
0
|
3
|
0
|
-6
|
0
|
-2
|
1
|
8
|
2/3
|
|
Zj
|
6
|
9
|
12
|
0
|
3
|
0
|
27
|
|
|
Zj - Cj
|
-2
|
0
|
8
|
0
|
3
|
0
|
|
|
Variabel masuk
dengan demikian adalah X1 dan
variabel keluar adalah S3 . Hasil Iterasi ke 2 sbb:
Var Dasar
|
Cj
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
Kuantitas
|
Rasio
|
8
|
9
|
4
|
0
|
0
|
0
|
||||
S1
|
0
|
0
|
0
|
4/3
|
1
|
-1/9
|
-1/9
|
7/9
|
3
|
X2
|
9
|
0
|
1
|
8/3
|
0
|
7/9
|
-2/9
|
5/9
|
3/2
|
X1
|
8
|
1
|
0
|
-2
|
0
|
-2/3
|
1/3
|
2/3
|
2/3
|
|
Zj
|
8
|
9
|
8
|
0
|
5/3
|
2/3
|
31/3
|
|
|
Zj - Cj
|
0
|
0
|
4
|
0
|
5/3
|
2/3
|
|
|
Tabel sudah optimal, sehingga perhitungan iterasi
dihentikan !
Perhitungan dalam simpleks
menuntut ketelitian tinggi, khususnya
jika angka yang digunakan adalah pecahan. Pembulatan harus diperhatikan dengan baik.
Disarankan jangan menggunakan bentuk bilangan desimal, akan lebih teliti jika
menggunakan bilangan pecahan. Pembulatan dapat menyebabkan iterasi lebih
panjang atau bahkan tidak selesai karena ketidaktelitian dalam melakukan
pembulatan.
Perhitungan iteratif dalam simpleks pada dasarnya
merupakan pemeriksaan satu per satu titik-titik ekstrim layak pada daerah
penyelesaian. Pemeriksaan dimulai dari kondisi nol (dimana semua
aktivitas/variabel keputusan bernilai nol). Jika titik ekstrim berjumlah n,
kemungkinan terburuknya kita akan melakukan perhitungan iteratif sebanyak n
kali.
1. Silahkan masukkan komentar
2. Berkomentar dengan kata-kata yang santun
3. Jangan menggunakan kata-kata kotor
4. Jika anda tidak suka dengan yang kami sajikan, lebih baik jangan di baca
5. Tinggalkan link web/blog anda agar admin bisa visit back
6. Jadilah pengunjung yang baik
7. Kami hanya memberikan informasi dari sumber-sumber yang bisa admin percaya.
8. Maaf jika ada salah satu artikel tidak ada sumbernya.
EmoticonEmoticon