Modul ke: Metodologi Penelitian PEMROGRAMAN LINEAR: METODE SIMPLEKS Fakultas Program Pasca Sarjana Program Studi Magister Teknik Elektro Hamzah Hilal 14.1 UMUM Sebagian besar permasalahan pemrograman linear di dunia nyata memiliki lebih dari dua variabel dan karenanya menjadi terlalu rumit untuk diselesaikan dengan menggunakan grafik. Sebuah prosedur yang disebut sebagai metode simpleks dapat digunakan untuk menemukan solusi yang optimal bagi permasalahan seperti itu. Metode simpeks sesungguhnya merupakan suatu algoritma (atau serangkaian perintah) yang digunakan untuk menguji titik sudut dalam suatu cara tertentu sehingga sampai pada solusi terbaik (laba yang paling tinggi atau biaya yang paling rendah. 14.2 GAGASAN TENTANG METODE SIMPLEKS Metode grafik yang disajikan pada pertemuan sebelumnya memperlihatkan bahwa LP yang optimum selalu berkaitan dengan titik ekstrim atau titik sudut dari ruang pemecahan. Gagasan ini dengan tepat mengatur pengembangan metode simpleks. Pada intinya, apa yang dilakukan metode simpleks adalah menerjemahkan definisi geometris dari titik ekstrim menjadi definisi aljabar. Bagaimana metode simpleks mengidentifikasi titik ekstrim (atau titik sudut) secara aljabar? Sebagai langkah pertama, metode simpleks mengharuskan agar setiap batasan ditempatkan dalam bentuk standar yang khusus di mana semua batasan diekspresikan sebagai persamaan dengan menambahkan variabel slack dan surplus sesuai keperluan. Dengan tidak adanya ruang pemecahan grafik sebagai penuntun ke arah titik optimum, maka diperlukan sebuah prosedur yang dapat mengidentifikasi pemecahan‐pemecahan dasar yang menjanjikan secara cerdas. Apa yang dilakukan oleh metode simpleks adalah mengidentifikasi suatu pemecahan dasar awal dan lalu bergerak secara sistematis ke pemecahan dasar lainnya yang memiliki potensi untuk memperbaiki nilai fungsi tujuan. Pada akhirnya, pemecahan dasar yang bersesuaian dengan nilai optimum akan diidentifikasi dan proses perhitungan berakhir. Pada gilirannya, metode simpleks merupakan prosedur perhitungan yang berulang (iteratif) di mana setiap pengulangan (iterasi) berkaitan dengan suatu pemecahan dasar. 14.3 BENTUK LP STANDAR Pembahasan pada bagian ini dimulai dengan pengembangan bentuk standar yang diperlukan untuk mewakili ruang pemecahan LP dengan sebuah sistem persamaan simultan. Pembahasan selebihnya memperlihatkan bagaimana pemecahanan dasar yang berturut‐turut ditentukan secara selektif dengan maksud untuk mencapai titik pemecahan optimum dalam sejumlah iterasi. Seperti telah dibahas pada bagian sebelumnya bahwa sebuah model LP dapat mencakup batasan dengan segala jenis (, , dan =). Lebih jauh lagi, variabel dapat nonnegatif atau tidak dibatasi dalam tandanya. Untuk mengembangkan sebuah metode pemecahan yang umum, masalah LP harus ditempatkan dalam format yang sama, yang disebut sebagai format standar. Sifat dari bentuk ini adalah sebagai berikut: Semua batasan adalah persamaan (dengan sisi kanan yang nonnegatif). Semua variabel adalah nonnegatif. Fungsi tujuan dapat berupa maksimisasi atau minimisasi. Sifat kedua yang mensyaratkan bahwa semua variabel harus nonnegatif adalah sangat penting dalam pengembangan metode simpleks. Sekarang akan diperlihatkan bagaimana setiap model LP dapat ditempatkan ke dalam bentuk standar. 14.3.1 Batasan Sebuah variabel yang berjenis () dapat dikonversikan menjadi sebuah persamaan dengan menambahkan variabel slack ke (mengurangkan variabel surplus dari) sisi kiri batasan tersebut. Misalnya, Pada batasan: x1 + 2x2 6 dapat ditambahkan slack s1 0 ke sisi kiri untuk memperoleh persamaan: x1 + 2x2 + s1 = 6, s1 0 Kemudian untuk batasan: 3 x1 + 2 x2 ‐ 3 x3 5 dimana sisi kiri tidak lebih kecil daripada sisi kanan, maka dilakukan pengurangkan variabel surplus s2 0 dari sisi kiri sehingga persamaan menjadi: 3x1 + 2x2 ‐ 3x3 ‐ s2 = 5, s2 0 Sisi kanan dari sebuah persamaan dapat selalu dibuat nonnegatif dengan mengalikan kedua sisi dengan ‐1. Misalnya, 2x1 + 3x2 ‐ 7x3 = ‐5 secara matematis adalah setara dengan ‐2x1 ‐ 3x2 + 7x3 = +5. Arah pertidaksamaan dibalik ketika kedua sisi dikalikan dengan ‐1. Misalnya, sementara 2 < 4, ‐2 > ‐4. Jadi pertidaksamaan 2x1 ‐ x2 ‐5 dapat digantikan dengan ‐2x1+ x2 > 5. 14.3.2 Variabel Variabel yang tidak dibatasi, yi , dapat diekspresikan dalam bentuk dua variabel nonnegatif dengan menggunakan substitusi, misalnya: yi= yi’ ‐ yi” dimana: yi', yi” 0 Substitusi harus diberlakukan di semua batasan dan dalam fungsi tujuan. Masalah LP biasanya dipecahkan dalam bentuk yi' dan yi", yang darinya yi ditentukan dengan substitusi balik. Sifat yang menarik dari yi' dan yi" adalah bahwa dalam pemecahan LP (simpleks) yang optimal hanya satu dari kedua variabel tersebut dapat memiliki nilai positif, tetapi tidak pernah keduanya. Jadi, ketika yi' > 0, yi" = 0, dan sebaliknya. Dalam kasus di mana yi (yang tidak dibatasi) mewakili baik slack maupun surplus, maka yi' dapat dipandang sebagai variabel slack dan yi" sebagai variabel surplus karena hanya satu di antara keduanya dapat memiliki nilai positif dalam satu saat. 14.3.3 Fungsi Tujuan Walaupun model LP standar dapat berjenis maksimisasi atau minimisasi, konversi dari satu bentuk ke bentuk lainnya kadang‐ kadang berguna. Maksimisasi sebuah fungsi adalah setara denga minimisasi negatif dari fungsi yang sama, dan demikian pula sebaliknya. Misalnya: maksimumkan , secara matematis adalah setara dengan: minimumkan Kesetaraan berarti bahwa untuk sekelompok batasan yang sama, nilai optimum dari x1, x2, dan x3 adalah sama dalam kedua kasus tersebut. Perbedaan satu‐satunya adalah bahwa nilai fungsi tujuan, walaupun sama secara numerik; akan terlihat dengan tanda yang berbeda. Contoh: Tulis model berikut ini dalam bentuk LP standar minimumkan dengan batasan‐batasan: Perubahan berikut ini harus dilakukan: Variabel slack s2 0 ditambahkan ke sisi kiri batasan kedua. Variabel slack s2 0 ditambahkan ke sisi kiri batasan ketiga. Substitusikan , di mana x1’, x1” ≥ 0, dalam fungsi tujuan dan semua batasan. Jadi bentuk standar akan diperoleh sebagai berikut: minimumkan: dengan batasan: Jika diinginkan untuk membuat semua sisi kanan dari persamaan positif, maka kedua sisi dari persamaan kedua dikalikan dengan ‐ 1. 14.4 PENYELESAIAN METODE SIMPLEKS Metode simpleks dimulai dari suatu pemecahan dasar yang layak (titik ekstrinn dan berlanjut secara berulang melalui pemecahan dasar yang layak berikutnya sampai titik optimum dicapai. Bagaimana proses iterasi dapat diterangkan secara aljabar? Yang perlu dilakukan adalah bagaimana titik‐titik ekstrim dapat diidentifikasi tanpa melalui sebuah ruang pemecahan grafik. Dengan menimbang suatu model LP dalam bentuk standar yang diberikan sebagai berikut: minimumkan: z 2 x1 4 x2 dengan batasan: 3 x 4 x 1700 1 2 2 x1 5 x2 1600 x1 , x2 0 maka setelah memasukkan variabel slack, model di atas berubah sebagai berikut: minimumkan: z 2 x1 4 x2 0s1 0s2 dengan batasan: 3x1 4 x2 s1 1700 2 x1 5 x2 s2 1600 x1 , x2 , s1 , s2 0 Untuk memecahkan persoalan LP di atas, maka langkah‐ langkah iterasi formal metode simpleks dijelaskan sebagai berikut: Langkah 0: Dengan menggunakan bentuk standar, (dengan sisi kanan semua non‐negatif), tentukan pemecahan dasar awal yang layak. Langkah 1: Pilih variabel masuk dari di antara variabel nondasar dengan menggunakan kondisi optimalitas. Langkah 2: Pilih variabel keluar dari variabel dasar saat ini dengan menggunakan kondisi kelayakan. Langkah 3: Tentukan nilai variabel dasar yang baru dengan membuat variabel masuk tersebut sebagai variabel dasar dan variabel keluar sebagai variabel nondasar. Langkah 4: Kembali ke langkah 1. Jika dipilih x1 = 0 dan x2 = 0 sebagai variabel nondasar, dengan segera dan tanpa perhitungan apapun, diperoleh pemecahan dasar yang layak s1= 1700 dan s2= 1700. Pemecahan dasar ini mewakili pemecahan awal (starting solution) atau iterasi awal dari metode simpleks. Nilai tujuan yang bersesuaian ditentukan dengan mengekspresikan fungsi tujuan dalam bentuk berikut ini (yang akan disebut sebagai persamaan z): z 2 x1 4 x2 0s1 0s2 0 Karena x1 = 0 dan x2 = 0 pada iterasi pertama ini adalah nol, nilai z yang bersangkutan secara otomatis diketahui berdasarkan pada sisi kanan dari persamaan di atas (= 0). Suatu cara yang memudahkan untuk meringkaskan persamaan‐ persamaan di atas adalah dengan menggunakan tabel sebagai berikut: - Iterasi ke 0 Dasar Nilai x1 x2 s1 s1 1700 3 4 1 s2 1600 2 5* -z 0 -2 -4 s2 1 Variabel x2 masuk dari di antara variabel nondasar karena -4 lebih kecil dari -2 pada persamaan z. Variabel s2 keluar dari variabel dasar karena 1600/5 lebih kecil dibanding 1700/3. Setelah mengidentifikasi variabel masuk dan variabel keluar, langkah selanjutnya adalah menentukan pemecahan dasar yang baru. Ini dapat dilakukan dengan menerapkan metode eliminasi Gauss-Jordan. Baris yang berkaitan dengan variabel keluar disebut persamaan pivot (pivot equation) dan elemen di titik potong antara kolom masuk dan persamaan pivot disebut sebagai elemen pivot. Pada tabel di atas terlihat bahwa 5* adalah elemen pivot dan persamaan s2 adalah persamaan pivot. Metode Gauss‐Jordan melakukan peruhbahan atas dasar penggunaan dua jenis perhitungan: Persamaan pivot: persamaan pivot baru = pesamaan pivot lama/elemen pivot Semua persamaan lainnya, termasuk persamaan baru = (persamaan lama) – (koefisien kolom masuk) x (persamaan pivot haru) Dengan demikian, iterasi kedua akan memberikan pecahan dasar baru seperti pada tabel berikut: - Iterasi ke 1 Dasar Nilai x1 s1 1700(4x1600/5)=42 0 3(4x2/5) =7/5* x2 1600/5=320 2/5 -z 0-(-4x1600/5)= 1280 x2 4(4x5/5) =0 5/5=1 -2-(-4x2/5) -4-(-4x5/5) = -2/5 =0 s1 1(4x0/5) =1 s2 0-(4x1/5)= -4/5 1/5 0-(-4x1/5) =4/5 Dari tabel di atas dapat ditentukan bahwa variabel x1 masuk dari di antara variabel nondasar karena ‐2/5 adalah terkecil pada persamaan z. Variabel s1 keluar dari variabel dasar karena 420/(7/5) lebih kecil dibanding 320/1. Dengan demikian, 7/5 merupakan elemen pivot dan persamaan s1 merupakan persamaan pivot. Kemudian pemecahan dasar baru diperoleh seperti pada tabel berikut: - Iterasi ke 2 Dasar Nilai x1 x2 s1 s2 x1 420/(7/5)=300 (7/5)/(7/5) =1 0/(7/5)=0 1/(7/5)=5/7 (-4/5)/(7/5) = -4/7 x2 320-((2/5)x420/(7/5)) =200 2/5-((2/5)x (7/5)/(7/5 )) =0 1-((2/5)x 0/(7/5)) =1 0-((2/5)x 1/(7/5)) =-2/7 1/5-((2/5)x (4/5)/ (7/5)) =3/7 -2/5-((-2/5) x(7/5)/(7/ 5)) =0 0-0=0 0-((-2/5)x 1/(7/5)) =2/7 4/5-((-2/5)x (-4/5) /(7/5)) =4/7 -z 1280-((2/5)x420/(7/5)) =1400 Pemecahan pada tabel di atas menghasilkan x1 = 300 dan x2 = 200 dengan nilai z = -1400. Tabel terakhir ini memberikan nilai-nilai optimal karena tidak sate pun variabel nondasar memiliki koefisien negatif dalam persamaan z. Terima Kasih Hamzah Hilal