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:
finishing & carpentry
Bahan baku dan waktu pengerjaan
terbatas
Ingin ditentukan jumlah produksi setiap
Dakota’s Problem dalam Tabel
Sumber daya
Bangku
Meja
Kursi
Ketersediaan
Kayu (m2)
8
6
1
48
Finishing (jam)
4
2
1.5
20
Carpentry (jam)
2
1.5
0.5
8
Profit
60
30
20
Peubah
Keputusan?
kursi
produksi
:#
meja
produksi
:#
bangku
produksi
:#
3 2 1
LP untuk Dakota’s
Problem
Sumber daya
Bangku
X1
Meja
X2
Kursi
X3
Ketersediaan
Kayu (m2)
8
6
1
48
Finishing (jam)
4
2
1.5
20
Carpentry (jam)
2
1.5
0.5
8
Profit($)
60
30
20
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
Digunakan slack
variabel karena
semua kendala
≤
Kendala kayu
Kendala
finishing
Kendala
carpentry
0
,
0
,
0
hour)
(Carpentry
8
5
.
0
5
.
1
2
hour)
(Finishing
20
5
.
1
2
4
(Kayu)
48
6
8
.
.
20
30
60
max
3 2 1 3 2 1 3 2 1 3 2 1 3 2 1
x
x
x
x
x
x
x
x
x
x
x
x
t
s
x
x
x
z
48
6
8
x
1
x
2
x
3
8
x
1
6
x
2
x
3
s
1
48
20
5
.
1
2
4
x
1
x
2
x
3
4
x
1
2
x
2
1
.
5
x
3
s
2
20
8
5
.
0
5
.
1
Langkah 1 Algoritma Simpleks
Bentuk Standar LP
Baris 0
Baris 1
Baris 2
Baris 3
Modifikasi baris 0 menjadi:
Semua peubah di
ruas kiri,
konstanta di ruas
kanan tanda =
0
,
,
,
,
,
8
5
.
0
5
.
1
2
20
5
.
1
2
4
48
6
8
.
.
20
30
60
max
3 2 1 3 2 1 3 3 2 1 2 3 2 1 1 3 2 1 3 2 1
s
s
s
x
x
x
s
x
x
x
s
x
x
x
s
x
x
x
t
s
x
x
x
z
0
20
30
0
6
1
2
3
x
x
x
Langkah 1 Algoritma Simpleks
Bentuk Tableau
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 4
0
2
1.5
0.5
0
0
1
8
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=48
s2=20
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?
Dapat dilihat dari koefisien baris 0.
z
x1
x2
x3
s1
s2
s3
rhs
Baris 0
1
-60
-30
-20
0
0
0
0
Satu unit penambahan x
1,
menaikkan z sebesar $ 60
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
Langkah 3 Algoritma Simpleks
Interpretasi koefisien baris 0
◦
Bagi
NBV
Variabel dengan Koefisien
-c
: satu unit penambahan
variabel tsb menaikkan Z sebesar
c.
Variabel dengan koefisien
+c
: satu unit penambahan
variabel tsb menurunkan Z sebesar
c.
◦
Variabel dengan koefisien 0: BV
z
x1
x2
x3
s1
s2
s3
rhs
Baris 0
1
-60
-30
-20
0
0
0
0
•
Semua koefisien 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
(profit) sebesar 60 ($)
Produksi satu unit x2 (Meja) akan menaikkan Z
(profit) sebesar 30 ($)
Produksi satu unit x3 (Kursi) akan menaikkan Z
(profit) 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
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
Baris 1
Baris 2
Baris 3
Peubah
selainn
ya
tetap =
0
8 , 20 , 48 , 0 : 3 2 1 3 2 1 s s s x x xBFS
3 2 1
,
s
,
s
s
BV
NBV
x
1,
x
2,
x
3
48
8
x
1
s
1
agar
0
6
848 1
1
x
s
20
4
x
1
s
2
agar
0
5
420 1
2
x
s
8
2
x
1
s
3
agar
0
4
2 8 1
3
x
Langkah 4 Algoritma Simpleks
Semua syarat:
Terpenuhi pada: di baris 3
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=48
s2=20
s3=8
Pada
BFS
berikutnya
x1
adalah peubah
NBV
yang akan
menggantikan
s3
salah satu dari
BV
Dengan
ERO
–
Elementary Row Operation
4
,
5
,
6
1 11
x
x
x
4
1
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:
Peubah di dalam
BV
harus
mempunyai bentuk kanonik
B1 B2 B3
s
1,
s
2,
x
1
BV
NBV
s
3,
x
2,
x
3
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
Pada Iterasi berikutnya ingin diperoleh
Tableau sbb:
s
1,
s
2,
x
1
Operasi Baris Elementer
Tableau
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
Tableau
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):
Dengan ERO ingin diperoleh Tableau
1:
: baris 3 didahulukan (pivot
row)
2
)
0
(
3
)
1
(
3
Baris
Operasi Baris Elementer
Tableau
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
Tableau
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)
Baris 0 1 0 15 -5 0 0 30 240
)
1
(
3
*
60
)
0
(
0
)
1
(
0
Baris
Baris
Operasi Baris Elementer
Tableau
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
Tableau
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)
Baris 0 1 0 15 5 0 0 30 240
Baris 1 0 0 0 -1 1 0 -4 16
)
1
(
3
*
8
)
0
(
1
)
1
(
1
Baris
Baris
Operasi Baris Elementer
Tableau
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
Tableau
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)
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
BV z=240 s1=16 s2=4 x1=4
)
1
(
3
*
4
)
0
(
2
)
1
(
2
Baris
Baris
Tableau hasil iterasi: Tableau 1
Tableau
1 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 tableau 1:
Kembali ke langkah 3: Apakah BFS tersebut sudah optimal?
Lihat koefisien di baris 0, apakah masih ada kemungkinan menaikkan
nilai z dengan menambah nilai peubah keputusan?
Peubah dengan Koefisien baris
0 <0?
s
1,
s
2,
x
1
BV
NBV
s
3,
x
2,
x
3
240
,
0
,
4
,
16
,
0
,
4
:
x
1
x
2
x
3
s
1
s
2
s
3
z
BFS
3
Langkah 3 Algoritma Simpleks,
Iterasi ke-2
Tableau
1 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
(profit) sebesar 15 ($)
Produksi satu unit x3 (Kursi) akan menaikkan Z (profit)
sebesar 5 ($)
Pilih
Entering Variable:
Peubah NBV
yang meningkatkan Z paling besar,
untuk menggantikan salah satu
peubah di
BV
BFS yang ada belum optimal.
3
x
s
3,
x
2,
x
3
NBV
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
Tableau
1 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 1
Pada baris dengan koefisien negatif, tidak
perlu dilakukan ratio test
s
1,
s
2,
x
1
BV
0
semua
untuk
0
16
16
1 3 31
3
Langkah 4 Algoritma Simpleks,
Iterasi 2
Tableau
1 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
Baris 3
Pemenang ratio test (terkecil): di baris 2
x3 akan menggantikan s2
8
0
agar
04.5 32
x
s
6
1
0
agar
0.425 31
x
Langkah 4 Algoritma Simpleks,
Iterasi 2
Tableau
1 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
s
1,
x
3,
x
1
BV
s
3,
x
2,
s
2
Operasi Baris Elementer
Dengan ERO untuk memperoleh
Tableau 2:
baris 2 didahulukan
(pivot row)
Tableau
1 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
Tableau 2
z
x1
x2
x3
s1
s2
s3
rhs
Baris 2
0
0
-2
1
0
2
-4
8
5
.
0
)
1
(
2
)
2
(
2
Baris
Operasi Baris Elementer
Tableau1 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
Tableau 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)
Baris 0
1
0
5
0
0
10
10
280
)
2
(
2
*
5
.
0
)
1
(
0
)
2
(
0
Baris
Baris
Operasi Baris Elementer
Tableau1 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
Tableau 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)
Baris 0
1
0
5
0
0
10
10
280
Baris 1
0
0
-2
0
1
2
-8
24
)
2
(
2
*
)
1
(
)
1
(
1
)
2
(
1
Baris
Baris
Operasi Baris Elementer
Tableau1 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
Tableau 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
Baris 3
0
1
1.25
0
0
-0.5
1.5
2
)
2
(
2
*
25
.
0
)
1
(
3
)
2
(
3
Baris
Baris
Tableau Hasil Iterasi: Tableau 2
Tableau
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=2
Kembali ke langkah 3: Apakah BFS tersebut sudah optimal?
Lihat koefisien di baris 0, apakah masih ada kemungkinan
menaikkan nilai z dengan menambah nilai peubah keputusan?
Semua koefisien baris 0 >=0. Tidak mungkin lagi
menaikkan nilai z.
BFS sudah Optimal
s
1,
x
3,
x
1
BV
NBV
s
3,
x
2,
s
2
280
,
0
,
24
,
8
,
0
,
2
:
x
1
x
2
x
3
s
1
s
2
s
3
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
:
x
1
x
2
x
3
s
1
s
2
s
3
z
Langkah-langkah Algoritma
Simpleks untuk Masalah Max
Langkah
1
Rubah LP ke bentuk standar,
tuliskan dalam bentuk tableau.
Langkah
2
Tentukan BFS (BV dan NBV).
BV dapat ditentukan dari elemen
tableau yang berbentuk kanonik.
Langkah
3
Jika semua koefisien baris 0 >=0,
BFS solusi optimal
Selainnya, pilih koefisien paling
negatif untuk masuk ke dalam BV
Langkah
4
Ratio test (terkecil) untuk
Langkah-langkah Algoritma
Simpleks untuk Masalah Max
Langkah
4
Lakukan ERO untuk membentuk
bentuk kanonik baru, BFS baru
(Tableau baru)