Catatan untuk Thesis: Semua Hal tentang Optimisasi part II
JENIS OPTIMISASI
Linear Programming
Linear programming adalah bentuk metode optimisasi sederhana yang memanfaatkan relasi linear (semua fungsi dan constraints merupakan fungsi linear).
Contoh Masalah Linear Programming
Saya memiliki area parkir seluas 1.960 . Luas rata-rata untuk mobil berukuran kecil adalah 4 dan mobil besar adalah 20 . Daya tampung maksimum hanya 250 kendaraan, biaya parkir mobil kecil adalah Rp 7.000 per jam dan mobil besar adalah Rp 12.000 per jam. Jika dalam 1 jam area parkir saya terisi penuh dan tidak ada kendaraan yang pergi dan datang, maka berapa pendapatan maksimum yang bisa saya dapatkan dari tempat parkir itu?
Dari kasus di atas kita bisa tuliskan model matematikanya sebagai berikut:
Misal adalah mobil kecil dan adalah mobil besar.
Dengan constraints:
dan
serta .
Integer Programming
Integer programming adalah bentuk metode optimisasi di mana variabel yang terlibat merupakan bilangan bulat (integer). Jika fungsi-fungsi yang terkait merupakan linear, maka disebut dengan integer linear programming.
Sebagai contoh, variabel yang merupakan bilangan bulat adalah banyak orang.
Contoh Integer Programming
Jadwal Kebutuhan Tenaga Kesehatan
Suatu rumah sakit membutuhkan tenaga kesehatan setiap harinya dengan spesifikasi berikut:
hari | Min Nakes Required | Max Nakes Required |
---|---|---|
Senin | 24 | 29 |
Selasa | 22 | 27 |
Rabu | 23 | 28 |
Kamis | 11 | 16 |
Jumat | 16 | 21 |
Sabtu | 20 | 25 |
Minggu | 12 | 17 |
Tabel Kebutuhan Nakes Harian
Di rumah sakit tersebut berlaku kondisi sebagai berikut:
- Setiap nakes hanya diperbolehkan bekerja selama 5 hari berturut-turut dan harus libur selama 2 hari berturut-turut.
- Tidak ada pemberlakuan shift bagi nakes.
Berapa banyak nakes yang harus dipekerjakan oleh rumah sakit tersebut? Bagaimana konfigurasi penjadwalannya?
Untuk memudahkan dalam mencari solusi permasalahan di atas, kita bisa membuat tabel ilustrasi berikut:
hari | Min Nakes Required | Max Nakes Required | x1 | x2 | x3 | x4 | x5 | x6 | x7 |
---|---|---|---|---|---|---|---|---|---|
Senin | 24 | 29 | x | x | x | x | x | ||
Selasa | 22 | 27 | x | x | x | x | x | ||
Rabu | 23 | 28 | x | x | x | x | x | ||
Kamis | 11 | 16 | x | x | x | x | x | ||
Jumat | 16 | 21 | x | x | x | x | x | ||
Sabtu | 20 | 25 | x | x | x | x | x | ||
Minggu | 12 | 17 | x | x | x | x | x |
Konfigurasi Penjadwalan Nakes
Kolom menandakan kelompok nakes yang perlu dipekerjaan pada hari-hari tertentu. Setiap nilai tersebut merupakan bilangan bulat positif .
Dari ilustrasi di atas, kita bisa membuat model optimisasinya sebagai berikut:
Objective Function
Constraints
- Hari Senin: .
- Hari Selasa: .
- Hari Rabu: .
- Hari Kamis: .
- Hari Jumat: .
- Hari Sabtu: .
- Hari Minggu: .
Kita juga perlu perhatikan bahwa .
Binary Programming
Binary programming adalah bentuk metode optimisasi di mana variabel yang terlibat merupakan bilangan biner (0,1). Biasanya metode ini dipakai dalam masalah penjadwalan yang memerlukan prinsip matching antar kondisi yang ada.
Contoh Binary Programming
Jadwal Tatap Muka Terbatas Sekolah
Beberapa minggu ke belakang, kasus harian Covid semakin menurun. Pemerintah mulai melonggarkan aturan PPKM yang mengakibatkan sekolah-sekolah mulai menggelar pengajaran tatap muka terbatas (PTMT) untuk siswanya secara offline.
Suatu sekolah memiliki kelas berisi 20 orang siswa. Mereka hendak menggelar PTMT dengana aturan sebagai berikut:
- PTMT digelar dari Senin hingga Jumat (5 hari).
- Dalam sehari, siswa yang boleh hadir dibatasi 4-8 orang saja.
- Dalam seminggu, diharapkan siswa bisa hadir 2-3 kali.
- Siswa yang hadir di selang sehari baru bisa hadir kembali.
Dari uraian di atas, kita bisa membuat model optimisasinya sebagai berikut:
Saya definisikan sebagai bilangan biner di mana menandakan siswa dan menandakan hari. Berlaku:
Objective Function
Tujuan utama kita adalah memaksimalkan siswa yang hadir.
Constraints
Dalam sehari, ada pembatasan jumlah siswa yang hadir.
Dalam seminggu, siswa hadir dalam frekuensi tertentu.
Ada jeda sehari agar siswa bisa masuk kembali.
Jangan lupa bahwa .
Mixed Integer Linear Programming
Pada bagian sebelumnya, kita telah membahas masalah optimisasi dengan variabel berupa diskrit dan kontinu. Permasalahan real yang ada di kehidupan sehari-hari biasanya merupakan memiliki variabel yang mixed antara keduanya. Oleh karena itu, ada metode yang disebut dengan mixed integer linear programming. Pada masalah optimisasi tipe ini, decision variables yang terlibat bisa saja berupa binary, integer, dan continuous sekaligus.
Menyelesaikan MILP
MILP secara eksak bisa diselesaikan dengan metode simplex dengan
dikombinasikan dengan teknik branch and bound. Penjelasan terkait ini
akan dibahas pada bab 6
.
Contoh MILP
Pemilihan dan Penentuan Item Produksi
Suatu pabrik makanan dan minuman berencana untuk membuat tiga produk baru yang bisa diproduksi di dua plants yang berbeda.
Produk | Runtime Plant 1 | Runtime Plant 2 |
---|---|---|
Item 1 | 3 | 4 |
Item 2 | 4 | 6 |
Item 3 | 2 | 2 |
Tabel Runtime Item Produk per Plant (harian - dalam jam)
Plant 1 memiliki maksimum working hours sebesar 30 jam perhari.
Plant 2 memiliki maksimum working hours sebesar 40 jam perhari.
Produk | Profit per ton | Sales potential per ton |
---|---|---|
Item 1 | 5 | 7 |
Item 2 | 7 | 5 |
Item 3 | 3 | 9 |
Tabel Profit dan Potensi Sales Item Produk
Masalah timbul saat mereka harus memilih dua dari tiga produk baru tersebut yang harus di produksi. Selain itu, mereka juga harus memilih satu dari dua plants yang memproduksi items tersebut.
Misalkan saya definisikan:
-
sebagai
berapa ton
yang harus diproduksi dari item . -
sebagai binary.
- Jika bernilai 0, maka produk tidak dipilih.
- Jika bernilai 1, maka produk dipilih.
-
sebagai binary.
- Jika bernilai 0, maka plant pertama dipilih.
- Jika bernilai 1, maka plant kedua dipilih.
Saya akan mendefinisikan suatu variabel dummy berisi suatu nilai yang besar. Kelak variabel ini akan berguna untuk reinforce model (metode pemberian penalty) agar bisa memilih items dan plants secara bersamaan.
Objective function dari masalah ini adalah memaksimalkan profit.
Constraints dari masalah ini adalah:
Tonase produksi tidak boleh melebihi angka sales potential per items.
Kita akan memilih dua produk sekaligus menghitung tonase. Jika produk tersebut dipilih, maka akan ada angka tonase produksinya. Sebaliknya, jika produk tersebut tidak dipilih, maka tidak ada angka tonase produksinya.
Kita akan memilih plant dari waktu produksinya.