Linear Programming (Pemrograman Linier) Program Studi Statistika Semester Ganjil 2011/2012 DR. Rahma Fitriani, S.Si., M.Sc
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 furniture yang memaksimumkan keuntungan
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) 0.5 Profit 60 30 Peubah Keputusan?
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) 0.5 Profit($) 60 30
Lakukan iterasi untuk menentukan BFS: BV & NBV yang baru Algoritma Simpleks Mulai Tentukan BFS: BV & NBV Lakukan iterasi untuk menentukan BFS: BV & NBV yang baru BFS optimal? Tdk Ya Selesai
Langkah 1 Algoritma Simpleks Rubah ke bentuk Standar Digunakan slack variabel karena semua kendala ≤ Kendala kayu Kendala finishing Kendala carpentry
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 =
Langkah 1 Algoritma Simpleks Bentuk Tableau z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 Baris 1 8 6 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 tsb, bernilai nol pada variabel lain → spt matriks identitas
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 Baris 0 1 -60 -30 -20 Baris 1 0 8 6 48 Baris 2 4 2 1.5 20 Baris 3 0.5 BV z=0 s1=48 s2=20 s3=8
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 Satu unit penambahan x1, menaikkan z sebesar $ 60
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 Semua koefisien bagi NBV adalah < 0 Ada beberapa kemungkinan menaikkan nilai Z dengan menaikkan nilai peubah keputusan: menambah produksi BFS yang ada belum optimal
Langkah 3 Algoritma Simpleks z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 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
Langkah 4 Algoritma Simpleks Menentukan peubah BV yang mana yang akan digantikan oleh x1 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 Baris 1 0 8 6 48 Baris 2 4 2 1.5 20 Baris 3 0.5 BV z=0 s1=48 s2=20 s3=8 Baris 1 Peubah selainnya tetap = 0 Baris 2 Baris 3
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 Baris 1 0 8 6 48 Baris 2 4 2 1.5 20 Baris 3 0.5 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
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: B1 B2 B3 Peubah di dalam BV harus mempunyai bentuk kanonik
Operasi Baris Elementer Pada Iterasi berikutnya ingin diperoleh Tableau sbb: z X1 x2 x3 s1 s2 s3 rhs Baris 0 Baris 1 1 Baris 2 Baris 3
Operasi Baris Elementer Initial Tableau (Tableau 0): Tableau 0 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 Baris 1 0 8 6 48 Baris 2 4 2 1.5 20 Baris 3 0.5 BV z=0 s1=48 s2=20 s3=8 Dengan ERO ingin diperoleh Tableau 1: baris 3 didahulukan (pivot row) Tableau 1 z x1 x2 x3 s1 s2 s3 rhs Baris 3 1 0.75 0.25 0.5 4
Operasi Baris Elementer Initial Tableau (Tableau 0): Tableau 0 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 Baris 1 0 8 6 48 Baris 2 4 2 1.5 20 Baris 3 0.5 BV z=0 s1=48 s2=20 s3=8 ERO untuk baris 0, memanfaatkan baris 3 pada tableu 1 (pivot row) Tableau 1 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 15 -5 30 240 Baris 3 1 0.75 0.25 0.5 4
Operasi Baris Elementer Initial Tableau (Tableau 0): Tableau 0 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 Baris 1 0 8 6 48 Baris 2 4 2 1.5 20 Baris 3 0.5 BV z=0 s1=48 s2=20 s3=8 ERO untuk baris 1, memanfaatkan baris 3 pada tableu 1 (pivot row) Tableau 1 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 15 5 30 240 Baris 1 -1 1 -4 16 Baris 3 1 0.75 0.25 0.5 4
Operasi Baris Elementer Initial Tableau (Tableau 0): Tableau 0 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 -60 -30 -20 Baris 1 0 8 6 48 Baris 2 4 2 1.5 20 Baris 3 0.5 BV z=0 s1=48 s2=20 s3=8 ERO untuk baris 2, memanfaatkan baris 3 pada tableu 1 (pivot row) Tableau 1 z x1 x2 x3 s1 s2 s3 rhs BV z=240 s1=16 s2=4 x1=4 Baris 0 1 15 -5 30 240 Baris 1 -1 1 -4 16 Baris 2 -1 0,5 1 -2 4 Baris 3 1 0.75 0.25 0.5 4
Tableau hasil iterasi: Tableau 1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 30 240 z=240 Baris 1 -1 -4 16 s1=16 Baris 2 0,5 -2 4 s2=4 Baris 3 0,75 0,25 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?
Langkah 3 Algoritma Simpleks, Iterasi ke-2 Tableau1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 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 ($) BFS yang ada belum optimal. Pilih Entering Variable: Peubah NBV yang meningkatkan Z paling besar, untuk menggantikan salah satu peubah di BV
Langkah 4 Algoritma Simpleks, Iterasi 2 Menentukan peubah BV yang mana yang akan digantikan oleh x2 Dengan melakukan Ratio Test, agar pergantian peubah tetap berada di dalam wilayah feasibel Tableau1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 30 240 z=240 Baris 1 -1 -4 16 s1=16 Baris 2 0,5 -2 4 s2=4 Baris 3 0,75 0,25 x1=4 Baris 1 Pada baris dengan koefisien negatif, tidak perlu dilakukan ratio test
Langkah 4 Algoritma Simpleks, Iterasi 2 Tableau1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 30 240 z=240 Baris 1 -1 -4 16 s1=16 Baris 2 0,5 -2 4 s2=4 Baris 3 0,75 0,25 x1=4 Baris 2 Baris 3 Pemenang ratio test (terkecil): di baris 2 x3 akan menggantikan s2
Langkah 4 Algoritma Simpleks, Iterasi 2 Tableau1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 30 240 z=240 Baris 1 -1 -4 16 s1=16 Baris 2 0,5 -2 4 s2=4 Baris 3 0,75 0,25 x1=4 Kolom pivot Kolom pivot Pada BFS berikutnya x3 adalah peubah NBV yang akan menggantikan s2 salah satu dari BV Dengan ERO – Elementary Row Operation Tableau 2 mempunyai bentuk kanonik baru: Tableau 2 z X1 x2 X3 s1 s2 s3 rhs Baris 0 Baris 1 1 Baris 2 Baris 3
Operasi Baris Elementer Tableau1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 30 240 z=240 Baris 1 -1 -4 16 s1=16 Baris 2 0,5 -2 4 s2=4 Baris 3 0,75 0,25 x1=4 Dengan ERO untuk memperoleh Tableau 2: baris 2 didahulukan (pivot row) Tableau 2 z x1 x2 x3 s1 s2 s3 rhs Baris 2 -2 1 2 -4 8
Operasi Baris Elementer Tableau1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 30 240 z=240 Baris 1 -1 -4 16 s1=16 Baris 2 0,5 -2 4 s2=4 Baris 3 0,75 0,25 x1=4 ERO untuk baris 0, memanfaatkan baris 2 pada tableu 2 (pivot row) Tableau 2 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 5 10 280 Baris 2 -2 1 2 -4 8
Operasi Baris Elementer Tableau1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 30 240 z=240 Baris 1 -1 -4 16 s1=16 Baris 2 0,5 -2 4 s2=4 Baris 3 0,75 0,25 x1=4 ERO untuk baris 1, memanfaatkan baris 2 pada tableu 2 (pivot row) Tableau 2 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 5 10 280 Baris 1 -2 1 2 -8 24 Baris 2 -2 1 2 -4 8
Operasi Baris Elementer Tableau1 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 15 -5 30 240 z=240 Baris 1 -1 -4 16 s1=16 Baris 2 0,5 -2 4 s2=4 Baris 3 0,75 0,25 x1=4 ERO untuk baris 3, memanfaatkan baris 2 pada tableu 2 (pivot row) Tableau 2 z x1 x2 x3 s1 s2 s3 rhs Baris 0 1 5 10 280 Baris 1 -2 1 2 -8 24 Baris 2 -2 1 2 -4 8 Baris 3 1 1.25 -0.5 1.5 2
Tableau Hasil Iterasi: Tableau 2 z x1 x2 x3 s1 s2 s3 rhs BV Baris 0 1 5 10 280 z=280 Baris 1 -2 2 -8 24 s1=24 Baris 2 -4 8 x3=8 Baris 3 1.25 -0.5 1.5 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
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
Langkah-langkah Algoritma Simpleks untuk Masalah Max Rubah LP ke bentuk standar, tuliskan dalam bentuk tableau. Langkah 1 Tentukan BFS (BV dan NBV). BV dapat ditentukan dari elemen tableau yang berbentuk kanonik. Langkah 2 Jika semua koefisien baris 0 >=0, BFS solusi optimal Selainnya, pilih koefisien paling negatif untuk masuk ke dalam BV Langkah 3 Ratio test (terkecil) untuk menentukan peubah BV mana yang harus digantikan (menjadi NBV) Langkah 4
Langkah-langkah Algoritma Simpleks untuk Masalah Max Lakukan ERO untuk membentuk bentuk kanonik baru, BFS baru (Tableau baru) Kembali ke langkah 3 Langkah 4