Membaca Hasil Output Lindo Pada Linear Programming

Pada tutorial sebelumnya saya telah membahas metode dasar Linear programming, beserta contoh dan langkah di aplikasi Lindo. Pada bagian akhir saya rasa belum terlalu detil menjelaskan cara membaca hasil output Lindo. Kali ini saya akan berusaha menjelaskan satu persatu hasil output Lindo tersebut

Reduced Cost

cara membaca output lindo
Cara membaca output Lindo

Objective function value merupakan nilai maksimal atau minimal yang diperoleh dari Linear programming software. Variabel dan value merupakan nilai konstanta masing masing variabel untuk memperoleh objective function value tersebut.

Membaca arti nilai reduced cost tergantung pada tujuan LP apakah maksimisasi, ataukah minimisasi. Jika maksimisasi, reduced cost merupakan nilai pengurangan objective function value setiap adanya pengurangan  satu satuan pada variabel. Ingat, bahwa pada kasus maksimisasi adalah upaya untuk meningkatkan semua variabel agar mendapatkan hasil maksimal sesuai batasan – batasan yang ada. Sehingga membaca reduced cost berarti bernilai pengurangan hasil jika kita tidak mampu memenuhi nilai variabel yang telah ditentukan LP.

Sebaliknya pada kasus minimisasi. Reduced cost berarti tambahan biaya yang dihasilkan, atau tambahan objective function value setiap adanya tambahan satu satuan pada variabel. Contoh pada gambar diatas, variabel S4 memiliki nilai 0 dan reduced cost 18.039. artinya jika kita mengganti nilai 0 menjadi 1, maka nilai objective function value akan bertambah senilai 18.039 (asumsi cateris paribus). Ingat, dalam pikiran kita, sedang memikirkan minimisasi biaya!

Lalu bagaimana jika sebaliknya? Jika kita menambah konstanta/value pada proses maksimisasi dan mengurangi pada proses minimisasi, bagaimana membaca reduced cost? Jawabannya : itu tidak akan terjadi. Nilai value yang dikeluarkan oleh LINDO merupakan nilai yang paling maksimum dari batasan yang sudah ada (untuk kasus maksimisasi) dan nilai yang sudah paling minimum dari batasan yang ada (untuk kasus minimisasi). Jadi jika kita menambah value pada varibel di proses maksimisasi, biasanya ada batasan yang dilanggar.

Misal pada maksimisasi : variabel X < 10, dan nilai value yang keluar adalah X = 9. Maka jika kita menambah x menjadi 10, akan ada batasan yang dilanggar yakni X < 10.

Misal pada minimisasi : variabel X > 20, dan nilai value yang keluar adalah x = 21. Maka jika kita mengurangi x menjadi 20, akan ada batasan yang dilanggar yakni x > 10

Slack Or Surplus

Berbeda dengan reduced cost, jika slack or surplus kita melihat dari tanda yang digunakan pada batasan masalah atau subject to. Saya berikan contoh langsung agar tidak bingung.

Misal ada batasan X <= 20, kemudian nilai value yang keluar x = 20, maka dipastikan nilai slack or surplus = 0, karena LP (Linear Programming) mengambil semua nilai batasan. Tidak ada lebih dan tidak ada kurang.

Misal ada batasan X<=20, kemudian nilai value yang keluar x = 15, maka nilai slack or surplus akan bernilai 5. Artinya masih ada sumberdaya yang tersisa atau tidak terpakai dengan solusi yang dikeluarkan oleh LP. Kondisi Slack.

Misal ada batasan X>=30, kemudian nilai value yang keluar x = 30, maka dapat dipastikan Slack or Surplus akan bernilai 0, tidak ada lebih dan tidak ada kurang.

Misal ada batasan X>=30, kemudian nilai value yang keluar x = 35, maka nilai slack or surplus akan bernilai 5. Artinya ada kelebihan dari batasan sumberdaya. Kondisi surplus.

Jelas sampai disini? Silahkan berkomentar jika ada yang belum jelas.

Dual Prices

Dual Price hampir hampir mirip dengan reduced cost. Jika reduced cost menceritakan hubungan objective function value dengan value atau constanta, maka dual price menjelaskan hubungan objective function value dengan constrain atau kendala.

Misalnya perhatikan gambar dibawah ini:

dual price lindo
Dual price Lindo

Dual price merupakan berapa tambahan objective function value jika constrain atau kendala ditambah 1 satuan.

Jika slack or surplus bernilai 0, maka dual price akan memiliki nilai (perhatikan gambar diatas), sebaliknya, jika slack or surplus memiliki nilai, maka dual price akan bernilai 0. Mengapa demikian? Karena pada sos (slackk or surplus) yang bernilai 0, artinya semua batasan dipakai oleh LP. Dan jika kita menambah satu satuan pada batasan, kemungkinan besar LP akan menggunakannya juga dan akan mempengaruhi nilai objective function value.

Contoh:

Misal ada batasan X>=30, kemudian nilai value yang keluar x = 30 (sos = 0 pastinya), jika kita mengganti X>=31, kemungkinan besar nilai value yang keluar juga x = 31, dan tentunya akan mempengaruhi (menambah atau mengurangi) nilai objective function value. Hal ini disebabkan karena batasan tersebut merupakan batasan terdekat dan tidak dipengaruhi oleh batasan yang lain, sehingga LP mengambil secara maksimalnya.

Kebalikannya, jika sos memiliki nilai tertentu, maka biasanya dula price akan bernilai 0. Penjelasannya bahwa LP tidak mengambil penuh batasan variabel, sehingga perubahan satu satuan tidak akan mempengaruhi objective function value

Contoh:

Misal ada batasan X>=30, kemudian nilai value yang keluar x = 35 (sos = 5), maka jika kita menambahkan satu satuan pada batasan menjadi x>=31, kemungkinan besar nilai value yang keluar tetaplah x = 35 dan tidak mempengaruhi (menambah atau mengurangi) objective function value. Hal ini disebabkan karena batasan tersebut bukanlah batasan terdekat atau nilai x juga dibatasi atau tergantung oleh variabel lainnya. Misalnya saja nilai x harus dua kali dari nilai Y, dan sebagainya.

Allowable increase dan Allowable Decrease

Nilai koefisien dan RHS (Righthand side/batasan) juga memiliki range. Pada output Lindo diperkenankan nilai koefisien berubah naik atau diperkenankan turun tanpa mempengaruhi nilai objective function valuenya. Jika kenaikan nilai konstanta melebihi nilai allowable increase, atau penurunan nilai konstanta lebih kecil dari allowable decrease, maka barulah nilai objective function value akan berubah.

Sama seperti konstanta, batasan atau righthand side juga memiliki range. Jika kenaikan nilai batasan melebihi nilai allowable increase, atau penurunan batasan lebih kecil dari allowable decrease, maka barulah nilai objective function value akan berubah.

allowable decrease
Range value pada Lindo
Terima Kasih Telah Berkunjung,
Selamat Belajar!
NB:

bila nilai harus genap (integer), maka dalam Lindo, setelah end dituliskan gin, lalu variabel apa yang ingin nilainya tidak pecahan. Misal untuk x y tidak boleh pecahan, maka setelah end, dituliskan : gin x y.

Gin : General Integer

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *