Linear Programming
(Pemrograman Linier)
Program Studi Statistika
Semester Ganjil 2011/2012
Contoh untuk Algoritma Simpleks
Dakota’s Problem
Perusahaan furniture Dakota
memproduksi bangku, meja dan kursi.
Untuk setiap jenis furniture dibutuhkan
bahan baku kayu dan 2 jenis waktu
pengerjaan:
fnishing & carpentry
Bahan baku dan waktu pengerjaan
terbatas
Ingin ditentukan jumlah produksi setiap
Dakota’s Problem dalam Tabel
Sumber daya Bangku Meja Kursi
Ketersedia an
Kayu (m2) 8 6 1 48 Finishing
(jam) 4 2 1.5 20 Carpentry
(jam) 2 1.5 0.5 8 Proft 60 30 20
Peubah
Keputusan?
kursi
produksi
:#
meja
produksi
:#
bangku
produksi
:#
3 2 1
LP untuk Dakota’s
Problem
Sumber daya BangkuX1 MejaX2 KursiX3 Ketersediaan Kayu (m2) 8 6 1 48
Finishing
(jam) 4 2 1.5 20 Carpentry
Algoritma Simpleks
Tentukan BFS:
BV & NBV
Mula i
BFS optimal?
Selesa i
Lakukan iterasi untuk
menentukan BFS: BV & NBV
yang baru
Ya
Langkah 1 Algoritma Simpleks
Rubah ke bentuk Standar
0
Digunakan slack variabel karena semua kendala ≤
48
Kendala fnishing
Langkah 1 Algoritma Simpleks
Bentuk Standar LP
0
Baris 0 Baris 1 Baris 2 Baris 3
Modifkasi baris 0 menjadi:
0
Langkah 1 Algoritma Simpleks
Bentuk Tableau
0
Langkah 2 Algoritma Simpleks
z x1 x2 x3 s1 s2 s3 rhs
Baris
0 1 -60 -30 -20 0 0 0 0
Baris
1 0 8 6 1 1 0 0 48
Baris
2 0 4 2 1.5 0 1 0 20
Baris
3 0 2 1.5 0.5 0 0 1 8
Tentukan BFS (BV dan NBV).
BV dapat ditentukan dari elemen tableau yang
berbentuk kanonik.
BV z=0 s1=4
8 s2=2
0 s3=8
s
1,
s
2,
s
3
BV
NBV
x
1,
x
2,
x
3
8
,
20
,
48
,
0
Langkah 3 Algoritma Simpleks
Apakah BFS tersebut sudah optimal?
8
,
20
,
48
,
0
:
x
1
x
2
x
3
s
1
s
2
s
3
BFS
0
30
0
20
0
0
60
20
30
60
1 2 3
x
x
x
z
Dapat dilihat dari koefsien baris 0.
z x1 x2 x3 s1 s2 s3 rhs
Baris
0 1 -60 -30 -20 0 0 0 0
Langkah 3 Algoritma Simpleks
Interpretasi koefsien baris 0
◦
Bagi
NBV
Variabel dengan Koefsien -c: satu unit penambahan
variabel tsb menaikkan Z sebesar c.
Variabel dengan koefsien +c: satu unit penambahan
variabel tsb menurunkan Z sebesar c.
◦
Variabel dengan koefsien 0: BV
z x1 x2 x3 s1 s2 s3 rhs
Baris
0 1 -60 -30 -20 0 0 0 0
• Semua koefsien bagi NBV adalah < 0
• Ada beberapa kemungkinan menaikkan nilai Z
dengan menaikkan nilai peubah keputusan: menambah produksi
Langkah 3 Algoritma Simpleks
z x1 x2 x3 s1 s2 s3 rhs
Baris
0 1 -60 -30 -20 0 0 0 0
Produksi satu unit x1 (Bangku) akan menaikkan Z (proft) sebesar 60 ($)
Produksi satu unit x2 (Meja) akan menaikkan Z (proft) sebesar 30 ($)
Produksi satu unit x3 (Kursi) akan menaikkan Z (proft) sebesar 20 ($)
Pilih Entering Variable: Peubah NBV yang meningkatkan Z paling besar, untuk menggantikan salah satu
peubah di BV
1
Langkah 4 Algoritma Simpleks
Menentukan peubah
BV
yang mana yang akan
digantikan oleh
x
1
Dengan melakukan
Ratio Test
, agar pergantian
peubah tetap berada di dalam wilayah feasibel
z x1 x2 x3 s1 s2 s3 rhs
Peubah selainn ya
Langkah 4 Algoritma Simpleks
Semua syarat:
6
,
5
,
4
1 1
1
x
x
x
Terpenuhi pada: di baris 3
4
1
x
Ratio Test: agar pergantian peubah tetap berada di dalam
wilayah feasibel, dipilih peubah dengan nilai ratio test
terkecil
z x1 x2 x3 s1 s2 s3 rhs
Baris
0 1 -60 -30 -20 0 0 0 0
Baris
1 0 8 6 1 1 0 0 48
Baris
2 0 4 2 1.5 0 1 0 20
Baris
3 0 2 1.5 0.5 0 0 1 8
BV z=0 s1=4
8 s2=2
0 s3=8
Pada BFS berikutnya x1 adalah peubah NBV yang akan
menggantikan s3 salah satu dari BV
Langkah 4 Algoritma Simpleks
Elementary Row Operation
(Operasi
baris elementer): operasi antar baris
untuk menentukan bentuk kanonik
yang baru (
BV
&
NBV
yang baru)
Di dalam bentuk kanonik baru:
s
1,
s
2,
x
1
BV
NBV
s
3,
x
2,
x
3
Peubah di dalam
BV
harus
mempunyai bentuk kanonik
B1 B2 B3
0 0 1
0 1 0
Operasi Baris Elementer
z X1 x2 x3 s1 s2 s3 rhs
Baris
0 0 0 0
Baris
1 0 1 0
Baris
2 0 0 1
Baris
3 1 0 0
s
1,
s
2,
x
1
BV
NBV
s
3,
x
2,
x
3
Operasi Baris Elementer
Tablea
u 0 z x1 x2 x3 s1 s2 s3 rhs
Baris 0 1 -60 -30 -20 0 0 0 0 Baris 1 0 8 6 1 1 0 0 48 Baris 2 0 4 2 1.5 0 1 0 20 Baris 3 0 2 1.5 0.5 0 0 1 8
BV z=0 s1=48 s2=20 s3=8
Tablea
u 1 z x1 x2 x3 s1 s2 s3 rhs
Baris 3 0 1 0.75 0.25 0 0 0.5 4
2
) 0 ( 3 )
1 (
3 Baris
Baris
Initial Tableau (Tableau 0):
Operasi Baris Elementer
Tablea
u 0 z x1 x2 x3 s1 s2 s3 rhs
Baris 0 1 -60 -30 -20 0 0 0 0 Baris 1 0 8 6 1 1 0 0 48 Baris 2 0 4 2 1.5 0 1 0 20 Baris 3 0 2 1.5 0.5 0 0 1 8
BV z=0 s1=48 s2=20 s3=8
Tablea
u 1 z x1 x2 x3 s1 s2 s3 rhs
Baris 3 0 1 0.75 0.25 0 0 0.5 4
Initial Tableau (Tableau 0):
ERO untuk baris 0, memanfaatkan baris 3 pada tableu 1 (pivot row) Baris0(1) Baris0(0)60*Baris3(1)
Operasi Baris Elementer
Tablea
u 0 z x1 x2 x3 s1 s2 s3 rhs
Baris 0 1 -60 -30 -20 0 0 0 0 Baris 1 0 8 6 1 1 0 0 48 Baris 2 0 4 2 1.5 0 1 0 20 Baris 3 0 2 1.5 0.5 0 0 1 8
BV z=0 s1=48 s2=20 s3=8
Tablea
u 1 z x1 x2 x3 s1 s2 s3 rhs
Baris 3 0 1 0.75 0.25 0 0 0.5 4
Initial Tableau (Tableau 0):
ERO untuk baris 1, memanfaatkan baris 3 pada tableu 1 (pivot row) Baris1(1) Baris1(0)8*Baris3(1)
Operasi Baris Elementer
Tablea
u 0 z x1 x2 x3 s1 s2 s3 rhs
Baris 0 1 -60 -30 -20 0 0 0 0 Baris 1 0 8 6 1 1 0 0 48 Baris 2 0 4 2 1.5 0 1 0 20 Baris 3 0 2 1.5 0.5 0 0 1 8
BV z=0 s1=48 s2=20 s3=8
Tablea
u 1 z x1 x2 x3 s1 s2 s3 rhs
Baris 3 0 1 0.75 0.25 0 0 0.5 4
Initial Tableau (Tableau 0):
ERO untuk baris 2, memanfaatkan baris 3 pada tableu 1 (pivot row) Baris2(1) Baris2(0)4*Baris3(1)
Baris 0 1 0 15 -5 0 0 30 240 Baris 1 0 0 0 -1 1 0 -4 16
Baris 2 0 0 -1 0,5 0 1 -2 4
Tableau hasil iterasi: Tableau 1
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV
Baris
0 1 0 15 -5 0 0 30 240 z=240
Baris
1 0 0 0 -1 1 0 -4 16 s1=16
Baris
2 0 0 -1 0,5 0 1 -2 4 s2=4
Baris
3 0 1
BV
0,75
s
10,25,
s
2,
x
1
NBV
0
0
s
3,
x
20,5,
x
3
4 x1=4Pada tableau 1:
240 ,
0 ,
4 ,
16 ,
0 ,
4
: x1 x2 x3 s1 s2 s3 z BFS
Kembali ke langkah 3: Apakah BFS tersebut sudah optimal?
Lihat koefsien di baris 0, apakah masih ada kemungkinan menaikkan
nilai z dengan menambah nilai peubah keputusan?
Peubah dengan Koefsien baris
0 <0? 3
Langkah 3 Algoritma Simpleks,
Iterasi ke-2
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV
Baris
0 1 0 15 -5 0 0 30 240 z=240
Produksi satu unit x2 (Meja) akan menurunkan Z (proft) sebesar 15 ($)
Produksi satu unit x3 (Kursi) akan menaikkan Z (proft) sebesar 5 ($)
Pilih Entering Variable: Peubah NBV yang meningkatkan Z paling besar, untuk menggantikan salah satu
peubah di BV
3
x
s
3,
x
2,
x
3
NBV
s
1,
s
2,
x
1
BV
Langkah 4 Algoritma Simpleks,
Iterasi 2
Menentukan peubah
BV
yang mana yang akan
digantikan oleh
x
2
Dengan melakukan
Ratio Test
, agar pergantian
peubah tetap berada di dalam wilayah feasibel
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV Baris
0 1 0 15 -5 0 0 30 240 z=240
Baris
1 0 0 0 -1 1 0 -4 16 s1=16
Baris
2 0 0 -1 0,5 0 1 -2 4 s2=4
Baris
3 0 1 0,75 0,25 0 0 0,5 4 x1=4
s
1,
s
2,
x
1
BV
Baris 1
x
3
s
1
16
s
1
x
3
16
0
untuk
semua
x
3
0
Pada baris dengan koefsien negatif, tidakLangkah 4 Algoritma Simpleks,
Iterasi 2
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV Baris
0 1 0 15 -5 0 0 30 240 z=240
Baris
1 0 0 0 -1 1 0 -4 16 s1=16
Baris
2 0 0 -1 0,5 0 1 -2 4 s2=4
Baris
3 0 1 0,75 0,25 0 0 0,5 4 x1=4
Baris 2
agar
s
2
0
x
3
04.5
8
Baris 3agar
x
1
0
x
3
0.425
1
6
Pemenang ratio test (terkecil): di baris 2
Langkah 4 Algoritma Simpleks,
Iterasi 2
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV Baris
0 1 0 15 -5 0 0 30 240 z=240
Baris
1 0 0 0 -1 1 0 -4 16 s1=16
Baris
2 0 0 -1 0,5 0 1 -2 4 s2=4
Baris
3 0 1 0,75 0,25 0 0 0,5 4 x1=4
Pada BFS berikutnya x3 adalah peubah NBV yang akan
menggantikan s2 salah satu dari BV
Dengan ERO – Elementary Row Operation
Kolom pivot Kolo
m pivot
Tableau 2 mempunyai bentuk kanonik baru:
Tableau
2 z X1 x2 X3 s1 s2 s3 rhs
Baris 0 0 0 0
Baris 1 0 0 1
Baris 2 0 1 0
Baris 3 1 0 0
s1,x3,x1
BV Operasi Baris Elementer
5 . 0
) 1 ( 2 )
2 (
2 Baris
Baris
Dengan ERO untuk memperoleh Tableau 2: baris 2 didahulukan (pivot row)
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV Baris
0 1 0 15 -5 0 0 30 240 z=240
Baris
1 0 0 0 -1 1 0 -4 16 s1=16
Baris
2 0 0 -1 0,5 0 1 -2 4 s2=4
Baris
3 0 1 0,75 0,25 0 0 0,5 4 x1=4
Tablea
u 2 z x1 x2 x3 s1 s2 s3 rhs
Operasi Baris Elementer
) 2 ( 2 *
5 . 0 ) 1 ( 0 )
2 (
0 Baris Baris
Baris
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV Baris
0 1 0 15 -5 0 0 30 240 z=240
Baris
1 0 0 0 -1 1 0 -4 16 s1=16
Baris
2 0 0 -1 0,5 0 1 -2 4 s2=4
Baris
3 0 1 0,75 0,25 0 0 0,5 4 x1=4
Tablea
u 2 z x1 x2 x3 s1 s2 s3 rhs
Baris 2 0 0 -2 1 0 2 -4 8
ERO untuk baris 0, memanfaatkan baris 2 pada tableu 2 (pivot row)
Operasi Baris Elementer
) 2 ( 2 *
) 1 ( ) 1 ( 1 )
2 (
1 Baris Baris
Baris
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV Baris
0 1 0 15 -5 0 0 30 240 z=240
Baris
1 0 0 0 -1 1 0 -4 16 s1=16
Baris
2 0 0 -1 0,5 0 1 -2 4 s2=4
Baris
3 0 1 0,75 0,25 0 0 0,5 4 x1=4
Tablea
u 2 z x1 x2 x3 s1 s2 s3 rhs
Baris 2 0 0 -2 1 0 2 -4 8
ERO untuk baris 1, memanfaatkan baris 2 pada tableu 2 (pivot row)
Operasi Baris Elementer
) 2 ( 2 *
25 . 0 ) 1 ( 3 )
2 (
3 Baris Baris
Baris
Table
au1 z x1 x2 x3 s1 s2 s3 rhs BV Baris
0 1 0 15 -5 0 0 30 240 z=240
Baris
1 0 0 0 -1 1 0 -4 16 s1=16
Baris
2 0 0 -1 0,5 0 1 -2 4 s2=4
Baris
3 0 1 0,75 0,25 0 0 0,5 4 x1=4
Tablea
u 2 z x1 x2 x3 s1 s2 s3 rhs
Baris 2 0 0 -2 1 0 2 -4 8
ERO untuk baris 3, memanfaatkan baris 2 pada tableu 2 (pivot row)
Baris 0 1 0 5 0 0 10 10 280 Baris 1 0 0 -2 0 1 2 -8 24
Tableau Hasil Iterasi: Tableau 2
Tablea
u 2 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 0 5 0 0 10 10 280 z=280 Baris 1 0 0 -2 0 1 2 -8 24 s1=24 Baris 2 0 0 -2 1 0 2 -4 8 x3=8 Baris 3 0 1 1.25
0
0 -0.5 1.5 2 x1=21 3 1
,
x
,
x
s
BV
NBV
s
3,
x
2,
s
2
280 ,
0 ,
24 ,
8 ,
0 ,
2
: x1 x2 x3 s1 s2 s3 z BFS
Kembali ke langkah 3: Apakah BFS tersebut sudah optimal? Lihat koefsien di baris 0, apakah masih ada kemungkinan
menaikkan nilai z dengan menambah nilai peubah keputusan?
Semua koefsien baris 0 >=0. Tidak mungkin lagi
menaikkan nilai z.
Solusi Optimal Dakota’s Problem
Agar keuntungan maksimum, dan
produksi yang sesuai dengan kendala
(bahan baku dan jam pengerjaan), harus
diproduksi sejumlah 2 buah bangku (x1), 8
buah kursi (x3), tanpa memproduksi meja
kursi
produksi
:#
meja
produksi
:#
bangku
produksi
:#
3 2 1
x
x
x
280 ,
0 ,
24 ,
8 ,
0 ,
2
Langkah-langkah Algoritma
Simpleks untuk Masalah Max
Langkah 1
Rubah LP ke bentuk standar,
tuliskan dalam bentuk tableau.
Langkah2
Tentukan BFS (BV dan NBV).
BV dapat ditentukan dari elemen
tableau yang berbentuk kanonik.
Langkah3
Jika semua koefsien baris 0 >=0,
BFS solusi optimal
Selainnya, pilih koefsien paling
negatif untuk masuk ke dalam BV
Langkah4
Ratio test (terkecil) untuk
Langkah-langkah Algoritma
Simpleks untuk Masalah Max
Langkah 4