Linear Programming ( Pemrograman Linier)

32
Linear Programming (Pemrograman Linier) Program Studi Statistika Semester Ganjil 2011/2012 DR. Rahma Fitriani, S.Si., M.Sc

description

Linear Programming ( Pemrograman Linier). Program Studi Statistika Semester Ganjil 2011/2012. Algoritma Simpleks untuk Minimization Problem. Metode 1:. Rubah fungsi obyektif : min z → max (-z). Selesaikan dengan algoritma simpleks. Metode 2:. - PowerPoint PPT Presentation

Transcript of Linear Programming ( Pemrograman Linier)

Page 1: Linear Programming ( Pemrograman  Linier)

DR. Rahma Fitriani, S.Si., M.Sc

Linear Programming(Pemrograman Linier)Program Studi StatistikaSemester Ganjil 2011/2012

Page 2: Linear Programming ( Pemrograman  Linier)

Algoritma Simpleks untuk Minimization Problem

Metode 1: Rubah fungsi obyektif: min z → max (-z)Selesaikan dengan algoritma simpleks

Metode 2:Dengan menggunakan semua langkah pada algoritma simpleks, kecuali pada langkah 3, kebalikan dari kasus maxJika semua koefisien baris 0 <=0, BFS solusi optimalSelainnya, pilih koefisien paling positif untuk masuk ke dalam BV

Page 3: Linear Programming ( Pemrograman  Linier)

Contoh Metode 1

0,

6

4 ..

32min

21

21

21

21

xx

xx

xxts

xxz

Langkah 1: Bentuk standar dan merubah fs obyektif, Tableau 0 0,,,

6

4 ..

32- max

2121

221

121

21

ssxx

sxx

sxxts

xxz

Tableau 0 -z x1 x2 s1 s2 rhsBaris 0 1 2 -3 0 0 0Baris 1 0 1 1 1 0 4Baris 2 0 1 -1 0 1 6

Page 4: Linear Programming ( Pemrograman  Linier)

Contoh Metode 1Langkah 2: Menentukan BFS, BV, NBV

Tableau 0 -z x1 x2 s1 s2 rhsBaris 0 1 2 -3 0 0 0Baris 1 0 1 1 1 0 4Baris 2 0 1 -1 0 1 6

BV-z=0s1=4s2=6

21, ssBV 21, xxNBV 0,6,4,0: 2121 zssxxBFS

Langkah 3: BFS belum optimal

Masih ada koefisien baris 0 yang negatif: x2Menambah nilai x2 (menjadikan BV) akan menaikkan nilai zLakukan ratio test untuk menentukan peubah yang digantikan oleh x2

Page 5: Linear Programming ( Pemrograman  Linier)

Contoh Metode 1

Tableau 0 -z x1 x2 s1 s2 rhs BVBaris 0 1 2 -3 0 0 0 -z=0Baris 1 0 1 1 1 0 4 s1=4Baris 2 0 1 -1 0 1 6 s2=6

Ratio test

4tidak adaBaris

pivot

Kolom Pivot

Pilih Entering Variable: pemenang ratio testPeubah NBV yang meningkatkan Z paling besar: x2, untuk menggantikan salah satu peubah di BV: s1

Langkah 4: Lakukan ERO untuk memperoleh bentuk kanonik yang baru

22 , sxBV 11, sxNBV

Page 6: Linear Programming ( Pemrograman  Linier)

Contoh Metode 1 (ERO)

1

)0(1)1(1Baris

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

Tableau 0 -z x1 x2 s1 s2 rhs BVBaris 0 1 2 -3 0 0 0 -z=0Baris 1 0 1 1 1 0 4 s1=4Baris 2 0 1 -1 0 1 6 s2=6

Ratio test

4tidak ada

Tableau 1 -z x1 x2 s1 s2 rhs

Baris 1 0 1 1 1 0 4

Page 7: Linear Programming ( Pemrograman  Linier)

Contoh Metode 1 (ERO)

)1(1*)3()0(0)1(0 BarisBarisBaris ERO untuk baris 0 dengan memanfaatkan baris 1 (pivot row)

Tableau 0 -z x1 x2 s1 s2 rhs BVBaris 0 1 2 -3 0 0 0 -z=0Baris 1 0 1 1 1 0 4 s1=4Baris 2 0 1 -1 0 1 6 s2=6

Ratio test

4tidak ada

Tableau 1 -z x1 x2 s1 s2 rhs

Baris 1 0 1 1 1 0 4Baris 0 1 5 0 3 0 12

Page 8: Linear Programming ( Pemrograman  Linier)

Contoh Metode 1 (ERO)

)1(1*)1()0(2)1(2 BarisBarisBaris ERO untuk baris 2 dengan memanfaatkan baris 1 (pivot row)

Tableau 0 -z x1 x2 s1 s2 rhs BVBaris 0 1 2 -3 0 0 0 -z=0Baris 1 0 1 1 1 0 4 s1=4Baris 2 0 1 -1 0 1 6 s2=6

Ratio test

4tidak ada

Tableau 1 -z x1 x2 s1 s2 rhs

Baris 1 0 1 1 1 0 4Baris 0 1 5 0 3 0 12

Baris 2 0 2 0 1 1 10

BV-z=12x2=4

s2=10

22 , sxBV 11, xsNBV

12,10,0,4,0: 2121 zssxxBFS

Page 9: Linear Programming ( Pemrograman  Linier)

Contoh Metode 1, Tableau 1

Apakah BFS optimal?

Tableau 1 -z x1 x2 s1 s2 rhs BVBaris 0 1 5 0 3 0 12 -z=12Baris 1 0 1 1 1 0 4 x2=4Baris 2 0 2 0 1 1 10 s2=10

Tidak ada lagi koefisien <0 di baris nol. Tidak mungkin lagi meningkatkan nilai z. BFS sudah optimal.

Dengan nilai peubah x1=0 dan x2=4, diperoleh nilai z minimum sebesar -12

Page 10: Linear Programming ( Pemrograman  Linier)

Contoh Metode 2

0,

6

4 ..

32min

21

21

21

21

xx

xx

xxts

xxz

Langkah 1: Bentuk standar dan Tableau 0

0,,,

6

4 ..

32 in

2121

221

121

21

ssxx

sxx

sxxts

xxzm

Tableau 0 Z x1 x2 s1 s2 rhsBaris 0 1 -2 3 0 0 0Baris 1 0 1 1 1 0 4Baris 2 0 1 -1 0 1 6

Page 11: Linear Programming ( Pemrograman  Linier)

Contoh Metode 2Langkah 2: Menentukan BFS, BV, NBV

Tableau 0 Z x1 x2 s1 s2 rhsBaris 0 1 -2 3 0 0 0Baris 1 0 1 1 1 0 4Baris 2 0 1 -1 0 1 6

BVz=0

s1=4s2=6

21, ssBV 21, xxNBV 0,6,4,0: 2121 zssxxBFS

Langkah 3: BFS belum optimal. Syarat optimal jika semua koef baris nol <=0

Masih ada koefisien baris 0 yang positif: x2

Menambah nilai x2 (menjadikan BV) akan menurunkan nilai zLakukan ratio test untuk menentukan peubah yang digantikan oleh x2

Page 12: Linear Programming ( Pemrograman  Linier)

Contoh Metode 2

Tableau 0 z x1 x2 s1 s2 rhs BVBaris 0 1 -2 3 0 0 0 z=0Baris 1 0 1 1 1 0 4 s1=4Baris 2 0 1 -1 0 1 6 s2=6

Ratio test

4tidak adaBaris

pivot

Kolom Pivot

Pilih Entering Variable: pemenang ratio testPeubah NBV yang menurunkan Z paling besar: x2, untuk menggantikan salah satu peubah di BV: s1

Langkah 4: Lakukan ERO untuk memperoleh bentuk kanonik yang baru

22 , sxBV 11, sxNBV

Page 13: Linear Programming ( Pemrograman  Linier)

Contoh Metode 2 (ERO)

1

)0(1)1(1Baris

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

Tableau 0 z x1 x2 s1 s2 rhs BVBaris 0 1 -2 3 0 0 0 z=0Baris 1 0 1 1 1 0 4 s1=4Baris 2 0 1 -1 0 1 6 s2=6

Ratio test

4tidak ada

Tableau 1 z x1 x2 s1 s2 rhs

Baris 1 0 1 1 1 0 4

Page 14: Linear Programming ( Pemrograman  Linier)

Contoh Metode 2 (ERO)

)1(1*3)0(0)1(0 BarisBarisBaris ERO untuk baris 0 dengan memanfaatkan baris 1 (pivot row)

Tableau 0 z x1 x2 s1 s2 rhs BVBaris 0 1 -2 3 0 0 0 z=0Baris 1 0 1 1 1 0 4 s1=4Baris 2 0 1 -1 0 1 6 s2=6

Ratio test

4tidak ada

Tableau 1 -z x1 x2 s1 s2 rhs

Baris 1 0 1 1 1 0 4Baris 0 1 -5 0 -3 0 -12

Page 15: Linear Programming ( Pemrograman  Linier)

Contoh Metode 2 (ERO)

)1(1*)1()0(2)1(2 BarisBarisBaris ERO untuk baris 2 dengan memanfaatkan baris 1 (pivot row)

Tableau 0 z x1 x2 s1 s2 rhs BVBaris 0 1 -2 3 0 0 0 z=0Baris 1 0 1 1 1 0 4 s1=4Baris 2 0 1 -1 0 1 6 s2=6

Ratio test

4tidak ada

Tableau 1 z x1 x2 s1 s2 rhs

Baris 1 0 1 1 1 0 4Baris 0 1 -5 0 -3 0 -12

Baris 2 0 2 0 1 1 10

BVz=-12x2=4

s2=10

22 , sxBV 11, xsNBV

12,10,0,4,0: 2121 zssxxBFS

Page 16: Linear Programming ( Pemrograman  Linier)

Contoh Metode 2, Tableau 1

Apakah BFS optimal?

Tableau 1 z x1 x2 s1 s2 rhs BVBaris 0 1 -5 0 -3 0 -12 z=-12Baris 1 0 1 1 1 0 4 x2=4Baris 2 0 2 0 1 1 10 s2=10

Tidak ada lagi koef >0 di baris nol.

Tidak mungkin lagi menurunkan nilai z. BFS sudah optimal.

Dengan nilai peubah x1=0 dan x2=4, diperoleh nilai z minimum sebesar -12

Page 17: Linear Programming ( Pemrograman  Linier)

Metode BIG M Digunakan pada kasus LP dengan

kendala >= dan =Pada kendala-kendala tersebut

diperlukan peubah dummy Prinsip metode BIG M:

◦Memberikan penalti sebesar-besarnya bagi peubah dummy

Page 18: Linear Programming ( Pemrograman  Linier)

Contoh Kasus dengan Metode Big MBevco memproduksi soft drink rasa

jeruk ORANJ dari campuran soda rasa jeruk dan jus jeruk per botol berisi 10 oz.

Setiap bahan tsb mengandung gula dan vitamin C, di mana produk ORANJ harus memenuhi kriteria batas maksimum kandungan gula dan batas minimum vitamin C.

Page 19: Linear Programming ( Pemrograman  Linier)

Contoh Kasus dengan Metode Big MDibutuhkan biaya tertentu untuk

membeli setiap bahan.

Ingin diputuskan komposisi bahan di dalam 10 oz ORANJ yang memenuhi kriteria kandungan gula dan vitamin C, dengan biaya minimum.

Page 20: Linear Programming ( Pemrograman  Linier)

Tabel Komposisi Bahan dan Kriteria, Biaya Produksi ORANJ

# oz Soda/botol ORANJ

#oz Jus/Botol ORANJ

Kriteria KandunganGula (ons) 0,5 0,25 Paling banyak 4 onsVit C (mg) 1 3 Paling sedikit 20 mgPer Botol 1 1 10 oz

Biaya (cent) 2 3

Apa peubah keputusannya?

ORANJ Jus/botol oz#:

ORANJ Soda/botol oz#:

2

1

x

x

1x 2x

21 32min xxz

Fungsi Obyektif?

Page 21: Linear Programming ( Pemrograman  Linier)

Tabel Komposisi Bahan dan Kriteria, Biaya Produksi ORANJ

# oz Soda/botol ORANJ

#oz Jus/Botol ORANJ

Kriteria KandunganGula (ons) 0,5 0,25 Paling banyak 4 onsVit C (mg) 1 3 Paling sedikit 20 mgPer Botol 1 1 10 oz

Biaya (cent) 2 3

Apa kendala untuk kandungan Gula?

1x 2x

203 21 xxApa kendala untuk kandungan Vitamin C?

425.05.0 21 xx

Apa kendala untuk volume per botol ORANJ?

1021 xx

Page 22: Linear Programming ( Pemrograman  Linier)

LP bagi BEVCO untuk Produksi ORANJ

0,

ORANJ) botolper (Volume 10

C) Vit. (kandungan 203

gula) (kandungan 425.05.0 ..

32min

21

21

21

21

21

xx

xx

xx

xxts

xxz

Bentuk standar?

03232min 2121 xxzxxz

20 - 3 2221 aexx

4 25.05.0 121 sxx

10 321 axx

0,,,,, 322121 aaesxx

Page 23: Linear Programming ( Pemrograman  Linier)

LP dalam TableauPenambahan peubah dummy a2, a3, untuk menciptakan bentuk kanonik dari tableau awal 032min 21 xxz

20 - 3 2221 aexx

4 25.05.0 121 sxx

10 321 axx

0,,,,, 322121 aaesxx

s.t.

Tableau 0 z x1 x2 s1 e2 a2 a3 rhsBaris 0 1 -2 -3 0 0 0 0 0Baris 1 0 0,5 0,25 1 0 0 0 4Baris 2 0 1 3 0 -1 1 0 20Baris 3 0 1 1 0 0 0 1 10

BVz=0

s1=4a2=20a3=10

1020,4,,0: 321221 aasexxBFS

221321 ,,,,, exxNBVaasBV

Page 24: Linear Programming ( Pemrograman  Linier)

LP dalam Tableau dengan BIG M

Peubah dummy a2, a3, tidak mempunyai interpretasi/arti di dalam model

Di dalam solusi optimal a2, a3, tidak boleh sebagai BV

Pada fs obyektif, ditambahkan (dikurangkan) a2, a3 dengan penalti/bobot sebesar-besarnya (angka besar M) a2, a3 agar tidak terpilih sebagai solusi

3221 32min MaMaxxz

Penalti M pada kasus min (maks)

032min 3221 MaMaxxz

Page 25: Linear Programming ( Pemrograman  Linier)

LP dalam Tableau dengan BIG M

Untuk memperoleh a2, a3 sebagai BV di tableau 0, koefisien –M pada baris nol (untuk a2, a3)harus dibuat jadi nol dengan ERO

032min 3221 MaMaxxz

Tableau 0 z x1 x2 s1 e2 a2 a3 rhsBaris 0 1 -2 -3 0 0 -M -M 0Baris 1 0 0,5 0,25 1 0 0 0 4Baris 2 0 1 3 0 -1 1 0 20Baris 3 0 1 1 0 0 0 1 10

3*2*0'0 BarisMBarisMBarisBaris

Tableau 0 z x1 x2 s1 e2 a2 a3 rhs

Baris 0’ 1 -2+2M -3+4M 0 -M 0 0 30MBaris 1 0 0,5 0,25 1 0 0 0 4Baris 2 0 1 3 0 -1 1 0 20Baris 3 0 1 1 0 0 0 1 10

BVz=30Ms1=4

a2=20a3=10

Page 26: Linear Programming ( Pemrograman  Linier)

LP dalam Tableau dengan BIG M

Tableau 0 z x1 x2 s1 e2 a2 a3 rhsBaris 0 1 -2+2M -3+4M 0 -M 0 0 30MBaris 1 0 0,5 0,25 1 0 0 0 4Baris 2 0 1 3 0 -1 1 0 20Baris 3 0 1 1 0 0 0 1 10

BVz=30Ms1=4

a2=20a3=10

Ratio test

4/0.25=1620/3 *

10/1=10

M: bilangan besar positif.

221321 ,,,,, exxNBVaasBV

MM

M

MM

2243

0

,043,022

BFS belum optimal karena masih ada koefisien > 0 di baris nol (kasus min).

x2 dapat menurunkan z paling besar (koef paling +), dapat dimasukkan dalam BV.

x2-3+4M0,25

31

Kolom pivot

x2 menggantikan salah satu BV pemenang ratio test.

Baris 2 0 1 3 0 -1 1 0 20

Baris pivot

2a

Page 27: Linear Programming ( Pemrograman  Linier)

ERO untuk Tableau 1Tableau 0 z x1 x2 s1 e2 a2 a3 rhs

Baris 0 1 -2+2M -3+4M 0 -M 0 0 30MBaris 1 0 0,5 0,25 1 0 0 0 4Baris 2 0 1 3 0 -1 1 0 20Baris 3 0 1 1 0 0 0 1 10

3

0212

BarisBaris

Pada baris pivot terlebih dahulu:

Tableau 1 z x1 x2 s1 e2 a2 a3 rhs

Baris 2 0 1/3 1 0 -1/3 1/3 0 20/3

Page 28: Linear Programming ( Pemrograman  Linier)

ERO untuk Tableau 1Tableau 0 z x1 x2 s1 e2 a2 a3 rhs

Baris 0 1 -2+2M -3+4M 0 -M 0 0 30MBaris 1 0 0,5 0,25 1 0 0 0 4Baris 2 0 1 3 0 -1 1 0 20Baris 3 0 1 1 0 0 0 1 10

Tableau 1 z x1 x2 s1 e2 a2 a3 rhs

12*)43()0(010 BarisMBarisBaris ERO baris 0, memanfaatkan Baris 2 (1):

Baris 0 1 (2M-3)/3 0 0 (M-3)/3 (3-4M)/3 0 (60+10M)/3

Baris 2 0 1/3 1 0 -1/3 1/3 0 20/3

Page 29: Linear Programming ( Pemrograman  Linier)

ERO untuk Tableau 1Tableau 0 z x1 x2 s1 e2 a2 a3 rhs

Baris 0 1 -2+2M -3+4M 0 -M 0 0 30MBaris 1 0 0,5 0,25 1 0 0 0 4Baris 2 0 1 3 0 -1 1 0 20Baris 3 0 1 1 0 0 0 1 10

Tableau 1 z x1 x2 s1 e2 a2 a3 rhs

12*25.0)0(111 BarisBarisBaris ERO baris 1, memanfaatkan Baris 2 (1):

Baris 0 1 (2M-3)/3 0 0 (M-3)/3 (3-4M)/3 0 (60+10M)/3

Baris 2 0 1/3 1 0 -1/3 1/3 0 20/3

Baris 1 1 5/12 0 1 1/12 -1/12 0 7/3

Page 30: Linear Programming ( Pemrograman  Linier)

ERO untuk Tableau 1Tableau 0 z x1 x2 s1 e2 a2 a3 rhs

Baris 0 1 -2+2M -3+4M 0 -M 0 0 30MBaris 1 0 0,5 0,25 1 0 0 0 4Baris 2 0 1 3 0 -1 1 0 20Baris 3 0 1 1 0 0 0 1 10

Tableau 1 z x1 x2 s1 e2 a2 a3 rhs

12*1)0(313 BarisBarisBaris ERO baris 3, memanfaatkan Baris 2 (1):

Baris 0 1 (2M-3)/3 0 0 (M-3)/3 (3-4M)/3 0 (60+10M)/3

Baris 2 0 1/3 1 0 -1/3 1/3 0 20/3

Baris 1 1 5/12 0 1 1/12 -1/12 0 7/3

Baris 3 0 2/3 0 0 1/3 -1/3 1 10/3

Page 31: Linear Programming ( Pemrograman  Linier)

Tableau 1 untuk Bevco LPTableau 1 z x1 x2 s1 e2 a2 a3 rhs

Baris 0 1 (2M-3)/3 0 0 (M-3)/3 (3-4M)/3 0 (60+10M)/3Baris 1 0 5/12 0 1 1/12 -1/12 0 7/3Baris 2 0 1/3 1 0 -1/3 1/3 0 20/3Baris 3 0 2/3 0 0 1/3 -1/3 1 10/3

BVz=(60+10M)/3

S1=7/3x2=20/3a3=10/3

Tableau 1 belum optimal karena masih ada koefisien + di baris nol: x1 dan e2Dilakukan kembali ratio test dan ERO sehingga diperoleh tableau 2 berikut:

Tableau 2 z x1 x2 s1 e2 a2 a3 rhsBaris 0 1 0 0 0 -1/2 (1-2M)/2 (3-2M)/2 25Baris 1 0 0 0 1 -1/8 1/8 -5/8 ¼Baris 2 0 0 1 0 -1/2 1/2 -1/2 5Baris 3 0 1 0 0 1/2 -1/2 3/2 5

BVz=25

S1=1/4x2=5x1=5

Page 32: Linear Programming ( Pemrograman  Linier)

Solusi Optimal untuk LP Bevco

Tableau 2 z x1 x2 s1 e2 a2 a3 rhsBaris 0 1 0 0 0 -1/2 (1-2M)/2 (3-2M)/2 25Baris 1 0 0 0 1 -1/8 1/8 -5/8 ¼Baris 2 0 0 1 0 -1/2 1/2 -1/2 5Baris 3 0 1 0 0 1/2 -1/2 3/2 5

BVz=25

s1=1/4x2=5x1=5

232121 ,,,,, eaaNBVxxsBV

25,0,55,1/4,: 222121 zeaaxxsBFS

Untuk mencapai biaya produksi minimum sebesar 25 cent / botol ORANJ, harus digunakan campuran 5 oz soda jeruk dan 5 oz jus jeruk.