Universitas Ahmad Dahlan Yogyakarta LINIER PROGRAMMING Universitas Ahmad Dahlan Yogyakarta Optimasi
PENDAHULUAN Model pemograman linier merupakan salah satu model matematik Model pemograman linier memiliki karakteristik pokok : fungsi tujuan yang akan dioptimalkan (maksimasi atau minimasi) dinyatakan dalam fungsi linier dari variabel keputusan Batasan direpresentasikan sebagai persamaan atau pertidaksamaan.
PENDAHULUAN Asumsi-asumsi dalam pemograman linier : 1. Proposional Hubungan linier 2. Additivity Penjumlahan 3. Divisibility Variabel keputusan bernilai kontinyu (noninteger) atau desimal. 4. Deterministik data diketahui dengan pasti jika probabilistik dapat didekati dengan deterministik
PENCARIAN SOLUSI Solusi pemograman linier (linier programming) dapat diselesaikan : Grafis Simpleks Simpleks Lanjutan Metode grafis hanya dapat digunakan untuk menyelesaikan permasalahan pemograman linier dengan dua variabel keputusan Metode simpleks dan simpleks lanjutan digunakan untuk menyelesaikan permasalahan pemograman linier dengan variabel keputusan lebih dari dua ( > 2)
GRAFIS Misalkan permasalahan pemograman linier dengan fungsi tujuan minimasi : Min Z = 2X1 + 5X2 s.t 2X1 + 3X2 >= 6 -X1 - 2X2 >= -18 X1 >= 0, X2 >= 0 Pers. Batasan 1 = X1 = 0 ; X2 = 2 X1 = 3 ; X2 = 0 Pers. Batasan 2 = X1 = 0 ; X2 = 9 X1 = 18 ; X2 = 0 1 2 3
GRAFIS X2 0 feasible region X1 0 1 2 Fungsi tuj. (gr. Selidik)
GRAFIS Penyelesaian untuk mendapatkan nilai minimum fungsi dapat dilakukan dengan : Menentukan titik-titik yang terbentuk pada daerah feasible (layak) Membuat kontur bantu persamaan fungsi tujuan, solusi didapatkan dengan melakukan pergerakan garis kontur Solusi pemograman linier dapat berupa unique optimal solution atau alternative optimal solution Ruang solusi layak yang terbentuk dalam pemograman linier dapat berupa unbounded region atau bounded region Jika tidak terdapat solusi dari permasalahan pemograman linier maka disebut sebagai infeasible solution
SIMPLEKS Pencarian solusi metode simpleks memiliki ciri bentuk umum pertidaksamaan pembatas yang bernilai lebih kecil atau lebih kecil sama dengan ( < / ) Bentuk implisit fungsi matematik diubah dalam bentuk implisit dengan menambahkan variabel slack Variabel slack ditambahkan sesuai dengan jumlah batasan fungsi dari pemograman linier
DIUBAH DALAM BENTUK IMPLISIT SIMPLEKS Misalkan Minimize X1 + X2 – 4X3 s.t X1 + X2 + 2X3 9 X1 + X2 – X3 2 -X1 + X2 + X3 4 X1, X2, X3 0 DIUBAH DALAM BENTUK IMPLISIT
SIMPLEKS
SIMPLEKS Var. Fungsi Tujuan Koefisien variabel keputusan di fungsi tujuan dan batasan Variabel Slack Koefisien var. slack fungsi tujuan Nilai pada ruas kanan
SIMPLEKS Variabel X3 merupakan variabel yang terpilih untuk menggantikan variabel basic pada kolom pertama Pemilihan tersebut dilakukan dengan melihat nilai POSITIF terbesar pada baris z untuk fungsi tujuan MINIMASI dan nilai NEGATIF terbesar untuk fungsi MAKSIMASI Variabel X6 merupakan variabel yang terpilih untuk digantikan variabel fungsi tujuan pada baris pertama Pemilihan tersebut dilakukan dengan melihat rasio positif terkecil dari nilai RHS dengan semua koefisien pada kolom X3 9/2 ; 2/-1 ; 4/1 4,5 ; -2 ; 4
SIMPLEKS Titik kunci pada kolom terpilih (X3) bernilai 1 Z 1 3 -5 -4 -16 x4 -1 -2 x5 2 6 x3 4 z -17 X1 -1/3 1/3 -2/3 X5 X3 2/3 13/3 Titik kunci pada kolom terpilih (X3) bernilai 1 Nilai pada kolom terpilih (X3) selain titik kunci harus bernilai 0 (nol) Cara : Untuk baris X5 : 1 1 -1 0 1 0 2 0 2 0 0 1 1 6 Kalikan titik kunci dengan bilangan N yang jika ditambah nilai kolom pada baris X5 akan bernilai 0 Lakukan hal yang sama dengan untuk baris X4 dan Z
SIMPLEKS Lakukan hal yang tersebut sampai iterasi dinyatakan berhenti ITERASI berhenti jika nilai Z sudah tidak ada yang POSITIF semua untuk fungsi tujuan MINIMASI, tidak ada yang NEGATIF semua untuk fungsi tujuan MAKSIMASI Fungsi tujuan maksimasi bisa ditransformasikan menjadi fungsi tujuan minimasi dengan mengkalikan dengan negatif 1 Bila iterasi selalu menghasilkan optimalitas yang berulang (cycling) DEGENERASI Ciri DEGENERASI adalah sebagai berikut : ada 1 atau lebih variabel basis yang mempunyai nilai 0 yang ditunjukkan adanya dua baris yang mempunyai peluang yang sama
SIMPLEKS SOFTWARE SOLUTION Pencarian solusi yang telah disampaikan menggunakan iterasi manual Beberapa software optimasi dapat digunakan untuk menyelesaiakn permasalahan pemograman linier, seperti LINGO, LINDO, Win QSB. LINGO dan LINDO merupakan bahasa pemograman matematik, sehingga perlu dilakukan penulisan koding bahasa program untuk pencarian solusi. Sedangkan Win QSB merupakan software aplikasi, tanpa perlu menuliskan koding bahasa program. Win QSB merupakan software optimasi praktis tinggal menentukan jumlah variabel dan memasukkan nilai koefisien ataupun nilai RHS
SIMPLEKS SOFTWARE SOLUTION LINGO LINGO 11 Beberapa bahasa program yang digunakan dalam lingo untuk simpleks Set menjelaskan sekumpulan keterangan yang dibutuhkan, contoh untuk permasalahan simpleks adalah Produk (keputusan) Kebutuhan jumlah indeks terdapat 3 jenis produk Definisikan keterangan setiap koefisien Koefisien fungsi tujuan Koefisien batasan 1 Koefisien batasan 2 Definisikan data yang digunakan koefisen dan RHS Buat formulasi matematis
SIMPLEKS SOFTWARE SOLUTION Koding bahasa pemograman persamaan atau pertidaksamaan dituliskan sama dengan penulisan formulasi matematik Koding @SUM merupakan koding untuk penjumlahan fungsi Koding @FOR merupakan koding untuk setiap indek dalam fungsi MIN = atau MAX = menjelaskan fungsi tujuan minimasi atau maksimasi Indeks dapat dituliskan sembarang i, j, dll Tanda seru (!) di awal koding menjelaskan bahwa bahasa program yang ditulis merupakan teks
SIMPLEKS SOFTWARE SOLUTION Setelah pendefinisian koding bahasa pemograman LINGO maka selanjutnya dapat di jalankan program untuk melihat model matematik yang terbentuk melalui : LINGO Generate Display Model Untuk mencari solusi SOLVE
SIMPLEKS SOFTWARE SOLUTION Koding bahasa pemograman dapat dilakukan dengan cara melakukan penulisan sesuai formulasi matematik Koding bahasa pada slide sebelumya dilakukan untuk beberapa formulasi matematik yang tidak sederhana
SIMPLEKS s.t X1 + 5X2 + 2X3 30 X1 - 5X2 – 6X3 40 X1, X2, X3 0 1. Maks 50000X1 + 20000X2 – 30000X3 s.t X1 + 5X2 + 2X3 30 X1 - 5X2 – 6X3 40 X1, X2, X3 0 2. Min 6X1 + 4X2 + 7X3 + 5X4 s.t X1 + 2X2 + X3 + 2X4 20 X1 + 5X2 + 3X3 + 2X4 100 3X1 + 4X2 + 9X3 + 12X4 75 X1, X2, X3, X4 0