METODE SIMPLEKS DALAM PROGRAM LINIER
Metode simpleks merupakan salah satu
teknik penyelesaian dalam program linier yang digunakan sebagai teknik pengambilan keputusan dalam permasalahan
yang berhubungan dengan pengalokasian
sumberdaya secara optimal. Metode simpleks digunakan untuk mencari nilai
optimal dari program linier yang
melibatkan banyak constraint (pembatas) dan banyak variabel (lebih dari dua
variabel). Penemuan metode ini merupakan lompatan besar dalam riset operasi dan
digunakan sebagai prosedur penyelesaian
dari setiap program computer.
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 yaitu :
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.
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.
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.
- Fungsi kendala dengan persamaan dalam benttuk umum,ditambahkan satu artificial variabel (variabel buatan).
Contoh Soal :
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 atau
z - 8 x1 - 9 x2 - 4x3 + 0s1 + 0s2 + 0s3 = 0
Kendala :
x1 + x2 + 2x3 + s1 = 2
2x1 + 3x2 + 4x3 + s2 = 3
7x1 + 6x2 + 2x3 + s3 = 8
x1,x2,x3 ,s1 , s2 , s3 ≥ 0
VB
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
NK
|
Rasio
|
Z
|
-8
|
-9
|
-4
|
0
|
0
|
0
|
0
| |
S1
|
1
|
1
|
2
|
1
|
0
|
0
|
2
| |
S2
|
2
|
3
|
4
|
0
|
1
|
0
|
3
| |
S3
|
7
|
6
|
2
|
0
|
0
|
1
|
8
|
Karena nilai negative terbesar 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.
VB
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
NK
|
Rasio
|
Z
|
-8
|
-9
|
-4
|
0
|
0
|
0
|
0
| |
S1
|
1
|
1
|
2
|
1
|
0
|
0
|
2
|
2
|
S2
|
2
|
3
|
4
|
0
|
1
|
0
|
3
|
1
|
S3
|
7
|
6
|
2
|
0
|
0
|
1
|
8
|
8/6
|
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).
VB
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
NK
|
Rasio
|
Z
| ||||||||
S1
| ||||||||
x2
|
2/3
|
1
|
4/3
|
0
|
1/3
|
0
|
1
| |
S3
|
Perhitungan nilai barisnya :
Baris z :
-8 -9 -4 0 0 0 0
-9 ( 2/3 1 4/3 0 1/3 0 1 ) -
-2 0 8 0 3 0 9
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 :
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 :
VB
|
X1
|
X2
|
X3
|
S1
|
S2
|
S3
|
NK
|
Rasio
|
Z
|
0
|
0
|
4
|
0
|
5/3
|
2/3
|
31/3
| |
S1
|
0
|
0
|
4/3
|
1
|
-1/9
|
-1/9
|
7/9
| |
X2
|
0
|
1
|
8/3
|
0
|
7/9
|
-2/9
|
5/9
| |
X1
|
1
|
0
|
-2
|
0
|
-2/3
|
1/3
|
2/3
|
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.
Ok.. Terima Kasih atas Postingnya !!!.....
BalasHapusSama sama chuy
HapusSama sama chuy
Hapuskak yg iterasi 2 nyarinya gimana?
BalasHapusTerima kasih banyak,,,
BalasHapusbermanfaat sekali bagi saya sekali lagi terima kasi bang
izin copas gan ya... tengkiu..
BalasHapusTerima kasih sangat membantu 👍
BalasHapussangat bermafaat , terima kasih
BalasHapussesuai soal saya, thank you so much
BalasHapusTabelnya gak ada isinya di aku :')
BalasHapusKak itu cara masukin ke persamaan nya gimana??
BalasHapusBang kok nilai variabel nya nggak ada?
BalasHapusthanks u sob
BalasHapusKak mau tanya trs X3 itu buat ya kak
BalasHapus