Contoh untuk Algoritma Simpleks Dakota’s Problem

  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 furniture yang memaksimumkan keuntungan

Dakota’s Problem dalam Tabel

  0.5

  1 x x x

  2

  3

  :# kursi produksi :# meja produksi :# bangku produksi

  Peubah Keputusan?

  30 20  

  60

  8 Proft

  Sumber daya Bangku Meja Kursi Ketersedia an Kayu (m2)

  8

  2

  20 Carpentry (jam)

  1.5

  2

  4

  48 Finishing (jam)

  1

  6

  1.5

LP untuk Dakota’s Problem

  

3

  4 (Kayu)

  48

  6 . 8 .

  20

  30 60 max

  3

  2

  1

  2

  1

  1

  3

  2

  1

  3

  

2

  1      

        x x x x x x x x x t s x x x z

  2

  Sumber daya Bangku

  X1 Meja

  1.5

  

X2

Kursi

  X3 Ketersedia an Kayu (m2)

  8

  

6

  1

  48 Finishing (jam)

  4

  

2

  20 Carpentry (jam)

  2 (Finishing hour)

  2

  

1.5

  0.5

  8 Proft($)

  60

  

30

20   (Carpentry hour)

  8 5 . 5 .

  1

  20 5 . Algoritma Simpleks Mula i

  Tentukan BFS: BV & NBV

  Lakukan iterasi untuk Td

  BFS menentukan k optimal? BFS: BV & NBV yang baru

  Ya Selesa i Langkah 1 Algoritma Simpleks 

Rubah ke bentuk Standar

  8 5 . 5 .

  3

  2

  1    x x x

  Kendala fnishing

  20 5 .

  1

  2

  4

  2

  3

  2

  1     s x x x

  1

  2

  2

  3

  2

  1    x x x

  Kendala carpentry

  8 5 . 5 .

  1

  2

  3

  3

  2

  1     s x x x

  4

  , , (Carpentry hour) 8 5 . 5 .

  1

  48

  2 (Finishing hour)

  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

  Digunakan slack variabel karena semua kendala ≤

  6

  20 5 .

  8

  

3

  2

  1    x x x

  Kendala kayu

  48

  6

  8

  1

  3

  2

  1     s x x x

  1

  

Langkah 1 Algoritma Simpleks

Bentuk Standar LP

  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

  1

  3

  

2

  1

  3

  2

  

1

    

  Baris 0 Baris 1 Baris 2 Baris 3

  

2

   Modifkasi baris 0 menjadi:

  20

  30

  6

  3

  2

  1     x x x z

  Semua peubah di

  1

  3

  2 20 5 .

  3

  1

  2

  4

  48

  6 . 8 .

  20

  30 60 max

  2

  

, , , , ,

8 5 . 5 .

  1

  3

  2

  1

  3

  3

  2

  1

  2

  

Langkah 1 Algoritma Simpleks

max z

60 x 30 x 20 x    

  1

  2

  3 

  Bentuk Tableau s . t . 8 x 6 x x s

  48    

  1

  2

  3

  1 4 x 2 x 1 . 5 x s

  20    

  1

  2

  3

  2 2 x 1 . 5 x . 5 x s

  8    

  1

  2

  3

  3 x , x , x , s , s , s

  

  1

  2

  3

  1

  2

  3

    z x1 x2 x3 s1 s2 s3 rhs Baris 1 -60 -30 -20 Baris

  1

  8

  6

  1

  1

  48 Baris

  2 4 2 1.5

  1

  20 Baris

  3 2 1.5 0.5

  1

  8 Bentuk Kanonik: bernilai 1 pada variabel

  

Langkah 2 Algoritma Simpleks

Tentukan BFS (BV dan NBV).

BV dapat ditentukan dari elemen tableau yang berbentuk kanonik

    z x1 x2 x3 s1 s2 s3 rhs BV Baris z=0 1 -60 -30 -20 s1=4

  Baris 8 1  0

  8

  6

  1

  1 48 s2=2 Baris 2  0

  4

  2

  1.5

  1

  20 s3=8 Baris

  s , s , s x , x , x BV NBV

  1

  2

  3 

  1

  2

3   

  3  0

  2

  1.5

  0.5

  1

  8 BFS : x x x , s

  48 , s 20 , s

  8

     

  1

  2

  3

  1

  2

  3

  

Langkah 3 Algoritma Simpleks

  60

  Satu unit penambahan x

    z x1 x2 x3 s1 s2 s3 rhs Baris 1 -60 -30 -20

   Dapat dilihat dari koefsien baris 0.

  1        x x x z

  2

  3

  60

  30

  20

  30

  

Apakah BFS tersebut sudah optimal?

8 , 20 ,

  20

  BFS s s s x x x      

  1

     

  2

  3

  1

  2

  3

  : 48 ,

  1 , menaikkan z sebesar $ 60 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 1 -60 -30 -20

  • Semua koefsien bagi NBV adalah < 0
  • Ada beberapa kemungkinan menaikkan nilai Z dengan menaikkan nilai peubah keputusan:

Langkah 3 Algoritma Simpleks

    z x1 x2 x3 s1 s2 s3 rhs Baris 1 -60 -30 -20

  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 x

  Langkah 4 Algoritma Simpleks 

  48

  3

  2

  1 , , x x x

  NBV

  48

  8

  1

  1   s x

  Baris 1 6 agar

  8

  1

  1 , , s s s

  1     x s

  20

  4

  2

  1   s x

  Baris 2 5 agar

  4

  20

  1

  2     x s

  BV   

  2

  Menentukan peubah BV yang mana yang akan digantikan oleh x1 

  1

  Dengan melakukan Ratio Test, agar pergantian peubah tetap berada di dalam wilayah feasibel

    z x1 x2 x3 s1 s2 s3 rhs Baris 1 -60 -30 -20 Baris 1  0

  8

  6

  1

  1

  48 Baris 2  0

  4

  2

  1.5

  20 Baris 3  0

  3

  2

  1.5

  0.5

  1

  8 BV z=0 s1=4

  8 s2=2 s3=8

  8 , 20 ,

  48 , : 3 2 1 3 2 1

       

  s s s BFS x x x  

  Peubah selainn

  

Langkah 4 Algoritma Simpleks

  Semua syarat: x 6 , x 5 , x

  4   

  1

  1

  1 

  Terpenuhi pada: di baris 3 x

  4 

  1 

  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 BV Baris z=0 1 -60 -30 -20 s1=4

  Baris 8 1  0

  8

  6

  1

  1 48 s2=2 Baris

  

  2  0

  4

  2

  1.5

  1

  20 s3=8

  Pada BFS berikutnya x1 adalah peubah NBV yang akan 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 , x , x s , s , x NBV

  BV

  3

  2

  3   

  1

  2 1 

  1

  1

  

Operasi Baris Elementer

s , x , x s , s , x

  NBV BV  

  3

  2 3  

  1

  2 1  Pada Iterasi berikutnya ingin diperoleh Tableau sbb:

    z

X1 x2 x3 s1 s2 s3 rhs

  Baris Baris

  1

  1 Baris

  2

  1 Baris

  3

  1

  

Operasi Baris Elementer

Tablea u 0 

Initial Tableau (Tableau 0):

  8

  0.5

  Dengan ERO ingin diperoleh Tableau 1: baris 3 didahulukan (pivot row)

  

  Baris

  3 Baris

  3 ) 1 (

  2 ) (

    Tablea u 1 z x1 x2 x3 s1 s2 s3 rhs

  8 BV z=0 s1=48 s2=20 s3=8

  1

  1.5

  6

  z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 Baris 1  0

  20 Baris 3  0

  1

  1.5

  2

  4

  48 Baris 2  0

  1

  1

  2 Operasi Baris Elementer Tablea u 0 

  z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 Baris 1  0

  1.5

  1 15 -5 30 240

  Baris 0

  ) 1 ( ( 60 ) ) 3 *

  Initial Tableau (Tableau 0):

    Tablea u 1 z x1 x2 x3 s1 s2 s3 rhs

  8 BV z=0 s1=48 s2=20 s3=8

  1

  0.5

  2

  8

  20 Baris 3  0

  1

  1.5

  2

  4

  48 Baris 2  0

  1

  1

  6

ERO untuk baris 0, memanfaatkan baris 3 pada tableu 1 (pivot row)

Baris 1 ( Baris Baris  

  Operasi Baris Elementer Initial Tableau (Tableau 0):

  Tablea

  BV

  u 0 

  z x1 x2 x3 s1 s2 s3 rhs z=0 Baris 0 1 -60 -30 -20 s1=48

  Baris 1  0

  8

  6

  1

  1

  48 s2=20 Baris 2  0

  4

  2

  1.5

  1

  20 s3=8 Baris 3  0

  2

  1.5

  0.5

  1

  8 ERO untuk baris 1, memanfaatkan baris 3 pada tableu 1

  (pivot row) Baris 1 ( 1 * ) Baris 1 ( )

  8 Baris 3 ( 1 )  

  Tablea   z x1 x2 x3 s1 s2 s3 rhs u 1

  Baris 0

  1

  15

  5 30 240 Baris 1

  • 1 1 -4

  16

  1

  1.5

  Operasi Baris Elementer Tablea u 0 

  0.5

  1.5

  2

  20 Baris 3  0

  1

  2

  4

  48 Baris 2  0

  1

  1

  6

  8

  z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 Baris 1  0

  8 BV z=0 s1=48 s2=20 s3=8

ERO untuk baris 2, memanfaatkan baris 3 pada tableu 1 (pivot row)

Baris 2 Baris Baris  

  Baris 3

  1

  0.75

  0.25

  0.5

  4 Initial Tableau (Tableau 0):

  ) 1 (

( 4 )

3 *

  2 ) 1 (

  Baris 0

  1 15 -5 30 240 Baris 1

  16 Baris 2 -1 0,5 1 -2

  4 BV z=240 s1=16 s2=4 x1=4

    Tablea u 1 z x1 x2 x3 s1 s2 s3 rhs

  • 1 1 -4
Tableau hasil iterasi: Tableau 1 Table au1   z x1 x2 x3 s1 s2 s3 rhs BV Baris

  1 15 -5 30 240 z=240

  Baris

  1

  • 1 1 -4

  16 s1=16

  Baris 2 -1 0,5

  1 -2 4 s2=4

  Baris Pada tableau 1:

  3

  1 0,75 0,25 0,5 4 x1=4

  s , s , x s , x , x BV NBV  

  1

  2 1  

  3

  2 3  BFS : x

  4 , x x , s 16 , s 4 , s , z 240       

  1

  2

  3

  1

  2

  3 

  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?

  Langkah 3 Algoritma Simpleks, Iterasi ke-2 Table au1   z x1 x2 x3 s1 s2 s3 rhs BV Baris

  1 15 -5 30 240 z=240

  s , s , x s , x , x BV

  NBV  

  1

  2 1  

  3

  2 3 

  Produksi satu unit x2 (Meja) akan menurunkan Z (proft) sebesar 15 ($)

  Produksi satu unit x3 (Kursi) akan menaikkan Z (proft) sebesar 5 ($)

   BFS yang ada belum optimal.

Pilih Entering Variable: Peubah NBV yang meningkatkan Z paling besar

  x

  3 untuk menggantikan salah satu

  

Langkah 4 Algoritma Simpleks,

Iterasi 2 

  Menentukan peubah BV yang mana yang akan digantikan oleh x2 s , s , x BV

  

  

1

  2 1  

  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

  1 15 -5 30 240 z=240

  Baris

  1

  • 1 1 -4

  16 s1=16

  Baris 2 -1 0,5

  1 -2 4 s2=4

  Baris Baris 1

  3

  1 x 0,75 s

  16 0,25 s x 16 0,5 untuk

  4 semua x1=4 x

         

  3

  1

  

1

  3

  3 Pada baris dengan koefsien negatif, tidak Langkah 4 Algoritma Simpleks, Iterasi 2 Table

au1   z x1 x2 x3 s1 s2 s3 rhs BV

Baris

  1 15 -5 30 240 z=240

  Baris

  1

  • 1 1 -4

  16 s1=16

  Baris 2 -1 0,5

  1 -2 4 s2=4

  Baris

  4

  3

  1 0,75 0,25 0,5 4 x1=4

  Baris 2 agar s x

  8    

  2

  3 .

  5

  4 Baris 3 agar x x

  1

  6    

  1

  3 .

  25 

  Pemenang ratio test (terkecil): di baris 2  x3 akan menggantikan s2 Langkah 4 Algoritma Simpleks, Iterasi 2 Table au1   z x1 x2 x3 s1 s2 s3 rhs BV Baris

  1 15 -5 30 240 z=240

  Baris Kolo

  1

  • 1 1 -4

  16 s1=16

  m Baris pivot

  2 -1 0,5

  1 -2 4 s2=4

  Baris Kolom

  3

  1 0,75 0,25 0,5 4 x1=4

  

pivot

  Pada BFS berikutnya x3 adalah peubah NBV yang akan menggantikan s2 salah satu dari BV s , x , x BV

  1

  3

  1  

   Dengan EROElementary Row Operation s , x , s NBV

  

  3

  2 2 

  Tableau 2 mempunyai bentuk kanonik baru:

   Tableau 2 z X1 x2 X3 s1 s2 s3 rhs

  Baris 0 Baris 1

  1

  

Operasi Baris Elementer

Table

au1   z x1 x2 x3 s1 s2 s3 rhs BV

Baris

  1 15 -5 30 240 z=240

  Baris

  1

  • 1 1 -4

  16 s1=16

  Baris 2 -1 0,5

  1 -2 4 s2=4

  Baris

  Dengan ERO untuk memperoleh

  Baris

  2 ( 1 )

  3

  1 0,75 0,25 0,5 4 x1=4

  Baris

  2 ( 2 ) 

  Tableau 2: baris 2 didahulukan .

  5

  (pivot row) Tablea

u 2 z x1 x2 x3 s1 s2 s3 rhs

  Baris 2 -2

  1 2 -4

  8

  

Operasi Baris Elementer

Table

au1   z x1 x2 x3 s1 s2 s3 rhs BV

Baris

  1 15 -5 30 240 z=240

  Baris

  1

  • 1 1 -4

  16 s1=16

  Baris 2 -1 0,5

  1 -2 4 s2=4

  

ERO untuk baris 0, memanfaatkan baris 2 pada tableu 2

Baris (pivot row)

  3

  1 0,75 0,25 0,5 4 x1=4

  Baris (

  2 ) Baris ( 1 ) .

  5 Baris * 2 ( 2 )  

  Tablea

u 2 z x1 x2 x3 s1 s2 s3 rhs

  Baris 0

  1

  5

  10 10 280 Baris 2 -2

1

2 -4

  8

  

Operasi Baris Elementer

Table

au1   z x1 x2 x3 s1 s2 s3 rhs BV

Baris

  1 15 -5 30 240 z=240

  Baris

  1

  • 1 1 -4

  16 s1=16

  Baris 2 -1 0,5

  1 -2 4 s2=4

  

ERO untuk baris 1, memanfaatkan baris 2 pada tableu 2

Baris (pivot row)

  3

  1 0,75 0,25 0,5 4 x1=4

  Baris

  1 ( 2 ) Baris 1 ( 1 ) ( 1 ) Baris 2 * ( 2 )   

  Tablea

u 2 z x1 x2 x3 s1 s2 s3 rhs

  Baris 0

  1

  5

  10 10 280 Baris 1 -2 1 2 -8

  24 Baris 2 -2

  

1

2 -4

  8

Operasi Baris Elementer

  1 15 -5 30 240 z=240

  1

  Baris

  Table

au1   z x1 x2 x3 s1 s2 s3 rhs BV

Baris

  • 1 1 -4

  Baris 3 Baris Baris  

  8 ERO untuk baris 3, memanfaatkan baris 2 pada tableu 2 (pivot row)

  2

  1.5

  1 1.25 -0.5

  24 Baris 3

  10 10 280 Baris 1 -2 1 2 -8

  5

  1

  Baris 0

  

1

2 -4

  1 ( 3 ) 2 (

  Baris 2 -2

  Tablea

u 2 z x1 x2 x3 s1 s2 s3 rhs

  ) 2 ( ) 25 . 2 *

  3

  Baris

  1 -2 4 s2=4

  Baris 2 -1 0,5

  16 s1=16

  1 0,75 0,25 0,5 4 x1=4

Tableau Hasil Iterasi: Tableau 2

  Tablea

u 2 z x1 x2 x3 s1 s2 s3 rhs BV

z=28 Baris 0

  1

  5

  10 10 280 s1=2 Baris 1 -2

  1 2 -8

  24

  4 Baris 2 -2

  1 2 -4 8 x3=8 Baris 3 1

1.25 -0.5

  1.5 2 x1=2 s , x , x s , x , s

  BV NBV  

  1

  3 1  

  3

  2 2  BFS : x

  2 , x , x 8 , s 24 , s s , z 280       

  1

  2

  3

  1

  2

  3 

  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

  Solusi Optimal Dakota’s Problem x :# produksi bangku

  1 x :# produksi meja

  2 x :# produksi kursi

  2 , x , x 8 , s 24 , s s , z 280       

  1

  2

  3

  1

  2

  3 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 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 koefsien baris 0 >=0,

  BFS solusi optimal Selainnya, pilih koefsien paling negatif untuk masuk ke dalam BV

  Langkah

  4 Ratio test (terkecil) untuk

  menentukan peubah BV mana yang Langkah-langkah Algoritma Simpleks untuk Masalah Max Lakukan ERO untuk membentuk

  Langkah

  4

  bentuk kanonik baru, BFS baru (Tableau baru) Kembali ke langkah 3