Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehSiska Tan Telah diubah "7 tahun yang lalu
1
ALGORITMA SIMPLEX Adalah prosedure aljabar untuk mencari solusi optimal sebuah model linear programming, LP
2
Beberapa Pengertian Konversi Model Ke Bentuk Standar
Bentuk asal: (Model max) max z = 4x1 + 3x2 s.t. x1 + x2 ≤ 40 2x1 + x2 ≤ 60 x1, x2 ≥ 0 Bentuk standar: max z = 4x1 + 3x2 s.t. x1 + x2 + s = 40 2x1 + x s2 = 60 x1, x2, s1, s2 ≥ 0 Secara umum: Merubah bentuk pertidaksamaan menjadi bentuk persamaan. Tambahkan variabel slack si ke kendala ke i yang bertanda < dan tambahkan kendala si ≥ 0.
3
Konversi Model Ke Bentuk Standar
Contoh model min: min z = 50x1 + 20x2 + 30x3 + 80x4 s.t. 400x x x x4 ≥ 500 3x x ≥ 6 2x x x x4 ≥ 10 2x x x x4 ≥ 8 x1, x2, x3, x4 ≥ 0 Untuk mengkonversi pertidaksamaan kendala ke i yang bertanda ≥ menjadi bentuk persamaan, tambahkan variabel excess atau surplus ei dan tambahkan kendala ei > 0
4
Bentuk Standar Hasil Konversi:
min z = 50 x1 + 20x2 + 30x x4 s.t. 400x x x x4 – e1 = 500 3x x2 - e2 = 6 2x x x x4 - e3 = 10 2x x x x4 - e4 = 8 xi, ei > 0 (i = 1,2,3,4)
5
Jika model memiliki tanda ≤ dan ≥, gunakan cara yang sama
Jika model memiliki tanda ≤ dan ≥, gunakan cara yang sama. Perhatikan contoh berikut: Bukan bentuk standar Bentuk standar max z = 20x1 + 15x2 s.t. x s = 100 x s2 = 100 50x1 + 35x s3 = 6000 20x1 +15x e4 = 2000 x1, x2, s1, s2, s3, e4 > 0 max z = 20x1 + 15x2 s.t. x ≤ 100 x2 ≤ 100 50x1 + 35x2 ≤ 6000 20x1 + 15x2 ≥ 2000 x1, x2 > 0
6
Simplex Algorithm max (atau min) z = c1x1 + c2x2 + … +cnxn
Misal sebuah model LP dengan m kendala dan n variabel telah dikonversi ke dalam bentuk standar, sebagai berikut: max (atau min) z = c1x1 + c2x2 + … +cnxn s.t. a11x1 + a12x2 + … + a1nxn = b1 a21x1 + a22x2 + … + a2nxn = b2 am1x1 + am2x2 + … + amnxn = bm xi ≥ 0 ( i = 1, 2, …, n)
7
Simplex Algorithm … Jika didefinisikan:
Maka fungsi kendala dapat dituliskan sebagai Ax = b dengan jumlah fungsi kendala m dan jumlah variabel n, dimana n > m. Untuk mendapatkan basic solution terhadap Ax = b dilakukan dengan cara menetapkan n - m variabel = 0 dan menghitung nilai ke m variabel yang lainnya.
8
Simplex Algorithm … n – m variabel yang bernilai nol disebut nonbasic variables, atau NBV. Dan n – (n – m) = m variabel lain disebut basic variables, atau BV dengan nilai yang memenuhi Ax = b. Setiap pilihan NBV akan memberikan BV yang berbeda, perhatikan contoh di sebelah kanan: x1 + x = 3 - x2 + x3 = -1 Jumlah NBV = 3 – 2 = 1. Jika NBV = {x3}, maka BV = {x1, x2}. Nilai BV dapat diperoleh dengan men-set x3 = 0. Kemudian didapat x1 = 2, x2 = 1. Jadi x1 = 2, x2 = 1, dan x3 = 0 adalah basic solution. x1 + x = 3 - x2 + 0 = -1
9
Simplex Algorithm … Jika NBV = {x1} dan BV = {x2, x3}, maka basic solution menjadi x1 = 0, x2 = 3, dan x3 = 2. Jika NBV = {x2} dan BV = {x1, x3}, maka basic solution menjadi x1 = 3, x2 = 0, dan x3 = -1. Terkadang sejumlah m variabel tidak menghasilkan basic solution. Perhatikan contoh di sebelah kanan: Jika NBV = {x3} dan BV = {x1, x2}, maka model menjadi: x1 + 2x2 + x3 = 1 2x1 + 4x2 + x3 = 3 x1 + 2x2 = 1 2x1 + 4x2 = 3 Karena model tidak memiliki solusi, maka tidak ada basic solution yang dihasilkan dari BV = {x1, x2}.
10
Simplex Algorithm… Suatu basic solution yang semua variabelnya bernilai nonnegative disebut basic feasible solution (bfs). Untuk contoh pada slide terdahulu x1 = 2, x2 = 1, x3 = 0 dan x1 = 0, x2 = 3, x3 = 2 adalah basic feasible solutions, tetapi basic solution x1 = 3, x2 = 0, x3 = -1 bukan bfs karena x3 < 0.
11
BFS dan Extreme Points Basic Variables Nonbasic Basic Feasible
Solution Extreme Point x1, x2 s1, s2 s1 = s2 = 0, x1 = x2 = 20 E x1, s1 x2, s2 x2 = s2 = 0, x1 = 30, s1 = 10 C x1, s2 x2, s1 x2 = s1 = 0, x1 = 40, s2 = - 20 s2 < 0 x1 = s2 = 0, s1 = - 20 x2 = 60 s1 < 0 x1 = s1 = 0, x2 = 40, s2 = 20 B x1 = x2 = 0, s1 = 40, s2 = 60 F
12
Algoritma Simplex Model Max
Algoritma umum untuk LP model max. problem: Step 1 Tentukan bfs. Bfs ini kemudian disebut the initial bfs. Bfs yang paling akhir disebut sebagai the current bfs, sehingga pada awal problem, initial bfs adalah the current bfs. Step 2 Cek, apakah the current bfs adalah bfs yang optimal. Jika tidak, maka cari bfs berikutnya yang memiliki nilai z lebih besar. Step 3 Kembali ke Step 2, dengan menggunakan bfs yang baru sebagai the current bfs.
13
The Simplex (max LPs) Prosedur Simplex untuk model LP maximization: Step 1 Konversi model LP ke dalam bentuk standar. Step 2 Dapatkan bfs (if possible) dari bentuk standar. Step 3 Periksa apakah the current bfs telah optimal Step 4 Jika bukan bfs yang optimal, tentukan variabel nonbasic yang akan menjadi basic variabel dan variabel basic yang akan menjadi nonbasic variabel untuk mendapatkan bfs dengan nilai z yang lebih baik. Step 5 Gunakan ero’s untuk mendapatkan bfs yang baru yang memiliki nilai z yang lebih baik. Ulangi Step 3 (ero: elementary row operations) Dalam algoritma simplex, fungsi tujuan dituliskan sebagai: z – c1x1 – c2x2 - … - cnxn = 0 Disebut the row 0 version of the objective function (row 0).
14
C o n t o h : Contoh berikut akan menunjukkan bagaimana algoritma simplex digunakan untuk persoalan optimasi maximization. PT Dakota Furniture memproduksi desk, table, dan chair. Setiap jenis furniture tersebut membutuhkan kayu (lumber) dan dua jenis tenaga kerja: finishing dan carpentry. Kebutuhan setiap sumberdaya untuk memproduksi setiap jenis furniture adalah sebagai berikut: Resource Desk Table Chair Lumber 8 board ft 6 board ft 1 board ft Finishing hours 4 hours 2 hours 1.5 hours Carpentry hours 0.5 hours
15
C o n t o h … Saat ini ada tersedia sebanyak 48 board feet lumber, 20 finishing hours, 8 carpentry hours. Satu unit desk dijual seharga $60, satu unit table $30, dan satu unit chair $20. PT Dakota yakin bahwa demand untuk desk dan chair tidak terbatas, tetapi untuk table paling banyak (at most) bisa terjual 5 tables. Karena sumberdaya yang tersedia telah dibeli, PT Dakota berkeinginan untuk memaksimumkan total penerimaan (total revenue).
16
Penyelesaian: Definisikan: x1 = Jumlah desks yang diproduksi
x2 = Jumlah tables yang diproduksi x3 = Jumlah chairs yang diproduksi Setelah dilakukan formulasi, model LP PT Dakota adalah: Max z = 60x1 + 30x2 + 20x3 s.t. 8x x x3 ≤ (kendala lumber) 4x x x3 ≤ (kendala finishing) 2x x x3 ≤ (kendala carpentry) x ≤ (kendala table demand) x1, x2, x3 ≥ 0
17
Step 1 - Konversi model ke bentuk standard
Bentuk Canonic LP Basic Variable Row 0 z – 60x1 – 30x2 – 20x3 = 0 z = 0 Row 1 8x x x3 + s1 = 48 s1 = 48 Row 2 4x x x s2 = 20 s2 = 20 Row 3 2x x x s3 = 8 s3 = 8 Row 4 x s4 = 5 s4 = 5 Jika kita set x1 = x2 = x3 = 0, kita dapatkan nilai untuk s1, s2, s3, s4. Jadi, BV = {s1, s2, s3, s4} dan NBV = {x1, x2, x3 }. Karena setiap fungsi kendala semuanya dalam bentuk canonic (BVs memiliki koefisien = 1 dalam satu baris dan 0 pada baris yang lain) dengan ruas kanan (rhs) yang nonnegative, bfs dapat diperoleh dari pengamatan.
18
Step 2 – Dapatkan Basic Feasible Solution
Untuk melakukan algoritma simplex, diperlukan variabel basic untuk baris ke nol (row 0). Pada baris nol, z mempunyai koefisien 1, dan z tidak muncul lagi di baris yang lainnya, z digunakan sebagai variabel basic. Dengan demikian basic feasible solution (bfs) awal memiliki BV dan NBV sebagai berikut: BV = {z, s1, s2, s3, s4} and NBV = {x1, x2, x3}. Bfs awal ini menghasilkan nilai z = 0, s1= 48, s2= 20, s3 = 8, s4 =5, x1= x2 = x3 = 0. Pada contoh ini ditunjukkan bahwa variabel slack dapat digunakan sebagai variabel basic jika nilai ruas kanan (rhs) dari fungsi kendalanya bernilai nonnegative.
19
Step 3 – Cek apakah BFS yang diperoleh optimal
Setelah bfs diperoleh, selanjutnya periksa apakah bfs tersebut telah optimal. Caranya: Coba naikan nilai salah satu non basic variabel (nilai NBV yang lain tetap nol) dan tentukan apakah nilai z bertambah. Operasi pada baris nol menghasilkan nilai z sebagai berikut: Z = 60x1 + 30x2 + 20x3 Dari persamaan di atas terlihat bahwa untuk setiap kenaikan nilai nonbasic variable akan meningkatkan nilai z. Dalam hal ini, kenaikan nilai x1 memberikan pertambahan nilai z paling besar. Jika x1 nilainya dinaikan dari nilai sekarang (nol), x1 akan menjadi variabel basic. Perubahan dari NBV ke BV seperti x1 di atas, x1 disebut the entering variable. Perhatikan bahwa x1 memiliki nilai koefisien yang paling negatif pada baris nol.
20
Step 4 – Memilih the entering variable
(untuk model max) pilih variabel nonbasic yang memiliki koefisien paling negatif pada baris nol (jika ada yang sama pilih secara acak). Kalau bisa naikan nilai x1 sebesar mungkin, tetapi hal ini akan mempengaruhi nilai basic variables yang sekarang (s1, s2, s3, s4). Jadi bertambahnya nilai x1 akan menyebabkan basic variable lain menjadi negatif. RATIO Dari baris 1 s1 = 48 – 8x1. Karena s1 ≥ 0, x1 ≤ 48 / 8 = 6 Dari baris 2 s2 = 20 – 4x1. Karena s2 ≥ 0, x1 ≤ 20 / 4 = 5 Dari baris 3 s3 = 8 – 2x Karena s3 ≥ 0, x1 ≤ 8 / 2 = 4 Dari baris 4 s4 = 5. Untuk semua x1 s4 akan selalu ≥ 0 Hal ini berarti bahwa untuk menjaga agar semua basic variables bernilai nonnegative, kenaikan terbesar untuk x1 adalah min {6, 5, 4} = 4.
21
The Ratio Test Pada saat memasukan variable ke dalam basis, hitung ratio berikut: nilai rhs baris / koef entering variable pada baris tsb Untuk setiap kendala, kendala yang memiliki nilai ratio terkecil disebut the winner of the ratio test. Nilai ratio terkecil ini adalah kenaikan terbesar dari the entering variable yang akan tetap menjaga semua nilai basic variables bersifat nonnegative. Dari hasil ratio test, variable x1 akan menjadi basic variable pada baris 3 karena baris 3 merupakan the winner (8/2 =4).
22
Untuk menjadikan x1 basic variable pada baris 3, gunakan metode elementary row operations (ero’s), yaitu menjadikan x1 memiliki koefisien=1 pada baris 3 dan sama dengan 0 pada baris lainnya. Prosedur ini disebut pivoting pada baris 3; dan baris 3 disebut baris pivot. Hasil akhirnya adalah bahwa x1 menggantikan s3 sebagai basic variable pada baris 3. Step 5 – Metode Gauss-Jordan Proses untuk menjadikan x1 basic variable adalah sebagai berikut:
23
– The Simplex Tableau
24
Hasil Tahap 5 Adalah: Bentuk Canonic 1 Basic Variable Row 0 z x x s3 = 240 z = 240 Row 1 x3 + s s3 = 16 s1 = 16 Row 2 x x s s3 = 4 s2 = 4 Row 3 x x x s3 x1 = 4 Row 4 x s4 = 5 s4 = 5 Dalam canonical 1, BV = {z, s1, s2, x1, s4} dan NBV = {s3, x2, x3 }. Menghasilkan bfs z = 240, s1 = 16, s2 = 4, x1 = 4, s4 = 5, s3 = x2 = x3 = 0. Prosedure berpindah dari satu bfs ke bfs berikutnya yang lebih baik disebut iteration (atau terkadang disebut pivot) dari algoritma simplex.
25
Kembali ke Step 3, untuk mengetahui apakah bfs yang dihasilkan telah optimal.
Susun kembali baris 0 dari bentuk Canonic 1, yang menghasilkan persamaan: z = 240 – 15x2 +5x3 -30s3 Terlihat bawa bfs yang dihasilkan belum optimal karena jika x3 = 1 (sementara yang lainnya tetap nol) akan meningkatkan nilai z. Tetapi jika nilai x2 atau s3 dinaikan (menjadi variabel basic) nilai z akan turun. Step 4 – Sesuai aturan untuk menetapkan variabel yang akan menjadi basic (the entering variable) yaitu yang paling negatif x3 akan masuk basis menjadi variabel basic.
26
Mulai iterasi (pivot) 2:
Melakukan uji ratio dengan menggunakan x3 sebagai entering variable menghasilkan uji sebagai berikut (holding other NBVs to zero): Dari baris 1, s1 ≥ 0 untuk semua x3 karena s1 = 16 + x3 Dari baris 2, s2 ≥ 0 jika x3 < 4 / 0.5 = 8 Dari baris 3, x1 ≥ 0 jika x3 < 4 / 0.25 = 16 Dari baris 4, s4 ≥ 0 untuk semua x3 karena s4 = 5 Sehingga, untuk menjaga agar nilai semua basic variables nonnegative, kenaikan tertinggi untuk x1 adalah min {8,16} = 8 baris dua menjadi baris pivot. Step 5 – Lanjutkan dengan ero’s untuk menjadikan x3 basic variable pada baris 2.
27
– The Simplex Tableau
28
Hasilnya adalah sebagai berikut:
Bentuk Canonic 2 Basic Variable Row 0 z x s s3 = 280 z = 280 Row 1 x s s s3 = 24 s1 = 24 Row 2 x2 + x s s3 = 8 x3 = 8 Row 3 x x s s3 = 2 x1 = 2 Row 4 x s4 = 5 s4 = 5 Dalam bentuk Canonic 2, BV = {z, s1, x3, x1, s4} dan NBV = {s3, s2, x2 }, menghasilkan z = 280, s1 = 24, x3 = 8, x1 = 2, s4 = 5, s2 = s3 = x2 = 0.
29
Persamaan untuk z pada baris 0:
Z = x2 - 10s2 -10s3 Terlihat bahwa meningkatkan nilai x2, s2, atau s3 (while holding the other NBVs to zero) tidak membuat nilai z bertambah Hasil dari iterasi 2 sudah optimal. Aturan berikut dapat digunakan untuk mengetahui apakan bentuk canonic bfs optimal atau tidak: A canonical form is optimal (for a max problem) if each nonbasic variable has a nonnegative coefficient in the canonical form’s row 0.
30
The Simplex Algorithm (min LPs)
min z = 2x1 – 3x2 s.t. x1 + x2 ≤ 4 x1 – x2 ≤ 6 x1, x2 ≥ 0 Two different ways the simplex method can be used to solve minimization problems. Consider the LP shown to the right: Method 1 The optimal solution is the point (x1,x2) that makes z = 2x1 – 3x2 the smallest. Equivalently, this point makes max -z = - 2x1 + 3x2 the largest. This means we can find the optimal solution to the LP by solving the LP shown to the right. max -z = -2x1 + 3x2 s.t. x1 + x2 ≤ 4 x1 – x2 ≤ 6 x1, x2 ≥ 0
31
– The Simplex Algorithm (min LPs)
In solving this modified LP, use –z as the basic variable in row 0. After adding slack variables s1 and s2 to the constraints we obtain the initial tableau.
32
– The Simplex Algorithm (min LPs)
The optimal solution (to the max problem) is -z = 12, x2 = 4, s2 = 10, x1 = s1 = 0. Then the optimal solution to the min problem is z = -12, x2=4, s2 = 10, x1 = s2 = 0. The min LP objective function confirms this: z = 2x1-3x2 =2(0) – 3 (4) = -12. In summary, multiply the objective function for the min problem by -1 and solve the problem as a maximization problem with the objective function –z. The optimal solution to the max problem will give you the optimal solution for to the min problem. Remember that (optimal z-value for the min problem) = - (optimal z-value for the max problem).
33
The Simplex Algorithm (min LPs)
Method 2 A simple modification of the simplex algorithm can be used to solve min problems directly. Modify Step 3 of the simplex algorithm as follows: If all nonbasic variables (NBV) in row 0 have nonpositive coefficients, the current bfs is optimal. If any nonbasic variable has a positive coefficient, choose the variable with the “most positive” coefficient in row 0 as the entering variable. This modification of the simplex algorithm works because increasing a nonbasic variable (NBV) with a positive coefficient in row 0 will decrease z.
34
Alternate Optimal solutions
For some LPs, more than one extreme point is optimal. If an LP has more than one optimal solution, it has multiple optimal solutions. If there is no nonbasic variable (NBV) with a zero coefficient in row 0 of the optimal tableau, the LP has a unique optimal solution. Even if there is a nonbasic variable with a zero coefficient in row 0 of the optimal tableau, it is possible that the LP may not have alternative optimal solutions.
35
Unbounded LPs For some LPs, there exist points in the feasible region for which z assumes arbitrarily large (in max problems) or arbitrarily small (in min problems) values. When this occurs, we say the LP is unbounded. An unbounded LP occurs in a max problem if there is a nonbasic variable with a negative coefficient in row 0 and there is no constraint that limits how large we can make this NBV. Specifically, an unbounded LP for a max problem occurs when a variable with a negative coefficient in row 0 has a non positive coefficient in each constraint
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.