SOLUSI
MULTI-DEPOT VEHICLE ROUTING PROBLEM
MENGGUNAKAN
INTEGER LINEAR PROGRAMMING
NUR AULIA RACHMAN
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
PERNYATAAN MENGENAI SKRIPSI DAN
SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA
Dengan ini saya menyatakan bahwa skripsi berjudul Solusi Multi-Depot Vehicle Routing Problem Menggunakan Integer Linear Programming adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini.
Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor.
Bogor, Agustus 2015
Nur Aulia Rachman
ABSTRAK
NUR AULIA RACHMAN. Solusi Multi-Depot Vehicle Routing Problem
Menggunakan Integer Linear Programming. Dibimbing oleh PRAPTO TRI SUPRIYO dan SISWANDI.
Suatu perusahaan yang memiliki beberapa tempat penyimpanan barang perlu menentukan skenario pendistribusian barang dari beberapa tempat penyimpanan barang (depot) ke beberapa agen yang akan meminimumkan biaya operasional. Karya ilmiah ini memberikan model untuk menentukan rute armada kendaraan guna mendistribusikan barang dari beberapa depot ke beberapa agen dengan biaya operasional yang minimum. Model diformulasikan menggunakan Integer Linear Programming dan diimplementasikan menggunakan software LINGO 11.0 untuk menentukan skenario pendistribusian barang dari dua depot ke dua puluh agen yang terpisah relatif jauh satu dengan yang lainnya.
Kata kunci: MDVRP, pendistribusian barang
ABSTRACT
NUR AULIA RACHMAN. Solution of the Multi-Depot Vehicle Routing Problem Using Integer Linear Programming. Supervised by PRAPTO TRI SUPRIYO and SISWANDI.
NUR AULIA RACHMAN
Skripsi
sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains
pada
Departemen Matematika
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR
BOGOR 2015
SOLUSI
MULTI-DEPOT VEHICLE ROUTING PROBLEM
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah SWT atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Judul dari karya ilmiah ini adalah Solusi Multi-Depot Vehicle Routing Problems
Menggunakan Integer Linear Programmings. Penyusunan karya ilmiah ini tidak lepas dari bantuan beberapa pihak. Oleh karena itu, penulis mengucapkan terima kasih kepada:
1 Bapak dan Ibu tercinta yang selalu mendukung, mendoakan yang terbaik serta memberikan semangat tanpa henti-hentinya kepada penulis, Nur Laila Fitriati Ahwanah selaku kakak dan Achmad Arif Hidayat selaku adik yang telah memberikan banyak motivasi kepada penulis untuk terus belajar,
2 Bapak Drs Prapto Tri Supriyo, M.Kom selaku dosen pembimbing I, Bapak Drs. Siswandi, M.Si selaku dosen pembimbing II dan Bapak Toni Bakhtiar, M.Sc selaku penguji yang telah memberikan ilmu, saran, motivasi dan bantuannya dalam penulisan karya ilmiah ini,
3
Semua dosen Departemen Matematika IPB, terima kasih atas semuailmu yang telah diberikan selama penulis menimba ilmu di Departemen Matematika IPB,
4
Semua Staf Departemen Matematika IPB atas pelayanannya yang baik selama penulis menimba ilmu di Departemen Matematika IPB,5
Kak Maya selaku asisten praktikum mata kuliah Pemodelan Riset Operasi, dan Kak Alin yang telah banyak memberikan masukan serta saran yang bermanfaat dalam penulisan karya ilmiah ini,6
Dedi, deby, dinar, dan seluruh keluarga Matematika 48 atas doa, dukungan serta semangat yang diberikan,7
Seluruh pihak yang tidak dapat disebutkan satu per satu.Penulis menyadari bahwa karya ilmiah ini masih jauh dari sempurna. Penulis sangat mengaharapkan segala kritik dan saran yang membangun. Semoga karya ilmiah ini dapat menambah wawasan bagi pembaca sekalian dan bisa bermanfaat bagi dunia ilmu pendidikan khususnya bidang matematika serta menjadi inspirasi bagi penelitian selanjutnya.
Bogor, Agustus 2015
DAFTAR ISI
DAFTAR TABEL ix
DAFTAR GAMBAR ix
DAFTAR LAMPIRAN ix
PENDAHULUAN 1
Latar Belakang 1
Tujuan Penelitian 1
TINJAUAN PUSTAKA 1
Linear Programming 1
Integer Linear Programming 2
Traveling Salesman Problem 2
Multiple Traveling Salesman Problem 2
Vehicle Routing Problem 2
Multi-Depot Vehicle Routing Problem 3
DESKRIPSI DAN FORMULASI MASALAH 3
Deskripsi Masalah 3
Formulasi Masalah 4
UJI MODEL 7
IMPLEMENTASI MODEL 9
HASIL DAN PEMBAHASAN 11
SIMPULAN DAN SARAN 12
Simpulan 12
Saran 12
DAFTAR PUSTAKA 13
LAMPIRAN 14
DAFTAR TABEL
1 Permintaan produk setiap tempat 7
2 Jarak antartempat pada simulasi 1 7
3 Rute pendistribusian, jarak tempuh, dan jumlah produk yang dibawa
tiap kendaraan yang beroperasi pada simulasi 1 8
4 Jarak antartempat pada simulasi 2 8
5 Rute pendistribusian, jarak tempuh, dan jumlah produk yang dibawa
tiap kendaraan yang beroperasi pada simulasi 2 8
6 Rute pendistribusian, jarak tempuh, dan jumlah crate roti yang dibawa
tiap kendaraan yang beroperasi 11
7 Jarak antarnode 22
8 Permintaan roti setiap node 22
DAFTAR GAMBAR
1 Perjalanan dari kendaraan yang berupa subtour 6
2 Perjalanan dari kendaraan yang berupa tour 6
3 Rute pendistribusian kendaraan apda implementasi model 12
DAFTAR LAMPIRAN
1 Sintaks dan hasil komputasi program LINGO 11.0 dalam menyelesaikan uji model simulasi 1 untuk Solusi Multi-Depot Vehicle Routing Problem Menggunakan Integer Linear
Programming 14
2 Sintaks dan hasil komputasi program LINGO 11.0 dalam menyelesaikan uji model simulasi 2 untuk Solusi Multi-Depot Vehicle Routing Problem Menggunakan Integer Linear
Programming 18
3 Data jarak antarnode serta permintaan setiap node terhadap roti
yang digunakan dalam implementasi model. 22
4 Sintaks dan hasil komputasi program LINGO 11.0 dalam menyelesaikan Solusi Multi-DepotVehicle Routing
PENDAHULUAN
Latar Belakang
Suatu perusahaan selain berperilaku sebagai produsen, pada umumnya juga berperilaku sebagai distributor untuk menyalurkan barang yang telah diproduksinya agar bisa sampai ke tangan konsumen. Perusahaan biasanya bekerjasama dengan beberapa toko atau swalayan yang biasanya disebut sebagai agen, yang akan membantu memasarkan barang kepada masyarakat. Proses distribusi dari tempat penyimpanan barang (depot) ke agen memerlukan suatu pemecahan masalah penentuan rute yang paling optimal yang akan mengefisienkan biaya operasional. Sebab jika rute yang dipilih bukanlah rute yang paling optimal, maka akan menimbulkan masalah bagi perusahaan, seperti biaya distribusi yang besar, proses pengiriman yang memakan waktu yang lama, dan lain sebagainya.
Diketahui bahwa beberapa perusahaan memiliki beberapa tempat penyimpanan (depot atau gudang) barang di mana barang-barang tersebut akan didistribusikan ke para agen. Perusahaan memiliki kepentingan untuk menentukan skenario pendistribusian barang dari beberapa depot ke beberapa agen dengan biaya paling efisien. Upaya untuk menentukan model skenario pendistribusian barang di atas tentu akan sangat bermanfaat bagi perusahaan.
Tujuan Penelitian
Tujuan dari karya ilmiah ini ialah memformulasikan masalah penentuan rute optimal untuk melakukan distribusi ke dalam bentuk Multi-Depot Vehicle Routing Problem (MDVRP) menggunakan Integer Linear Programming (ILP) dan mengimplementasikan model tersebut pada suatu kasus menggunakan bantuan software LINGO 11.0.
TINJAUAN PUSTAKA
Untuk memahami masalah dalam karya ilmiah ini diperlukan beberapa pengertian sebagai berikut.
Linear Programming
Linear Programming (LP) adalah suatu masalah pengoptimuman yang memenuhi aturan sebagai berikut:
1 bertujuan untuk memaksimumkan atau meminimumkan sebuah fungsi linear. Fungsi yang dimaksimumkan atau diminimumkan disebut fungsi objektif, 2 nilai-nilai pada variabel keputusan harus memenuhi kendala-kendala yang ada.
Setiap kendala harus berupa persamaan linear atau pertaksamaan linear, dan 3 pembatasan tanda bergantung pada setiap variabel. Untuk sembarang variabel
Integer Linear Programming
Suatu masalah pengoptimalan disebut Integer Linear Programming (ILP) atau disebut juga Integer Programming (IP) jika beberapa atau semua variabel yang digunakan berupa bilangan bulat (integer) taknegatif. Sebuah IP di mana semua variabel yang digunakan berupa bilangan bulat (integer) disebut pure integer programming. Sebuah IP di mana hanya beberapa variabel yang digunakan berupa bilangan bulat disebut mixed integer programming. IP di mana semua variabel yang digunakan harus bernilai 0 atau 1 disebut 0-1 IP (Winston 2004).
Traveling Salesman Problem
Dalam masalah pendistribusian suatu produk, terdapat beberapa variasi masalah pendistribusian yang mungkin bisa saja terjadi, mulai dari masalah pendistribusian yang paling sederhana yaitu Traveling Salesman Problem (TSP) hingga masalah yang lebih kompleks yang merupakan pengembangan dari
Traveling Salesman Problem (TSP). Traveling Salesman Problem (TSP) merupakan suatu kondisi di mana seorang salesman akan berangkat dari satu kota kemudian mengunjungi tepat sekali sejumlah m kota yang ada dan pada akhir perjalanannya salesman tersebut akan kembali ke kota asal atau depot. Tujuan dari TSP adalah menentukan rute yang melalui seluruh kota dan meminimumkan jarak / biaya perjalanan (Hoffman et al. 2001).
Multiple Traveling Salesman Problem
Multiple Traveling Salesman Problem (m-TSP) adalah salah satu variasi dari TSP, di mana terdapat sebanyak m-salesman mengunjungi seluruh kota, tetapi setiap kota hanya dapat dikunjungi oleh tepat satu salesman saja. Tiap
salesman berawal dari suatu depot dan pada akhir perjalannya juga harus kembali ke depot tersebut. Tujuan dari m-TSP adalah meminimumkan total jarak dari setiap rute.
Masalah m-TSP dikenal juga sebagai Vehicle Routing Problem (VRP), di mana sebuah kota memiliki permintaan dan tiap salesman atau kendaraan memiliki kapasitas tertentu. Total permintaan dalam suatu rute tidak boleh melebihi kapasitas dari kendaraan yang melalui rute tersebut (Larsen 1999).
Vehicle Routing Problem
Multi-Depot Vehicle Routing Problem
Multi-Depot Vehicle Routing Problem (MDVRP) merupakan variasi dari VRP, di mana terdapat sejumlah m-depot yang bertindak sebagai distributor suatu produk. Dalam Multi-Depot Vehicle Routing Problem (MDVRP), jumlah dan letak dari depot telah ditentukan sebelumnya. Setiap depot cukup besar untuk menyediakan semua produk yang diminta oleh agen. Setiap kendaraan memulai perjalanan dan mengakhiri perjalanan pada depot yang sama. Lokasi dan permintaan dari setiap agen telah diketahui sebelumnya dan setiap agen dikunjungi tepat sekali oleh sebuah kendaraan. Sebagai akibat dari adanya depot untuk menyediakan produk, maka pembuat keputusan harus menentukan agen mana saja yang akan dilayani oleh masing-masing depot. Tujuan dari penentuan rute adalah meminimumkan jumlah rute tanpa melanggar kendala kapasitas kendaraan. Jumlah rute yang lebih besar meningkatkan jumlah kendaraan yang dibutuhkan dan akan mengurangi kualitas dari solusi yang dihasilkan. Penentuan rute dan penjadwalan yang lebih baik dapat menghasilkan jarak pengiriman terpendek, waktu pelayanan semua agen yang tercepat, biaya pengiriman yang kecil dan tingkat efisiensi yang tinggi. Secara umum, tujuan dari MDVRP adalah untuk meminimumkan total jarak pengiriman atau waktu yang dihabiskan untuk melayani semua agen. Lebih kecil waktu pengiriman, lebih besar tingkat kepuasan agen. Lebih sedikit kendaraan berarti total biaya operasionalnya pun kecil, maka tujuan dari MDVRP bisa menjadi meminimumkan jumlah kendaraan. Walaupun ada beberapa tujuan, namun tujuan utama dari MDVRP adalah untuk meningkatkan efisiensi dalam pengiriman produk (Surekha danSumathi 2011).
Masalah pendistribusian yang akan dibahas lebih lanjut dalam karya ilmiah ini merupakan Multi-Depot Vehicle Routing Problem (MDVRP).
DESKRIPSI DAN FORMULASI MASALAH
Deskripsi Masalah
Formulasi Masalah
Berdasarkan deskripsi masalah yang diberikan di atas, masalah pendistribusian barang ini diformulasikan sebagai masalah ILP. Formulasi masalah pendistribusian barang ini menggunakan himpunan, indeks, parameter, dan variabel keputusan sebagai berikut:
Himpunan
= Himpunan semua depot, = Himpunan semua agen,
= Himpunan kendaraan yang akan berangkat dan kembali ke depot = Himpunan semua kendaraan, ∑
Indeks
= Indeks yang menyatakan node, = Indeks yang menyatakan kendaraan, Parameter
= Banyaknya node,
= Biaya tetap penggunaan kendaraan
= Biaya perjalanan per km dari node ke node , = Banyaknya permintaan agen
= Kapasitas maksimum kendaraan = Jarak dari node ke node , Variabel Keputusan
{
{
= Variabel tambahan yang digunakan dalam eliminasi subtour untuk agen pada kendaraan
= Variabel tambahan yang digunakan dalam eliminasi subtour untuk agen pada kendaraan
Fungsi Objektif
Dalam penelitian ini, diinginkan biaya yang seminimum mungkin untuk melakukan distribusi kepada agen, sehingga digunakan fungsi objektif untuk meminimumkan total biaya distribusi, yang terdiri atas penjumlahan dari biaya tetap penggunaan kendaraan ditambah dengan biaya perjalanan. Secara matematis fungsi objektifnya dapat ditulis sebagai berikut:
∑
∑ ∑ ∑
Kendala
Di antara kendala dalam masalah pendistribusian barang ini, terdapat kendala yang bersumber dari jurnal Surekha dan Sumathi (2011), yaitu kendala eliminasi subtour. Kendala ini bertujuan membentuk suatu perjalanan dari setiap kendaraan dalam bentuk tour yang fisibel, bukan perjalanan dalam bentuk subtour
yang takfisibel. Pengertian subtour sendiri ialah suatu kondisi di mana sebuah
tour atau lebih terbentuk dengan tempat memulai perjalanannya bukanlah dari depot dan biasanya kondisi ini terjadi bersamaan dengan terbentuknya sebuah tour
atau lebih yang memulai perjalanannya dari depot. Sementara kendala yang lain merupakan pengembangan dari deskripsi masalah yang diberikan di atas.
1 Setiap kendaraan akan berangkat dari depot dan tidak harus semua kendaraan digunakan.
∑
2 Kendaraan yang digunakan harus kembali ke depot yang sama saat ia berangkat.
∑
3 Setiap agen dilayani tepat sekali oleh sebuah kendaraan.
∑ ∑
∑ ∑
4 Rute harus kontinu, artinya setiap kendaraan yang mengunjungi suatu agen pasti akan meninggalkan agen tersebut.
∑ ∑
5 Total permintaan dari semua agen yang dilalui oleh setiap kendaraan tidak boleh melebihi kapasitas maksimum kendaraan yang digunakan.
∑ ∑
6 Tidak ada agen yang dikunjungi oleh kendaraan yang tidak digunakan.
7 Tidak ada perjalanan antardepot.
8 Tidak ada perjalanan ke tempat yang sama.
9 Kendala eliminasi subtour yang bertujuan membentuk adanya tour yang fisibel.
(Surekha danSumathi 2011) 10 Kendala biner dan ketaknegatifan.
Sebagai ilustrasi dari kendala 9, misalkan diberikan node 1, 2, 3, 4, 5, dan 6 di mana node 1 dan 2 merupakan depot (gudang barang), serta terdapat sebuah kendaraan pada tiap depot. Perhatikan graf berikut ini :
Gambar 1 Perjalanan dari kendaraan yang berupa subtour
Gambar 1 merupakan suatu subtour yang terdiri dari 1-3-4-1 dan 5-6-5. Pada Gambar 1 diperoleh nilai . Misalkan diambil subtour yang tidak memuat depot 1 dan 2 yaitu 5-6-5 serta digunakan kendaraan 2 pada rute 2. Representasi kendala 9 terhadap arcs dalam subtour ini adalah: dan menghasilkan
Karena maka diperoleh hasil yang kontradiksi sehingga perjalanan yang memuat suatu subtour
merupakan solusi yang takfisibel.
Gambar 2 Perjalanan dari kendaraan yang berupa tour
Misalkan diberikan tour seperti pada Gambar 2, yaitu 1-3-4-1 untuk rute 1
dan 2-5-6-2 untuk rute 2 dan misalkan nilai
serta lainnya bernilai Sehingga didapat Akan dibuktikan bahwa kendala 9 terpenuhi. Pertama pemilihan untuk sebuah arc
dengan Sebagai contoh untuk adalah Diketahui bahwa dan sehingga menghasilkan Kedua, pemilihan untuk sebuah arc dengan Sebagai contoh untuk adalah di mana dan
karena node 5 tidak dikunjungi oleh kendaraan 1, maka menghasilkan
Sehingga kendala 9 telah terbukti terpenuhi.
1 2
3 4 5 6
Rute 1 Rute 2
1 2
3 4 5 6
UJI MODEL
Berdasarkan deskripsi masalah yang diberikan di atas, dilakukan uji model yang bertujuan untuk meyakinkan bahwa model yang telah dibangun dan diselesaikan dengan bantuan software LINGO 11.0 ini adalah benar. Pada uji model ini dilakukan 2 simulasi untuk 2 depot dan 4 agen di mana terdapat 2 kendaraan yang berkapasitas muatan 150 unit pada setiap depot dengan biaya tetap sebesar Rp 50000,00/kendaraan serta biaya perjalanan Rp 1000,00/km. Permintaan agen terhadap barang serta jarak antartempat juga telah diketahui sebelumnya. Pada simulasi 1, ingin didapatkan hasil bahwa masing-masing depot menggunakan 1 buah kendaraan untuk melayani 2 agen untuk setiap kendaraan, sementara pada simulasi 2 ingin didapatkan hasil bahwa semua agen hanya dilayani oleh sebuah depot di mana depot tersebut menggunakan semua kendaraannya dan depot yang lain tidak melakukan distribusi kepada agen. Pada kedua simulasi ini, tempat 1 & 2 merupakan 2 buah depot yang berbeda. Pada Tabel 1, diberikan besarnya permintaan produk pada setiap tempat, di mana produk tersebut akan disediakan oleh kedua depot yang kemudian akan didistribusikan kepada agen.
Tabel 1 Permintaan produk setiap tempat
Tempat 1 2 3 4 5 6
Permintaan (unit) 0 0 50 50 100 100
Tabel 2 memberikan besarnya jarak antartempat yang akan digunakan untuk simulasi 1, di mana jarak antartempat adalah simetrik, artinya jarak dari tempat ke tempat sama dengan jarak dari tempat ke tempat .
Tabel 2 Jarak antartempat pada simulasi 1 (dalam kilometer)
Tempat 1 2 3 4 5 6
1 0.00 14.55 18.97 30.55 15.86 30.08
2 14.55 0.00 26.78 31.08 22.45 1.19
3 18.97 26.78 0.00 8.60 4.26 3.48
4 30.55 31.08 8.60 0.00 18.64 26.56
5 15.86 22.45 4.26 18.64 0.00 23.36
6 30.08 1.19 3.48 26.56 23.36 0.00
Menggunakan parameter yang diberikan pada deskripsi uji model di atas, didapatkan hasil untuk simulasi 1 seperti yang diinginkan yaitu setiap depot menggunakan 1 buah kendaraan untuk melayani 2 agen dengan nilai fungsi objektif sebesar Rp 196.500,00.
Tabel 3 Rute pendistribusian, jarak tempuh, dan jumlah produk yang dibawa tiap kendaraan yang beroperasi pada simulasi 1
Kode
Kendaraan Rute Pendistribusian
Jarak yang ditempuh kendaraan (kilometer)
Jumlah produk yang dibawa
(unit)
1 - 0 0
2 1 5 4 1 65.05 150
3 2 3 6 2 31.45 150
4 - 0 0
Tabel 4 memberikan besarnya jarak antartempat yang akan digunakan untuk simulasi 2, di mana jarak antartempat adalah simetrik, artinya jarak dari tempat ke tempat sama dengan jarak dari tempat ke tempat .
Tabel 4 Jarak antartempat pada simulasi 2 (dalam kilometer)
Tempat 1 2 3 4 5 6
1 0.00 14.55 18.97 30.55 15.86 30.08
2 34.55 0.00 26.78 31.08 22.45 31.19
3 18.97 26.78 0.00 8.60 4.26 3.48
4 30.55 31.08 8.60 0.00 18.64 26.56
5 15.86 22.45 4.26 18.64 0.00 23.36
6 30.08 31.19 3.48 26.56 23.36 0.00
Menggunakan parameter yang diberikan pada deskripsi uji model di atas, didapatkan hasil untuk simulasi 2 seperti yang diinginkan yaitu semua agen hanya dilayani oleh sebuah depot di mana depot tersebut menggunakan semua kendaraannya sementara depot yang lain tidak melakukan distribusi. Nilai fungsi objektif yang didapatkan adalah sebesar Rp 217.580,00.
Tabel 5 memberikan hasil dari simulasi 2 yang memberikan rute pendistribusian, jarak yang ditempuh kendaraan serta jumlah produk yang dibawa oleh setiap kendaraan yang digunakan.
Tabel 5 Rute pendistribusian, jarak tempuh, dan jumlah produk yang dibawa tiap kendaraan yang beroperasi pada simulasi 2
Kode
Kendaraan Rute Pendistribusian
Jarak yang ditempuh kendaraan (kilometer)
Jumlah produk yang dibawa
(unit)
1 1 5 4 1 65.05 150
2 1 3 6 1 52.53 150
3 - 0 0
IMPLEMENTASI MODEL
Misalkan dalam masalah pendistribusian roti, di mana akan ada 2 buah depot yang akan menjadi distributor roti untuk disalurkan ke beberapa agen di mana setiap depot memiliki jumlah kendaraan sebanyak 2 buah, yaitu kendaraan 1 dan 2 akan memulai dan mengakhiri perjalanan di depot 1, sementara kendaraan 3 dan 4 akan memulai dan mengakhiri perjalanannya di depot 2. Terdapat 20 agen yang akan dikunjungi. Perusahaan pembuat roti ini menginginkan agar rute yang dilalui oleh setiap kendaraan yang melakukan distribusi merupakan rute yang meminimumkan biaya distribusi ke semua agen. Data yang diberikan merupakan data hipotetik yang dapat digunakan untuk keperluan simulasi. Asumsi yang digunakan pada implementasi model ini ialah sebagai berikut:
1 Jarak antarnode adalah simetrik, artinya jarak dari node i ke node j sama dengan jarak dari node j ke node i.
2 Setiap agen hanya boleh dilayani tepat sekali oleh sebuah kendaraan.
3 Setiap kendaraan yang melakukan distribusi harus memulai perjalanan dan mengakhiri perjalanannya pada depot yang sama, yaitu pada depot 1 tersedia kendaraan 1 dan 2, sementara pada depot 2 tersedia kendaraan 3 dan 4.
4 Permintaansetiap agen telah diketahui.
5 Kapasitas setiap kendaraan sama (homogen).
Masalah pendistribusian roti ke 20 agen oleh 2 depot dapat diformulasikan sebagai berikut:
Himpunan
= Himpunan semua depot, = Himpunan semua agen,
= Himpunan kendaraan yang akan berangkat dan kembali ke depot
= Himpunan semua kendaraan, . Indeks
= Indeks untuk menyatakan node (tempat), di mana terdapat 2 depot dan 20 agen, maka banyaknya node (tempat) adalah 22 tempat dan nilai dari
, , sedangkan menyatakan depot 1 dan depot 2, menyatakan agen (node yang akan dikunjungi).
= Indeks untuk menyatakan kendaraan, di mana terdapat 2 buah kendaraan pada setiap depot , sehingga
Parameter
= Banyaknya node (tempat) = 22 tempat
= Biaya tetap penggunaan kendaraan = Rp 50000,00/kendaraan = Biaya perjalanan dari node ke node = Rp 1000,00/km
= Banyaknya permintaan agen (diberikan pada Tabel 8 Lampiran 3) = Kapasitas maksimum kendaraan = 150 crate/kendaraan
Variabel Keputusan
{
{
= Variabel tambahan yang digunakan dalam eliminasi subtour untuk agen pada kendaraan ,
= Variabel tambahan yang digunakan dalam eliminasi subtour untuk agen pada kendaraan .
Fungsi Objektif
∑
∑ ∑ ∑
Kendala
1 Setiap kendaraan akan berangkat dari depot dan tidak harus semua kendaraan digunakan.
∑
∑
2 Kendaraan yang digunakan harus kembali ke depot yang sama saat ia berangkat.
∑
∑
3 Setiap agen dilayani tepat satu kali oleh sebuah kendaraan.
∑ ∑
∑ ∑
4 Rute harus kontinu, artinya setiap kendaraan yang mengunjungi suatu agen pasti akan meninggalkan agen tersebut.
∑
∑
5 Total permintaan dari semua agen yang dilalui oleh setiap kendaraan tidak boleh melebihi kapasitas maksimum kendaraan yang digunakan.
∑ ∑
6 Tidak ada agen yang dikunjungi oleh kendaraan yang tidak digunakan.
7 Tidak ada perjalanan antardepot.
8 Tidak ada perjalanan ke tempat yang sama.
9 Kendala eliminasi subtour yang bertujuan membentuk adanya tour yang fisibel.
10 Kendala biner dan ketaknegatifan.
HASIL DAN PEMBAHASAN
Penyelesaian kasus di atas dilakukan dengan menggunakan bantuan
software LINGO 11.0. Sintaks program dan hasil komputasi diberikan pada Lampiran 4. Menggunakan komputer dengan Sistem Operasi Windows 7, CPU 2.20GHz, RAM 4.0 GB diperoleh solusi optimal sebesar Rp 237730,00 dalam waktu 10 jam 59 menit 9 detik.
Tabel 6 memberikan hasil dari penyelesaian kasus di atas yang memberikan rute pendistribusian, jarak yang ditempuh kendaraan serta jumlah produk yang dibawa oleh setiap kendaraan yang digunakan.
Tabel 6 Rute pendistribusian, jarak tempuh, dan jumlah crate roti yang dibawa tiap kendaraan yang beroperasi
Kode
Kendaraan Rute Pendistribusian
Jarak yang ditempuh kendaraan (kilometer)
Jumlah
crate roti yang dibawa (crate)
1 - 0 0
2 1 20 12 10 1 25.4 39
3 2 17 11 18 15 19 5 3
9 2 33.74 140
4 2 6 16 21 8 13 4 22
Jumlah kendaraan yang digunakan untuk melakukan distribusi ke semua agen hanya 3 dari 4 kendaraan yang tersedia. Jarak yang ditempuh kendaraan dan jumlah crate roti yang dibawa pada kendaraan 1 adalah 0, ini menunjukkan bahwa kendaraan tersebut tidak digunakan.
Gambar 3 Rute pendistribusian kendaraan pada implementasi model
SIMPULAN DAN SARAN
Simpulan
Multi-Depot Vehicle Routing Problem (MDVRP) dapat dimodelkan sebagai masalah Integer Linear Programming (ILP). Model ini bertujuan meminimumkan total biaya distribusi ke semua agen, di mana setiap kendaraan yang digunakan akan memulai perjalanannya dari depot hingga kemudian harus mengakhiri perjalanannya di depot yang sama dengan tempat ia memulai perjalanannya.
Implementasi model pada pendistribusian dengan 2 depot dan 20 agen ini diperoleh nilai optimal dalam waktu 10 jam 59 menit 9 detik.
Saran
Pada karya ilmiah ini, data yang digunakan merupakan data hipotetik. Sehingga penelitian ini dapat dikembangkan dengan menggunakan data aktual. Selain itu, penelitian ini juga dapat dikembangkan dengan menambahkan kendala
time windows (horizon waktu) yang dimiliki setiap agen, lalu kendala pemilihan rute untuk distribusi apabila terjadi kemacetan, kendala adanya ritasi kendaraan lebih dari sekali, serta kendala lain yang relevan dengan kondisi aktual.
Rute 1
Rute 1
DAFTAR PUSTAKA
Cordeau J-F, Gendreau M, Laporte G, Potvin JY, Semet F. 2002. A Guide to Vehicle Routing Heuristics. Journal of Operation Research Society. 53:512-522.
Hoffman K, Padberg M, Rinaldi G. 2001. Traveling Salesman Problem. Kluwer Academic Publishers. doi:10.1007/1-4020-0611-X_1068.
Larsen J. 1999. Vehicle Routing with Time Windows – Finding optimal solutions efficiently.
Surekha P, Sumathi S. 2011. Solution to Multi-Depot Vehicle Routing Problem Using Genetic Algorithms. World Applied Programming. 1(3):118-131.
Lampiran 1
Sintaks dan hasil komputasi program LINGO 11.0 dalam menyelesaikan uji model simulasi 1 untuk Solusi Multi-Depot Vehicle Routing Problem
Menggunakan Integer Linear Programming
model:
sets:
vehicle/1..4/:w,z,b;
!w=kapasitas kendaraan dari depot 1;
!z=variabel keputusan bila kendaraan tipe-k dari depot 1 dioperasikan; !b=biaya tetap kendaraan;
node/1..6/:q;
!1=depot 1, 2=depot 2, 3-22=agen yang harus dilayani; !q=demand tiap node;
load(node,vehicle):U;
!U=variabel tambahan yang digunakan untuk eliminasi subtour; link(node,node):d,c;
!d=jarak;
!c=biaya perjalanan;
route(node,node,vehicle):x;
!x=variabel keputusan jika kendaraan tipe k digunakan untuk melayani j setelah i;
endsets
DATA:
!kapasitas kendaraan; w=
150 150 150 150 ;
!b=biaya tetap; b=
50000 50000 50000 50000 ;
!jarak; d=
0.00 14.55 18.97 30.55 15.86 30.08 14.55 0.00 26.78 31.08 22.45 1.19 18.97 26.78 0.00 8.60 4.26 3.48 30.55 31.08 8.60 0.00 18.64 26.56 15.86 22.45 4.26 18.64 0.00 23.36 30.08 1.19 3.48 26.56 23.36 0.00 ;
!demand produk setiap node; q=
0 0 50 50 100 100 ;
N=@size(node);
@for(node(i): @for(node(j)|j#NE#i:c(i,j)=1000*d(i,j))); !fungsi objektif;
min=@sum(vehicle(k) :b(k)*z(k))+@sum(vehicle(k):@sum(node(i):@sum(node( j)|i#NE#j:c(i,j)*x(i,j,k))));
!kendala-kendala;
!Setiap kendaraan akan berangkat dari depot dan seluruh kendaraan akan digunakan untuk melayani agen;
@for(vehicle(k)|k#LE#2: @sum(node(j)|j#GT#2:x(1,j,k))=z(k));
@for(vehicle(k)|k#GT#2: @sum(node(j)|j#GT#2:x(2,j,k))=z(k)); !kendaraan yang digunakan harus kembali ke depot;
@for(vehicle(k)|k#LE#2: @sum(node(i)|i#GT#2:x(i,1,k))=z(k));
@for(vehicle(k)|k#GT#2: @sum(node(i)|i#GT#2:x(i,2,k))=z(k)); !setiap pelanggan tepat dikunjungi sekali oleh satu kendaraan;
@for(node(j)|(j#GT#2): @sum(vehicle(k):@sum(node(i)|j#NE#i:x(i,j,k)))=1);
@for(node(i)|(i#GT#2): @sum(vehicle(k):@sum(node(j)|j#NE#i:x(i,j,k)))=1); !kekontinuan rute;
@for(vehicle(k): @for(node(p)|p#GT#2: @sum(node(i)|p#NE#i:x(i,p,k)) -
@sum(node(j)|p#NE#j:x(p,j,k))=0));
!barang yang diangkut untuk didistribusikan tidak melebihi kapasitas masingmasing kendaraan;
@for(vehicle(k):@sum(node(i)|i#GT#2:@sum(node(j)|j#NE#i:q(i)*x(i,j,k)))<=w( k));
!tidak ada agen yang di kunjungi oleh kendaraan yang tidak digunakan;
@for(vehicle(k): @for(node(i): @for(node(j)|i#NE#j:x(i,j,k)<=z(k)))); !tidak ada perjalanan dari suatu depot ke depot yang lain;
@for(vehicle(k) |k#LE#2:x(1,2,k)=0);
@for(vehicle(k) |k#GT#2:x(2,1,k)=0); !tidak ada perjalanan ke node yang sama;
@for(vehicle(k): @for(node(i):x(i,i,k)=0)); !x(i,j,k) dan z(k) adalah biner;
@for(node(i): @for(node(j)|j#NE#i: @for(vehicle(k): @bin(x(i,j,k)))));
@for(vehicle(k): @bin(z(k))); !eliminasi subtour;
Hasil yang diperoleh:
Global optimal solution found.
Objective value: 196500.0
Objective bound: 196500.0
Infeasibilities: 0.000000
Extended solver steps: 15
Total solver iterations: 4030
Variable Value
N 6.000000
W( 1) 150.0000 W( 2) 150.0000 W( 3) 150.0000 W( 4) 150.0000 Z( 2) 1.000000 Z( 3) 1.000000 B( 1) 50000.00 B( 2) 50000.00 B( 3) 50000.00 B( 4) 50000.00 Q( 3) 50.00000 Q( 4) 50.00000 Q( 5) 100.0000 Q( 6) 100.0000
D( 2, 3) 26.78000 D( 2, 4) 31.08000 D( 2, 5) 22.45000 D( 2, 6) 1.190000 D( 3, 1) 18.97000 D( 3, 2) 26.78000 D( 3, 4) 8.600000 D( 3, 5) 4.260000 D( 3, 6) 3.480000 D( 4, 1) 30.55000 D( 4, 2) 31.08000 D( 4, 3) 8.600000 D( 4, 5) 18.64000 D( 4, 6) 26.56000 D( 5, 1) 15.86000 D( 5, 2) 22.45000 D( 5, 3) 4.260000 D( 5, 4) 18.64000 D( 5, 6) 23.36000 D( 6, 1) 30.08000 D( 6, 2) 1.190000 D( 6, 3) 3.480000 D( 6, 4) 26.56000 D( 6, 5) 23.36000 C( 1, 2) 14550.00 C( 1, 3) 18970.00 C( 1, 4) 30550.00 C( 1, 5) 15860.00 C( 1, 6) 30080.00 C( 2, 1) 14550.00
Lampiran 2
Sintaks dan hasil komputasi program LINGO 11.0 dalam menyelesaikan uji model simulasi 2 untuk Solusi Multi-Depot Vehicle Routing Problem
Menggunakan Integer Linear Programming
model:
sets:
vehicle/1..4/:w,z,b;
!w=kapasitas kendaraan dari depot 1;
!z=variabel keputusan bila kendaraan tipe-k dari depot 1 dioperasikan; !b=biaya tetap kendaraan;
node/1..6/:q;
!1=depot 1, 2=depot 2, 3-22=agen yang harus dilayani; !q=demand tiap node;
load(node,vehicle):U;
!U=variabel tambahan yang digunakan untuk eliminasi subtour; link(node,node):d,c;
!d=jarak;
!c=biaya perjalanan;
route(node,node,vehicle):x;
!x=variabel keputusan jika kendaraan tipe k digunakan untuk melayani j setelah i;
endsets
DATA:
!kapasitas kendaraan; w=
150 150 150 150 ;
!b=biaya tetap; b=
50000 50000 50000 50000 ;
!jarak; d=
0.00 14.55 18.97 30.55 15.86 30.08 34.55 0.00 26.78 31.08 22.45 31.19 18.97 26.78 0.00 8.60 4.26 3.48 30.55 31.08 8.60 0.00 18.64 26.56 15.86 22.45 4.26 18.64 0.00 23.36 30.08 31.19 3.48 26.56 23.36 0.00 ;
q=
0 0 50 50 100 100 ;
ENDDATA
N=@size(node);
@for(node(i): @for(node(j)|j#NE#i:c(i,j)=1000*d(i,j))); !fungsi objektif;
min=@sum(vehicle(k) :b(k)*z(k))+@sum(vehicle(k):@sum(node(i):@sum(node( j)|i#NE#j:c(i,j)*x(i,j,k))));
!kendala-kendala;
!Setiap kendaraan akan berangkat dari depot dan seluruh kendaraan akan digunakan untuk melayani agen;
@for(vehicle(k)|k#LE#2: @sum(node(j)|j#GT#2:x(1,j,k))=z(k));
@for(vehicle(k)|k#GT#2: @sum(node(j)|j#GT#2:x(2,j,k))=z(k)); !kendaraan yang digunakan harus kembali ke depot;
@for(vehicle(k)|k#LE#2: @sum(node(i)|i#GT#2:x(i,1,k))=z(k));
@for(vehicle(k)|k#GT#2: @sum(node(i)|i#GT#2:x(i,2,k))=z(k)); !setiap pelanggan tepat dikunjungi sekali oleh satu kendaraan;
@for(node(j)|(j#GT#2): @sum(vehicle(k):@sum(node(i)|j#NE#i:x(i,j,k)))=1);
@for(node(i)|(i#GT#2): @sum(vehicle(k):@sum(node(j)|j#NE#i:x(i,j,k)))=1); !kekontinuan rute;
@for(vehicle(k): @for(node(p)|p#GT#2: @sum(node(i)|p#NE#i:x(i,p,k)) -
@sum(node(j)|p#NE#j:x(p,j,k))=0));
!barang yang diangkut untuk didistribusikan tidak melebihi kapasitas masingmasing kendaraan;
@for(vehicle(k):@sum(node(i)|i#GT#2:@sum(node(j)|j#NE#i:q(i)*x(i,j,k)))<=w( k));
!tidak ada agen yang di kunjungi oleh kendaraan yang tidak digunakan;
@for(vehicle(k): @for(node(i): @for(node(j)|i#NE#j:x(i,j,k)<=z(k)))); !tidak ada perjalanan dari suatu depot ke depot yang lain;
@for(vehicle(k) |k#LE#2:x(1,2,k)=0);
@for(vehicle(k) |k#GT#2:x(2,1,k)=0); !tidak ada perjalanan ke node yang sama;
@for(vehicle(k): @for(node(i):x(i,i,k)=0)); !x(i,j,k) dan z(k) adalah biner;
@for(node(i): @for(node(j)|j#NE#i: @for(vehicle(k): @bin(x(i,j,k)))));
@for(vehicle(k): @bin(z(k))); !eliminasi subtour;
Hasil yang diperoleh:
Global optimal solution found.
Objective value: 217580.0
Objective bound: 217580.0
Infeasibilities: 0.000000
Extended solver steps: 3 Total solver iterations: 768
Variable Value N 6.000000 W( 1) 150.0000 W( 2) 150.0000 W( 3) 150.0000 W( 4) 150.0000 Z( 1) 1.000000 Z( 2) 1.000000 B( 1) 50000.00 B( 2) 50000.00 B( 3) 50000.00 B( 4) 50000.00 Q( 3) 50.00000 Q( 4) 50.00000 Q( 5) 100.0000 Q( 6) 100.0000 U( 3, 1) 5.000000 U( 4, 1) 1.000000
D( 4, 1) 30.55000 D( 4, 2) 31.08000 D( 4, 3) 8.600000 D( 4, 5) 18.64000 D( 4, 6) 26.56000 D( 5, 1) 15.86000 D( 5, 2) 22.45000 D( 5, 3) 4.260000 D( 5, 4) 18.64000 D( 5, 6) 23.36000 D( 6, 1) 30.08000 D( 6, 2) 31.19000 D( 6, 3) 3.480000 D( 6, 4) 26.56000 D( 6, 5) 23.36000 C( 1, 2) 34550.00 C( 1, 3) 18970.00 C( 1, 4) 30550.00 C( 1, 5) 15860.00 C( 1, 6) 30080.00 C( 2, 1) 34550.00 C( 2, 3) 26780.00 C( 2, 4) 31080.00 C( 2, 5) 22450.00 C( 2, 6) 31190.00 C( 3, 1) 18970.00
Lampiran 3
Data jarak antarnode serta permintaan setiap node terhadap roti yang digunakan dalam implementasi model. Tabel 7 Jarak antarnode (dalam kilometer)
Tabel 8 Permintaan roti setiap node
Node 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Permintaan(crate) 0 0 27 20 15 13 11 23 14 9 10 17 18 21 20 16 15 24 15 13 8 12
Node 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Lampiran 4
Sintaks dan hasil komputasi program LINGO 11.0 dalam menyelesaikan Solusi
Multi-Depot Vehicle Routing Problem Menggunakan Integer Linear Programming
model:
sets:
vehicle/1..4/:w,z,b;
!w=kapasitas kendaraan dari depot 1
z=variabel keputusan bila kendaraan tipe-k dari depot 1 dioperasikan b=biaya tetap penggunaan kendaraan;
node/1..22/:q;
!1=depot 1, 2=depot 2, 3-22=agen yang harus dilayani q=demand tiap node;
load(node,vehicle):U;
!U=dummy variabel yang akan digunakan untuk eliminasi subtour; link(node,node):d,c;
!d=jarak
c=biaya perjalanan dari node i ke node j; route(node,node,vehicle):x;
!x=variabel keputusan jika kendaraan tipe k digunakan untuk melayani j setelah i;
endsets
DATA:
!kapasitas kendaraan;
w=@ole('F:\Data Skripsi\Data.xlsx') ;
!b=biaya tetap penggunaan kendaraan; b=@ole('F:\Data Skripsi\Data.xlsx') ;
!demand produk setiap node;
q=@ole('F:\Data Skripsi\Data.xlsx','demand') ;
!jarak;
d=@ole('F:\Data Skripsi\Data.xlsx') ;
ENDDATA
N=@size(node);
@for(node(i):@for(node(j)|j#NE#i:c(i,j)=1000*d(i,j))); !fungsi objektif;
min =
@sum(vehicle(k):b(k)*z(k))+@sum(vehicle(k):@sum(node(i):@sum(node(j)|i#N E#j:c(i,j)*x(i,j,k))));
!Setiap kendaraan akan berangkat dari depot dan tidak harus semua kendaraan digunakan untuk melayani agen;
@for(vehicle(k)|k#LE#2:@sum(node(j)|j#GT#2:x(1,j,k))=z(k));
@for(vehicle(k)|k#GT#2:@sum(node(j)|j#GT#2:x(2,j,k))=z(k)); !kendaraan yang digunakan harus kembali ke depot;
@for(vehicle(k)|k#LE#2:@sum(node(i)|i#GT#2:x(i,1,k))=z(k));
@for(vehicle(k)|k#GT#2:@sum(node(i)|i#GT#2:x(i,2,k))=z(k)); !setiap pelanggan tepat dikunjungi sekali oleh satu kendaraan;
@for(node(j)|(j#GT#2):@sum(vehicle(k):@sum(node(i)|j#NE#i:x(i,j,k)))=1);
@for(node(i)|(i#GT#2):@sum(vehicle(k):@sum(node(j)|j#NE#i:x(i,j,k)))=1); !kekontinuan rute;
@for(vehicle(k):@for(node(p)|p#GT#2:@sum
(node(i)|p#NE#i:x(i,p,k))-@sum(node(j)|p#NE#j:x(p,j,k))=0));
!barang yang diangkut untuk didistribusikan tidak melebihi kapasitas masing-masing kendaraan;
@for(vehicle(k):@sum(node(i)|i#GT#2:@sum(node(j)|j#NE#i:q(i)*x(i,j,k)))<=w( k));
!tidak ada agen yang di kunjungi oleh kendaraan yang tidak digunakan;
@for(vehicle(k):@for(node(i):@for(node(j)|i#NE#j:x(i,j,k)<=z(k)))); !tidak ada perjalanan antardepot;
@for(vehicle(k)|k#LE#2:x(1,2,k)=0);
@for(vehicle(k)|k#GT#2:x(2,1,k)=0);
!tidak ada perjalanan kembali ke agen yang sama;
@for(vehicle(k):@for(node(i):x(i,i,k)=0)); !x(i,j,k) dan z(k) adalah biner;
@for(node(i):@for(node(j)|j#NE#i:@for(vehicle(k):@bin(x(i,j,k)))));
@for(vehicle(k):@bin(z(k))); !eliminasi subtour;
Hasil yang diperoleh:
Global optimal solution found.
Objective value: 237730.0
Objective bound: 237730.0
Infeasibilities: 0.000000
Extended solver steps: 265275 Total solver iterations: 123178072
Variable Value N 22.0000 W( 1) 150.000 W( 2) 150.000 W( 3) 150.000 W( 4) 150.000 Z( 2) 1.00000 Z( 3) 1.00000 Z( 4) 1.00000 B( 1) 50000.0 B( 2) 50000.0 B( 3) 50000.0 B( 4) 50000.0 Q( 3) 27.0000
Q( 4) 20.0000 Q( 5) 15.0000 Q( 6) 13.0000 Q( 7) 11.0000 Q( 8) 23.0000 Q( 9) 14.0000 Q( 10) 9.00000 Q( 11) 10.0000 Q( 12) 17.0000 Q( 13) 18.0000 Q( 14) 21.0000 Q( 15) 20.0000 Q( 16) 16.0000 Q( 17) 15.0000
RIWAYAT HIDUP
Penulis dilahirkan di Tuban pada tanggal 27 Oktober 1992 sebagai anak kedua dari tiga bersaudara, dari pasangan Achmad Achwan dan Hasbiyah. Pada tahun 2011 penulis menamatkan pendidikan di SMA Negeri 2 Tuban. Pada tahun yang sama penulis lulus seleksi masuk IPB melalui jalur Undangan Seleksi Masuk IPB dan diterima di Departemen Matematika, Fakultas Matematika dan Ilmu Pengetehuan Alam.