Information processing device, information processing program, and information processing method
The information processing device optimizes vehicle routing by generating and updating routes based on edge costs and excluding non-contributing edges, addressing inefficiencies in conventional methods and reducing processing time.
Patent Information
- Application Number
- JP2022075025
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-04-28
- Publication Date
- 2025-12-09
- Estimated Expiration
- 2042-04-28
AI Technical Summary
The conventional shortest path search method for solving vehicle routing problems becomes computationally inefficient as the number of nodes increases, leading to prolonged processing times for selecting optimal routes.
An information processing device generates multiple initial routes, calculates indices based on edge costs, combines edges to form best routes, updates routes based on reduced costs, and excludes edges that haven't contributed to updates a predetermined number of times, optimizing the route selection process.
This approach significantly reduces the time required to select optimal routes by minimizing processing time and focusing on routes with the smallest reduced costs.
Smart Images

Figure 0007782364000004 
Figure 0007782364000005 
Figure 0007782364000006
Abstract
Description
[Technical Field]
[0001] The present invention relates to an information processing device, an information processing program, and an information processing method. [Background technology]
[0002] One type of combinatorial optimization problem is the delivery planning problem (also known as the "vehicle routing problem" or VRP). For example, VRP considers multiple delivery vehicles waiting at a specific facility called a depot, transporting goods from the depot to their destination, such as a customer location, and then returning to the depot, or transporting goods from the customer location to the depot. In the following explanation, a delivery vehicle will be referred to as a "vehicle." A customer location will be referred to as a "node" or "nd." A depot may also be referred to as "node 0" or "nd0."
[0003] The given data for VRP include the number of nodes, the travel time for a vehicle to travel between nodes, the amount of cargo that needs to be transported from the depot to each node (or from each node to the depot), the time period during which a vehicle can visit each node, the maximum load capacity of each vehicle, and the cost associated with operating each vehicle for a certain period of time. Note that cost is not limited to monetary costs such as labor costs required to operate a vehicle or vehicle usage fees, but is an indicator of the load required to make a delivery. In the following explanation, the amount of cargo that needs to be transported will be referred to as "demand." The time period during which a vehicle can visit each node will be referred to as the "time window."
[0004] Given the above data, the VRP problem is to find a route for each vehicle that minimizes the sum of the costs of each vehicle.
[0005] The route of each vehicle includes information such as which nodes the vehicle will visit and at what time, as well as the amount of cargo the vehicle will carry to (or from) each node it visits. In the following explanation, the amount of cargo the vehicle will carry to (or from) each node it visits will be referred to as "supply."
[0006] FIG. 1 is a diagram for explaining the route of a vehicle. The example shown in FIG. 1 includes a depot 10 and nodes 1 to 12 (nd1 to nd12). In the explanation of FIG. 1, the time when the vehicle visited the node and the supply are not shown. For example, the route of vehicle 1 is route Ro1, the route of vehicle 2 is route Ro2, and the route of vehicle 3 is route Ro3.
[0007] Route Ro1 is a route that vehicle 1 takes to visit depot 10 and nds 1 to 4. Route Ro2 is a route that vehicle 2 takes to visit depot 10 and nds 5 to 8. Route Ro3 is a route that vehicle 3 takes to visit depot 10 and nds 9 to 12.
[0008] For example, a strategy for solving a VRP consists of a step of generating a route (Step 1) and a step of selecting a route (Step 2). In Step 1, routes are generated for each vehicle that satisfy the problem conditions as much as possible. The problem conditions include a time window and maximum payload.
[0009] In Step 2, a set of routes that satisfies the demands of all nodes and minimizes the sum of the costs of each route, i.e., the total cost, is selected from the routes generated in Step 1. For example, the processing in Step 2 is performed by an optimization device such as an Ising machine.
[0010] A conventional method for generating the best route candidate for reducing total cost is the shortest path search method. Figure 2 is a diagram explaining the algorithm of the conventional shortest path search method. In Figure 2, the area surrounded by a dashed line represents one iteration. In the shortest path search method, the following process is performed in each iteration. Assume that the provisional best route among the routes departing from the depot and arriving at each node has already been obtained in the previous iteration. The edges between each node are scanned in order, and it is determined whether adding that edge to the provisional best route will result in a better route. If so, the route after adding the edge is updated as the provisional best route. This iteration is repeated multiple times, and the last updated best route among the routes returning to the depot is output as a route candidate. [Prior art documents] [Patent documents]
[0011] [Patent Document 1] Japanese Patent Publication No. 2021-165196 [Patent Document 2] Patent Publication No. 2021-111237 Summary of the Invention [Problem to be solved by the invention]
[0012] However, in the shortest path search method, as the number of nodes increases, the number of edges increases as a square of the number of nodes, which means that the processing time for one iteration becomes longer and the time it takes for the optimization device to select the optimal path also increases.
[0013] In one aspect, the present invention aims to provide an information processing device, an information processing program, and an information processing method that can reduce the time required for an optimization device to select an optimal route. [Means for solving the problem]
[0014] In one aspect, the information processing device generates a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem, calculates a first index for each node based on the cost of each edge between each node of the first routes, combines the edges to generate a second route from a starting point to each node and that satisfies a second condition among the plurality of conditions as a best route, adds edges to the best route to generate a third route that satisfies the second condition, and calculates a difference between the cost of the second route and the third route and the sum of the first indexes based on the costs and the first index. A second index is calculated, and if the second index of the third route is smaller than the second index of the second route that arrives at the same node as the third route, the best route is updated to the third route, and edges that have not contributed to the update of the best route a predetermined number of times or more are excluded from being added to each route. The addition of edges to the best route, the calculation of the second index, and the update of the best route are repeated until the route returns to the starting point, and the route with the smallest second index among the best routes returning to the starting point is selected as a route candidate, and the first index is an index that indicates the degree of cost reduction in a linear relaxation of the delivery planning problem. [Effects of the Invention]
[0015] In one aspect, the time it takes for the optimizer to select the optimal route can be reduced. [Brief explanation of the drawings]
[0016] [Figure 1] FIG. 1 is a diagram for explaining the route of a vehicle. [Figure 2] FIG. 2 is a diagram for explaining the algorithm of a conventional shortest path search method. [Figure 3] FIG. 3 is a diagram illustrating an example of a configuration of the information processing device 100 according to the first embodiment. [Figure 4] FIG. 4 is a diagram illustrating an example of data stored in the distance / travel time data 131 according to the first embodiment. [Figure 5] FIG. 5 is a diagram illustrating an example of data stored in the demand data 132 according to the first embodiment. [Figure 6]FIG. 6 is a diagram illustrating an example of data stored in the time window data 133 according to the first embodiment. [Figure 7] FIG. 7 is a flowchart illustrating an example of the flow of the route generation process according to the first embodiment. [Figure 8] FIG. 8 is a diagram illustrating an example of generating a set of routes according to the first embodiment. [Figure 9] FIG. 9 is a diagram illustrating an example of calculation of a prize according to the first embodiment. [Figure 10] FIG. 10 is a diagram for explaining the algorithm of the shortest path search method for finding a path with the minimum reduced cost. [Figure 11] FIG. 11 is a diagram illustrating an example of route generation using the shortest route search method according to the first embodiment. [Figure 12] FIG. 12 is a diagram for explaining the algorithm of the shortest path search method according to the first embodiment. [Figure 13] FIG. 13 is a diagram illustrating the removal of edges that did not contribute to the route update according to the first embodiment. [Figure 14] FIG. 14 is a flowchart illustrating an example of the flow of the best route update process according to the first embodiment. [Figure 15] FIG. 15 is a diagram illustrating an example of the hardware configuration of the information processing device 100. As shown in FIG. DETAILED DESCRIPTION OF THE INVENTION
[0017] Hereinafter, examples of the information processing device, information processing program, and information processing method according to the present embodiment will be described in detail with reference to the accompanying drawings. Note that the present embodiment is not limited to these examples. Furthermore, each example can be appropriately combined within a consistent range. [Example]
[0018] [Functional configuration of information processing device 100] First, a functional configuration of an information processing device 100 that is the executing subject of this embodiment will be described. The information processing device 100 is an optimization device for selecting an optimal route in a VRP. FIG. 3 is a diagram illustrating an example of the configuration of the information processing device 100 according to the first embodiment. As shown in FIG. 3, the information processing device 100 includes a communication unit 120, a storage unit 130, and a control unit 140.
[0019] The communication unit 120 is, for example, a processing unit that controls communication with other information processing devices via the network 50, and is, for example, a communication interface such as a network interface card.
[0020] The storage unit 130 is an example of a storage device, such as a memory or a hard disk, that stores various data and programs executed by the control unit 140. The storage unit 130 stores distance / travel time data 131, demand data 132, time window data 133, and the like.
[0021] The distance / travel time data 131 stores, for example, data related to the distance between nodes including a depot and the travel time by vehicle between each node. FIG. 4 is a diagram illustrating an example of data stored in the distance / travel time data 131 according to the first embodiment. As illustrated in FIG. 4, the distance / travel time data 131 stores, for example, the distance and the travel time by vehicle between each node. For example, the example in FIG. 4 indicates that the distance between the depot and node 1 is 3 km (kilometers) and the travel time by vehicle is 15 minutes. Note that although the example in FIG. 4 only shows up to node 2, the distance / travel time data 131 may store data from node 3 onward. Furthermore, the data stored in the distance / travel time data 131 may be either the distance between each node or the travel time by vehicle.
[0022] The demand data 132 stores, for example, data on the amount of cargo that needs to be transported to each node including a depot. FIG. 5 is a diagram illustrating an example of data stored in the demand data 132 according to the first embodiment. As illustrated in FIG. 5, the demand data 132 stores, for example, the amount of cargo that needs to be transported from the source to the destination. For example, the example in FIG. 5 indicates that the amount of cargo that needs to be transported from the depot to node 1 is 5 kg (kilograms). Note that the amount of cargo stored in the demand data 132 may be in other units, such as the number of pieces of cargo. Furthermore, although the example in FIG. 5 only shows demand between three nodes, the demand data 132 may store data between more nodes.
[0023] The time window data 133 stores, for example, data on a time period during which each node, including a depot, can be visited. FIG. 6 is a diagram illustrating an example of data stored in the time window data 133 according to the first embodiment. As illustrated in FIG. 6, the time window data 133 stores, for example, the earliest arrival time and the final arrival time of each node, including a depot. For example, the example in FIG. 6 indicates that node 1 can be visited between 17:00 and 19:00. In other words, this indicates that there is a restriction that the target node can only be visited during the time period between the earliest arrival time and the final arrival time. Furthermore, since the depot is the starting point, there is no earliest arrival time, and there is a restriction that the depot must be returned by the final arrival time, which is 20:00 in the example in FIG. 6. Note that although only up to node 2 is shown in the example in FIG. 6, the time window data 133 may store data for nodes 3 and onward.
[0024] The above-mentioned various types of information stored in the storage unit 130 are merely examples, and the storage unit 130 can store various types of information other than the above-mentioned information.
[0025] Returning to the explanation of Fig. 3, the control unit 140 is a processing unit, such as a processor, that controls the entire information processing device 100. The control unit 140 includes a generation unit 141, a calculation unit 142, and an output unit 143. Each processing unit is an example of an electronic circuit included in the processor or an example of a process executed by the processor.
[0026] The generation unit 141 generates, for example, a plurality of first routes that satisfy a first condition among a plurality of conditions included in the VRP. The generation unit 141 also generates, as a tentative best route, a second route that arrives at each node from the starting point by combining edges between the nodes of the first routes and satisfies a second condition among the plurality of conditions. The generation unit 141 then generates, for example, a third route that satisfies the second condition by adding edges to the generated second route. The generation unit 141 then repeats adding edges to the best route until the generated route returns to the starting point. The plurality of conditions included in the VRP, the first condition, and the second condition are, for example, various constraints in the VRP, such as the maximum load capacity of the vehicle, the amount of luggage that needs to be carried to each node, and the time period during which each node can be visited.
[0027] Furthermore, the generating unit 141 generates an objective function, for example, as expressed by the following equation (1).
[0028]
number
[0029] The calculation unit 142 calculates a prize for each node based on, for example, the cost of each edge between each node of the first route generated by the generation unit 141. The calculation of the prize in the shortest path search method will be described later. Furthermore, the calculation unit 142 calculates the reduced cost of the second route and the third route generated by the generation unit 141 based on, for example, the cost and the calculated prize. The reduced cost will also be described later.
[0030] Furthermore, the calculation unit 142 updates the best route to the third route, for example, if the reduced cost of the third route is less than the reduced cost of the second route arriving at the same node as the third route. If there are multiple third routes with reduced costs less than the second route arriving at the same node, the best route may be updated to the third route with the smallest reduced cost. In particular, even if the route other than the route with the smallest reduced cost is generated, for example, if the route ultimately returns to the depot, such as a route with a sufficient vehicle loading capacity, it may ultimately become the best route. However, this requires maintaining many routes. Furthermore, the number of routes to be processed increases accordingly, which increases the processing time and makes it take time to select the optimal route.
[0031] In addition, edges that have not contributed to updating the best route a predetermined number of times or more are controlled to be excluded from being added to each route. This reduces the processing time for the excluded edges in the shortest route search method, thereby reducing the time required for the information processing device 100 to select an optimal route. Note that the calculation unit 142 also repeats calculating the reduced cost of the generated route and updating the best route until the route generated by the generation unit 141 returns to the starting point.
[0032] The calculation unit 142 uses the objective function generated by the generation unit 141 and a constraint equation expressed by the following equation (2) to calculate x such that the value of the objective function is minimized while satisfying the constraint equation. r The value of is calculated and the optimal set of routes is selected from the set of routes.
[0033]
number
[0034] The output unit 143 outputs, for example, the best route returning to the starting point, which is generated by the generation unit 141 and updated by the calculation unit 142, as a route candidate. If multiple best routes are held as route candidates, the output unit 143 can select and output the route with the smallest reduced cost as the route candidate. The data output by the calculation unit 142 is, for example, only a bit string indicating which route has been selected. Therefore, the output unit 143 combines, for example, the bit string with the data of the generated route and outputs the data of the selected route as a route candidate.
[0035] [Function details] Next, a more detailed description will be given of the route generation process in the VRP executed by the information processing device 100. Fig. 7 is a flowchart illustrating an example of the flow of the route generation process according to the first embodiment.
[0036] First, the information processing device 100 generates a set of routes that satisfy the predetermined conditions of the VRP and meet the demand (step S101). Note that the predetermined conditions of the VRP are various constraints in the VRP, such as the maximum load capacity of the vehicle, the amount of cargo that needs to be transported to each node, and the time period during which each node can be visited.
[0037] The generation of the set of routes in step S101 will be described in more detail. FIG. 8 is a diagram showing an example of the generation of the set of routes according to the first embodiment. The example in FIG. 8 is for generating a set of routes that minimizes the cost when a vehicle transports goods from one depot 10 to four nodes 1 to 4 (nd1 to nd4), each having a demand of 1 kg. In the example in FIG. 8, the cost of a vehicle is the travel distance of the vehicle. Also, the maximum load capacity of a vehicle is 2 kg. Therefore, the number of nodes that a vehicle can visit in one transport is two or less (excluding the depot), and for example, a set of routes 1 to 3 is generated in the solution process, as shown in the lower part of FIG. 8.
[0038] Returning to the explanation of Fig. 7, next, the information processing device 100 solves a linearly relaxed problem of "the problem of selecting a set of routes that minimizes the total cost from a set of routes that have already been generated" (step S102). Step S102 solves a dual problem of the linearly relaxed problem, and obtains a first index (hereinafter referred to as "prize") of which nodes the next route to be generated should visit in order to lower the optimal value of the linearly relaxed problem (hereinafter referred to as "approximate value of the total cost").
[0039] The calculation of the prize money in step S102 will be described in more detail. Fig. 9 is a diagram showing an example of calculation of the prize money according to the first embodiment. In the example of Fig. 9, the prize money of each node is calculated from the set of routes 1 to 3 generated in Fig. 8. As shown in the upper part of Fig. 9, the costs of routes 1 to 3 are c1 = 18 km, c2 = 18 km, and c3 = 16 km, respectively.
[0040] In addition, since the total cost should be as small as possible, as shown in the middle of Figure 9, i is a variable that indicates whether route i is selected, and the objective function to be minimized is c1x1+c2x2+c3x3. Also, since it is necessary to select more than one route that visits each node, x iThe constraints for are x1 ≥ 1, x2 ≥ 1, x2 + x3 ≥ 1, x1 + x3 ≥ 1. Also, x1 to x3 must be real values, so x1, x2, x3 ≥ 0.
[0041] On the other hand, a larger prize can reduce the approximation of the total cost of the linearly relaxed problem, so as shown in the bottom of Figure 9, y j The objective function to be maximized is y1+y2+y3+y4, where y represents the prize money of each node. Also, from the cost of each route 1 to 3, y i The constraints for are y1+y4≦c1=18km, y2+y3≦c2=18km, y3+y4≦c3=16km. Also, since y1 to y4 must be real values, y1, y2, y3, y4≧0. And, such y i While satisfying the constraints on i When each value is calculated, the optimal solution is (y1, y2, y3, y4) = (18, 18, 0, 0).
[0042] In the examples of Figures 8 and 9, the cost of a vehicle is the travel distance of the vehicle, but as in a general VRP, the cost of a vehicle may be the travel distance and travel time of the vehicle. In this case, for example, the cost c of route i is calculated using a function such as that shown in the following equation (3). i Substitute into
[0043]
number
[0044] Returning to the explanation of FIG. 7, next, the information processing device 100 searches for a route that satisfies the VRP conditions and that reduces the approximate value of the total cost based on the index, i.e., the prize money, obtained in step S102 (step S103). If a route is found in step S103 (step S104: Yes), the information processing device 100 adds the route to the set of routes that have already been generated (step S105), returns to step S102, and repeats the process. On the other hand, if a route is not found in step S103 (step S104: No), the route generation process shown in FIG. 7 ends. Step S103 searches for a route with the smallest value of the reduced cost, which is the second index, as the route to be generated next. The reduced cost is calculated as (cost - the sum of the prize money values of the nodes to be visited). In step S103, the process continues, with the cost of the vehicle being the travel distance of the vehicle. 9 and the calculated prize money, the route that visits from depot 10 to node 1 and node 2 in that order (or vice versa) and then returns to depot 10 has a reduced cost of 16 (cost) - 36 (total prize money) = -20, which is the smallest reduced cost. Therefore, the problem is how to find such a route with the smallest reduced cost.
[0045] Figure 10 is a diagram for explaining the algorithm of the shortest path search method for finding a path with the smallest reduced cost. The algorithm in Figure 10 finds a path where the best path condition in the conventional shortest path search algorithm in Figure 2 is that the reduced cost is the smallest. Note that in Figure 10, the part surrounded by the dashed line also represents one iteration.
[0046] The algorithm shown in FIG. 10 will be described with reference to FIG. 11. FIG. 11 is a diagram illustrating an example of route generation using the shortest path search method according to the first embodiment. First, in the first iteration of the algorithm shown in FIG. 10, a route from depot 10 to each node with the minimum reduced cost is obtained. The route shown on the left side of FIG. 11 is the route after the first iteration of the algorithm shown in FIG. 10 is completed. As shown on the left side of FIG. 11, in the first iteration of the algorithm shown in FIG. 10, a route from depot 10 to node 1 and a route from depot 10 to node 2 are obtained as routes with the minimum reduced cost, where the reduced cost is 5 (cost) - 18 (sum of prize money) = -13. As shown on the left side of FIG. 11, the respective routes are represented as, for example, path[1] = [0, 1] and path[2] = [0, 2].
[0047] Then, as shown on the right side of Figure 11, in the next iteration, for example, when looking at the edge (1,2) from node 1 to node 2, node 2 is added to the route (path[1]) from depot 10 to node 1, and path_temp[2] = [0,1,2] is generated. This route (path_temp[2]) that visits node 1 and node 2 in that order from depot 10 is a route that departs from depot 10 and arrives at node 2, just like the route (path[2]) from depot 10 to node 2. Therefore, the reduced cost of path_temp[2] is calculated and compared with the reduced cost of path_temp[2]. If path_temp[2] is smaller, path[2] is updated to path_temp[2] as the best route to arrive at node 2. In other words, path[2] = [0,1,2]. In fact, when the reduced cost of path_temp[2] is calculated, the reduced cost = 16 (cost) - 36 (sum of prizes) = -20, which is smaller than the reduced cost of path[2], which is -13. In this way, in the iteration, an edge to the next node is added, the reduced cost of the generated route is compared with the reduced cost of other routes arriving at the same node, and the route with the smaller reduced cost is updated as the best route.
[0048] However, as shown in Figure 10, the iteration process involves sequentially scanning the edges between each node, including the depot, for the entire edge set, adding edges to the route to generate a route, calculating and comparing reduced costs, and repeatedly updating the best route. Therefore, as the number of nodes in a VRP increases, the processing time increases exponentially. Therefore, in this embodiment, edges that have not contributed to updating the best route a predetermined number of times or more are excluded from subsequent processing, thereby reducing the processing time.
[0049] FIG. 12 is a diagram for explaining the algorithm of the shortest path search method according to the first embodiment. In FIG. 12, the part surrounded by a dashed line is one iteration. In comparison with FIG. 10, the processing of the iteration part in FIG. 12 is configured such that the number of times that it did not contribute to updating the best path (the else part of the if part) is counted, and processing is performed only when the number of times is less than a predetermined threshold (Thres). Note that the value of the threshold and its conditions (e.g., whether it is less than or equal to or less than) can be changed as desired and are not limited to the example of FIG. 12.
[0050] FIG. 13 is a diagram illustrating the removal of edges that did not contribute to the path update according to the first embodiment. In the example of FIG. 13, a predetermined threshold is set to 1, and edges that did not contribute to the update of the best path at least once are removed from subsequent processing. The left side of FIG. 13 shows edges to be scanned in each iteration, i.e., edges to be processed. The right side of FIG. 13 shows a path generated by adding edges through the processing of each iteration. As shown on the left side of FIG. 13, in the third iteration, edges that did not contribute to the update of the best path at least once are removed, and only four edges are scanned and processed. Note that FIG. 13 is merely an example, and the obtained path and the removed edges may differ depending on the order in which the edges are scanned and processed in each iteration.
[0051] [Processing flow] Next, a flow of the best route update process executed by the information processing device 100 will be described. Fig. 14 is a flowchart showing an example of the flow of the best route update process according to the first embodiment. The best route update process shown in Fig. 14 is a more detailed flow diagram of the algorithm shown in Fig. 12.
[0052] First, the information processing device 100 sets variables for each node in the VRP, including the depot (step S201). Step S201 is a process for setting initial values in a program. The initial value setting for each value is, for example, as shown in FIG. 14, but is not limited to this.
[0053] Next, the information processing device 100 determines whether the number of iterations is less than a predetermined threshold (step S202). Step S202 limits the number of times the iteration portion shown in Fig. 12 is processed so that the processing is repeated at least until a route departing from the depot and returning to the depot is generated, so that the processing is not repeated infinitely. If the number of iterations is greater than or equal to the predetermined threshold (step S202: No), the route in the visiting order of path[0] is output (step S215), and the best route update processing shown in Fig. 14 ends.
[0054] On the other hand, if the number of iterations is less than the predetermined threshold (step S202: Yes), the information processing device 100 sets a set of edges that have not contributed to updating the best route the number of times that is less than the predetermined threshold (Thres) as the edge set to be processed (edge_set) (step S203). Note that the number of times that have not contributed to updating the best route is stored in, for example, num_times_wo_update[(i,j)], and its initial value is 0.
[0055] Next, the information processing device 100 selects one edge from the set of edges set in step S203 (step S204). Note that, because step S204 is a repeated process in an iteration, the edge selected in step S204 is an edge that has not yet been selected from the set of edges set in step S203. Strictly speaking, an edge that has already been processed in a subsequent process is excluded from the set of edges, and therefore is not a target for selection in step S204.
[0056] Next, the information processing device 100 determines whether or not there is a path (path[i]) to which the edge selected in step S204 is to be added (step S205). The path to which the edge selected in step S204 is to be added is, for example, a path (path[i]) that visits the start node i of the edge selected in step S204. If there is no path to add (step S205: No), the process proceeds to step S212.
[0057] On the other hand, if there is a route to add (step S205: Yes), the information processing device 100 adds the edge selected in step S204 to the route to generate a route (step S206). The generated route is set to path_tmp[j].
[0058] Next, the information processing device 100 determines whether the path (path_tmp[j]) generated by adding the edge in step S206 satisfies a predetermined condition of the VRP (step S207). Here, the predetermined condition of the VRP refers to various constraints in the VRP, such as the maximum load capacity of the vehicle, the amount of luggage that needs to be carried to each node, and the time period during which each node can be visited. If the predetermined condition is not satisfied (step S207: No), the information processing device 100 counts up the number of times (num_times_wo_update[(i,j)]) that the edge added in step S206 did not contribute to updating the best route (step S211), and proceeds to step S212.
[0059] On the other hand, if the path generated by adding the edge in step S206 satisfies the predetermined condition of the VRP (step S207: Yes), the information processing device 100 calculates the reduced cost of the path (step S208). The calculated reduced cost is set to reduced_cost_tmp[j].
[0060] Next, the information processing device 100 compares the reduced cost (reduced_cost_tmp[j]) calculated in step S208 with the reduced cost (reduced_cost[j]) of the best route that arrives at the same node as the route generated by adding the edge in step S206 (step S209). If the reduced cost calculated in step S208 is smaller (step S209: No), the information processing device 100 counts up the number of times (num_times_wo_update[(i,j)]) that the edge added in step S206 did not contribute to updating the best route (step S211). Then, after executing step S211, the information processing device 100 proceeds to step S212.
[0061] On the other hand, if the reduced cost calculated in step S208 is greater (step S209: Yes), the information processing device 100 updates the best route (path[j]) to the route (path_tmp[j]) generated by adding the edge in step S206 (step S210). The information processing device 100 also updates the reduced cost (reduced_cost[j]) of the best route to the reduced cost (reduced_cost_tmp[j]) calculated in step S208.
[0062] Next, the information processing apparatus 100 excludes the edge selected in step S204 from the set of edges to be processed (edge_set) (step S212).
[0063] Next, the information processing device 100 determines whether there are any more edges in the edge set (edge_set) to be processed (step S213). If there are any more edges in the edge set to be processed (step S213: No), the process returns to step S204, the next edge is selected, and the processes from step S204 to step S213 are repeated.
[0064] On the other hand, if there is no edge in the set of edges to be processed (step S213: Yes), the information processing device 100 counts up the number of iterations (step S214), returns to step S202, and repeats the processing from step S202 to step S214 until the number of iterations becomes equal to or greater than a predetermined threshold.
[0065] [effect] As described above, the information processing device 100 generates a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem, calculates a prize for each node based on the cost of each edge between each node of the first routes, combines edges to generate a second route that arrives from the starting point to each node and satisfies a second condition among the plurality of conditions as a best route, adds edges to the second route to generate a third route that satisfies the second condition, calculates the reduced costs of the second and third routes based on the costs and prizes, and updates the best route to the third route if the reduced cost of the third route is less than the reduced cost of the second route that arrives at the same node as the third route, and excludes edges that have not contributed to the updating of the best route a predetermined number of times or more from being added to each route. The information processing device 100 repeats the process of adding edges to the best route, calculating the reduced cost, and updating the best route until the route returns to the starting point, and selects the route with the lowest reduced cost among the best routes that return to the starting point as a route candidate.
[0066] In this way, the information processing device 100 can reduce the time required to select an optimal route by excluding edges that did not contribute to updating the best route from the targets of subsequent processing.
[0067] The information processing device 100 also generates a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem, calculates a prize for each node based on the cost of each edge between each node of the first routes, combines the edges to generate a second route that arrives from the starting point to each node and satisfies a second condition among the plurality of conditions as a best route, adds edges to the second route to generate a third route that satisfies the second condition, calculates the reduced costs of the second and third routes based on the costs and prizes, and if the reduced cost of the third route is less than the reduced cost of the second route that arrives at the same node as the third route, updates the best route to the third route with the smallest reduced cost among the third routes, excludes edges that have not contributed to the updating of the best route a predetermined number of times or more from being added to each route, and repeats the process of adding edges to the best route, calculating the reduced cost, and updating the best route until the route returns to the starting point, and outputs the best route that returns to the starting point as a route candidate.
[0068] In this way, the information processing device 100 can reduce the time required to select the optimal route by excluding edges that did not contribute to updating the best route from subsequent processing targets. Furthermore, since the information processing device 100 holds the route with the smallest reduced cost as the best route, processing time can be reduced compared to when continuing to hold routes other than the route with the smallest reduced cost.
[0069] [system] The information, including the processing procedures, control procedures, specific names, various data, and parameters shown in the above documents and drawings, can be changed as desired unless otherwise specified. Furthermore, the specific examples, distributions, and numerical values described in the embodiments are merely examples and can be changed as desired.
[0070] Furthermore, the components of each device shown in the figure are conceptual functional units and do not necessarily have to be physically configured as shown. In other words, the specific form of distribution or integration of each device is not limited to that shown. In other words, all or part of the devices can be functionally or physically distributed or integrated in any unit depending on various loads and usage conditions. Furthermore, all or any part of the processing functions performed by each device can be realized by a CPU (Central Processing Unit) or GPU (Graphics Processing Unit) and a program analyzed and executed by the CPU or GPU, or can be realized as hardware using wired logic.
[0071] [Hardware] FIG. 15 is a diagram illustrating an example of the hardware configuration of the information processing device 100. As shown in FIG. 15, the information processing device 100 includes a communication interface 100a, a hard disk drive (HDD) 100b, a memory 100c, and a processor 100d. The components shown in FIG. 15 are connected to each other via a bus or the like.
[0072] The communication interface 100a is a network interface card or the like, and communicates with other servers. The HDD 100b stores programs and DBs that operate the functions shown in FIG.
[0073] The processor 100d is a hardware circuit that operates a process that executes each function described in FIG. 3 and other figures by reading a program that executes the same processing as each processing unit shown in FIG. 3 from the HDD 100b or the like and expanding the program into the memory 100c. That is, this process executes the same functions as each processing unit of the information processing device 100. Specifically, the processor 100d reads a program having the same functions as the generation unit 141, the calculation unit 142, and the like from the HDD 100b or the like. Then, the processor 100d executes a process that executes the same processing as the generation unit 141, the calculation unit 142, and the like.
[0074] In this way, the information processing device 100 operates as an information processing device that executes operation control processing by reading and executing a program that executes processing similar to that of each processing unit shown in Fig. 3. The information processing device 100 can also realize functions similar to those of the above-described embodiment by reading a program from a recording medium using a medium reading device and executing the read program. Note that the program in these other embodiments is not limited to being executed by the information processing device 100. For example, this embodiment can also be applied in the same way to cases where another information processing device executes a program or where the information processing device 100 and another information processing device cooperate to execute a program.
[0075] A program that executes the same processes as those of the processing units shown in Fig. 3 can be distributed via a network such as the Internet. This program can be recorded on a computer-readable recording medium such as a hard disk, a flexible disk (FD), a CD-ROM, a magneto-optical disk (MO), or a digital versatile disc (DVD), and can be executed by being read from the recording medium by a computer. [Example]
[0076] Although the embodiments of the present invention have been described above, the present invention may be embodied in various different forms other than the above-described embodiments.
[0077] The following additional notes are provided regarding the embodiments including the above examples.
[0078] (Supplementary Note 1) Generate a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each of the nodes based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second indicator of the third route is smaller than the second indicator of the second route arriving at the same node as the third route, updating the best route to the third route; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Among the best routes returning to the starting point, the route with the smallest second index is selected as a route candidate. A control unit that executes processing, The information processing device, wherein the first index is an index indicating a degree of reduction in the cost in a linearly relaxed version of the delivery planning problem.
[0079] (Appendix 2) Generate a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each of the nodes based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route having the smallest second index among the third routes; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Outputting the best route that returns to the starting point as a route candidate. A control unit that executes processing, The information processing device, wherein the first index is an index indicating a degree of reduction in the cost in a linearly relaxed version of the delivery planning problem.
[0080] (Appendix 3) Generate a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each of the nodes based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second indicator of the third route is smaller than the second indicator of the second route arriving at the same node as the third route, updating the best route to the third route; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Among the best routes returning to the starting point, the route with the smallest second index is selected as a route candidate. Have the computer execute the process, The information processing program, wherein the first index is an index that indicates a degree of cost reduction in a linearly relaxed version of the delivery planning problem.
[0081] (Appendix 4) Generate a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each of the nodes based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route having the smallest second index among the third routes; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Outputting the best route that returns to the starting point as a route candidate. Have the computer execute the process, The information processing program, wherein the first index is an index that indicates a degree of cost reduction in a linearly relaxed version of the delivery planning problem.
[0082] (Appendix 5) Generate a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each of the nodes based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second indicator of the third route is smaller than the second indicator of the second route arriving at the same node as the third route, updating the best route to the third route; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Among the best routes returning to the starting point, the route with the smallest second index is selected as a route candidate. The computer executes the processing, An information processing method, wherein the first index is an index that indicates a degree of cost reduction in a linearly relaxed version of the delivery planning problem.
[0083] (Appendix 6) Generate a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each of the nodes based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route having the smallest second index among the third routes; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Outputting the best route that returns to the starting point as a route candidate. The computer executes the processing, An information processing method, wherein the first index is an index that indicates a degree of cost reduction in a linearly relaxed version of the delivery planning problem.
[0084] (Appendix 7) A processor; a memory operatively connected to the processor; An information processing device comprising: Generate a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each of the nodes based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second indicator of the third route is smaller than the second indicator of the second route arriving at the same node as the third route, updating the best route to the third route; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Among the best routes returning to the starting point, the route with the smallest second index is selected as a route candidate. Execute the process, The information processing device, wherein the first index is an index indicating a degree of reduction in the cost in a linearly relaxed version of the delivery planning problem.
[0085] (Appendix 8) A processor; a memory operatively connected to the processor; An information processing device comprising: Generate a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each of the nodes based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route having the smallest second index among the third routes; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Outputting the best route that returns to the starting point as a route candidate. Execute the process, The information processing device, wherein the first index is an index indicating a degree of reduction in the cost in a linearly relaxed version of the delivery planning problem. [Explanation of symbols]
[0086] 1~3 vehicles 10 Depot 100 Information processing device 100a communication interface 100b HDD 100c memory 100d processor 120 Communications Department 130 Storage section 131 Distance / Travel Time Data 132 Demand Data 133 time window data 140 Control Unit 141 Generation part 142 Arithmetic section 143 Output section
Claims
1. generating a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each node based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Among the best routes returning to the starting point, the route with the smallest second index is selected as a route candidate. A control unit that executes processing, The information processing device is characterized in that the first index is an index that indicates a degree of reduction in the cost in a linearly relaxed version of the delivery planning problem.
2. generating a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each node based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route having the smallest second index among the third routes; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Outputting the best route that returns to the starting point as a route candidate. A control unit that executes processing, The information processing device is characterized in that the first index is an index that indicates a degree of reduction in the cost in a linearly relaxed version of the delivery planning problem.
3. generating a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each node based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Among the best routes returning to the starting point, the route with the smallest second index is selected as a route candidate. Have the computer execute the process, The information processing program is characterized in that the first index is an index that indicates the degree to which the cost is reduced in a linearly relaxed version of the delivery planning problem.
4. generating a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each node based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the second path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route having the smallest second index among the third routes; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Outputting the best route that returns to the starting point as a route candidate. Have the computer execute the process, The information processing program is characterized in that the first index is an index that indicates the degree to which the cost is reduced in a linearly relaxed version of the delivery planning problem.
5. generating a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each node based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the best path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Among the best routes returning to the starting point, the route with the smallest second index is selected as a route candidate. The computer executes the processing, An information processing method, wherein the first index is an index that indicates a degree of cost reduction in a linearly relaxed version of the delivery planning problem.
6. generating a plurality of first routes that satisfy a first condition among a plurality of conditions included in the delivery planning problem; Calculating a first index for each node based on the cost of each edge between the nodes of the first path; generating, as a best route, a second route that combines the edges to arrive at each of the nodes from the starting point and satisfies a second condition among the plurality of conditions; adding the edge to the best path to generate a third path that satisfies the second condition; calculating a second index that is a difference between the cost of the second route and the third route and a total value of the first index based on the cost and the first index; If the second index of the third route is smaller than the second index of the second route arriving at the same node as the third route, updating the best route to the third route having the smallest second index among the third routes; The edges that have not contributed to updating the best route a predetermined number of times or more are excluded from being added to each route; adding the edge to the best route, calculating the second index, and updating the best route are repeated until the route returns to the starting point; Selecting the best route that returns to the starting point as a candidate route. The computer executes the processing, An information processing method, wherein the first index is an index that indicates a degree of cost reduction in a linearly relaxed version of the delivery planning problem.
Citation Information
Patent Citations
Searching mechanism
JP1989177163A
Delivery planning method and program for executing the same
JP2002302257A
Route calculation program, route optimization system, and route calculation method
JP2021111237A
Information processor, path generation method and path generation program
JP2021144351A
Information processing device, information processing method, and information processing program
JP2021165196A