METODE SIMPLEKS YANG DIREVISI 1. Bentuk Standar Dalam Matriks
Maksimumkan atau minimumkan: Z = CX
Batasan: (A,I)X = b Contoh: Maksimumkan: Z = 3X1 + 2X2 Batasan: X1 + 2X2≤ 6 2X1 + X2≤ 8 -X1 + X2≤ 1 X2≤ 2 Bentuk standar simpleks:
Maksimumkan: Z = 3X1 + 2X2 + 0X3 – 0X4 + 0X5 + 0X6 Batasan: X1 + 2X2 + X3 = 6
2X1 + X2 + X4 = 8 -X1 + X2 + X5 = 1 X2 + X6 = 2
Bentuk standar matriks:
Maksimumkan:
(
)
⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 6 5 4 3 2 1 0 0 0 0 2 3 X X X X X X Z Batasan: ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − 2 1 8 6 1 0 0 0 1 0 0 1 0 0 1 1 0 0 1 0 1 2 0 0 0 1 2 1 6 5 4 3 2 1 X X X X X X2. Pemecahan Dasar dan Basis
(A,I)X = b memiliki m persamaan dan n variable yang tidak diketahui. Sebuah
lalu memecahkan m persamaan dengan m variable yang tidak diketahui. Secara matematis anggaplah:
( )
=∑
n j J jX P X I A,Dimana Pj adalah vector kolom ke – j dari (A,I). Dari contoh diatas, dimana kita memiliki m = 4 dan n = 6. Ini berarti basis terdiri dari m = 4 vektor dan n – m = (6 – 4 =
2) variable yang berkaitan, dengan vector sisanya ditetapkan sama dengan nol. Dengan menganggap X3 = X4 = X5 = X6 = 0, kita menemukan bahwa vector:
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 0 0 0 1 3 P ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 0 0 1 0 4 P ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 0 1 0 0 5 P ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = 1 0 0 0 6 P
(
)
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 , , , 4 5 6 3 P P P P B3. Table Simpleks Dalam Bentuk Matriks Maksimumkan atau minimumkan: Z = CX
Batasan: (A,I)X = b
Bagi vector X kedalam XI dan XII, dimana XII bersesuaian dengan elemen-elemen dari X yang berkaitan dengan basis awal B = I. Bagi C kedalam CI dan CII untuk bersesuaianan dengan XI dan XII. Jadi bentuk standar dapat ditulis sebagai:
Maksimumkan : Z = CX; menjadi: Z – CIXI – CIIXII = 0 Batasan: (A,I)X = b;
Karena XII bersesuaian dengan elemen-elemen dari X yang berkaitan dengan basis awal B = I, sehingga: AXI + IXII = b ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − − b X X Z I A C C II I II I 0 0 1
Disetiap iterasi, anggaplah XB mewakili variable dasar saat ini dengan B basis yang berkaitan dengannya. Berarti XB mewakili m elemen dari X dengan B mewakili vector
(A,I) yang berkaitan dengan XB. Anggaplah CB adalah elemen C yang berkaitan dengan XB, sehingga:
Z = CBXB; sama dengan Z - CBXB = 0, dan BXB = b ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − b X Z B C B B 0 0 1 sama dengan: ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − − − − b B b B C b B B C X Z B B B 1 1 1 1 0 0 1
Table simpleks yang bersesuaian dengan XB diperoleh dengan mempertimbangkan:
⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎦ ⎤ ⎢ ⎣ ⎡ − − ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − − − − b B B C X X Z I A C C B B C B II I II I B 0 0 1 0 1 0 1 1 1 1 1 ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎣ ⎡ − + − + − − − − − − b B b B C X X Z I B A B I B C C A B C C B II I B II B i 1 1 1 1 1 1 0 1
Ingat: XII bersesuaian dengan elemen-elemen dari X yang berkaitan dengan basis awal B = I, sehingga iterasi simpleks umum dalam bentuk matriks:
Dasar XI XII Pemecahan
Z CBB-1A - CI CBB-1 – CII CBB-1b
XB B-1A B-1 B-1b
4. Langkah-Langkah Metode Simpleks Primal Yang Direvisi.
Langkah 1: Penentuan variable masuk Pj.
Hitung Y = CBB-1 untuk setiap vector non dasar Pj, hitung Zj – Cj = YPj - Cj
Untuk program maksimalisasi (minimalisasi), vector Pj dipilih yang memiliki Zj – Cj paling negative (positif) (tentukan sembarang jika terdapat lebih dari satu yang sama). Jika semua Zj – Cj≥ 0 (≤ = 0), pemecahan optimal telah dicapai dan diketahui dengan
Langkah 2. Penentuan variable keluar Pr. a. Nilai variable dasar saat ini yaitu:
XB = B-1b
b. Koefisien batasan dari variable masuk yaitu: αj = B-1Pj
variable keluar Pr (baik maksimalisasi maupun minimalisasi) harus berkaitan dengan:
( )
⎥ ⎦ ⎤ ⎢ ⎣ ⎡ ≥ =min − , 0 1 j k j k k b B α α θLangkah 3. Penentuan basis berikutnya.
dimana: ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − + − − = j r j m j r j r j j r j α α α α α α α ξ / / 1 / / 2 1 M M
Dari contoh berikut, maka langkah-langkah perhitungan metode simpleks primal yang direvisi adalah sebagai berikut:
Maksimumkan: Z = 3X1 + 2X2 + 0X3 – 0X4 + 0X5 + 0X6 Batasan: X1 + 2X2 + X3 = 6 2X1 + X2 + X4 = 8 -X1 + X2 + X5 = 1 X2 + X6 = 2 Pemecahan Awal: XB = (X3,X4,X5,X6) CB = (0,0,0,0)
(
P P P P)
I B = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 , , , 4 5 6 3 B-1 = IIterasi Pertama:
Langkah 1. Perhitungan Zj – Cj untuk non dasar P1 dan P2
(
)
[
0,0,0,0]
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 , 0 , 0 , 0 B C = Y -1 B = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = Z1 – C1, Z2 – C2 = Y(P1,P2) – (C1,C2)[
]
[ ]
3,2 1 0 1 1 -1 2 2 1 0,0,0,0 C Z , C -Z1 1 2 2 − ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = Z1 – C1, Z2 – C2 = (-3,-2)Karena P1 memiliki nilai paling negative, maka P1 ditetapkan sebagai vector masuk.
Langkah 2. Penentuan vector keluar dengan diketahui bahwa P1 memasuki basis.
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = = = = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = = = = − − 0 1 2 1 0 1 2 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 2 1 8 6 2 1 8 6 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 1 1 P IP P B b Ib b B XB α
Perhitungan untuk langkah 1 dan 2 dapat diringkaskan sebagai berikut:
Dasar X1 X2 X3 X4 X5 X6 Pemecahan Z -3 -2 0 0 0 0 0 X3 1 6 X4 2 8 X5 -1 1 X6 0 2
Jadi: θ = min (6/1, 8/2, --, --) = (6, 4, --, --) = 4, yang bersesuaian dengan X4, dengan demikian P4 adalah vector keluar dengan nilai α12 =2, sehingga:
Langkah 3. Penentuan inverse basis berikutnya.
(
)
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡− = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − + − = 0 2 / 1 2 / 1 2 / 1 2 / 0 2 / 1 2 / 1 2 / 1 ξMaka basis berikutnya:
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = = = = − − 1 0 0 0 0 1 2 / 1 0 0 0 2 / 1 0 0 0 2 / 1 1 1 0 0 0 0 1 2 / 1 0 0 0 2 / 1 0 0 0 2 / 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 E EI EB Bnext
Basis baru ini berkaitan dengan vector dasar: XB = (X3,X1,X5,X6) CB = (0,3,0,0)
(
)
1 6 5 1 3 1 0 0 0 0 1 2 / 1 0 0 0 2 / 1 0 0 0 2 / 1 1 , , , = − ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = = P P P P Bnext B Iterasi Kedua:Langkah 1. Perhitungan Zj – Cj untuk non dasar P2 dan P4
(
)
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = 1 0 0 0 0 1 2 / 1 0 0 0 2 / 1 0 0 0 2 / 1 1 0 , 0 , 3 , 0 B C = Y -1 B -1 BB C = Y = {(0*1 + 3*0 + 0*0 + 0*0), (3*-1/2 + 3*1/2 + 3*1/2 + 3*0), (0*0 + 0*0 + 0*1 + 0*0), (0*0 + 0*0 + 0*0 + 0*1)} -1 BB C = Y = (0, 3/2, 0, 0) Z2 – C2, Z4 – C4 = Y(P2,P4) – (C2,C4)[
]
[ ]
2,0 0 1 0 1 1 1 0 2 0 0, 3/2, 0, C Z , C -Z2 2 4 4 − ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = Z2 – C2, Z4 – C4 = {(0*2 + 3/2*1 + 0*1 + 0*1), (0*0 + 3/2*1 + 0*0 + 0*0)} – (2, 0) Z – C , Z – C = (3/2, 3/2) – (2, 0) = (-1/2, 3/2)Karena P2 memiliki nilai paling negative, maka P2 merupakan vector masuk.
Langkah 2. Penentuan vector keluar dengan diketahui bahwa P2 memasuki basis.
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + + + + + + + + + + + − + = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + + + + + + + + + + + − + = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − = = − − 1 2 / 3 2 / 1 2 / 3 ) 1 * 1 ( ) 1 * 0 ( ) 1 * 0 ( ) 2 * 0 ( ) 1 * 0 ( ) 1 * 1 ( ) 1 * 2 / 1 ( ) 2 * 0 ( ) 1 * 0 ( ) 1 * 0 ( ) 1 * 2 / 1 ( ) 2 * 0 ( ) 1 * 0 ( ) 1 * 0 ( ) 1 * 2 / 1 ( ) 2 * 1 ( 1 1 1 2 1 0 0 0 0 1 2 / 1 0 0 0 2 / 1 0 0 0 2 / 1 1 2 5 4 2 ) 2 * 1 ( ) 1 * 0 ( ) 8 * 0 ( ) 6 * 0 ( ) 2 * 0 ( ) 1 * 1 ( ) 8 * 2 / 1 ( ) 6 * 0 ( ) 2 * 0 ( ) 1 * 0 ( ) 8 * 2 / 1 ( ) 6 * 0 ( ) 2 * 0 ( ) 1 * 0 ( ) 8 * 2 / 1 ( ) 6 * 1 ( 2 1 8 6 1 0 0 0 0 1 2 / 1 0 0 0 2 / 1 0 0 0 2 / 1 1 2 1 2 1 P B b B XB α
Perhitungan untuk langkah 1 dan 2 dapat diringkaskan sebagai berikut:
Dasar X1 X2 X3 X4 X5 X6 Pemecahan Z 0 -1/2 0 3/2 0 0 X3 3/2 2 X1 1/2 4 X5 3/2 5 X6 1 2
Jadi: θ = min (2/(3/2), 4/(1/2), 5/(3/2), 2/1) = (4/3, 8, 10/3, 2) = 4/3, yang bersesuaian dengan X3, dengan demikian P3 adalah vector keluar dengan nilai α12 =4/3, sehingga:
Langkah 3. Penentuan inverse basis berikutnya.
( )
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − + = 3 / 2 1 3 / 1 3 / 2 ) 2 / 3 /( 1 2 / 3 / 2 / 3 ) 2 / 3 /( 2 / 1 ) 2 / 3 /( 1 ξMaka basis berikutnya:
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − = − 1 0 0 0 0 1 2 / 1 0 0 0 2 / 1 0 0 0 2 / 1 1 1 0 0 3 / 2 0 1 0 1 0 0 1 3 / 1 0 0 0 3 / 2 1 next B
= (2/3*1+0+0+0), (2/3*-1/2+0+0+0), (0), (0) = (-1/3*1+0+0+0), (-1/3*-1/2+1*1/2+0+0), (0), (0) = (-1*1+0+0+0), (-1*-1/2+0+1*1/2+0), (0+0+1+0), (0) = (-2/3*1+0+0+0), (-2/3*-1/2+0+0+0), (0), (1) Sehingga: −1 next B = 2/3 -1/3 0 0 -1/3 2/3 0 0 -1 1 1 0 -2/3 1/3 0 1
Basis baru ini berkaitan dengan vector dasar: XB = X2, X1, X5, X6
CB = (2, 3, 0, 0) Iterasi Ketiga:
Langkah 1. Perhitungan Zj – Cj untuk non dasar P3 dan P4
(
)
⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − = 1 0 3 / 1 3 / 2 0 1 1 1 0 0 3 / 2 3 / 1 0 0 3 / 1 3 / 2 0 , 0 , 3 , 2 B C = Y -1 B -1 BB C = Y = {(2*2/3 + 3*-1/3 + 0 + 0), (2*-1/3 + 3*2/3 + 0 + 0), (0), (0)} -1 BB C = Y = (1/3, 4/3, 0, 0) Z3 – C3, Z4 – C4 = Y(P3,P4) – (C3,C4)[
]
[ ]
0,0 0 0 0 0 1 0 0 1 0 0, , 3 / 4 1/3, C Z , C -Z3 3 4 4 − ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = Z3 – C3, Z4 – C4 = {(1/3*1 + 0 + 0 + 0), (0 + 4/3*1 + 0 + 0)} – (0, 0) Z3 – C3, Z4 – C4 = (1/3, 4/3) – (0, 0) = (1/3, 4/3)Pemecahan Optimal: ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ + + + − + + + − + + + − + + − + = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − − − − = = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ − 3 / 2 3 3 / 10 3 / 4 ) 2 * 1 0 8 * 3 / 1 6 * 3 / 2 ( ) 0 1 * 1 8 * 1 6 * 1 ( ) 0 0 8 * 3 / 2 6 * 3 / 1 ( ) 0 0 8 * 3 / 1 6 * 3 / 2 ( 2 1 8 6 1 0 3 / 1 3 / 2 0 1 1 1 0 0 3 / 2 3 / 1 0 0 3 / 1 3 / 2 1 6 5 1 2 b B X X X X
[
]
3 2 12 3 / 38 0 0 3 / 10 * 3 3 / 4 * 2 3 / 2 3 3 / 10 3 / 4 ) 0 , 0 , 3 , 2 ( = + + + = = ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ = =CBXB Z Kesimpulan: X1 = 10/3 X2 = 4/3 Z = 38/3 REFERENSI1. Taha, Hamdy A., Riset Operasi – Jilid 1, Jakarta: Binarupa Aksara, 1996