Introduction {#Sec1}
============

In recent years, logistics has drawn considerable attention in both research and industry. The Vehicle Routing Problem (VRP) is a classic logistics problem that seeks to find the optimal set of routes for a fleet of vehicles to service a given set of customers. Generally, the objective function of the VRP is to minimize the total travel distance. The VRP is proved NP-hard  \[[@CR10]\], when the size of the problem increases, exact algorithms become very time consuming and maybe invalid  \[[@CR5]\]. Therefore, researchers tend to use heuristics to solve VRPs.

In real-world scenarios, logistics companies or ride-hailing companies are facing the Dynamic Vehicle Routing Problems (DVRPs)  \[[@CR9]\]. For DVRPs, new customer requests arrive dynamically when the vehicles have already started servicing existing customer requests. Therefore, the routes of the vehicles have to be replanned at run time to minimize the cost, i.e, the routes have to be reoptimized. The reoptimization of DVRPs can be classified into two categories: periodic reoptimization and continuous reoptimization  \[[@CR14]\]. Generally, periodic reoptimization methods start with a first optimization of the initially known customer requests, then an optimization procedure solves the static VRP periodically with a fixed time interval  \[[@CR8]\]. For continuous reoptimization, whenever the new customer requests arrive, the reoptimization procedure starts to solve the new incoming data to update the routes  \[[@CR20]\]. Continuous reoptimization requires extensive computational resources. Also, if the new customer requests arrive very frequently, continuous reoptimization methods may repeat running and fail to update the routes. The advantages of periodic reoptimization are: 1) it transforms DVRPs to static VRPs to solve, and there exists extensive research on static VRPs; 2) the reoptimization is run independently during each time interval; 3) computational resources would be enough for each time interval; 4) it is more similar to practical applications. In this paper, we address the periodic reoptimization of DVRPs.

Many researches have been carried out based on the benchmark for DVRPs proposed by Kilby et al.  \[[@CR8]\] and extended by Montemanni et al.  \[[@CR12]\]. An algorithm based on Ant Colony System (ACS) was first proposed by Montemanni et al.  \[[@CR12]\] for the DVRPs. The ACS makes use of the pheromone to track the good components of a good solution. When the next time interval comes, the good components can be used by the reoptimization procedure. In addition, Hanshar et al. applied Genetic Algorithm (GA) to solve the DVRP and compared it with Tabu Search (TS)  \[[@CR6]\]. The proposed DVRP-GA algorithm used inversion operator  \[[@CR11]\] for mutation and a problem-specific operator Best-Cost Route Crossover (BCRC) for crossover. Moreover, a comparative study was carried out between the Dynamic Adapted Particle Swarm Optimization (DAPSO) algorithm and the Variable Neighborhood Search (VNS) algorithm for the DVRPs  \[[@CR7]\]. In the comparative study, the proposed DAPSO algorithm uses adaptive memory to reuse the information from the previous solutions, and the VNS algorithm systematically changes neighborhoods to escape from local optima. Additionally, an enhanced GA-based system  \[[@CR1]\] for DVRP was proposed to improve the DVRP-GA. The main modifications include the initial population of the time slices, the selection process, swap mutation, and a Local Optimal Condition (LOC) detection and escape strategy.

Brain Storm Optimization (BSO)  \[[@CR16], [@CR18]\] was first proposed in 2011, which is inspired by the human brainstorming process. In DVRPs, choosing different strategies to optimize the current state is similar to the brainstorming process. In the BSO procedure, different strategies were applied for simulating the problem owners to choose good solutions that they believe in the brainstorming process. To reduce the computational cost, an enhanced BSO algorithm in objective space named BSO-OS  \[[@CR17]\] was proposed in 2015. In this paper, we applied the BSO-OS algorithm and proposed a hybrid BSO algorithm named BSO-DVRP for solving DVRPs. The overall frame of the algorithm is BSO, and in the BSO procedure, two popular VRP heuristics are applied to generate new solutions, which are Adaptive Large Neighborhood Search (ALNS)  \[[@CR15]\] and ACS  \[[@CR3]\].

The rest of this paper is organized as follows. Section [2](#Sec2){ref-type="sec"} illustrates the definition and model of DVRP. Section [3](#Sec3){ref-type="sec"} introduces the proposed BSO-DVRP algorithm. Section [4](#Sec4){ref-type="sec"} first describes the benchmark and then evaluates the proposed algorithm. Section [5](#Sec7){ref-type="sec"} concludes the paper.

Problem Definition {#Sec2}
==================

In this paper, we explore a DVRP model based on the benchmark proposed by Kilby et al.  \[[@CR8]\] and Montemanni et al.  \[[@CR12]\], i.e., the DVRP model is a periodic reoptimization model. A DVRP model has a sequence of static VRP instances which contain all the customer requests known at each particular time, the periodic reoptimization needs to process the unserved customer requests.

In the DVRP model, all vehicles depart from the same depot to service customer requests. A vehicle is allowed to return to the depot when all customer requests have been serviced or the capacity of the vehicle has exceeded.

The DVRP has three parameters which are different from static VRP  \[[@CR1]\], which are: 1) the *available time* indicating that when the customer request appeared; 2) the *duration* for each customer request; 3) the *working day*, which determines the available time to service the customer requests.

For periodic reoptimization, the working day is divided into time slices. When new customer requests arrive during a time slice, these requests are delayed to the end of the time slice. Similar to static VRP, the objective function of DVRP is to minimize the total distance of all the routes. To better understand the DVRPs, Fig. [1](#Fig1){ref-type="fig"} shows an example of DVRP. At time *t*0, the routes of the vehicles were planned based on the initially known customer requests. At time *t*1, when vehicles were executing their routes, some new customer requests arrived, then the reoptimization procedure was executed to process the remaining unserved customers. At time *t*2, when all the customers were serviced, the vehicles returned to the depot.Fig. 1.An example of DVRP with

Proposed BSO-DVRP Algorithm {#Sec3}
===========================

For static VRPs, population based methods and local search or neighborhood search have been widely used. In the DVRPs, a difficult problem is when and how to choose good strategies to optimize the current state (time slice). A good strategy can not only avoid local optima, but also make use of the solutions obtained from previous time slice. In this paper, we choose BSO  \[[@CR17]\] as a framework to determine when and what strategy to choose, and choose ALNS  \[[@CR15]\] and ACS  \[[@CR3]\] from extensive heuristics for VRPs reported in literature as two good strategies to choose from.

ACS  \[[@CR3]\] is the most popular one among population based heuristics for VRP. The procedure of ACS is as the following: the ants depart from depot and select customers to service by pheromone one by one. When the ants can not service more customers, i.e., the vehicle capacity constraint can not be satisfied, the ants will return to the depot. Then, the ants will restart from the depot to service remained customers. The pheromone is updated after the ants completed their tours.

ALNS  \[[@CR15]\] is the most popular algorithm among neighborhood search for VRP. There are some heuristics to remove customer requests and some other heuristics to insert removed requests into routes in ALNS. The adaptive method is used to select the removal heuristics and inserting heuristics according to the history information.

BSO  \[[@CR16], [@CR18]\] is inspired by the human brainstorming process. In the BSO procedure, different strategies were applied for simulating the problem owners to choose good solutions that they believe in the brainstorming process. Since the clustering operation in the BSO algorithm is very time consuming, an enhanced version of BSO algorithm in objective space named BSO-OS  \[[@CR17]\] is proposed. In the BSO-OS algorithm, solutions are sorted according to their fitness values, and the top $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$perc_e$$\end{document}$ percentage are set as elitists, while the remaining are set as normals. New solutions are generated in four ways: 1) generate a new solution based on one randomly selected elitist; 2) generate a new solution based on two randomly selected elitists; 3) generate a new solution based on one randomly selected normal; 4) generate a new solution based on two randomly selected normals.

To guide the choice of strategies, we applied the BSO-OS algorithm to choose different strategies, i.e., ALNS or ACS for the periodic reoptimization. In this paper, we propose a hybrid BSO algorithm named BSO-DVRP for solving the DVRPs. The pseudocode of the proposed algorithm is shown in Algorithm 1.

The overall frame of the algorithm is BSO-OS, in which ALNS and ACS are applied to generate new solutions. The new solutions are generated based on one solution or two solutions, either in elitists or in normals. If one solution $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$S_i$$\end{document}$ is selected, then ALNS is applied to perform a neighborhood search to generate a new solution. If two solutions $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$S_i, S_j$$\end{document}$ are selected, then these two solutions are sent to the ACS as the initial solution. By updating the pheromones, a new solution will be generated by ACS.

Experimental Results {#Sec4}
====================

Benchmark Description and Experiments Setup {#Sec5}
-------------------------------------------

In our experiments, we used the benchmarks proposed by Kilby et al.  \[[@CR8]\] and extended by Montemanni et al.  \[[@CR12]\], which were designed based on popular static VRP benchmarks proposed by Taillard  \[[@CR19]\], Christofides and Beasley  \[[@CR2]\], and Fisher  \[[@CR4]\]. There are three datasets in the benchmark: the first dataset has 12 instances with 75 to 150 customers; the second dataset consists of seven instances with 50 to 199 customers; and the third dataset contains two instances with 71 and 134 customers. In the DVRP instances, three types of data were introduced: 1) *available time* indicating that when the request first appeared; 2) *duration* for each request; 3) *working day*, which is the length of the day.

According to  \[[@CR13]\], when the number of time slices $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$n_{ts}$$\end{document}$ is set as 25, the trade-off between the total distance and the computational cost is well balanced. In addition, the working day is set as $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$16\times 25=400$$\end{document}$. The parameter settings of the BSO-OS algorithm are listed in Table [1](#Tab1){ref-type="table"}.Table 1.Parameter settings for BSO-OS$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$perc_{e}$$\end{document}$$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$p_{elitists}$$\end{document}$$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$p_{one}$$\end{document}$$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$max\_iter$$\end{document}$0.10.20.6150

In Table [1](#Tab1){ref-type="table"}, $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$perc_{e}$$\end{document}$ is the percentage of elitists, $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$p_{elitists}$$\end{document}$ is the probability of choosing elitists, $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$p_{one}$$\end{document}$ is the probability of choosing one solution, and $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$max\_iter$$\end{document}$ is the maximum number of iterations.

The proposed algorithm was programmed in Python, and the DVRP experiments were conducted on an Intel Xeon E5-2650 CPU\@2.30 GHz PC with 16 GB RAM.

Comparative Study {#Sec6}
-----------------

To evaluate the proposed algorithm, a comparative study has been conducted. The compared algorithms for DVRP are ACS  \[[@CR12]\], DVRP-GA and TS  \[[@CR6]\], DAPSO and VNS  \[[@CR7]\], and the GA-based DVRP  \[[@CR1]\]. The experimental results are given in Table [2](#Tab2){ref-type="table"}, in which the best result for each instance is highlighted with bold fonts. The gap of the total distance (TD) is computed according to Eq. ([1](#Equ1){ref-type=""}).Table 2.Experimental results and comparison with literature for DVRPInstanceACSDVRP-GATSDAPSOVNSGA-based DVRPBSO-DVRPGap ($\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$\%$$\end{document}$)c50631.30603.57570.89575.89599.53**566.01**597.185.22c751009.36981.51981.57970.45981.64944.46**938.79**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-0.60$$\end{document}$c100973.26997.15961.10988.271022.92943.89**912.83**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-3.40$$\end{document}$c100b944.23891.42881.92924.32**866.71**869.41900.483.75c1201416.451331.801303.591276.881285.211288.66**1173.10**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-8.85$$\end{document}$c1501345.731318.221348.881371.081334.731273.50**1254.47**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-1.52$$\end{document}$c1991771.041750.091654.511640.401679.651646.36**1631.23**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-0.56$$\end{document}$tai75a1843.081778.521782.911816.071806.811744.78**1713.46**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-1.83$$\end{document}$tai100a2375.922208.852232.712249.842250.50**2181.31**2237.902.53tai150a3644.783488.023328.853400.333479.44**3280.79**3391.393.26tai75b1535.431461.371464.561447.391480.701441.35**1426.93**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-1.01$$\end{document}$tai100b2283.972219.282147.702238.422169.102119.03**2068.12**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-2.46$$\end{document}$tai150b3166.883109.232933.403013.992934.86**2885.94**2899.560.47tai75c1574.981406.271440.541481.351621.031433.73**1392.96**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-0.96$$\end{document}$tai100c1562.301515.101541.281532.561490.581504.63**1479.48**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-0.75$$\end{document}$tai150c2811.482666.282612.682714.342674.29**2593.78**2596.670.11tai75d1472.351430.83**1399.83**1414.281446.501408.481503.796.91tai100d2008.131881.911834.601955.061969.94**1793.64**1855.263.32tai150d3058.872950.832950.613025.432954.64**2911.47**3073.545.27f71311.18280.23301.79279.52304.32288.30**270.28**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-3.42$$\end{document}$f13415135.5115717.9015528.8115875.0015680.0514871.40**14831.29**$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-0.27$$\end{document}$ $$\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$\begin{aligned} Gap = \frac{TD_{ours} - TD_{best}}{TD_{ours}} \end{aligned}$$\end{document}$$where $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$TD_{ours}$$\end{document}$ is the total distance obtained by the proposed algorithm, and $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$TD_{best}$$\end{document}$ is the best total distance among all the compared algorithms for DVRP. A negative gap illustrates that the proposed algorithm outperforms all the other algorithms for DVRP, while a positive gap shows that the proposed algorithm is worse than the best result obtained by other algorithms.

As is observed from Table [2](#Tab2){ref-type="table"}, 12 out of 21 new best solutions were found by the proposed algorithm, and the gap between our solutions and the previously best solutions ranges from $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-8.85\%$$\end{document}$ to $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$-0.27\%$$\end{document}$. From Table [2](#Tab2){ref-type="table"}, the other nine solutions obtained by the proposed algorithm have a gap range from $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$0.11\%$$\end{document}$ to $\documentclass[12pt]{minimal}
                \usepackage{amsmath}
                \usepackage{wasysym} 
                \usepackage{amsfonts} 
                \usepackage{amssymb} 
                \usepackage{amsbsy}
                \usepackage{mathrsfs}
                \usepackage{upgreek}
                \setlength{\oddsidemargin}{-69pt}
                \begin{document}$$6.91\%$$\end{document}$, which are also competitive. All these results showed that the proposed algorithm is effective to generate high quality solutions for the DVRPs.

Conclusions {#Sec7}
===========

In this paper, we proposed a BSO algorithm named BSO-DVRP for solving DVRPs. By cutting the working day into a certain number of time slices, the DVRP was transformed into static VRP to solve. To guide the choice of strategies for the periodic reoptimization, the BSO-OS algorithm was applied. In addition, two popular heuristics, ALNS and ACS were selected for generating new solutions in the proposed BSO procedure.

The experiments were conducted on the DVRP benchmark, and a comparative study with six algorithms for DVRP was carried out. A total of 12 out of 21 new best solutions were found by the proposed algorithm, and the other solutions obtained by the proposed algorithm were also competitive, which illustrated the effectiveness of the proposed algorithm.

This work is supported by the National Science Foundation of China under the Grant No. 61761136008, the Shenzhen Peacock Plan under the Grant No. KQTD2016112514355531, the Program for Guangdong Introducing Innovative and Entrepreneurial Teams under the Grant No. 2017ZT07X386, the Science and Technology Innovation Committee Foundation of Shenzhen under the Grant No. ZDSYS201703031748284.
