WO2021144577A1 - Vehicle routing - Google Patents

Vehicle routing Download PDF

Info

Publication number
WO2021144577A1
WO2021144577A1 PCT/GB2021/050085 GB2021050085W WO2021144577A1 WO 2021144577 A1 WO2021144577 A1 WO 2021144577A1 GB 2021050085 W GB2021050085 W GB 2021050085W WO 2021144577 A1 WO2021144577 A1 WO 2021144577A1
Authority
WO
WIPO (PCT)
Prior art keywords
vehicles
items
clusters
cluster
vehicle
Prior art date
Application number
PCT/GB2021/050085
Other languages
French (fr)
Inventor
Carmen BARLETTA
Kalyani HOMKAR
Daniel SAUNDERS
Original Assignee
Basemap Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Basemap Ltd. filed Critical Basemap Ltd.
Publication of WO2021144577A1 publication Critical patent/WO2021144577A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management
    • G06Q10/083Shipping
    • G06Q10/0835Relationships between shipper or supplier and carriers
    • G06Q10/08355Routing methods

Definitions

  • the present specification relates to vehicle routing.
  • Routing vehicles in an efficient manner may present a number of challenges. There remains a need for further improvements in this field. Summary
  • this specification provides a method comprising: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
  • the clustering comprises: determining capacity of the one or more vehicles; determining a total number of clusters, based at least partially on the capacity of the one or more vehicles; determining centroid values for the one or more clusters; and assigning each of the plurality of items to one of the one or more clusters.
  • determining the total number of clusters comprises: sorting the plurality of items in decreasing order of weight and/ or size; summing weights and/ or sizes of one or more sorted items starting from the item with the highest weight and/or size until capacity of a first vehicle with a lowest capacity among the one or more vehicles is reached, such that a total maximum weight and/or size of one or more items in a respective cluster is lower than or equal to the capacity of the first vehicle of the plurality; wherein a respective capacity of the one or more vehicles may be based on a threshold weight and/or size corresponding to the respective vehicle; determining a first number of items for which the weights are summed until the capacity of the first vehicle is reached; and determining the total number of clusters based on a ratio of the total number of the plurality of items and the first number of items.
  • the assigning comprises assigning a first item of the plurality to a first cluster if: a distance of a centroid of the first cluster from a delivery location of the first item is the least among distances of one or more other centroids of one or more other clusters from the delivery location of the first item; and priority of the first item is highest among other items of the plurality whose delivery locations are within a threshold distance from the centroid of the first cluster.
  • Some examples may further comprise iteratively performing the assignment of each item to clusters such that: distance between items in a single cluster is minimized; and distance between centroids of each cluster is maximized.
  • determining the distribution of one or more vehicles comprises: estimating the energy consumption factor for the one or more vehicles, wherein the energy consumption factor indicates an amount of energy required for the one or more vehicles for delivering items in the corresponding one or more clusters respectively.
  • determining the distribution of vehicles comprises: classifying the one or more clusters into an area type; estimating a first energy consumption for one or more clusters based at least partially on the area types; classifying one or more possible routes into a route type, wherein the one or more possible routes comprise routes for the one or more vehicles for delivering the plurality of items; and estimating a second energy consumption for one or more possible routes based at least partially on the route types.
  • the area type selected from a free flow area type and a congested area type and the route type is selected from a free flow route type and a congested route type.
  • Some examples may further comprise using the estimated first energy consumption and the estimated second energy consumption for the one or more possible routes for determining an optimal route for the one or more vehicles.
  • the determination of one or more routes for the one or more vehicles is performed using one or more of a Monte Carlo Tree Search algorithm, and/ or a Tabu Search algorithm. In some examples, the determination of one or more routes for the one or more vehicles is performed based on one or more preferences and/ or priorities assigned to the one or more preferences, the preferences comprising one or more of: minimizing the number of undelivered items, minimizing total route length, minimizing unused capacity of the vehicles, avoiding complete battery depletion of electric vehicles, maximizing number of items delivered by electric vehicles in defined areas, and minimizing cost of delivery.
  • the one or more vehicles comprise one or more electric vehicles, one or more non-electric vehicles, and/ or one or more hybrid vehicles, wherein the distribution of the one or more vehicles for the one or more clusters is further based, at least in part, on whether a vehicle is an electric vehicle, a non-electric vehicle, or a hybrid vehicle.
  • this specification describes an apparatus comprising means configured to perform any method as described in any one of the preceding claims.
  • this specification describes computer-readable instructions which, when executed by computing apparatus, cause the computing apparatus to perform any method as described with reference to the first aspect.
  • this specification describes an apparatus comprising means for: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
  • the means for clustering comprises means for: determining capacity of the one or more vehicles; determining a total number of clusters, based at least partially on the capacity of the one or more vehicles; determining centroid values for the one or more clusters; and assigning each of the plurality of items to one of the one or more clusters.
  • the means for determining the total number of clusters comprises means for: sorting the plurality of items in decreasing order of weight and/or size; summing weights and/or sizes of one or more sorted items starting from the item with the highest weight and/or size until capacity of a first vehicle with a lowest capacity among the one or more vehicles is reached, such that a total maximum weight and/or size of one or more items in a respective cluster is lower than or equal to the capacity of the first vehicle of the plurality; wherein a respective capacity of the one or more vehicles maybe based on a threshold weight and/or size corresponding to the respective vehicle; determining a first number of items for which the weights are summed until the capacity of the first vehicle is reached; and determining the total number of clusters based on a ratio of the total number of the plurality of items and the first number of items.
  • the means for assigning comprises means for assigning a first item of the plurality to a first cluster if: a distance of a centroid of the first cluster from a delivery location of the first item is the least among distances of one or more other centroids of one or more other clusters from the delivery location of the first item; and priority of the first item is highest among other items of the plurality whose delivery locations are within a threshold distance from the centroid of the first cluster.
  • Some examples may include means for iteratively performing the assignment of each item to clusters such that: distance between items in a single cluster is minimized; and distance between centroids of each cluster is maximized.
  • the means for determining the distribution of one or more vehicles comprises means for: estimating the energy consumption factor for the one or more vehicles, wherein the energy consumption factor indicates an amount of energy required for the one or more vehicles for delivering items in the corresponding one or more clusters respectively.
  • the means for determining the distribution of vehicles comprises means for: classifying the one or more clusters into an area type; estimating a first energy consumption for one or more clusters based at least partially on the area types; classifying one or more possible routes into a route type, wherein the one or more possible routes comprise routes for the one or more vehicles for delivering the plurality of items; and estimating a second energy consumption for one or more possible routes based at least partially on the route types.
  • the area type selected from a free flow area type and a congested area type
  • the route type is selected from a free flow route type and a congested route type.
  • Some examples may further comprise means for using the estimated first energy consumption and the estimated second energy consumption for the one or more possible routes for determining an optimal route for the one or more vehicles.
  • the determination of one or more routes for the one or more vehicles is performed using one or more of a Monte Carlo Tree Search algorithm, and/or a Tabu Search algorithm.
  • the determination of one or more routes for the one or more vehicles is performed based on one or more preferences and/ or priorities assigned to the one or more preferences, the preferences comprising one or more of: minimizing the number of undelivered items, minimizing total route length, minimizing unused capacity of the vehicles, avoiding complete battery depletion of electric vehicles, maximizing number of items delivered by electric vehicles in defined areas, and minimizing cost of delivery.
  • the one or more vehicles comprise one or more electric vehicles, one or more non-electric vehicles, and/ or one or more hybrid vehicles, wherein the distribution of the one or more vehicles for the one or more clusters is further based, at least in part, on whether a vehicle is an electric vehicle, a non-electric vehicle, or a hybrid vehicle.
  • the means may comprise: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program configured, with the at least one processor, to cause the performance of the apparatus.
  • this specification describes a computer program comprising instructions for causing an apparatus to perform at least the following: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
  • this specification describes a computer-readable medium (such as a non-transitory computer-readable medium) comprising program instructions stored thereon for performing at least the following: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
  • this specification describes an apparatus comprising: at least one processor; and at least one memory including computer program code which, when executed by the at least one processor, causes the apparatus to: cluster a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determine a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determine a route for each of the one or more vehicles.
  • this specification describes an apparatus comprising: a clustering module configured to cluster a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; a vehicle distribution module configured to determine a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and a routing module configured to determine a route for each of the one or more vehicles.
  • FIGs. 1 and 2 are block diagrams of systems in accordance with example embodiments;
  • FIGs. 3 to 5 are flowcharts showing algorithms in accordance with example embodiments;
  • FIG. 6 is a block diagram of a system in accordance with an example embodiment
  • FIG. 7 is a flowchart of an algorithm in accordance with an example embodiment
  • FIGs. 8 to 12 are block diagrams of systems in accordance with example embodiments
  • FIGs. 13 and 14 are routing plots generated in accordance with example embodiments
  • FIGs. 15 to 17 are block diagrams of systems in accordance with example embodiments.
  • FIG. 1 is a block diagram of a system, indicated generally by the reference numeral 10, in accordance with an example embodiment.
  • System 10 shows a plurality of delivery locations represented by nodes 11, an originating location 12 (e.g. a mail depot), and one or more vehicles 13 to 16.
  • the plurality of delivery locations of nodes 11 may correspond to delivery locations of a plurality of items (e.g. letters, parcels, etc.) that are to be delivered using one or more of the vehicles 13 to 16.
  • Some example embodiments provided below describe routing of one or more of the plurality of vehicles 13 to 16, such that the plurality of items may be delivered to the respective delivery locations of nodes 11 in an efficient way, for example, such that energy consumption, time, and/ or other resources for delivery of the items may be optimized.
  • the one or more vehicles 13 to 16 may be part of a mixed fleet, such that the vehicles may have different capacities, and/or may include one or more of non-electric vehicles (e.g. combustion vehicles (e.g. diesel or petrol)), electric vehicles (EV) and/or hybrid electric vehicles.
  • non-electric vehicles e.g. combustion vehicles (e.g. diesel or petrol)
  • EV electric vehicles
  • hybrid electric vehicles e.g. non-electric vehicles
  • the usage of the electric vehicles for delivery of items may introduce constraints such as limited range of distance dependent on availability of charging stations.
  • use of electric vehicles may cause range anxiety, for example, regarding the state of charge (SoC), or regarding whether the electric vehicle would be able to make all required deliveries and still have enough charge to return to the base (originating location 12, such as a mail depot).
  • FIG. 2 is a block diagram of a system, indicated generally by the reference numeral 20, in accordance with an example embodiment.
  • System 20 comprises the elements 11 to 16 of system 10. Items that are to be delivered to delivery locations that are geographically located close to each other may be clustered into groups, for example, to facilitate delivery of these items by a single vehicle. For example, items corresponding to nodes 11a to nd may be clustered into a cluster 21, items corresponding to nodes lie to nh maybe clustered into a cluster 22, items corresponding to nodes nj to lin maybe clustered into a cluster 23, and items corresponding to nodes up to 11s maybe clustered into a cluster 24.
  • the node ni is seen to be approximately midway between the nodes lie to nh and the nodes nj to lin.
  • one or more items corresponding to the node 111 may either be in an additional cluster, or may be assigned to one of the clusters 22 or 23.
  • the clustering shown is an example only, such that the items may be clustered differently.
  • the clustering may be determined using a clustering algorithm, as described further below.
  • FIG. 3 is a flowchart of an algorithm, indicated generally by the reference numeral 30, in accordance with an example embodiment.
  • a plurality of items that are to be delivered using one or more vehicles (e.g. vehicles 13 to 16), maybe clustered in one or more clusters.
  • the items maybe clustered into the clusters 21 to 24, as shown in FIG. 2.
  • the clustering is described in further details below with reference to FIGs. 4, 5, and 6.
  • vehicle distribution is performed, such that a distribution of one or more vehicles for the one or more clusters is determined.
  • the vehicle distribution may be determined based, at least in part, on an energy consumption factor.
  • the energy consumption factor may indicate an amount of energy required for the one or more vehicles for delivering items in the corresponding one or more clusters respectively.
  • the vehicle distribution may be performed by taking into account the capacity of each vehicle, and including optimizing energy consumption and optionally minimizing emissions (e.g. by using electric vehicles in an efficient way) among the plurality of vehicles.
  • Performing the vehicle distribution may comprise selecting a vehicle for delivering items of one or more clusters, such that items in a single cluster are to be delivered using a single vehicle. For example, as the items corresponding to nodes 11a to nd are clustered into a single cluster 21, items of the cluster 21 may be determined to be delivered using the same vehicle.
  • a single vehicle is able to be assigned to deliver items corresponding to one or more clusters.
  • the vehicle distribution may be performed such that the vehicle 13 is assigned to deliver items corresponding to both the cluster 21 and 22. The vehicle distribution is described in further detail below with reference to FIGs. 7 to 10.
  • routing is performed, such that a route is determined for each of the one or more vehicles.
  • the routing maybe performed in order to determine a route that each of the vehicles may take in order to deliver the plurality of items.
  • the routing may be performed such that energy consumption among the plurality of vehicles is optimized (e.g. minimized).
  • the routing may further be performed such that the number of unrouted parcels is minimized. For example, once one or more clusters are assigned to a vehicle, the routing maybe performed to determine an order in which the items of the one or more clusters may be delivered, and the route the vehicle should take for delivering the items in the determined order.
  • the routing is described in further details below with reference to FIGs. 7, 11 and 12.
  • FIG. 4 is a flowchart of an algorithm, indicated generally by the reference numeral 40, in accordance with an example embodiment.
  • the clustering of operation 32 of FIG. 3 may include the operations 42 to 50 of algorithm 40.
  • capacity of one or more vehicles may be determined.
  • the capacity of a vehicle may indicate a threshold weight and/or size (e.g. volume, surface area, length, width, height, shape, etc.) corresponding to the respective vehicle.
  • a vehicle may have a threshold weight that the vehicle can carry, such that it may not be safe for the vehicle to carry more than the threshold weight.
  • the vehicle may have a threshold size such that the vehicle may only be able to fit one or more items whose total size may be lower than the threshold size of the vehicle.
  • the fleet may be composed of vehicles of different capacities (e.g.
  • a maximum cluster demand (max_demand) may be set such that each cluster has a total demand (weight and/or size) lower than the capacity of a vehicle with the lowest capacity.
  • the capacity of the vehicle with the lowest capacity may be referred to as a minimum capacity (e.g. equal to max_demand).
  • the number of clusters for clustering the plurality of items is determined based, at least in part, on the capacity of the vehicles and a maximum number of items that may be assigned to each cluster. For example, with reference to FIG. 2, four clusters (e.g. the clusters 21 to 24) are determined. The determination of the number of clusters is described in further detail below with reference to FIG. 5.
  • one or more centroids e.g. mid-point of one or more delivery locations in the cluster
  • the number of centroids determined may be equal to the number of clusters determined at operation 44.
  • the centroids e.g. initial centroids
  • the centroids generated in this operation may represent initial centroids.
  • the delivery locations e.g. nodes 11a to 11s
  • the minimum spanning tree maybe formed by all the nodes of the system 10 except the mail depot.
  • the algorithm may comprise iteratively removing from the tree the arcs with highest arc weight.
  • the arc weight may represent distance between two nodes in the graph. For example, in order to build k clusters, k-i edges may be removed, so as to have a better initial centroids distribution and to possibly guide the clustering algorithm to a faster convergence.
  • each of the plurality of items may be assigned to a cluster.
  • the assigning of a first item to a cluster may comprise determining a distances (e.g. shortest path distance) of centroids of each cluster from the delivery location of the first item.
  • a first cluster may be determined to be closest to the delivery location of the first item, such that a first distance of the centroid of the first cluster is lowest among distances of one or more other centroids of one or more other clusters from the delivery location of the first item.
  • the first item may be assigned to the first cluster based on the priority of the first item among all other items whose delivery locations are closest to the first cluster compared to other clusters.
  • the priority of the first item maybe calculated as a ratio of the first distance ( distanced and the demand ( demandi ; e.g. weight and/or size) of the first item. As such, if the priority ( distancei / demandi) of the first item is the highest, - li the first item may be assigned to the first cluster. If the priority of the first item is not the highest, the first item is not assigned to the first cluster in the present iteration, and one or more further iterations may be performed for assigning the first item to a cluster.
  • the centroids may be recomputed, for example, using a k-median algorithm, such that the median for a cluster is determined to be the centroid of the cluster.
  • the k-median algorithm may be used for forming clusters that are compact. For example, the intra-cluster distance (e.g. distance between nodes of a cluster) is minimized, while the inter-cluster distance (e.g. distance between centroids of each cluster) is maximized.
  • the first item may be the item associated with the node lii.
  • the operation 48 maybe performed for assigning the first item to one of the clusters 21 to 24.
  • the distance between the node 111 and the centroid of the cluster 21 may be 10 kilometers (km)
  • the distance between the node 111 and the centroid of the cluster 22 may be 2km
  • the distance between the node 111 and the centroid of the cluster 23 may be 2.5km
  • the distance between the node 111 and the centroid of the cluster 24 may be 11km.
  • the first distance (distance 0 may be considered to be 2km.
  • the priority of the first item may be determined based on the demand of the first item and the first distance. For example, since the first item corresponding to node lii is the only one item that is not yet assigned to a cluster, the first item may have the highest priority, and the first item may therefore be assigned to the cluster 22 (e.g. assuming that the total demand of nodes lie to nh and node ni is lower than the minimum capacity of the vehicles 13 to 16; and assuming that the number of nodes in cluster 22 does not exceed a determined maximum number of items or nodes as described in further detail in operation 56 when the first item is assigned).
  • the priority of the first item may be compared with priorities of one or more items corresponding to the nodes lie to nh in the cluster 22. For example, if the total demand of the nodes lie to nh and node ni is higher than the minimum capacity of the vehicles 13 to 16, one or more nodes lie to ni may not be assigned to the cluster 22. As such, if the priority of the first item corresponding to node lii is lower than priorities of each of the items of nodes lie to nh, the node 111 is not assigned to the cluster 22. In a subsequent iteration, the first item may then be assigned to another cluster (e.g. cluster 21, 23, or 24).
  • another cluster e.g. cluster 21, 23, or 24.
  • the first item may be assigned the cluster 22, and the item corresponding to node nh may be assigned to another cluster, and not assigned to the cluster 22 in order to keep the total demand of the cluster 22 lower than the minimum capacity of the vehicles 13 to 16.
  • the item corresponding to the node nh may then be assigned to another cluster (e.g. one of the cluster 21, 23, or 24, or a new cluster with a new centroid).
  • Similar assigning of one or more items may be performed in a plurality of iterations, such that both the distance and priority of items with regard to centroids of clusters are taken into account.
  • the cluster centroids are computed at each iteration. In a first iteration, initial centroids may be computed with HMST. In the subsequent iterations, centroids may be computed with the median of each cluster. The clusters built at each iteration maybe marked as optimal clusters if they are determined to be best with respect to previously obtained clusters. In subsequent iterations, one or more clusters maybe erased (e.g. disregarded), such that the clustering in the subsequent iterations may be performed based on the centroids only (rather than based on which nodes are assigned to the cluster). The assignment of nodes to clusters may be performed based on the priority, as described above. If a node does not fulfil the constraints of a cluster (e.g. maximum number of items, maximum cluster demand), the node is not assigned to the cluster.
  • the clustering of the plurality of items may be performed based on the assigning of each of the plurality of clusters to clusters, as described in operation 48.
  • FIG. 5 is a flowchart of an algorithm, indicated generally by a reference numeral 60, in accordance with an example embodiment.
  • the operations of algorithm 60 may be used for determining the number of clusters (e.g. implementing the operation 44 of the algorithm 40 described above).
  • the plurality of items are sorted in decreasing order of their demands (e.g. weight and/or size).
  • weights and/ or sizes of one or more sorted items are summed until a capacity (e.g. minimum capacity) of a first vehicle with a lowest capacity among the one or more vehicles is reached.
  • a capacity e.g. minimum capacity
  • a first number of items are determined, where the first number of items indicate the number of items for which the weights and/ or sizes are summed in operation 54 until the capacity of the first vehicle was reached.
  • the first number of items may then represent the maximum number of items that may be assigned to each cluster. For example, by limiting each cluster to have a maximum of the first number of items, it may be possible that the items with highest demand (e.g. heaviest and/ or biggest in size), may be assigned to a cluster that is to be delivered using a vehicle with the lowest capacity. The vehicle with the lowest capacity may then not have any residual capacity left for other items, thus optimizing the vehicle distribution of the clusters. Further, this may also facilitate items of a single cluster to be assigned to a single vehicle, such that the single vehicle may be any of the vehicles 13 to 16 (including the vehicle with the lowest capacity).
  • each cluster may comprise items for at least two nodes and/or items. Any nodes for an item that may have a demand (weight and/ or size) higher than a threshold may not be grouped into clusters with one or more other item(s), as the total demand of the item and the other item(s) may exceed the minimum capacity (e.g. capacity of the first vehicle with the lowest capacity). For example, these items maybe removed from the clustering algorithms, and may be indicated as individual items, such that vehicles and/or routes for delivery of these items may be determined separate from the vehicle distribution and/or routing of the clusters.
  • the total number of clusters may then be determined (e.g. operation 44), and used for assigning one or more items to clusters.
  • the clustering algorithm 40 further comprises an iteration parameter as an input.
  • the iteration parameter represents the maximum number of iterations for the algorithm. The more iterations that are performed, the better may be the final clustering result. In one example, there may be a trade-off between accuracy and time, such that the number of iterations may be set in an empirical way to improve accuracy while not exceeding a threshold time. Many other arrangements for terminating the clustering algorithm 40 will be apparent to those of ordinary skill in the art.
  • FIG. 6 is a block diagram of a system, indicated generally by the reference numeral 70, in accordance with an example embodiment.
  • the system 70 provides an example overview of a clustering algorithm (e.g. operation 32), as described above with reference to algorithms 40 and 60.
  • Initial inputs to the clustering algorithm may include the inputs 62.
  • Inputs 62 may include a first graph of information regarding one or more of a plurality of nodes, demands of each of the plurality of nodes, distances of each the plurality of nodes from an originating location and/or from another one of the plurality of nodes, and an initialized K number of clusters (e.g. the K number of clusters determined in operation 44; and for example the K number of clusters maybe updated in one or more iterations).
  • the distances indicate shortest path distance between each of the plurality of nodes and an originating location and/or another one of the plurality of nodes.
  • the shortest path distance may be calculated using a Dijkstra algorithm or an A* algorithm, by taking into consideration the actual road network connecting the nodes with the originating location or the other nodes.
  • centroids initialization 63 may be based on HMST clustering.
  • the centroids initialization 63 may provide information regarding K number of centroids as outputs 64.
  • Input 65 may comprise the first graph, the max_demand (e.g. maximum cluster demand which may be equal to the minimum capacity of the first vehicle with the lowest capacity), the max_nodes (e.g. maximum number of items in each cluster), and the number of iterations to be performed.
  • the output 64 and the input 65 may be used as inputs for the clustering 66.
  • the clustering 66 may be performed using constrained k-median, which takes into account constraints related to both the max_nodes and the max_demands.
  • An output 67 is generated, including clustering information regarding nodes grouped in the K clusters.
  • FIG. 7 is a flowchart of an algorithm, indicated generally by the reference numeral 80, in accordance with an example embodiment.
  • the operations of algorithm 80 may relate to the vehicle distribution 34 and/or routing 36 described with reference to FIG. 3.
  • one or more clusters (as determined in the clustering operation 32) may be classified into area types, for example, based on static and/ or dynamic area conditions.
  • static area conditions may include factors such as steepness, smoothness, width, and/or the like of an area of one or more nodes of the cluster.
  • Dynamic area conditions may include factors such as traffic conditions, road closures, accident information, or the like of an area of one or more nodes of the cluster.
  • the clusters may be classified into either a free flow area type (e.g.
  • classification of a cluster into the congested area type may indicate that a vehicle delivering items of that cluster may have to repeatedly start and stop during the delivery due to area conditions.
  • the area type classification is described in further detail below with reference to FIG. 8.
  • a first energy consumption is estimated for one or more clusters based, at least partially, on the determined area type classification.
  • an estimation of the classification of the clusters into area types may be performed in order to determine an estimate of the average speed and acceleration that may be experienced by a vehicle while delivering items of a cluster.
  • the average speed and acceleration may affect energy consumption (e.g. of electric vehicles in particular, but may also affect energy consumption of non-electric vehicles).
  • the energy consumption for each cluster may therefore be determined based on the area type classification of the respective cluster.
  • the estimation of energy consumption per cluster is described in further detail below with reference to FIG. 9.
  • one or more possible routes taken by vehicle(s) for delivery of items maybe classified into route types.
  • the possible routes may include one or more possible routes connecting the one or more clusters (e.g. centroids of clusters) and/or one or more possible routes connecting the one or more clusters with one or more originating locations.
  • the possible routes may be classified into route types, for example, based on static and/or dynamic route conditions.
  • static route conditions may include factors such as steepness, smoothness, width, and/or the like of one or more areas that are a part of possible routes of the vehicles.
  • Dynamic route conditions may include factors such as traffic conditions, road closures, accident information, or the like of one or more areas that are a part of possible routes of the vehicles.
  • the possible routes may be classified into either a free flow route type (e.g. for smooth, wide, less steep, and/or lower traffic routes) or a congested route type (e.g. for rough, narrow, steep, and/ or high traffic routes).
  • a free flow route type e.g. for smooth, wide, less steep, and/or lower traffic routes
  • a congested route type e.g. for rough, narrow, steep, and/ or high traffic routes.
  • classification of a possible route into the congested route type may indicate that a vehicle delivering items using that possible route may have to repeatedly start and stop throughout the journey due to route conditions.
  • a second energy consumption may be estimated for one or more possible routes based, at least in part, on the route type classification of the possible routes.
  • the estimation of energy consumption for the possible routes may involve a regression algorithm, and the output estimation may be based on an estimated energy discharge percentage of a vehicle (e.g. battery discharge percentage for electric or hybrid vehicle; fuel consumption for non-electric vehicles) driving in the possible route.
  • a vehicle e.g. battery discharge percentage for electric or hybrid vehicle; fuel consumption for non-electric vehicles
  • FIG. 8 is a block diagram of a system, indicated generally by the reference numeral 90, in accordance with an example embodiment.
  • System 90 provides an example overview of an area type classification for clusters, as described above in operation 71 with reference to FIG. 7.
  • An input 82 may include an average speed and/or acceleration (e.g. may be dependent on area conditions of an area of the cluster) experienced by a vehicle while delivering items of a cluster.
  • the area type classification 84 is performed, and an output 86 is provided which provides classification of the cluster into either a free flow area type or a congested or “start & stop” area type.
  • FIG. 9 is a block diagram of a system, indicated generally by the reference numeral too, in accordance with an example embodiment.
  • System too provides an example overview of energy consumption estimation per cluster (e.g. first energy consumption), as described above in operation 72 with reference to FIG. 7.
  • the estimation may be based on one or more inputs 92, where the or more inputs 92 may comprise one or more of the area type classification, average steepness in the area of the cluster, number of nodes in the cluster (e.g. corresponding to the number of items to be delivered), average trip length (e.g.
  • the estimated energy consumption may be used for classification 94 of the clusters into one of a high, medium, and low energy consumption group.
  • the classification 94 provides an output 96 indicating the classification of one or more clusters into one of the three groups including high, medium, and low energy consumption (e.g. batteiy consumption) group.
  • FIG. 10 is a block diagram of a system, indicated generally by the reference numeral 110, in accordance with an example embodiment.
  • System 110 provides an example overview of energy consumption estimation (e.g. second energy consumption), as described above in operation 74 with reference to FIG.7.
  • the estimation may be based on one or more inputs 102, where the or more inputs 102 may comprise one or more of road type (e.g. urban or motorway road), average steepness of the route, number of nodes in the cluster (e.g. corresponding to the number of items to be delivered), average route length (e.g.
  • road type e.g. urban or motorway road
  • average steepness of the route e.g.
  • number of nodes in the cluster e.g. corresponding to the number of items to be delivered
  • average route length e.g.
  • FIG. 11 is a block diagram of a system, indicated generally by the reference numeral 120, in accordance with an example embodiment.
  • System 120 provides an example overview of vehicle distribution (operation 34 of FIG. 3), routing (operation 36 of FIG. 3) and determining optimal routes (operation 75 of FIG. 8).
  • the vehicle distribution and routing may be performed based on inputs 112.
  • the inputs 112 may be used for routing 114, for example, using Monte Carlo Tree Search (MCTS).
  • MCTS Monte Carlo Tree Search
  • the routing 114 may provide outputs 116, where the outputs 116 may comprise allocation of clusters to vehicles, and optimal routes for the vehicles for delivering items of the allocated clusters.
  • inputs 112 may comprise one or more of a first graph, information regarding the number of iterations to be performed, information regarding the number of available vehicles and their respective constraints (e.g. including capacity constraints and energy consumption constraints), and/or information regarding Low Emission Zones and toll roads in the area of the clusters or one or more areas along the possible routes.
  • the first graph may comprise information related to cluster centroids, cluster demands (e.g. weights and/or size), one or more nodes not included in any clusters, originating location (e.g. depot location), inter-cluster distances (e.g. shortest path inter-cluster distance), intra-cluster distances (e.g. shortest path intra-cluster distance), distances (e.g.
  • One or more of the available vehicles may or may not be electric vehicles, may have different constraints, for example, may have different capacities or driving range (for EVs).
  • each node is a cluster centroid and represents all the nodes inside the cluster; each node has a coefficient ( lez_coeff) associated to it representing the percentage of items in that cluster that fall inside Low Emission Zones or that require a toll road to be travelled in order to be visited (this maybe pre computed after the clustering phase, e.g. operation 32); each node has a weight equal to the sum of all the nodes' weights inside the cluster; nodes may also include clusters formed by just one node that correspond to the ones excluded by the clustering algorithm due to having a weight higher than a threshold; nodes include the originating location (e.g.
  • each edge represents the actual road length linking nodes (rather than absolute distance); each node has an energy consumption factor that is an estimation of the battery percentage required to visit all the customers represented by that node (cluster); and each edge i,j has an energy consumption factor that is an estimation of the battery percentage required to go from node i to nodej.
  • the routing 114 is performed using an algorithm based on MCTS algorithm.
  • the MCTS is a heuristic tree search algorithm that is generally used to solve combinatorial games where there are large number of potential actions to be taken at each stage.
  • the MCTS algorithm may be adapted for determining optimal vehicle distribution and routing.
  • An original MCTS algorithm works on the tree representation of a game, which shows the evolution of the game as two or more players play. In game theory, the tree representation of a game contains the following elements:
  • the ‘root’ of the tree is the initial state of the game; ft Each ‘node’ represents a state of the game; ft Each ‘level’ of the tree represents one player playing; ft Each ‘edge’ represents an action that a player performs to make a transition from one state to another; and ft Each ‘leaf of the tree represents a final state of the game, where there is a clear outcome, that is, there is one player winning an one losing or there is a tie.
  • the outcome of a playout that can be earned at one leaf describes the revenue of a certain player. For example if player l and 2 are playing, then the outcome can be ⁇ -i, o, l ⁇ describing respectively ⁇ player l losing, tie, player l winning ⁇ .
  • a rollout step the solution space is explored based on random sampling and focusing on the most promising moves.
  • the game is played out to the very end by selecting moves at random.
  • the final game result of each rollout is then used to weight the nodes in the game tree so that better nodes are more likely to be chosen in future rollouts. This is achieved by associating each node of the game with an Upper Confidence Bound that is updated after every rollout and that indicates how much valuable is to explore the sub-tree routed at that node.
  • the original MCTS algorithm maybe adopted for the routing by specifying the following parameters:
  • the ‘root’ of the tree represents the initial state where all the vehicles are ready at the depot; ft Each ‘node’ represents the partial routes (some nodes are allocated to some vehicles); ft ‘Players’ are the vehicles, indeed each level of the tree represents one vehicle doing available moves; ft Each ‘edge’ is a vehicle “playing” a move, that is, choosing the next item to deliver; and ft Each ‘leaf of the tree represents a final state, where the routes for each vehicle starting and ending at the depot have been built.
  • the outcome of a playout is computed by an equation that considers both the number of routed nodes and the total trip length, penalizing solutions that are longer than others and where there are some unrouted items. While assigning nodes to vehicles all the constraints regarding the capacity and the battery consumption are checked. The algorithm may further assign nodes with a high lez_coeff to EVs, instead of using petrol/diesel vehicles, so to minimize the routing costs.
  • the routing 114 including the assignment of nodes to vehicles may be repeated iteratively to provide the output 116, which is used for allocating one or more items (e.g. cluster of items) to a vehicle, and for determining a route for the vehicle.
  • an ‘ optimization ’ may be made to ‘perform the rollout ’ (using the terminology of the original MCTS). Indeed, when a vehicle plays a move, it may choose which (cluster of) items it is to be used to deliver.
  • a probability of being selected maybe assigned to the unrouted items, such that the probability may be proportional to the distance of the last inserted item in the route.
  • time windows may or may not be used to assign items to vehicles.
  • the vehicles may be different to each other (e.g. different model, different capacity, different energy consumption, etc.).
  • the first graph used as inputs maybe an undirected graph or a directed graph.
  • each item may represent a group of items with a lez_coejf and a battery requirement assigned to it.
  • the determination of one or more routes for the one or more vehicles is performed based on one or more preferences and/or priorities assigned to the one or more preferences.
  • the preferences may comprise one or more of: minimizing the number of undelivered items, minimizing total route length, minimizing unused capacity of the vehicles, avoiding complete battery depletion of electric vehicles, maximizing number of items delivered by electric vehicles in defined areas (e.g. Low Emission Zones or involving toll roads), minimizing cost of delivery (e.g. by using EVs instead of non-EV).
  • FIG. 12 is a block diagram of a system, indicated generally by the reference numeral 130, in accordance with an example embodiment.
  • System 130 provides an example overview of determining optimal routes (operation 75 of FIG. 7).
  • the routing may be performed based on inputs 122.
  • the inputs 122 may be used for routing optimization 124, for example, using Tabu Search.
  • the routing 124 may provide outputs 126, where the outputs 126 may comprise optimal routes for the vehicle to visit the nodes in a route for delivering items in a cluster.
  • the inputs 122 may comprise information regarding a vehicle’s trip for delivering items of one or more clusters, and may further include information of any removed clusters. For example, when items of a first cluster have already been delivered, and the vehicle has to deliver remaining items of a second cluster, the first cluster may be removed, and the information may be provided in input 122.
  • each cluster is assigned to a single vehicle, such that all items belonging to that cluster are delivered using that single vehicle.
  • the optimization 124 is performed for providing an optimal route for the vehicle for delivering the items of that cluster.
  • the Tabu Search heuristic maybe used to find the optimal route for a vehicle, to visit all the nodes inside the clusters that have been assigned to it during the MCTS (described above with reference to FIG. 11).
  • the Tabu Search may be used for finding the shortest trip to visit all the nodes in cluster 1 and all the nodes in cluster 2 by starting and ending at the depot, that could lead for example to the following solution [depot, e, f, a, d, c, b, depot], such that the vehicle 1 visits the nodes of cluster 1 in the order of depot, e, f, a, d, c, b, depot.
  • the optimization 124 may be performed for one or more iterations for each vehicle in order to determine an optimal route for each vehicle. FIGs.
  • the plot 140 shows a plurality of items clustered into a plurality of clusters.
  • the plot 140 comprises example clusters obtained by the clustering algorithm (e.g. clustering algorithm 40) on a test instance (e.g. from Christofides and Eilon test instance E-n5i-k5 Christofid.es and Eilon 1969: An algorithm for the vehicle routing dispatching problem. Journal of the Operational Research Society 1969 ). Nodes of each cluster are illustrated on the plot 140 using different shapes (e.g. circles, X sign, + sign, triangles, stars, squares, dashes, pentagons, diamond sign, and Y sign).
  • FIGs. 14 is a routing plot, indicated generally by reference numeral 150, generated in accordance with example embodiments.
  • the plot 150 shows an example routing for vehicles to deliver items corresponding to the K cluster groups shown in the clustering plot 140.
  • the plot 150 shows the results obtained by running the routing algorithm on the obtained clusters. For example, the MCTS is run for 100000 iterations and the Tabu Seach is run for 1000 iterations for each single trip. For the test case (Christofides test instance E-nsi-ks), the obtained routing solution has a trip length of 606 and uses 6 vehicles.
  • FIG. 15 is a block diagram of a system, indicated generally by the reference numeral 160, in accordance with an example embodiment.
  • System 160 comprises the elements of system 20 of FIG. 2, and further shows that the node ni is assigned to the cluster 23.
  • the vehicle 13 may be assigned for delivering items of cluster 21
  • the vehicle 15 may be assigned for delivering items of cluster 22
  • the vehicle 16 may be assigned for delivering items of cluster 23
  • the vehicle 14 may be assigned for delivering items of cluster 24, as shown by the arrows in system 150.
  • Each of the vehicles may deliver the items of the assigned cluster using an optimal route, as determined by the routing algorithm described above with reference to FIGs. 11 and 12.
  • FIG. 1 is a block diagram of a system, indicated generally by the reference numeral 160, in accordance with an example embodiment.
  • System 160 comprises the elements of system 20 of FIG. 2, and further shows that the node ni is assigned to the cluster 23.
  • the vehicle 13 may be assigned for delivering items of cluster 21
  • the vehicle 15 may be assigned
  • System 170 shows the vehicle 13 and nodes na to nd of cluster 21.
  • Vehicle 13 maybe assigned for delivering items of the cluster 21.
  • a first possible route 162 as shown by the solid line arrows, may be depot-node 11a- node 11b- node 11c- node nd.
  • the first possible route 162 may further include a trip from the last node nd to the depot, or to a node of another cluster.
  • a second possible route 164 may be depot-node nd- node 11c- node 11b- node 11a.
  • the second possible route 164 may further include a trip from the last node 11a to the depot, or to a node of another cluster.
  • the routing algorithm may be used for selecting one of the first possible route 162 or second possible route 164. The selected route will then be used by the vehicle 13 to deliver items of the cluster 21 corresponding to nodes 11a to nd.
  • FIG. 17 is a block diagram of a system, indicated generally by the reference numeral 180, in accordance with an example embodiment.
  • the system 180 comprises an apparatus comprising a clustering module 181, a vehicle distribution module 182, and a routing module 183.
  • the clustering module 181 maybe configured to perform clustering (e.g. operation 32 of FIG. 3) of a plurality of items in one or more clusters.
  • the plurality of items are to be delivered using one or more vehicles.
  • the vehicle distribution module 182 maybe configured to determine (e.g. operation 34 of FIG. 3) a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor. For example, item(s) in a single cluster is/are to be delivered using a single vehicle.
  • the routing module 183 may be configured to determine (e.g. operation 36 of FIG. 3) a route for each of the one or more vehicles.
  • Embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic.
  • the software, application logic and/or hardware may reside on memory, or any computer media.
  • the different functions discussed herein may be performed in a different order and/or concurrently with each other.
  • one or more of the above-described functions may be optional or may be combined.
  • the flow diagrams of Figures 3, 4, 5 and 7 are examples only and that various operations depicted therein maybe omitted, reordered and/or combined. It will be appreciated that the above described example embodiments are purely illustrative and are not limiting on the scope of the invention. Other variations and modifications will be apparent to persons skilled in the art upon reading the present specification.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Traffic Control Systems (AREA)

Abstract

An apparatus, method and computer program is described comprising: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.

Description

Vehicle Routing Field
The present specification relates to vehicle routing.
Background
Routing vehicles in an efficient manner may present a number of challenges. There remains a need for further improvements in this field. Summary
In a first aspect, this specification provides a method comprising: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
In some examples, the clustering comprises: determining capacity of the one or more vehicles; determining a total number of clusters, based at least partially on the capacity of the one or more vehicles; determining centroid values for the one or more clusters; and assigning each of the plurality of items to one of the one or more clusters.
In some examples, determining the total number of clusters comprises: sorting the plurality of items in decreasing order of weight and/ or size; summing weights and/ or sizes of one or more sorted items starting from the item with the highest weight and/or size until capacity of a first vehicle with a lowest capacity among the one or more vehicles is reached, such that a total maximum weight and/or size of one or more items in a respective cluster is lower than or equal to the capacity of the first vehicle of the plurality; wherein a respective capacity of the one or more vehicles may be based on a threshold weight and/or size corresponding to the respective vehicle; determining a first number of items for which the weights are summed until the capacity of the first vehicle is reached; and determining the total number of clusters based on a ratio of the total number of the plurality of items and the first number of items.
In some examples, the assigning comprises assigning a first item of the plurality to a first cluster if: a distance of a centroid of the first cluster from a delivery location of the first item is the least among distances of one or more other centroids of one or more other clusters from the delivery location of the first item; and priority of the first item is highest among other items of the plurality whose delivery locations are within a threshold distance from the centroid of the first cluster.
Some examples may further comprise iteratively performing the assignment of each item to clusters such that: distance between items in a single cluster is minimized; and distance between centroids of each cluster is maximized. In some examples, determining the distribution of one or more vehicles comprises: estimating the energy consumption factor for the one or more vehicles, wherein the energy consumption factor indicates an amount of energy required for the one or more vehicles for delivering items in the corresponding one or more clusters respectively. In some examples, determining the distribution of vehicles comprises: classifying the one or more clusters into an area type; estimating a first energy consumption for one or more clusters based at least partially on the area types; classifying one or more possible routes into a route type, wherein the one or more possible routes comprise routes for the one or more vehicles for delivering the plurality of items; and estimating a second energy consumption for one or more possible routes based at least partially on the route types.
In some examples, the area type selected from a free flow area type and a congested area type, and the route type is selected from a free flow route type and a congested route type.
Some examples may further comprise using the estimated first energy consumption and the estimated second energy consumption for the one or more possible routes for determining an optimal route for the one or more vehicles.
In some examples, the determination of one or more routes for the one or more vehicles is performed using one or more of a Monte Carlo Tree Search algorithm, and/ or a Tabu Search algorithm. In some examples, the determination of one or more routes for the one or more vehicles is performed based on one or more preferences and/ or priorities assigned to the one or more preferences, the preferences comprising one or more of: minimizing the number of undelivered items, minimizing total route length, minimizing unused capacity of the vehicles, avoiding complete battery depletion of electric vehicles, maximizing number of items delivered by electric vehicles in defined areas, and minimizing cost of delivery.
In some examples, the one or more vehicles comprise one or more electric vehicles, one or more non-electric vehicles, and/ or one or more hybrid vehicles, wherein the distribution of the one or more vehicles for the one or more clusters is further based, at least in part, on whether a vehicle is an electric vehicle, a non-electric vehicle, or a hybrid vehicle.
In a second aspect, this specification describes an apparatus comprising means configured to perform any method as described in any one of the preceding claims.
In a third aspect, this specification describes computer-readable instructions which, when executed by computing apparatus, cause the computing apparatus to perform any method as described with reference to the first aspect. In a fourth aspect, this specification describes an apparatus comprising means for: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
In some examples, the means for clustering comprises means for: determining capacity of the one or more vehicles; determining a total number of clusters, based at least partially on the capacity of the one or more vehicles; determining centroid values for the one or more clusters; and assigning each of the plurality of items to one of the one or more clusters.
In some examples, the means for determining the total number of clusters comprises means for: sorting the plurality of items in decreasing order of weight and/or size; summing weights and/or sizes of one or more sorted items starting from the item with the highest weight and/or size until capacity of a first vehicle with a lowest capacity among the one or more vehicles is reached, such that a total maximum weight and/or size of one or more items in a respective cluster is lower than or equal to the capacity of the first vehicle of the plurality; wherein a respective capacity of the one or more vehicles maybe based on a threshold weight and/or size corresponding to the respective vehicle; determining a first number of items for which the weights are summed until the capacity of the first vehicle is reached; and determining the total number of clusters based on a ratio of the total number of the plurality of items and the first number of items. In some examples, the means for assigning comprises means for assigning a first item of the plurality to a first cluster if: a distance of a centroid of the first cluster from a delivery location of the first item is the least among distances of one or more other centroids of one or more other clusters from the delivery location of the first item; and priority of the first item is highest among other items of the plurality whose delivery locations are within a threshold distance from the centroid of the first cluster.
Some examples may include means for iteratively performing the assignment of each item to clusters such that: distance between items in a single cluster is minimized; and distance between centroids of each cluster is maximized.
In some examples, the means for determining the distribution of one or more vehicles comprises means for: estimating the energy consumption factor for the one or more vehicles, wherein the energy consumption factor indicates an amount of energy required for the one or more vehicles for delivering items in the corresponding one or more clusters respectively.
In some examples, the means for determining the distribution of vehicles comprises means for: classifying the one or more clusters into an area type; estimating a first energy consumption for one or more clusters based at least partially on the area types; classifying one or more possible routes into a route type, wherein the one or more possible routes comprise routes for the one or more vehicles for delivering the plurality of items; and estimating a second energy consumption for one or more possible routes based at least partially on the route types. In some examples, the area type selected from a free flow area type and a congested area type, and the route type is selected from a free flow route type and a congested route type. Some examples may further comprise means for using the estimated first energy consumption and the estimated second energy consumption for the one or more possible routes for determining an optimal route for the one or more vehicles.
In some examples, the determination of one or more routes for the one or more vehicles is performed using one or more of a Monte Carlo Tree Search algorithm, and/or a Tabu Search algorithm.
In some examples, the determination of one or more routes for the one or more vehicles is performed based on one or more preferences and/ or priorities assigned to the one or more preferences, the preferences comprising one or more of: minimizing the number of undelivered items, minimizing total route length, minimizing unused capacity of the vehicles, avoiding complete battery depletion of electric vehicles, maximizing number of items delivered by electric vehicles in defined areas, and minimizing cost of delivery.
In some examples, the one or more vehicles comprise one or more electric vehicles, one or more non-electric vehicles, and/ or one or more hybrid vehicles, wherein the distribution of the one or more vehicles for the one or more clusters is further based, at least in part, on whether a vehicle is an electric vehicle, a non-electric vehicle, or a hybrid vehicle.
The means may comprise: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program configured, with the at least one processor, to cause the performance of the apparatus.
In a fifth aspect, this specification describes a computer program comprising instructions for causing an apparatus to perform at least the following: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
In a sixth aspect, this specification describes a computer-readable medium (such as a non-transitory computer-readable medium) comprising program instructions stored thereon for performing at least the following: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
In a seventh aspect, this specification describes an apparatus comprising: at least one processor; and at least one memory including computer program code which, when executed by the at least one processor, causes the apparatus to: cluster a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determine a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determine a route for each of the one or more vehicles.
In an eighth aspect, this specification describes an apparatus comprising: a clustering module configured to cluster a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; a vehicle distribution module configured to determine a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and a routing module configured to determine a route for each of the one or more vehicles. Brief description of the drawings
Example embodiments will now be described, by way of example only, with reference to the following schematic drawings, in which:
FIGs. 1 and 2 are block diagrams of systems in accordance with example embodiments; FIGs. 3 to 5 are flowcharts showing algorithms in accordance with example embodiments;
FIG. 6 is a block diagram of a system in accordance with an example embodiment; FIG. 7 is a flowchart of an algorithm in accordance with an example embodiment;
FIGs. 8 to 12 are block diagrams of systems in accordance with example embodiments; FIGs. 13 and 14 are routing plots generated in accordance with example embodiments; and FIGs. 15 to 17 are block diagrams of systems in accordance with example embodiments.
Detailed description
The scope of protection sought for various embodiments of the invention is set out by the independent claims. The embodiments and features, if any, described in the specification that do not fall under the scope of the independent claims are to be interpreted as examples useful for understanding various embodiments of the invention.
In the description and drawings, like reference numerals refer to like elements throughout.
FIG. 1 is a block diagram of a system, indicated generally by the reference numeral 10, in accordance with an example embodiment. System 10 shows a plurality of delivery locations represented by nodes 11, an originating location 12 (e.g. a mail depot), and one or more vehicles 13 to 16. The plurality of delivery locations of nodes 11 may correspond to delivery locations of a plurality of items (e.g. letters, parcels, etc.) that are to be delivered using one or more of the vehicles 13 to 16. Some example embodiments provided below describe routing of one or more of the plurality of vehicles 13 to 16, such that the plurality of items may be delivered to the respective delivery locations of nodes 11 in an efficient way, for example, such that energy consumption, time, and/ or other resources for delivery of the items may be optimized.
The one or more vehicles 13 to 16 may be part of a mixed fleet, such that the vehicles may have different capacities, and/or may include one or more of non-electric vehicles (e.g. combustion vehicles (e.g. diesel or petrol)), electric vehicles (EV) and/or hybrid electric vehicles. The usage of the electric vehicles for delivery of items may introduce constraints such as limited range of distance dependent on availability of charging stations. As such, use of electric vehicles may cause range anxiety, for example, regarding the state of charge (SoC), or regarding whether the electric vehicle would be able to make all required deliveries and still have enough charge to return to the base (originating location 12, such as a mail depot). FIG. 2 is a block diagram of a system, indicated generally by the reference numeral 20, in accordance with an example embodiment. System 20 comprises the elements 11 to 16 of system 10. Items that are to be delivered to delivery locations that are geographically located close to each other may be clustered into groups, for example, to facilitate delivery of these items by a single vehicle. For example, items corresponding to nodes 11a to nd may be clustered into a cluster 21, items corresponding to nodes lie to nh maybe clustered into a cluster 22, items corresponding to nodes nj to lin maybe clustered into a cluster 23, and items corresponding to nodes up to 11s maybe clustered into a cluster 24. The node ni is seen to be approximately midway between the nodes lie to nh and the nodes nj to lin. As such, one or more items corresponding to the node 111 may either be in an additional cluster, or may be assigned to one of the clusters 22 or 23. The clustering shown is an example only, such that the items may be clustered differently. The clustering may be determined using a clustering algorithm, as described further below.
FIG. 3 is a flowchart of an algorithm, indicated generally by the reference numeral 30, in accordance with an example embodiment. At operation 32, a plurality of items, that are to be delivered using one or more vehicles (e.g. vehicles 13 to 16), maybe clustered in one or more clusters. For example, the items maybe clustered into the clusters 21 to 24, as shown in FIG. 2. The clustering is described in further details below with reference to FIGs. 4, 5, and 6. At operation 34, vehicle distribution is performed, such that a distribution of one or more vehicles for the one or more clusters is determined. The vehicle distribution may be determined based, at least in part, on an energy consumption factor. The energy consumption factor may indicate an amount of energy required for the one or more vehicles for delivering items in the corresponding one or more clusters respectively. As such, the vehicle distribution may be performed by taking into account the capacity of each vehicle, and including optimizing energy consumption and optionally minimizing emissions (e.g. by using electric vehicles in an efficient way) among the plurality of vehicles. Performing the vehicle distribution may comprise selecting a vehicle for delivering items of one or more clusters, such that items in a single cluster are to be delivered using a single vehicle. For example, as the items corresponding to nodes 11a to nd are clustered into a single cluster 21, items of the cluster 21 may be determined to be delivered using the same vehicle. A single vehicle is able to be assigned to deliver items corresponding to one or more clusters. For example, the vehicle distribution may be performed such that the vehicle 13 is assigned to deliver items corresponding to both the cluster 21 and 22. The vehicle distribution is described in further detail below with reference to FIGs. 7 to 10.
At operation 36, routing is performed, such that a route is determined for each of the one or more vehicles. The routing maybe performed in order to determine a route that each of the vehicles may take in order to deliver the plurality of items. The routing may be performed such that energy consumption among the plurality of vehicles is optimized (e.g. minimized). The routing may further be performed such that the number of unrouted parcels is minimized. For example, once one or more clusters are assigned to a vehicle, the routing maybe performed to determine an order in which the items of the one or more clusters may be delivered, and the route the vehicle should take for delivering the items in the determined order. The routing is described in further details below with reference to FIGs. 7, 11 and 12.
FIG. 4 is a flowchart of an algorithm, indicated generally by the reference numeral 40, in accordance with an example embodiment. The clustering of operation 32 of FIG. 3 may include the operations 42 to 50 of algorithm 40.
At operation 42, capacity of one or more vehicles (e.g. the vehicles 13 to 16) may be determined. The capacity of a vehicle may indicate a threshold weight and/or size (e.g. volume, surface area, length, width, height, shape, etc.) corresponding to the respective vehicle. For example, a vehicle may have a threshold weight that the vehicle can carry, such that it may not be safe for the vehicle to carry more than the threshold weight. Similarly, based on the size of the vehicle, the vehicle may have a threshold size such that the vehicle may only be able to fit one or more items whose total size may be lower than the threshold size of the vehicle. As the fleet may be composed of vehicles of different capacities (e.g. the vehicles 13 to 16 may have different capacities), a maximum cluster demand (max_demand) may be set such that each cluster has a total demand (weight and/or size) lower than the capacity of a vehicle with the lowest capacity. The capacity of the vehicle with the lowest capacity may be referred to as a minimum capacity (e.g. equal to max_demand). In this way, items of a single cluster may be assigned to be delivered using a single vehicle, and the items of the single cluster are not divided among vehicles, which may make the vehicle routing more efficient.
At operation 44, the number of clusters for clustering the plurality of items is determined based, at least in part, on the capacity of the vehicles and a maximum number of items that may be assigned to each cluster. For example, with reference to FIG. 2, four clusters (e.g. the clusters 21 to 24) are determined. The determination of the number of clusters is described in further detail below with reference to FIG. 5. At operation 46, one or more centroids (e.g. mid-point of one or more delivery locations in the cluster) of one or more clusters respectively are determined. As such, the number of centroids determined may be equal to the number of clusters determined at operation 44. In one example, the centroids (e.g. initial centroids) maybe determined using a minimum spanning tree algorithm (e.g. HMST (Hierarchical Minimum Spanning Tree clustering)). The centroids generated in this operation may represent initial centroids. The delivery locations (e.g. nodes 11a to 11s) may be considered to be the nodes of the minimum spanning tree. For example, the minimum spanning tree maybe formed by all the nodes of the system 10 except the mail depot. The algorithm may comprise iteratively removing from the tree the arcs with highest arc weight. The arc weight may represent distance between two nodes in the graph. For example, in order to build k clusters, k-i edges may be removed, so as to have a better initial centroids distribution and to possibly guide the clustering algorithm to a faster convergence. At operation 48, each of the plurality of items may be assigned to a cluster. For example, as the locations of the centroid of each cluster is known, the assigning of a first item to a cluster may comprise determining a distances (e.g. shortest path distance) of centroids of each cluster from the delivery location of the first item. A first cluster may be determined to be closest to the delivery location of the first item, such that a first distance of the centroid of the first cluster is lowest among distances of one or more other centroids of one or more other clusters from the delivery location of the first item. The first item may be assigned to the first cluster based on the priority of the first item among all other items whose delivery locations are closest to the first cluster compared to other clusters. The priority of the first item maybe calculated as a ratio of the first distance ( distanced and the demand ( demandi ; e.g. weight and/or size) of the first item. As such, if the priority ( distancei / demandi) of the first item is the highest, - li the first item may be assigned to the first cluster. If the priority of the first item is not the highest, the first item is not assigned to the first cluster in the present iteration, and one or more further iterations may be performed for assigning the first item to a cluster. In one example, at each iteration (for example, after one or more nodes have already been assigned to a cluster), the centroids may be recomputed, for example, using a k-median algorithm, such that the median for a cluster is determined to be the centroid of the cluster. The k-median algorithm may be used for forming clusters that are compact. For example, the intra-cluster distance (e.g. distance between nodes of a cluster) is minimized, while the inter-cluster distance (e.g. distance between centroids of each cluster) is maximized.
For example, with reference to FIG. 2, the first item may be the item associated with the node lii. As such, the operation 48 maybe performed for assigning the first item to one of the clusters 21 to 24. For example, the distance between the node 111 and the centroid of the cluster 21 may be 10 kilometers (km), the distance between the node 111 and the centroid of the cluster 22 may be 2km, the distance between the node 111 and the centroid of the cluster 23 may be 2.5km, and the distance between the node 111 and the centroid of the cluster 24 may be 11km. As the distance between the node 111 and the cluster 22 is the lowest, the first distance (distance 0 may be considered to be 2km. The priority of the first item may be determined based on the demand of the first item and the first distance. For example, since the first item corresponding to node lii is the only one item that is not yet assigned to a cluster, the first item may have the highest priority, and the first item may therefore be assigned to the cluster 22 (e.g. assuming that the total demand of nodes lie to nh and node ni is lower than the minimum capacity of the vehicles 13 to 16; and assuming that the number of nodes in cluster 22 does not exceed a determined maximum number of items or nodes as described in further detail in operation 56 when the first item is assigned). Alternatively, or in addition, the priority of the first item may be compared with priorities of one or more items corresponding to the nodes lie to nh in the cluster 22. For example, if the total demand of the nodes lie to nh and node ni is higher than the minimum capacity of the vehicles 13 to 16, one or more nodes lie to ni may not be assigned to the cluster 22. As such, if the priority of the first item corresponding to node lii is lower than priorities of each of the items of nodes lie to nh, the node 111 is not assigned to the cluster 22. In a subsequent iteration, the first item may then be assigned to another cluster (e.g. cluster 21, 23, or 24). Alternatively, if the priority of the first item corresponding to node lii is higher than a priority of one or more items, for example, higher than the item of node lih, the first item may be assigned the cluster 22, and the item corresponding to node nh may be assigned to another cluster, and not assigned to the cluster 22 in order to keep the total demand of the cluster 22 lower than the minimum capacity of the vehicles 13 to 16. In a subsequent iteration, the item corresponding to the node nh may then be assigned to another cluster (e.g. one of the cluster 21, 23, or 24, or a new cluster with a new centroid). Similar assigning of one or more items may be performed in a plurality of iterations, such that both the distance and priority of items with regard to centroids of clusters are taken into account. In one example, the cluster centroids are computed at each iteration. In a first iteration, initial centroids may be computed with HMST. In the subsequent iterations, centroids may be computed with the median of each cluster. The clusters built at each iteration maybe marked as optimal clusters if they are determined to be best with respect to previously obtained clusters. In subsequent iterations, one or more clusters maybe erased (e.g. disregarded), such that the clustering in the subsequent iterations may be performed based on the centroids only (rather than based on which nodes are assigned to the cluster). The assignment of nodes to clusters may be performed based on the priority, as described above. If a node does not fulfil the constraints of a cluster (e.g. maximum number of items, maximum cluster demand), the node is not assigned to the cluster.
At operation 50 of the algorithm 40, the clustering of the plurality of items may be performed based on the assigning of each of the plurality of clusters to clusters, as described in operation 48.
FIG. 5 is a flowchart of an algorithm, indicated generally by a reference numeral 60, in accordance with an example embodiment. The operations of algorithm 60 may be used for determining the number of clusters (e.g. implementing the operation 44 of the algorithm 40 described above).
At operation 52, the plurality of items are sorted in decreasing order of their demands (e.g. weight and/or size).
At operation 54, weights and/ or sizes of one or more sorted items, starting from the item with the highest weight and/or size, are summed until a capacity (e.g. minimum capacity) of a first vehicle with a lowest capacity among the one or more vehicles is reached.
At operation 56, a first number of items (max_nodes) are determined, where the first number of items indicate the number of items for which the weights and/ or sizes are summed in operation 54 until the capacity of the first vehicle was reached. The first number of items may then represent the maximum number of items that may be assigned to each cluster. For example, by limiting each cluster to have a maximum of the first number of items, it may be possible that the items with highest demand (e.g. heaviest and/ or biggest in size), may be assigned to a cluster that is to be delivered using a vehicle with the lowest capacity. The vehicle with the lowest capacity may then not have any residual capacity left for other items, thus optimizing the vehicle distribution of the clusters. Further, this may also facilitate items of a single cluster to be assigned to a single vehicle, such that the single vehicle may be any of the vehicles 13 to 16 (including the vehicle with the lowest capacity).
In one example, each cluster may comprise items for at least two nodes and/or items. Any nodes for an item that may have a demand (weight and/ or size) higher than a threshold may not be grouped into clusters with one or more other item(s), as the total demand of the item and the other item(s) may exceed the minimum capacity (e.g. capacity of the first vehicle with the lowest capacity). For example, these items maybe removed from the clustering algorithms, and may be indicated as individual items, such that vehicles and/or routes for delivery of these items may be determined separate from the vehicle distribution and/or routing of the clusters.
At operation 58, a total number (k) of clusters may be determined based on a ratio of the total number of the plurality of items and the determined first number of items. As such, k (the total number of clusters) = total number of items/first number of items.
The total number of clusters may then be determined (e.g. operation 44), and used for assigning one or more items to clusters.
In an example embodiment, the clustering algorithm 40 further comprises an iteration parameter as an input. The iteration parameter represents the maximum number of iterations for the algorithm. The more iterations that are performed, the better may be the final clustering result. In one example, there may be a trade-off between accuracy and time, such that the number of iterations may be set in an empirical way to improve accuracy while not exceeding a threshold time. Many other arrangements for terminating the clustering algorithm 40 will be apparent to those of ordinary skill in the art. FIG. 6 is a block diagram of a system, indicated generally by the reference numeral 70, in accordance with an example embodiment. The system 70 provides an example overview of a clustering algorithm (e.g. operation 32), as described above with reference to algorithms 40 and 60. Initial inputs to the clustering algorithm may include the inputs 62. Inputs 62 may include a first graph of information regarding one or more of a plurality of nodes, demands of each of the plurality of nodes, distances of each the plurality of nodes from an originating location and/or from another one of the plurality of nodes, and an initialized K number of clusters (e.g. the K number of clusters determined in operation 44; and for example the K number of clusters maybe updated in one or more iterations). In one example, the distances indicate shortest path distance between each of the plurality of nodes and an originating location and/or another one of the plurality of nodes. For example, the shortest path distance may be calculated using a Dijkstra algorithm or an A* algorithm, by taking into consideration the actual road network connecting the nodes with the originating location or the other nodes.
One or more of the inputs 62 maybe used for centroids initialization 63. For example, the centroids initialization 63 may be based on HMST clustering. The centroids initialization 63 may provide information regarding K number of centroids as outputs 64. Input 65 may comprise the first graph, the max_demand (e.g. maximum cluster demand which may be equal to the minimum capacity of the first vehicle with the lowest capacity), the max_nodes (e.g. maximum number of items in each cluster), and the number of iterations to be performed. The output 64 and the input 65 may be used as inputs for the clustering 66. The clustering 66 may be performed using constrained k-median, which takes into account constraints related to both the max_nodes and the max_demands. An output 67 is generated, including clustering information regarding nodes grouped in the K clusters.
FIG. 7 is a flowchart of an algorithm, indicated generally by the reference numeral 80, in accordance with an example embodiment. The operations of algorithm 80 may relate to the vehicle distribution 34 and/or routing 36 described with reference to FIG. 3. At operation 71, one or more clusters (as determined in the clustering operation 32) may be classified into area types, for example, based on static and/ or dynamic area conditions. For example, static area conditions may include factors such as steepness, smoothness, width, and/or the like of an area of one or more nodes of the cluster. Dynamic area conditions may include factors such as traffic conditions, road closures, accident information, or the like of an area of one or more nodes of the cluster. The clusters may be classified into either a free flow area type (e.g. for smooth, wide, less steep, and/or lower traffic areas) or a congested area type (e.g. for rough, narrow, steep, and/or higher traffic areas). For example, classification of a cluster into the congested area type may indicate that a vehicle delivering items of that cluster may have to repeatedly start and stop during the delivery due to area conditions. The area type classification is described in further detail below with reference to FIG. 8.
At operation 72, a first energy consumption is estimated for one or more clusters based, at least partially, on the determined area type classification. In one example, an estimation of the classification of the clusters into area types may be performed in order to determine an estimate of the average speed and acceleration that may be experienced by a vehicle while delivering items of a cluster. The average speed and acceleration may affect energy consumption (e.g. of electric vehicles in particular, but may also affect energy consumption of non-electric vehicles). The energy consumption for each cluster may therefore be determined based on the area type classification of the respective cluster. The estimation of energy consumption per cluster is described in further detail below with reference to FIG. 9.
At operation 73, one or more possible routes taken by vehicle(s) for delivery of items maybe classified into route types. The possible routes may include one or more possible routes connecting the one or more clusters (e.g. centroids of clusters) and/or one or more possible routes connecting the one or more clusters with one or more originating locations. The possible routes may be classified into route types, for example, based on static and/or dynamic route conditions. For example, static route conditions may include factors such as steepness, smoothness, width, and/or the like of one or more areas that are a part of possible routes of the vehicles. Dynamic route conditions may include factors such as traffic conditions, road closures, accident information, or the like of one or more areas that are a part of possible routes of the vehicles. The possible routes may be classified into either a free flow route type (e.g. for smooth, wide, less steep, and/or lower traffic routes) or a congested route type (e.g. for rough, narrow, steep, and/ or high traffic routes). For example, classification of a possible route into the congested route type may indicate that a vehicle delivering items using that possible route may have to repeatedly start and stop throughout the journey due to route conditions.
At operation 74, a second energy consumption may be estimated for one or more possible routes based, at least in part, on the route type classification of the possible routes. In one example, the estimation of energy consumption for the possible routes may involve a regression algorithm, and the output estimation may be based on an estimated energy discharge percentage of a vehicle (e.g. battery discharge percentage for electric or hybrid vehicle; fuel consumption for non-electric vehicles) driving in the possible route. The estimation of energy consumption per possible route is described in further detail below with reference to FIG. 10.
At operation 75, optimal routes for one or more vehicles for delivering items of one or more clusters may be determined based, at least in part, on the first estimated energy consumption for the clusters (determined in operation 72) and the second estimated energy consumption for the possible routes (determined in operation 74). The determination of optimal routes is described in further detail below with reference to FIGs. 11 and 12. FIG. 8 is a block diagram of a system, indicated generally by the reference numeral 90, in accordance with an example embodiment. System 90 provides an example overview of an area type classification for clusters, as described above in operation 71 with reference to FIG. 7. An input 82 may include an average speed and/or acceleration (e.g. may be dependent on area conditions of an area of the cluster) experienced by a vehicle while delivering items of a cluster. Based on the input, the area type classification 84 is performed, and an output 86 is provided which provides classification of the cluster into either a free flow area type or a congested or “start & stop” area type.
FIG. 9 is a block diagram of a system, indicated generally by the reference numeral too, in accordance with an example embodiment. System too provides an example overview of energy consumption estimation per cluster (e.g. first energy consumption), as described above in operation 72 with reference to FIG. 7. The estimation may be based on one or more inputs 92, where the or more inputs 92 may comprise one or more of the area type classification, average steepness in the area of the cluster, number of nodes in the cluster (e.g. corresponding to the number of items to be delivered), average trip length (e.g. may be estimated with an upper bound by computing the minimum spanning tree connecting all the nodes inside the cluster), average weight that the vehicle will carry while visiting all nodes inside the cluster, estimated weather (temperature, humidity, snowfall, rainfall) during the delivery day, estimated air conditioning or heating system status on delivery day, and/ or energy efficiency of the vehicle (e.g. battery efficiency for electric or hybrid vehicles, fuel efficiency for non electric vehicles). The estimated energy consumption may be used for classification 94 of the clusters into one of a high, medium, and low energy consumption group. As such, the classification 94 provides an output 96 indicating the classification of one or more clusters into one of the three groups including high, medium, and low energy consumption (e.g. batteiy consumption) group.
FIG. 10 is a block diagram of a system, indicated generally by the reference numeral 110, in accordance with an example embodiment. System 110 provides an example overview of energy consumption estimation (e.g. second energy consumption), as described above in operation 74 with reference to FIG.7. The estimation may be based on one or more inputs 102, where the or more inputs 102 may comprise one or more of road type (e.g. urban or motorway road), average steepness of the route, number of nodes in the cluster (e.g. corresponding to the number of items to be delivered), average route length (e.g. may be estimated with an upper bound by computing the minimum spanning tree connecting all the nodes inside the cluster), average weight that the vehicle will carry while visiting all nodes inside the cluster, estimated weather (temperature, humidity, snowfall, rainfall) during the delivery day, estimated air conditioning or heating system status on delivery day, and/ or battery efficiency of the vehicle (e.g. for electric or hybrid vehicles). The inputs 102 may be used to perform a regression algorithm 104 in order to predict energy consumption of a vehicle driving in the possible route on a certain day. The regression algorithm 104 may provide an output 106 indicating an estimated percentage of battery required for the vehicle to travel on the possible route. FIG. 11 is a block diagram of a system, indicated generally by the reference numeral 120, in accordance with an example embodiment. System 120 provides an example overview of vehicle distribution (operation 34 of FIG. 3), routing (operation 36 of FIG. 3) and determining optimal routes (operation 75 of FIG. 8). The vehicle distribution and routing may be performed based on inputs 112. The inputs 112 may be used for routing 114, for example, using Monte Carlo Tree Search (MCTS). The routing 114 may provide outputs 116, where the outputs 116 may comprise allocation of clusters to vehicles, and optimal routes for the vehicles for delivering items of the allocated clusters.
In one example, inputs 112 may comprise one or more of a first graph, information regarding the number of iterations to be performed, information regarding the number of available vehicles and their respective constraints (e.g. including capacity constraints and energy consumption constraints), and/or information regarding Low Emission Zones and toll roads in the area of the clusters or one or more areas along the possible routes. The first graph may comprise information related to cluster centroids, cluster demands (e.g. weights and/or size), one or more nodes not included in any clusters, originating location (e.g. depot location), inter-cluster distances (e.g. shortest path inter-cluster distance), intra-cluster distances (e.g. shortest path intra-cluster distance), distances (e.g. shortest path distance) of clusters from an originating location, energy consumption estimation per cluster, and/or energy consumption estimation per possible route. One or more of the available vehicles may or may not be electric vehicles, may have different constraints, for example, may have different capacities or driving range (for EVs).
In one example, in the first graph, each node is a cluster centroid and represents all the nodes inside the cluster; each node has a coefficient ( lez_coeff) associated to it representing the percentage of items in that cluster that fall inside Low Emission Zones or that require a toll road to be travelled in order to be visited (this maybe pre computed after the clustering phase, e.g. operation 32); each node has a weight equal to the sum of all the nodes' weights inside the cluster; nodes may also include clusters formed by just one node that correspond to the ones excluded by the clustering algorithm due to having a weight higher than a threshold; nodes include the originating location (e.g. depot), that has a weight of zero; each edge represents the actual road length linking nodes (rather than absolute distance); each node has an energy consumption factor that is an estimation of the battery percentage required to visit all the customers represented by that node (cluster); and each edge i,j has an energy consumption factor that is an estimation of the battery percentage required to go from node i to nodej.
In one example, the routing 114 is performed using an algorithm based on MCTS algorithm. The MCTS is a heuristic tree search algorithm that is generally used to solve combinatorial games where there are large number of potential actions to be taken at each stage. As the vehicle distribution and routing algorithm is not a combinatorial game, the MCTS algorithm may be adapted for determining optimal vehicle distribution and routing. An original MCTS algorithm works on the tree representation of a game, which shows the evolution of the game as two or more players play. In game theory, the tree representation of a game contains the following elements:
0 The ‘root’ of the tree is the initial state of the game; ft Each ‘node’ represents a state of the game; ft Each ‘level’ of the tree represents one player playing; ft Each ‘edge’ represents an action that a player performs to make a transition from one state to another; and ft Each ‘leaf of the tree represents a final state of the game, where there is a clear outcome, that is, there is one player winning an one losing or there is a tie.
The outcome of a playout that can be earned at one leaf, describes the revenue of a certain player. For example if player l and 2 are playing, then the outcome can be {-i, o, l} describing respectively {player l losing, tie, player l winning}. In a rollout step, the solution space is explored based on random sampling and focusing on the most promising moves. In each rollout iteration, the game is played out to the very end by selecting moves at random. The final game result of each rollout is then used to weight the nodes in the game tree so that better nodes are more likely to be chosen in future rollouts. This is achieved by associating each node of the game with an Upper Confidence Bound that is updated after every rollout and that indicates how much valuable is to explore the sub-tree routed at that node.
The original MCTS algorithm maybe adopted for the routing by specifying the following parameters:
0 The ‘root’ of the tree represents the initial state where all the vehicles are ready at the depot; ft Each ‘node’ represents the partial routes (some nodes are allocated to some vehicles); ft ‘Players’ are the vehicles, indeed each level of the tree represents one vehicle doing available moves; ft Each ‘edge’ is a vehicle “playing” a move, that is, choosing the next item to deliver; and ft Each ‘leaf of the tree represents a final state, where the routes for each vehicle starting and ending at the depot have been built.
The outcome of a playout, is computed by an equation that considers both the number of routed nodes and the total trip length, penalizing solutions that are longer than others and where there are some unrouted items. While assigning nodes to vehicles all the constraints regarding the capacity and the battery consumption are checked. The algorithm may further assign nodes with a high lez_coeff to EVs, instead of using petrol/diesel vehicles, so to minimize the routing costs.
The routing 114, including the assignment of nodes to vehicles may be repeated iteratively to provide the output 116, which is used for allocating one or more items (e.g. cluster of items) to a vehicle, and for determining a route for the vehicle. In one example, an ‘ optimization ’ may be made to ‘perform the rollout ’ (using the terminology of the original MCTS). Indeed, when a vehicle plays a move, it may choose which (cluster of) items it is to be used to deliver. Thus, instead of giving, to all the unrouted items, the same probability of being selected during the rollout, a probability of being selected maybe assigned to the unrouted items, such that the probability may be proportional to the distance of the last inserted item in the route. For example, if vehicle 1 has to “play a move” and its current route is [depot, item 1, item 2] and the remaining items are {item 3, item 4}, then the probability of including item 3 in the current route is proportional to the distance between item 2 and 3 and the probability for item 4 is proportional to the distance between item 2 and item 4. This domain knowledge improvement may provide a better solution in a faster way, with respect to the random rollout where instead items 3 and 4 would have the same probability of being added to the route of vehicle 1.
In one example, time windows may or may not be used to assign items to vehicles. The vehicles may be different to each other (e.g. different model, different capacity, different energy consumption, etc.). The first graph used as inputs maybe an undirected graph or a directed graph. In one example, each item may represent a group of items with a lez_coejf and a battery requirement assigned to it. In an example embodiment, the determination of one or more routes for the one or more vehicles is performed based on one or more preferences and/or priorities assigned to the one or more preferences. The preferences may comprise one or more of: minimizing the number of undelivered items, minimizing total route length, minimizing unused capacity of the vehicles, avoiding complete battery depletion of electric vehicles, maximizing number of items delivered by electric vehicles in defined areas (e.g. Low Emission Zones or involving toll roads), minimizing cost of delivery (e.g. by using EVs instead of non-EV).
FIG. 12 is a block diagram of a system, indicated generally by the reference numeral 130, in accordance with an example embodiment. System 130 provides an example overview of determining optimal routes (operation 75 of FIG. 7). The routing may be performed based on inputs 122. The inputs 122 may be used for routing optimization 124, for example, using Tabu Search. The routing 124 may provide outputs 126, where the outputs 126 may comprise optimal routes for the vehicle to visit the nodes in a route for delivering items in a cluster. The inputs 122 may comprise information regarding a vehicle’s trip for delivering items of one or more clusters, and may further include information of any removed clusters. For example, when items of a first cluster have already been delivered, and the vehicle has to deliver remaining items of a second cluster, the first cluster may be removed, and the information may be provided in input 122.
In one example, as described earlier, each cluster is assigned to a single vehicle, such that all items belonging to that cluster are delivered using that single vehicle. The optimization 124 is performed for providing an optimal route for the vehicle for delivering the items of that cluster. The Tabu Search heuristic maybe used to find the optimal route for a vehicle, to visit all the nodes inside the clusters that have been assigned to it during the MCTS (described above with reference to FIG. 11). For example, if vehicle 1 has to visit cluster 1 and cluster 2, where cluster 1 contains nodes {a, b, c} and cluster 2 contains nodes {d, e, f}, then the Tabu Search may be used for finding the shortest trip to visit all the nodes in cluster 1 and all the nodes in cluster 2 by starting and ending at the depot, that could lead for example to the following solution [depot, e, f, a, d, c, b, depot], such that the vehicle 1 visits the nodes of cluster 1 in the order of depot, e, f, a, d, c, b, depot. The optimization 124 may be performed for one or more iterations for each vehicle in order to determine an optimal route for each vehicle. FIGs. 13 is a clustering plot, indicated generally by reference numeral 140, generated in accordance with example embodiments. The plot 140 shows a plurality of items clustered into a plurality of clusters. The plot 140 comprises example clusters obtained by the clustering algorithm (e.g. clustering algorithm 40) on a test instance (e.g. from Christofides and Eilon test instance E-n5i-k5 Christofid.es and Eilon 1969: An algorithm for the vehicle routing dispatching problem. Journal of the Operational Research Society 1969 ). Nodes of each cluster are illustrated on the plot 140 using different shapes (e.g. circles, X sign, + sign, triangles, stars, squares, dashes, pentagons, diamond sign, and Y sign). The instance contains fifty nodes that are clustered in ten groups (i.e. k=io). Each cluster contains no more than five nodes (i.e. max_nodes=5). The benchmark supposes that all the vehicles have the same capacity (e.g. weight capacity) of 160 kilograms, thus the maximum cluster demand is equal to 160 kilograms. FIGs. 14 is a routing plot, indicated generally by reference numeral 150, generated in accordance with example embodiments. The plot 150 shows an example routing for vehicles to deliver items corresponding to the K cluster groups shown in the clustering plot 140. The plot 150 shows the results obtained by running the routing algorithm on the obtained clusters. For example, the MCTS is run for 100000 iterations and the Tabu Seach is run for 1000 iterations for each single trip. For the test case (Christofides test instance E-nsi-ks), the obtained routing solution has a trip length of 606 and uses 6 vehicles.
FIG. 15 is a block diagram of a system, indicated generally by the reference numeral 160, in accordance with an example embodiment. System 160 comprises the elements of system 20 of FIG. 2, and further shows that the node ni is assigned to the cluster 23. In one example, after the clustering and vehicle distribution have been performed, the vehicle 13 may be assigned for delivering items of cluster 21, the vehicle 15 may be assigned for delivering items of cluster 22, the vehicle 16 may be assigned for delivering items of cluster 23, and the vehicle 14 may be assigned for delivering items of cluster 24, as shown by the arrows in system 150. Each of the vehicles may deliver the items of the assigned cluster using an optimal route, as determined by the routing algorithm described above with reference to FIGs. 11 and 12. FIG. 16 is a block diagram of a system, indicated generally by the reference numeral 170, in accordance with an example embodiment. System 170 shows the vehicle 13 and nodes na to nd of cluster 21. Vehicle 13 maybe assigned for delivering items of the cluster 21. There may be a plurality of possible routes for the vehicle 13 to deliver the items of the cluster 21. For example, a first possible route 162, as shown by the solid line arrows, may be depot-node 11a- node 11b- node 11c- node nd. The first possible route 162 may further include a trip from the last node nd to the depot, or to a node of another cluster. A second possible route 164, as shown by the dotted line arrows, may be depot-node nd- node 11c- node 11b- node 11a. The second possible route 164 may further include a trip from the last node 11a to the depot, or to a node of another cluster. As such, the routing algorithm may be used for selecting one of the first possible route 162 or second possible route 164. The selected route will then be used by the vehicle 13 to deliver items of the cluster 21 corresponding to nodes 11a to nd.
FIG. 17 is a block diagram of a system, indicated generally by the reference numeral 180, in accordance with an example embodiment. The system 180 comprises an apparatus comprising a clustering module 181, a vehicle distribution module 182, and a routing module 183. The clustering module 181 maybe configured to perform clustering (e.g. operation 32 of FIG. 3) of a plurality of items in one or more clusters. The plurality of items are to be delivered using one or more vehicles. The vehicle distribution module 182 maybe configured to determine (e.g. operation 34 of FIG. 3) a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor. For example, item(s) in a single cluster is/are to be delivered using a single vehicle. The routing module 183 may be configured to determine (e.g. operation 36 of FIG. 3) a route for each of the one or more vehicles. Embodiments of the present invention may be implemented in software, hardware, application logic or a combination of software, hardware and application logic. The software, application logic and/or hardware may reside on memory, or any computer media. If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined. Similarly, it will also be appreciated that the flow diagrams of Figures 3, 4, 5 and 7 are examples only and that various operations depicted therein maybe omitted, reordered and/or combined. It will be appreciated that the above described example embodiments are purely illustrative and are not limiting on the scope of the invention. Other variations and modifications will be apparent to persons skilled in the art upon reading the present specification.
Moreover, the disclosure of the present application should be understood to include any novel features or any novel combination of features either explicitly or implicitly disclosed herein or any generalization thereof and during the prosecution of the present application or of any application derived therefrom, new claims may be formulated to cover any such features and/ or combination of such features.
It is also noted herein that while the above describes various examples, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications which may be made without departing from the scope of the present invention as defined in the appended claims.

Claims

Claims
1. An apparatus comprising: a clustering module configured to perform clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; a vehicle distribution module configured to perform determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and a routing module configured to perform determining a route for each of the one or more vehicles.
2. An apparatus as claimed in claim l, wherein the clustering comprises: determining capacity of the one or more vehicles; determining a total number of clusters, based at least partially on the capacity of the one or more vehicles; determining centroid values for the one or more clusters; and assigning each of the plurality of items to one of the one or more clusters.
3. An apparatus as claimed in claim 2, wherein determining the total number of clusters comprises: sorting the plurality of items in decreasing order of weight and/or size; summing weights and/or sizes of one or more sorted items starting from the item with the highest weight and/ or size until capacity of a first vehicle with a lowest capacity among the one or more vehicles is reached, such that a total maximum weight and/ or size of one or more items in a respective cluster is lower than or equal to the capacity of the first vehicle of the plurality; wherein a respective capacity of the one or more vehicles may be based on a threshold weight and/or size corresponding to the respective vehicle; determining a first number of items for which the weights are summed until the capacity of the first vehicle is reached; and determining the total number of clusters based on a ratio of the total number of the plurality of items and the first number of items.
4. An apparatus as claimed in any one of claims 2 and 3, wherein the assigning comprises assigning a first item of the plurality to a first cluster if: a distance of a centroid of the first cluster from a delivery location of the first item is the least among distances of one or more other centroids of one or more other clusters from the deliveiy location of the first item; and priority of the first item is highest among other items of the plurality whose delivery locations are within a threshold distance from the centroid of the first cluster.
5. An apparatus as claimed in claim 4, further comprising iteratively performing the assignment of each item to clusters such that: distance between items in a single cluster is minimized; and distance between centroids of each cluster is maximized.
6. An apparatus as claimed in any one of the preceding claims, wherein determining the distribution of one or more vehicles comprises: estimating the energy consumption factor for the one or more vehicles, wherein the energy consumption factor indicates an amount of energy required for the one or more vehicles for delivering items in the corresponding one or more clusters respectively.
7. An apparatus as claimed in any one of the preceding claims, wherein determining the distribution of vehicles comprises: classifying the one or more clusters into an area type; estimating a first energy consumption for one or more clusters based at least partially on the area types; classifying one or more possible routes into a route type, wherein the one or more possible routes comprise routes for the one or more vehicles for delivering the plurality of items; and estimating a second energy consumption for one or more possible routes based at least partially on the route types.
8. An apparatus as claimed in claim 7, wherein the area type selected from a free flow area type and a congested area type, and the route type is selected from a free flow route type and a congested route type.
9. An apparatus as claimed in any one of claims 7 and 8, wherein determining the distribution of one or more vehicles further comprises using the estimated first energy consumption and the estimated second energy consumption for the one or more possible routes for determining an optimal route for the one or more vehicles.
10. An apparatus as claimed in any one of the preceding claims, wherein the determination of one or more routes for the one or more vehicles is performed using one or more of a Monte Carlo Tree Search algorithm, and/or a Tabu Search algorithm.
11. An apparatus as claimed in any one of the preceding claims, wherein the determination of one or more routes for the one or more vehicles is performed based on one or more preferences and/or priorities assigned to the one or more preferences, the preferences comprising one or more of: minimizing the number of undelivered items, minimizing total route length, minimizing unused capacity of the vehicles, avoiding complete battery depletion of electric vehicles, maximizing number of items delivered by electric vehicles in defined areas, and minimizing cost of delivery.
12. An apparatus as claimed in any one of the preceding claims, wherein the one or more vehicles comprise one or more electric vehicles, one or more non-electric vehicles, and/ or one or more hybrid vehicles, wherein the distribution of the one or more vehicles for the one or more clusters is further based, at least in part, on whether a vehicle is an electric vehicle, a non-electric vehicle, or a hybrid vehicle.
13. An apparatus as claimed in any one of the preceding claims, wherein the apparatus comprise: at least one processor; and at least one memory including computer program code, the at least one memory and the computer program configured, with the at least one processor, to cause the performance of the apparatus.
14. A method comprising: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
15. A computer program comprising instructions for causing an apparatus to perform at least the following: clustering a plurality of items in one or more clusters, wherein the plurality of items are to be delivered using one or more vehicles; determining a distribution of one or more vehicles for the one or more clusters respectively based, at least in part, on an energy consumption factor, wherein item(s) in a single cluster is/are to be delivered using a single vehicle; and determining a route for each of the one or more vehicles.
PCT/GB2021/050085 2020-01-16 2021-01-15 Vehicle routing WO2021144577A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB2000674.8A GB202000674D0 (en) 2020-01-16 2020-01-16 Vehicle routing
GB2000674.8 2020-01-16

Publications (1)

Publication Number Publication Date
WO2021144577A1 true WO2021144577A1 (en) 2021-07-22

Family

ID=69636787

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2021/050085 WO2021144577A1 (en) 2020-01-16 2021-01-15 Vehicle routing

Country Status (2)

Country Link
GB (1) GB202000674D0 (en)
WO (1) WO2021144577A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230322110A1 (en) * 2022-04-12 2023-10-12 Toyota Motor North America, Inc. Multiple vehicles to provide energy to a location
US20230419234A1 (en) * 2022-06-27 2023-12-28 Toyota Motor North America, Inc. Ev battery degradation in a fleet

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152685B1 (en) * 2015-07-27 2018-12-11 Amazon Technologies, Inc. Dynamic vehicle routing for regional clusters

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152685B1 (en) * 2015-07-27 2018-12-11 Amazon Technologies, Inc. Dynamic vehicle routing for regional clusters

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHRISTOFIDESEILON: "An algorithm for the vehicle routing dispatching problem", JOURNAL OF THE OPERATIONAL RESEARCH SOCIETY, 1969

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230322110A1 (en) * 2022-04-12 2023-10-12 Toyota Motor North America, Inc. Multiple vehicles to provide energy to a location
US20230419234A1 (en) * 2022-06-27 2023-12-28 Toyota Motor North America, Inc. Ev battery degradation in a fleet

Also Published As

Publication number Publication date
GB202000674D0 (en) 2020-03-04

Similar Documents

Publication Publication Date Title
Cheng et al. Utility-aware ridesharing on road networks
Barco et al. Optimal routing and scheduling of charge for electric vehicles: A case study
CN105160428B (en) The planing method of electric automobile on highway quick charge station
Jung et al. Dynamic shared‐taxi dispatch algorithm with hybrid‐simulated annealing
CN105091892B (en) Vehicle energy management apparatus
Jung et al. Design and modeling of real-time shared-taxi dispatch algorithms
Zhang et al. A time-dependent electric vehicle routing problem with congestion tolls
CN107180274B (en) Typical scene selection and optimization method for electric vehicle charging facility planning
Yuan et al. Locating transit hubs in a multi-modal transportation network: A cluster-based optimization approach
WO2021144577A1 (en) Vehicle routing
Durán-Micco et al. A survey on the transit network design and frequency setting problem
CN106225800A (en) Environmentally friendly automobile navigation path construction method based on real-time road condition information
Erdelić et al. Electric vehicle routing problem with single or multiple recharges
Tu et al. Real-time route recommendations for E-taxies leveraging GPS trajectories
Pan et al. Ridesharing: simulator, benchmark, and evaluation
CN115953104A (en) Mixed fleet scheduling method based on dung beetle optimization algorithm
Gareau et al. An efficient electric vehicle path-planner that considers the waiting time
Qiao et al. Vehicle powertrain connected route optimization for conventional, hybrid and plug-in electric vehicles
Macrina et al. The green-vehicle routing problem: a survey
JP2022500307A (en) How to calculate control settings for fuel and current consumption by a hybrid vehicle
JP2021190094A (en) Delivery plan creation method, device, system, and computer readable storge medium
CN113984079B (en) Route planning method and device for electric vehicle, electronic equipment and storage medium
CN112418514A (en) Method for optimizing campus bus route planning by using ant colony system
CN112115385A (en) One-way shared automobile system site selection optimization method considering charging time
Bansal et al. Performance evaluation and optimization of design parameters for electric vehicle-sharing platforms by considering vehicle dynamics

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21701578

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21701578

Country of ref document: EP

Kind code of ref document: A1