Sunday, October 26, 2008

LOGARITMA SIMPLEKS

Pernah belajar logaritma simpleks?
Ternyata tidak sesimpleks yang dibayangkan :D
Biasanya untuk menyelesaikan masalah yang terdiri dari 3 variabel atau lebih. Konon ini pernah dipakai dalam perang dunia untuk menentukan titik mana yang akan dijatuhi bom. Serem yah....
Berikut ini contohnya :

Maksimumkan : Z = 30X1 + 24X2 + 60X3
Dengan kendala : 6X1 + 3X2 + 5X3 ≤ 30
2X1 + 2X2 + 10X3 ≤ 50
X1,X2,X3 ≥ 0

Langkah 1 : Tambahkan variabel slack di kendala.
Variabel slack adalah variabel sisa jika variabel X adalah 1
Misal dari kendala pertama -> X1,X2,X3 = 1 -> 6(1)+3(1)+5(1)= 14 -> maka variabel slacknya adalah 16 (dari 30-14)
Disini kita umpamakan variabel slack adalah S :

6X1 + 3X2 + 5X3 + S1 = 30
2X1 + 2X2 + 10X3 + S2 = 50

Langkah 2 : Buat matriksnya
Karena komputernya belum sesuai standar, maka bikin matriksnya dipass dulu aja yah :D

Langkah 3 : Buat tabel simpleks

X1 X2 X3 S1 S2 K
6 3 5 1 0 30
2 2 10 0 1 50
-30 -24 -60 0 0 0

Pada baris pertama dibawah variabel, merupakan koefisien masing-masing kendala yang telah ditambah variabel slack. Sedangkan baris terakhir didapat dari model Z maksimum diminuskan.

Langkah 4 : Hitung-hitungan dimulai!!

Pertama, kita tentukan dulu titik mana dari tabel simpleks yang akan dieksekusi. Caranya adalah :
- Di baris terakhir, tentukan nilai yang paling besar dengan mengabaikan tanda minus. Dalam contoh ini yang terbesar adalah 60 yang terletak di kolom X3.
- Kemudian diatasnya kita tentukan, mana yang bila dijadikan pembagi K adalah yang menghasilkan nilai terkecil.
30 : 5 = 6
50 : 10 = 5
Didapat nilai yang terkecil adalah 10 (dari kolom X3)
Maka titik yang akan kita eksekusi adalah titik 10 dikolom X3.

Kedua, proses hitung-hitungan untuk menjadikan baris terakhir atau baris Z nilainya ≥ 0 yaitu dengan cara membuat tabel seperti di bawah :

Baris Baris 2 Baris 1 Baris 3
konstanta

X1 2 : 10 = 2/10 6 - (5 x 2/10) = 5 -30 + (60 x 2/10) = -18
X2 2 : 10 = 2/10 3 - (5 x 2/10) = 2 -24 + (60 x 2/10) = -12
X3 10 : 10 = 1 5 - (5 x 1) = 0 -60 + (60 x 1) = 0
S1 0 : 10 = 0 1 - (5 x 0) = 1 0 + (60 x 0) = 0
S2 1 : 10 = 1/10 0 - (5 x 1/10) = -1/2 0 + (60 x 1/10) = 6
K 50 : 10 = 5 30 - (5 x 5) = 5 0 + (60 x 5) = 300

Darimanakah angka-angka pada tabel tersebut didapat?
Awalnya adalah dari angka yang akan kita eksekusi :

Baris Baris 2 Baris 1 Baris 3
konstanta

X1
X2
X3 10
S1
S2
K

Lalu angka tersebut diubah menjadi 1. Caranya adalah dengan dibagi oleh bilangan itu sendiri :

Baris Baris 2 Baris 1 Baris 3
konstanta

X1
X2
X3 10 : 10 = 1
S1
S2
K

Kemudian angka di kolom yang sama di baris yang beda dinolkan. Caranya adalah dengan dikurangi oleh angka itu sendiri (dalam hal ini 5) dikalikan hasil dari pembagian angka yang tadi dieksekusi (dalam hal ini 1):

Baris Baris 2 Baris 1 Baris 3
konstanta

X1
X2
X3 10 : 10 = 1 5 - (5 x 1) = 0
S1
S2
K

Namun bila angka di kolom yang sama di baris yang beda adalah negatif, cara mengenolkannya adalah dengan ditambah oleh angka itu sendiri (dalam hal ini -60) dikalikan hasil dari pembagian angka yang tadi dieksekusi (dalam hal ini 1):

Baris Baris 2 Baris 1 Baris 3
konstanta

X1
X2
X3 10 : 10 = 1 -60 + (60 x 1) = 0
S1
S2
K

Lalu kita lanjutkan baris per baris. Dimulai dari baris ke 2. Kenapa baris ke 2? Karena angka yang pertama kita eksekusi terletak di baris ke 2. Seluruh angka di baris ke 2 itu kita bagi dengan 10, mengikuti pembagi dari angka yang kita eksekusi pertama.

Baris Baris 2 Baris 1 Baris 3
konstanta

X1 2 : 10 = 2/10
X2 2 : 10 = 2/10
X3 10 : 10 = 1
S1 0 : 10 = 0
S2 1 : 10 = 1/10
K 50 : 10 = 5

Lalu dilanjutkan ke baris ke 1. Mengapa baris ke 1, tidak baris ke 3 dahulu? Sebenarnya tidak masalah yang mana selanjutnya, karena selain baris yang terdapat angka yang akan dieksekusi, baris yang lain tujuannya adalah mengenolkan angka di kolom yang sama dengan angka yang dieksekusi. Ini hanya untuk memudahkan alurnya saja.
Pada baris ke 1, seluruh angka dikurangi 5 (mengikuti angka di baris tersebut, pada kolom yang sejajar dengan angka yang dieksekusi) dikalikan hasil dari pembagian di baris ke 2.

Baris Baris 2 Baris 1 Baris 3
konstanta

X1 6 - (5 x 2/10) = 5
X2 3 - (5 x 2/10) = 2
X3 5 - (5 x 1)= 0
S1 1 - (5 x 0) = 1
S2 0 - (5 x 1/10) = -1/2
K 30 - (5 x 5) = 5

Lalu terakhir adalah baris ke 3. Untuk baris ke 3, seluruh angka ditambah 60 (mengikuti angka di baris tersebut, pada kolom yang sejajar dengan angka yang dieksekusi) dikalikan hasil dari pembagian di baris ke 2.

Baris Baris 2 Baris 1 Baris 3
konstanta

X1 -30 + (60 x 2/10) = -18
X2 -24 + (60 x 2/10) = -12
X3 -60 + (60 x 1) = 0
S1 0 + (60 x 0) = 0
S2 0 + (60 x 1/10) = 6
K 0 + (60 x 5) = 300

Setelah itu, hasilnya kita masukkan ke tabel simpleks perubahan, atau tabel simpleks 2.

X1 X2 X3 S1 S2 K
5 2 0 1 -1/2 5
2/10 2/10 1 0 1/10 5
-18 -12 0 0 6 300

Selesai?
Ternyata belum saudara-saudari :D
Kita lihat pada baris terakhir untuk kolom X (X1,X2, dan X3) ternyata masih ada yang negatif. Syarat selesai adalah pada baris terakhir di kolom X tidak ada lagi yang negatif.
Lalu bagaimana selanjutnya? Ya mulai lagi hitung-hitungannya sampai tidak ada yang negatif. Biasanya jumlah berapa kali hitung-hitungannya adalah tergantung jumlah X-nya. Dalam hal ini X-nya adalah 3 (X1, X2, X3) jadi hitung-hitungannya 3 kali. Kalau 4 ya 4 kali. Kalau 100? Ya 100 kali :D Tapi tidak mutlak, bisa kurang dari itu. Jadi jangan lemas dulu yah :DD

Saya potong jalur yah ke tabel simpleks terakhir saja...yang sebelumnya silakan dihitung sendiri ^_^

X1 X2 X3 S1 S2 K
5/2 1 0 1/2 -1/4 5/2
-3/10 0 1 -1/10 3/20 9/2
12 0 0 6 3 330

Dari hasil tabel simpleks terakhir, yang ada hasilnya adalah kolom X yang baris terakhirnya bernilai nol (0). Dalam hal ini X2 dan X3. Lalu koefisien X tersebut adalah angka dikolom K, namun sejajar dengan baris yang dikolom X-nya bernilai 1.

Jadi hasilnya : X1=0, X2=5/2, X3=9/2, dan Z maksimum adalah 330 (kolom K di baris terakhir).

Bingung? Alhamdulillah. Tandanya masih berpikir ^_^
Tapi maaf kalau bingungnya karena angkanya berantakan...soalnya softwarenya nggak kompatibel. Nanti kalau ada kesempatan dirapihkan deh

No comments: