Perencanaan Transportasi yang Efisien menggunakan R: Memecahkan Masalah Transportasi dengan Pemrograman Linier

May 04 2023
Masalah transportasi merupakan masalah optimasi yang terkenal di bidang riset operasi. Ini melibatkan penentuan cara optimal untuk mengangkut barang dari sumber (seperti pabrik, gudang, dll.
Gambar dihasilkan menggunakan gencraft.com

Masalah transportasi merupakan masalah optimasi yang terkenal di bidang riset operasi. Ini melibatkan penentuan cara optimal untuk mengangkut barang dari sumber (seperti pabrik, gudang, dll.) ke tujuan (seperti toko ritel, pelanggan, dll.) sambil meminimalkan total biaya transportasi. Masalah muncul dalam banyak aplikasi praktis, seperti manajemen rantai pasokan, logistik, dan perencanaan distribusi.

Masalah transportasi dapat direpresentasikan sebagai model linear programming (LP), di mana tujuannya adalah untuk meminimalkan total biaya transportasi yang tunduk pada kendala penawaran dan permintaan. Model LP dapat diselesaikan dengan menggunakan berbagai metode, antara lain algoritma simpleks, metode titik interior, dan algoritma aliran jaringan.

Masalah transportasi memiliki beberapa variasi, seperti masalah transportasi yang tidak seimbang, dimana total pasokan tidak sama dengan total permintaan, dan masalah transportasi berkapasitas, dimana kapasitas jaringan transportasi terbatas. Masalahnya juga dapat diperluas untuk memasukkan faktor-faktor lain, seperti jendela waktu, banyak produk, dan banyak moda transportasi.

Pada artikel ini akan dibahas mengenai dasar-dasar permasalahan transportasi, formulasi LP-nya, dan berbagai metode penyelesaiannya. Kami juga akan menjelajahi beberapa contoh dunia nyata dan penerapan masalah transportasi dan variasinya.

Pertimbangkan skenario di mana ada 6 konsumen dan 4 pemasok komoditas yang berlokasi di tempat yang berbeda. Biaya transportasi antara masing-masing pemasok dan konsumen diwakili oleh matriks.

lpSolveadalah paket R yang menyediakan sekumpulan fungsi untuk menyelesaikan masalah pemrograman linier dan bilangan bulat campuran, termasuk masalah transportasi. Paket tersebut memungkinkan pengguna untuk menentukan kendala masalah, fungsi tujuan, dan parameter pengoptimalan lainnya, dan kemudian mendapatkan solusi optimal menggunakan pemecah LP.

Deskripsi kode:

  • row.signs <- rep("<=", 4): Baris ini menyetel tanda pertidaksamaan/kesetaraan untuk kendala pemasok sebagai "kurang dari atau sama dengan" karena merupakan masalah minimisasi. Fungsi ini rep()digunakan untuk mengulang tanda yang sama untuk keempat pemasok.
  • row.rhs <- c(1560, 3500, 5000, 2500): Baris ini menetapkan koefisien sisi kanan untuk kendala pemasok. Nilai-nilai ini mewakili kapasitas maksimum masing-masing pemasok untuk memasok komoditas tersebut.
  • col.signs <- rep(">=", 6): Baris ini menyetel tanda pertidaksamaan/kesetaraan untuk batasan konsumen sebagai "lebih besar dari atau sama dengan" karena ini merupakan masalah minimisasi. Fungsi ini rep()digunakan untuk mengulang tanda yang sama untuk semua 6 konsumen.
  • col.rhs <- c(2000, 4000, 1500, 2000, 1000, 2060): Baris ini menetapkan koefisien ruas kanan untuk kendala konsumen. Nilai-nilai ini mewakili permintaan minimum setiap konsumen untuk komoditas tersebut.
  • lp.transport(costs, "min", row.signs, row.rhs, col.signs, col.rhs): Baris ini menghitung solusi optimal untuk masalah transportasi dengan memanggil lp.transport()fungsi dan meneruskan matriks biaya dan informasi kendala.
  • lp.transport(costs, "min", row.signs, row.rhs, col.signs, col.rhs)$solution: Baris ini mengekstraksi nilai akhir dari variabel keputusan (yaitu, jumlah komoditas yang diangkut dari setiap pemasok ke setiap konsumen) dari objek solusi yang dikembalikan oleh lp.transport().

Terima kasih telah membaca, ikuti saya untuk lebih banyak