• Tidak ada hasil yang ditemukan

ALGORITMA SEQUENTIAL INSERTION UNTUK MENYELESAIKAN MASALAH MULTIPLE TRIP VEHICLE ROUTING PROBLEM (MTVRP)

N/A
N/A
Protected

Academic year: 2021

Membagikan "ALGORITMA SEQUENTIAL INSERTION UNTUK MENYELESAIKAN MASALAH MULTIPLE TRIP VEHICLE ROUTING PROBLEM (MTVRP)"

Copied!
11
0
0

Teks penuh

(1)
(2)

1. Nine Winda Yunita adalah mahasiswa jurusan Matematika FMIPA Universitas Negeri Malang 2. Sapti Wahyuningsih adalah dosen jurusan Matematika FMIPA Universitas Negeri Malang 3. Darmawan Satyananda adalah dosen jurusan Matematika FMIPA Universitas Negeri Malang

ALGORITMA SEQUENTIAL INSERTION UNTUK MENYELESAIKAN MASALAH MULTIPLE TRIP VEHICLE ROUTING PROBLEM

(MTVRP)

Nine Winda Yunita1, Sapti Wahyuningsih2, dan Darmawan Satyananda3

Universitas Negeri Malang E-mail: [email protected]

Abstrak: Multiple Trip Vehicle Routing Problem (MTVRP) adalah

permasalahan dari VRP dengan perluasan dan penambahan multiple trip pada setiap kendaraan ketika mendistribusikan barang serta time window pelayanan customer. Pada artikel ini, permasalahan MTVRP diselesaikan dengan menggunakan algoritma sequential insertion. Proses pencarian rute pada algoritma tersebut dimulai dengan memilih pelanggan awal (seed

customer) dengan kriteria jarak terjauh dari depot, dilanjutkan dengan

mencari jarak terpendek dari seed customer kemudian disisipkan pada posisi terbaik. Proses ini dilakukan sampai semua titik telah terpilih. Kelebihan algoritma sequential insertion ini adalah pada pemilihan seed

customer berdasarkan jarak terjauh dari depot serta pemilihan customer

selanjutnya dengan mencari jarak terdekat dari seed customer. Karena iterasi yang berulang dengan proses yang sama sehingga diperlukan suatu program untuk mempermudah pencarian rute yakni program Borland

Delphi.

Kata kunci: Vehicle Routing Problem (VRP), Multiple Trip Vehicle Routing Problem (MTVRP), Algoritma Sequential Insertion

Dalam kehidupan sehari-hari graph digunakan untuk menggambar berbagai macam struktur yang ada. Tujuannya adalah sebagai visualisasi objek-objek agar lebih mudah dimengerti. Beberapa contoh graph yang dijumpai dalam kehidupan nyata, antara lain struktur organisasi, bagan alir pengambilan mata kuliah, masalah transportasi, dan distribusi produk. Pencarian rute kendaraan dapat mengoptimalkan jalur-jalur pengiriman sehingga biaya pendistribusian berkurang. Salah satu terapan dari teori graph yang banyak digunakan untuk menyelesaikan permasalahan pencarian rute kendaraan adalah multiple trip

vehicle routing problem (mtvrp). MTVRP adalah permasalahan dari Vehicle Routing Problem (VRP) dengan perluasan dan penambahan multiple trip pada

setiap kendaraan ketika mendistribusikan barang serta time window pelayanan customer. Setiap kendaraan dapat memiliki lebih dari satu rute pada periode perencanaan . Tujuannya adalah bagaimana menentukan sejumlah rute minimum yang berawal dan berakhir di outlet untuk sekumpulan kendaraan agar tiap customer dapat dilayani dengan memenuhi kendala yang ada. Kendala yang ada tersebut adalah jumlah permintaan tidak boleh melebihi kapasitas kendaraan dan total waktu, baik waktu tempuh (travel time) maupun waktu pelayanan (service

time), tidak boleh melebihi batas waktu (time window) yang telah ditentukan, dan

setiap customer hanya dilayani oleh satu kendaraan sehingga dapat ditentukan banyaknya kendaraan yang dibutuhkan dengan total jarak tempuh minimum.

(3)

Terdapat beberapa metode ataupun algoritma yang dikembangkan untuk menyelesaikan permasalahan Multiple Trip Vehicle Routing Problem (MTVRP). Algoritma-algoritma yang dikembangkan untuk menyelesaikan permasalahan tersebut adalah “Metode Insertion Heuristic” yang dibahas oleh Oktaviani Gladis Dwi pada skripsi tahun 2010, “Algortima Saving Procedure for Multiple Use Of Vehicle (SPMU)” yang dibahas oleh Budiarto Ricky pada skripsi tahun 2010, “Algoritma Sequential Insertion” yang dibahas oleh Pintomurti Florentia pada skripsi tahun 2012.

Pada jurnal Econometric Institute Report EI 9938/A Poot Alexander dkk, 1999 menyatakan bahwa algoritma sequential insertion diawali dengan memilih suatu pelanggan untuk menduduki posisi sebagai pelanggan awal (seed customer) pada rute dan tur pertama. Selanjutnya, tiap pelanggan akan dicoba disisipkan pada suatu busur (edge) tertentu yang memberikan kriteria terbaik bagi rute saat ini, batasan time window terpenuhi, dan total muatan kendaraan bagi rute saat ini tidak melebihi kapasitas kendaraan. Ada beberapa kriteria yang dapat digunakan yaitu earliest deadline (deadline tercepat), earliest ready time (waktu siap menerima pelayanan tercepat), shortest time window (waktu penyelesaian tercepat), longest travel time (waktu tempuh terjauh), dan random (acak) (Suprayogi, 2008). Kelebihan algoritma sequential insertion dengan kriteria

longest travel time (waktu tempuh terjauh) sebagai seed customer yakni dalam

menentukan seed customer dapat langsung ditentukan dengan mencari jarak terjauh antar customer dan depot. Untuk customer selanjutnya dipilih customer yang mempunyai jarak terdekat dengan customer sebelumnya.

Berdasarkan uraian diatas akan dikaji penggunaan algoritma sequential insertion pada multiple trip vehicle routing problem.

HASIL YANG DIHARAPKAN

1. Mengetahui karakteristik dari MTVRP serta permodelan matematikanya.

2. Menerapkan algoritma sequential insertion pada contoh penerapan MTVRP.

3. Mengimplementasikan algoritma sequential insertion dalam program Borland

Delphi 7.

HASIL DAN PEMBAHASAN

Aldous dan Wilson (2000: 6) mengungkapkan gagasan tentang graph, yaitu diagram yang merepresentasikan titik yang disebut verteks sebagai objek dan garis yang disebut sisi merepresentasikan hubungan antar objek. Graph yang digunakan untuk masalah pencarian rute kendaraan adalah graph komplit yang telah diberi bobot yaitu bilangan yang berasosiasi pada setiap sisi. Graph komplit adalah graph yang setiap dua titik yang berbeda dihubungkan oleh satu sisi. Graph komplit berbobot digunakan sebagai model dalam multiple trip vehicle routing

problem.

Multiple Trip Vehicle Routing Problem

Multiple Trip Vehicle Routing Problem (MTVRP) merupakan

pengembangan dari keterbatasan waktu dan rute pada model Vehicle Routing

Problem (VRP) dengan penambahan kendala bahwa kendaraan yang digunakan

(4)

dapat menggunakan banyak rute sepanjang waktu tempuh total, dengan aturan bahwa tidak boleh melampaui limit waktu yang telah ditetapkan sebelumnya. Formulasi MTVRP dengan tujuan meminimalkan total biaya atau total jarak tempuh dari rute perjalanan pendistribusian barang atau jasa (Emirul Bahar, 2003) adalah sebagai berikut:

a. ∑

Kendala ini untuk meminimalisasi biaya transportasi total dari rute.

b. ∑ ≥ 1 ∀ ∈

Batasan tersebut untuk menjamin bahwa seluruh customer dapat dilayani.

c. ∑ = 1, ∀ ∈ {0}

Batasan ini untuk memastikan bahwa setiap customer dikunjungi tepat satu kali oleh satu kendaraan.

d. ∑ =

Kendala ini memastikan bahwa terdapat K kendaraan yang beroperasi memulai rute dari depot.

e. ∑∈! ≤ , ∀" = 1,2, … ,

Kendala tersebut menjamin bahwa total permintaan konsumen dalam setiap rute tidak melebihi kapasitas kendaraan.

f. ∑ % ≤ %&'( ∀ " ∈

Batasan ini memastikan bahwa total waktu rute suatu kendaraan tidak melebihi waktu maksimum.

g. ∑ ≥ 1 ∀ " ∈

Kendala ini menjamin bahwa tiap kendaraan minimal melewati 1 jalur.

h. ∈ {0,1} ∀ " ∈ , ∀ ) ∈ *

Batasan tersebut menjamin variabel keputusan merupakan integer biner.

Dengan variabel keputusan:

= +1, , "- ". -)-- " . //0 -"- )01. )0, , "- 2.3- -

Keterangan formulasi :

: himpunan kendaraan pada depot, dengan = {1,2, … , "}

* : himpunan rute yang ditempuh kendaraan ", dengan * =

{* , *4, … , * }

: himpunan titik

: jumlah permintaan customer i

) : indeks rute

: biaya operasional kendaraan " yang menempuh rute )

: konstanta, yang bernilai 1 jika kendaraan " dengan rute ) yang

menuju customer , dan bernilai 0 untuk kondisi lainnya

% : waktu perjalanan kendaraan untuk menempuh rute )

%&'( : waktu perjalanan maksimum untuk suatu kendaraan

ALGORITMA SEQUENTIAL INSERTION PADA MULTIPLE TRIP VEHICLE ROUTING PROBLEM

Algoritma insertion ada dua macam yaitu algoritma parallel dan algoritma sequential insertion. Algoritma sequential insertion adalah dasar dari semua algoritma insertion (Alexander Poot dkk,1999).

(5)

Algoritma sequential insertion diawali dengan memilih suatu pelanggan untuk menduduki posisi sebagai pelanggan awal (seed customer) pada rute dan tur pertama. Selanjutnya, tiap pelanggan akan dicoba disisipkan pada suatu busur (edge) tertentu yang memberikan kriteria terbaik bagi rute saat ini, batasan time window terpenuhi, dan total muatan kendaraan bagi rute saat ini tidak melebihi kapasitas kendaraan.

Langkah-langkah menyelesaikan multiple trip vehicle routing problem dengan menggunakan algoritma sequential insertion adalah sebagai berikut: Langkah 1: Memilih kendaraan

Pilih kendaraan terbesar yang tidak melangsungkan perjalanan dan tidak digunakan sebelumnya.

Langkah 2: Memilih pelanggan pertama (seed customer)

Pilih pelanggan yang paling penting (contohnya pelanggan dengan jarak terjauh dari depot atau waktu pelayanan tercepat) dan layak dalam kendaraan. Jika gagal untuk memilih pelanggan kembali ke langkah 1, jika tidak tetapkan pelanggan pada

kendaraan saat ini.

Langkah 3: Menambahkan pelanggan ke rute baru

Pertama buat daftar kandidat untuk dimasukkan dalam rute. Kandidat adalah pelanggan yang tidak sedang dilayani serta memenuhi kendala kapasitas dan lokasinya tidak terlalu jauh dari pelanggan pertama (seed customer). Hitung untuk masing-masing kandidat penyisipan biayanya yaitu jarak ekstra yang dibutuhkan untuk melayani pelanggan. Urutkan pelanggan dalam daftar tidak penurunan pemesanan dari penyisipan biaya. Setiap kali coba untuk menyisipkan kandidat selanjutnya pada posisi terbaik yang memungkinkan pada rute. Jika tidak dapat menemukan pelanggan untuk disisipkan beberapa kali, maka lanjutkan ke langkah 4. Langkah 4: Pindah rute ke kendaraan yang lebih kecil

Coba untuk memindahkan rute ke kendaraan yang lebih kecil dari tipe kendaraan yang sama dan nomor daerah, untuk menghemat kapasitas kendaraan, tanpa melanggar kendala apapun. Jika rute telah dipindah ke kendarann lain, maka kembali ke langkah 3, jika tidak kembali ke langkah 1.

(6)

Berikut ini flowchart program algoritma sequential insertion.

Gambar 1 Flowchart program Algoritma Sequential Insertion Keunggulan algoritma ini terletak pada pencarian seed customer. Pada

Gambar 1 diatas terletak pada coi >= jauh, dengan jauh = coi. Kemudian

dilanjutkan dengan mencari jarak terdekat dengan i (customer yang terpilih). Pada gambar diatas terletak pada pemisalan jarak terdekat sebagai terkecil = 999,

kemudian untuk setiap customer dicari cij <= terkecil. Sehingga diperoleh jarak

terdekat terkecil = cij. terkecil:=999; cij <= terkecil terkecil = cij Ki < Ki+1 Pindahkan perjalanan ke kendaraan yang lebih kecil

F T

for i:=1 to jmlTitik do

for j:=1 to jmlTitik do F

T

Menambah pelanggan ke rute baru c0i >=jauh jauh=c0i F Begin Memilih kendaraan k = 1,2, ... , K End

Memilih pelanggan awal jauh:=0

(7)

Setelah membuat rancangan flowchart program yang akan dibuat langkah

selanjutnya adalah membuat rancangan tampilan program.Karena luas form yang

terbatas dan menggunakan banyak komponen, maka digunakan komponen PageControl. Satu page control akan berisi banyak page (tabsheet) yang saling bertumpuk (Darmawan:2012). Pada program MTVRP ini digunakan 5 tabsheet.

Untuk tabsheet pertama menggunakan komponen Image. Tabsheet kedua dan ketiga menggunakan komponen StringGird. Pada tabsheet keempat

menggunakan komponen Memo. Sedangkan pada tabsheet kelima sama dengan tabsheet pertama menggunakan komponen Image, akan tetapi pada tabsheet rute ini untuk menampilkan rute yang terbentuk dari hasil perhitungan. Selain itu di form utama ini juga terdapat kolom kapasitas, kecepatan rata-rata, time window serta waktu pelayanan. Pada program juga dilengkapi dengan button Reset, Open,

Save, dan Keluar.

Contoh Multiple Trip Vehicle Routing Problem dengan Algoritma Sequential Insertion

Perusahaan pigura yang berada di kota Batu memiliki 9 agen yang terdapat di kota Malang, Blitar, Kediri, Tulungagung, Jogjakarta, Klaten,

Surakarta, Magelang, Semarang. Setiap agen memiliki permintaan yang berbeda-beda. Perusahaan tersebut mengirimkan pigura dengan menggunakan kendaraan sebanyak 2 mobil box dengan kecepatan 80 km/jam dan memiliki kapasitas 400 box pigura. Perusahaan tesebut dapat melayani customer mulai pukul 12.00 sampai pukul 12.00 dua hari berikutnya. Waktu yang dibutuhkan untuk persiapan sebelum berangkat mengirim kira-kira 1jam. Sedangkan waktu yang dibutuhkan untuk mengangkat box pigura di tempat customer kira-kira 0.0125 jam.

Permintaan setiap customer serta jarak antar customer disajikan pada Tabel 1 dan Tabel 2 berikut.

Tabel 1 Permintaan customer

Customer 1 2 3 4 5 6 7 8 9

Permintaan 132 73 50 132 100 74 83 145 65

Tabel 2 Jarak antara perusahaan dengan customer dan antar customer

56 0 1 2 3 4 5 6 7 8 9 0 0 19.9 95.7 80.6 111 323 490 256 341 330 1 0 76.3 99.3 105 341 309 275 360 400 2 0 44.7 35.6 291 259 224 309 298 3 0 31.9 244 212 178 263 251 4 0 239 215 181 266 285 5 0 33.4 67.7 60.7 141 6 0 34.8 69.2 107 7 0 85.4 109 8 0 87.3 9 0 Keterangan :

0 = Perusahaan pigura di kota Batu 1 = Agen di kota Malang

2 = Agen di kota Blitar 3 = Agen di kota Kediri

(8)

4 = Agen di kota Tulungagung 5 = Agen di kota Jogjakarta 6 = Agen di kota Klaten

7 = Agen di kota Surakarta 8 = Agen di kota Magelang 9 = Agen di kota Semarang Penyelesaian menggunakan algoritma sequential insertion.

Langkah 1 : Kendaraan 1

Langkah 2 : Terpilih customer 6

Kendala kapasitas 78 = 74 ≤ ; (memenuhi)

%<=<>? = @<8+ % 8+ %8 = 13.175 ≤ % (memenuhi) Rute terpilih : 0 – 6 – 0 Langkah 3 : a. Penyisipan customer 5 Kendala kapasitas = 78+ 7E = 74 + 100 ≤ ; (memenuhi)

Mencari posisi terbaik

1. 0 – 5 – 6 – 0 %<=<>? = @<8+ @<E+ %E+ %E8+ %8 = 12.755 ≤ % (memenuhi) 2. 0 – 6 – 5 – 0 %<=<>? = @<8+ @<E+ %8+ %E8+ %E = 12.755 ≤ % (memenuhi) Rute terpilih : 0 – 5 – 6 – 0 b. Penyisipan customer 7 Kendala kapasitas = 78+ 7E+ 7F = 74 + 100 + 83 ≤ ; (memenuhi)

Mencari posisi terbaik

1. 0 – 7 – 5 – 6 – 0 %<=<>? = @<8+ @<E+ @<F+ %F+ %FE+ %E8+ %8 = 13.80125 < % (memenuhi) 2. 0 – 5 – 7 – 6 – 0 %<=<>? = @<8+ @<E+ @<F+ %E+ %EF+ %F8+ %8 = 14.65625 < % (memenuhi) 3. 0 – 5 – 6 – 7 – 0 %<=<>? = @<8+ @<E+ @<F+ %E+ %E8+ %8F+ %F = 11.3025 < % (memenuhi) Rute terpilih : 0 – 5 – 6 – 7 – 0

Ulangi langkah 3 sampai semua titik termuat dalam rute Dengan demikian diperoleh 3 rute oleh satu kendaraan yaitu:

1. 0 – 3 – 9 – 5 – 6 – 7 – 0 dengan %<=<>? = 14.61 jam

2. 0 – 2 – 4 – 8 – 0 dengan %<=<>? = 13.60375 jam

(9)

Penyelesaian menggunakan program.

Gambar 2 Hasil perhitungan

Gambar 3 Hasil rute

Dari Gambar 2 diatas diperoleh hasil rute [0,3,9,5,6,7,0] dengan waktu tempuh 14,61 jam, [0,2,4,8,0] dengan waktu tempuh 13,60375 jam, dan [0,1,0] dengan waktu tempuh 2,1475 jam. Gambar 3 adalah hasil gambar rute yang diperoleh pada hasil perhitungan Gambar 2.

PENUTUP Kesimpulan

Berdasarkan pembahasan dapat disimpulkan bahwa:

1. Multiple Trip Vehicle Routing Problem (MTVRP) merupakan pengembangan

dari keterbatasan waktu dan rute pada model Vehicle Routing Problem (VRP). Multiple Trip Vehicle Routing Problem (MTVRP) dapat

didefinisikan G = (N, E) adalah suatu graph dimana N = {0, 1, …, n} adalah

himpunan titik dan E

N x N adalah himpunan sisi. Karakteristik dari

MTVRP adalah setiap customer dilayani tepat satu kendaraan, jumlah dari permintaan customer dalam satu kendaraan tidak melebihi kapasitas

kendaraan, terdapat waktu pengiriman (time window) maksimum, dan setiap kendaraan mungkin melewati lebih dari satu lintasan dengan waktu tidak boleh melewati waktu maksimum. Tujuan MTVRP adalah meminimalisasi

(10)

biaya transportasi total dari rute dinyatakan dengan ∑

serta memenuhi kendala kapasitas ∑∈! ≤ , dan waktu

% ≤ %&'(.

2. Algoritma sequential insertion dapat menghasilkan rute yang optimal dengan

pemilihan seed customer yang tepat. Ada beberapa kriteria pemilihan seed

customer yakni deadline tercepat, waktu siap menerima pelayanan tercepat,

waktu pelayanan tercepat, jarak terjauh dari depot, dan random. Algoritma sequential insertion dapat diterapkan dalam kehidupan sehari-hari, seperti pencarian rute untuk pengiriman barang.

3. Penggunaan program dimulai dengan menginputkan kecepatan rata-rata

kendaraan, kapasitas kendaraan, time window, dan waktu persiapan pada kolom yang telah disediakan. Kemudian dilanjutkan dengan menginputkan banyaknya titik, permintaan setiap customer serta jarak antar customer. Output yang dihasilkan pada program tersebut adalah hasil rute dengan waktu yang ditempuh serta gambar rutenya. Pada program MTVRP tersebut telah dicoba 14, 18, 23, 29, 36, 38, 56, 66, dan 90 titik.

Saran

Pencarian rute yang optimal bergantung pada pemilihan seed customer yang tepat. Oleh karena itu, untuk selanjutnya dapat dikembangkan dengan kriteria pemilihan seed customer deadline tercepat maupun random.heterogen dan selain distribusi seragam serta meningkatkan jumlah pelanggan dan kapasitas kendaraan.

DAFTAR RUJUKAN

Aldous, Joan and Robin J. Wilson. 2000. Graph and Application. Great Britain : Springer.

Bahar, Emirul. 2003. Analisis Penentuan Jalur Transportasi Limbah Minyak

Pada Aktivitas Pelayaran Laut Untuk Menghasikan Total Biaya Pelayaran Minimum. Jurnal Ekonomi & Bisnis No.2, Jilid 8.

Budiarto, Ricky. 2010. Multiple Vehicle Routing Problem (MTVRP) dengan

Algoritma Self-Developed dan Saving Procedure for Multiple Use Of Vehicle (SPMU). Skripsi tidak diterbitkan. Malang: Fakultas Matematika

dan Ilmu Pengetahuan Alam Universitas Negeri Malang.

Oktaviani, Gladis Dwi. 2010. Implementasi Metode Insertion Heuristic dalam

Penyelesaian Multiple Trip Vehicle Routing Problem (MTVRP) dan Analisanya. Skripsi tidak diterbitkan. Malang: Fakultas Matematika dan

Ilmu Pengetahuan Alam Universitas Negeri Malang.

Pintomurti, Florentia. 2012. Algoritma sequential insertion pada penyelesaian

Vehicle Routing Problem With Multiple Trips and Intermediate Facility (VRPMTIF). Skripsi tidak diterbitkan. Malang: Fakultas Matematika dan

Ilmu Pengetahuan Alam Universitas Negeri Malang.

Poot, Alexander, Kant, Goos and Wagelmans, Albert P. M. 1999. A Savings

Based Method for Real-Life Vehicle Routing Problems. Econometric

Institute Report EI 9938/A.

Satyananda, Darmawan. 2012. Panduan Praktikum Struktur Data. Malang. Jurusan Matematika. Universitas Negeri Malang.

(11)

Suprayogi, Yusuf Priyandari. 2008. Algoritma Sequential Insertion untuk

Memecahkan Vehicle Routing Problem dengan Multiple Trips, Time Window dan Simultaneous Pickup Delivery. Jurnal Performa (2008) Vol.7,

No.1:88-96.

Wilson, R. J and Watkins, J. J. 1990. Graph an Introductory Approach a First

Gambar

Gambar 1 Flowchart program Algoritma Sequential Insertion
Tabel 1 Permintaan customer
Gambar 2 Hasil perhitungan

Referensi

Dokumen terkait

Dengan demikian dapat dikatakan bahwa solusi yang dihasilkan algoritma genetika lebih baik jika dibandingkan algoritma sweep dalam menyelesaikan Capacitated Vehicle

Tujuan dari penelitian ini adalah membentuk model vehicle routing problem (VRP) untuk pengangkutan sampah di Kota Yogyakarta, menyelesaikan model yang diperoleh

Berdasarkan pembahasan mengenai penerapan algoritma sweep dan algoritma genetika pada penyelesaian capacitated vehicle routing problem (CVRP) untuk distribusi gula

Pengembangan Algoritma Differential Evolution Untuk Penyelesaian Permasalahan Vehicle Routing Problem Simultaneous Deliveries Pick-Up With Time Windows (Vrpsdptw). Master

Vehicle Routing Problem (VRP) merupakan salah satu masalah transportasi yang dapat digambarkan sebagai sekumpulan kendaraan yang memulai dan mengakhiri perjalanannya untuk

Ibu Dian Palupi Restuputri, S.T.,M.T selaku dosen pembimbing I yang selalu dengan sabar membimbing, memberikan arahan, saran, dan kritikan yang sangat berharga selama

Capacitated Vehicle Routing Problem (CVRP) merupakan suatu permasalahan untuk menentukan rute pengiriman dari satu depot dengan menggunakan beberapa kendaraan yang berada

Namun, keberhasilan algoritma genetika untuk menyelesaikan permasalahan- permasalahan lain seperti travelling salesman problem (TSP) dan vehicle routing problem with