Route search device, route search method, and route search program
The route search device uses a column generation method with dynamic programming and local search to address the challenge of minimizing maximum delay costs in vehicle routing, ensuring efficient supply of goods by considering demand point importance and depletion times.
Patent Information
- Application Number
- JP2022132622
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-08-23
- Publication Date
- 2025-12-26
- Estimated Expiration
- 2042-08-23
AI Technical Summary
Existing route search methods fail to minimize the maximum delay cost in vehicle transportation, particularly when supplying goods to multiple demand points, as they do not account for the importance of each demand point and the time of supply depletion.
A route search device using a column generation method with dynamic programming and local search to minimize the maximum delay cost, incorporating a data acquisition unit, upper and lower bound calculation units, and a search unit to find a route that minimizes the maximum delay cost.
The device provides a solution close to the optimal route that minimizes the maximum delay cost, enabling efficient supply of goods like electricity and water during disasters by considering the importance and depletion time of each demand point.
Smart Images

Figure 0007792641000001 
Figure 0007792641000002 
Figure 0007792641000003
Abstract
Description
[Technical Field]
[0001] An embodiment of the present invention relates to a route search device, a route search method, and a route search program. [Background technology]
[0002] Transporting goods by vehicle is essential in modern society. Finding the optimal route for transportation is an important issue. For example, in the event of a disaster, if it is necessary to supply goods, including electricity and water, to multiple demand points by vehicle, it is necessary to find a route that minimizes damage caused by the depletion of goods (electricity or water) at each demand point.
[0003] Conventional route search methods include a technique that uses a discrete minimization method by regarding the starting point of the vehicle and the demand point as vertices and the mud between the points as edges. For example, Patent Document 1 discloses a technique for sequentially inserting demand points. Furthermore, for example, Non-Patent Document 1 discloses a technique for dividing demand points and solving the traveling salesman problem. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2004-333377 [Non-patent literature]
[0005] [Non-Patent Document 1] Masashi Ito, Shinya Watanabe, Kazunori Sakakibara, "Proposal of a New Search Framework Based on Subproblem Decomposition and Adaptive Problem Integration for Large-Scale Vehicle Routing Problems," Transactions of the Japanese Society for Evolutionary Computation, Vol. 6, No. 3 (2015) Summary of the Invention [Problem to be solved by the invention]
[0006] The technology disclosed in Patent Document 1 aims to optimize the travel costs and total weight of the vehicle's cargo, and may output routes that are not useful for minimizing the "maximum amount of damage due to the depletion of supplies at each demand point" (hereinafter referred to as "delay cost"). For example, if there is a demand point that is far from the vehicle's starting point but must be reached quickly, a route search that minimizes travel costs will output a route that visits that point last, which has a large delay cost. Therefore, the technology disclosed in Patent Document 1 has the problem of being unable to minimize delay costs.
[0007] Furthermore, the method disclosed in Non-Patent Document 1 has the problem that it cannot provide a good division for minimizing delay costs that are affected by the importance of each demand point and the time when supplies start to run out.
[0008] The object of the present invention has been made in light of the above circumstances, and its object is to provide a technology that can obtain a solution close to the optimal solution to the problem of searching for a route that minimizes the maximum delay cost. [Means for solving the problem]
[0009] A route search device according to an embodiment uses a column generation method to search for a route that travels around all demand points from the initial position of a vehicle and minimizes the maximum value of the delay cost at each vertex. The device includes: a data acquisition unit that acquires condition data including vertex information including the initial position of the vehicle and the demand points; point information including the time until the delay cost corresponding to each vertex reaches a predetermined cost, the work time at each vertex, and a weight; and travel time between the vertices; a calculation unit that calculates an upper bound for a route that can be traveled at or below the predetermined cost and the maximum value of the objective function value at the weight based on dynamic programming that further constrains the way the demand points pass; and a search unit that rounds the value corresponding to the upper bound to an integer value and searches for the route using a local search method as appropriate. [Effects of the Invention]
[0010] According to one aspect of the present invention, it is possible to provide a route search device, a route search method, and a route search program that can find a solution close to the optimal solution to the problem of searching for a route that minimizes the maximum delay cost. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a block diagram illustrating an example of a hardware configuration of a route search device according to an embodiment. [Figure 2] FIG. 2 is a block diagram showing the software configuration of the route search device according to the embodiment in relation to the hardware configuration shown in FIG. [Figure 3] FIG. 3 is a flowchart showing an example of a processing procedure for calculating a lower bound of an objective function value in this embodiment. [Figure 4] FIG. 4 is a flowchart showing an example of a specific processing procedure for calculating the lower bound. [Figure 5] FIG. 5 is a flowchart showing an example of a specific processing procedure for calculating the upper bound. [Figure 6] FIG. 6 is a diagram showing an example of the travel time between vertices. [Figure 7] FIG. 7 is a diagram showing an example of calculating the lower bound of the maximum value of the objective function. [Figure 8] FIG. 8 is a diagram showing an example of calculating the upper bound of the maximum value of the objective function. DETAILED DESCRIPTION OF THE INVENTION
[0012] Hereinafter, a route search device, a route search method, and a route search program will be described in detail with reference to the drawings. In the following embodiments, parts with the same numbers perform the same operations, and redundant explanations will be omitted. For example, when there are multiple identical or similar elements, a common symbol may be used to describe each element without distinguishing between them, or a subnumber may be used in addition to the common symbol to describe each element with distinction between them.
[0013] [Embodiment] (the purpose) First, there are D+S vertices on a two-dimensional plane, and each vertex is called v i ,i∈{1,...,D+S}, where D and S are positive integers. D vertices correspond to the initial placement points of the vehicles, and S vertices correspond to the demand points. In other words, D vehicles will go around this point in S. Each v corresponding to a demand point is i ,i∈{1,...,D+S}, the power-off time d i , work hours w i ∈R >0 , importance α i ∈Z >0 , where R and Z are non-negative real number sets. Also, for each two vertices v i ,v j ,i,j∈{1,...,D+S}, the travel time t(v i ,v j )∈R >0 Let us assume that:
[0014] The vehicle is at vertex v i At time T i When the work is completed, the delay cost of that vertex is c(v i ) is defined as follows:
[0015] c(v i ):=max{α i (T i -d i ),0} That is, the delay cost is i is a function of the importance of each vertex and the power down time.
[0016] In this case, suppose a route is sought that allows D vehicles to visit all vertices and minimizes the maximum delay cost of each vertex.
[0017] Here, we consider the feasibility problem of whether the delay cost of this optimization problem is greater than or equal to λ. Here, λ can be any delay cost when considering the feasibility problem. This problem can be formulated as a set partitioning problem. That is, for a route r, we consider the corresponding vector b r ∈Z S+D The components of r that pass through the corresponding vertex are defined as 1, and the other components are defined as 0. A is a matrix that lists all vectors corresponding to paths that pass through all vertices with a cost of λ or less and do not pass through the same vertex twice. λ In that case, the integer programming problem is find x st A λ x=1 x∈{0,1} A This can be formulated as follows:
[0018] A linear relaxation of this integer programming problem find x st A λ x=1 0≦x≦1 is solved using the column generation method.
[0019] For example, the value obtained by solving λ by iteratively performing a binary search is λ L,P This λ L,P is the lower bound of the optimal value of the original problem. For example, the optimal value can be obtained by solving the integer programming problem of the original problem. However, the above method solves a problem in which the constraints of the original problem are relaxed. Therefore, the value λ obtained by the above method L,P is a value better than the optimal value, i.e., a lower bound for the original problem.
[0020] The column-adding part of the column generation method is performed by dynamic programming on the space-time network. That is, for a given weight y, T b rThe path r with cost less than or equal to λ that maximizes can be calculated by sequentially filling in a table whose vertical axis represents each vertex and whose horizontal axis represents the time step. The weight y is the weight of each vertex and may change with each iteration. More precisely, the weight y is the dual solution of the linear programming problem (LP) formed by the current matrix, and is the weight used to find a column vector that narrows the constraints of the dual problem.
[0021] However, if this calculation method is strictly implemented, due to the constraint that the same vertex must not be passed twice, it is necessary to store information about the paths that have been passed so far for each cell in the table for each type of vertex. Therefore, it may take exponential time to calculate, and as the number of paths increases, it becomes difficult to calculate in reality. Therefore, we appropriately modified the dynamic programming part and calculated maxy T b r By restricting the range of λ from above and below, after the bisection search, L,P It is the purpose of this invention to describe an algorithm for obtaining upper and lower bounds on .
[0022] (composition) FIG. 1 is a block diagram showing an example of the hardware configuration of a route search device 1 according to an embodiment. The route search device 1 is a computer that analyzes input data and generates and outputs output data. The route search device 1 may be installed at any location. For example, the route search device 1 is installed at a predetermined location of a base station where a power supply vehicle, a water supply vehicle, or the like is deployed.
[0023] As shown in Fig. 1, the route search device 1 includes a control unit 10, a program storage unit 20, a data storage unit 30, a communication interface 40, and an input / output interface 50. The control unit 10, the program storage unit 20, the data storage unit 30, the communication interface 40, and the input / output interface 50 are communicably connected to one another via a bus. Furthermore, the communication interface 40 may be communicably connected to an external device via a network. Furthermore, the input / output interface 50 is communicably connected to an input device 51 and an output device 52. The control unit 10 controls the route search device 1. The control unit 10 includes a hardware processor such as a central processing unit (CPU). For example, the control unit 10 may be an integrated circuit capable of executing various programs.
[0024] The program storage unit 20 may use, as a storage medium, a combination of nonvolatile memory that can be written to and read from at any time, such as an EPROM (Erasable Programmable Read Only Memory), an HDD (Hard Disk Drive), or an SSD (Solid State Drive), and a nonvolatile memory such as a ROM (Read Only Memory). The program storage unit 20 stores programs necessary for executing various processes. That is, the control unit 10 can realize various controls and operations by reading and executing the programs stored in the program storage unit 20.
[0025] The data storage unit 30 is a storage that uses a combination of nonvolatile memory such as a HDD or memory card, which can be written to and read from at any time, and volatile memory such as RAM (Random Access Memory), as a storage medium. The data storage unit 30 is used to store data acquired and generated in the process of the control unit 10 executing programs and performing various processes.
[0026] The communication interface 40 includes one or more wired or wireless communication modules. For example, the communication interface 40 includes a communication module for wired or wireless connection to an external device via a network. The communication interface 40 may also include a wireless communication module for wireless connection to an external device such as a Wi-Fi access point or base station. Furthermore, the communication interface 40 may also include a wireless communication module for wireless connection to an external device using short-range wireless technology. In other words, the communication interface 40 may be any general communication interface as long as it can communicate with an external device under the control of the control unit 10 and send and receive various information including past performance data.
[0027] The input / output interface 50 is connected to the input device 51, the output device 52, etc. The input / output interface 50 is an interface that enables transmission and reception of information between the input device 51 and the output device 52. The input / output interface 50 may be integrated with the communication interface 40. For example, the route search device 1 and at least one of the input device 51 and the output device 52 may be wirelessly connected using short-range wireless technology or the like, and information may be transmitted and received using the short-range wireless technology.
[0028] The input device 51 includes, for example, a keyboard, a pointing device, etc., which allow the user to input various data to the route search device 1. The input device 51 may also include a reader for reading data to be stored in the program storage unit 20 or the data storage unit 30 from a memory medium such as a USB memory, or a disk device for reading such data from a disk medium.
[0029] The output device 52 includes a display or the like that displays images to be displayed from the route search device 1 to the manager of the route search device 1.
[0030] FIG. 2 is a block diagram showing the software configuration of the route search device 1 according to the embodiment in relation to the hardware configuration shown in FIG. The control unit 10 includes a data acquisition unit 101, an upper and lower bound calculation unit 102, a solution calculation unit 103, an error evaluation unit 104, and an output control unit 105. The data storage unit 30 includes a data storage unit 301 and a processed data storage unit 302.
[0031] The data acquisition unit 101 acquires condition data. The condition data includes vertex information including the initial position of the vehicle and the demand point, point information including the time until the delay cost corresponding to each point reaches a predetermined cost (λ), the work time at each vertex, and weight information, and travel time between points. The data acquisition unit 101 may store the acquired conditions in the data storage unit 301.
[0032] The upper and lower bound calculation unit 102 further includes a table creation unit 1021 , a path control unit 1022 , an objective function calculation unit 1023 , and a cost determination unit 1024 .
[0033] The table creation unit 1021 creates a table based on the condition data stored in the data storage unit 301. The table may be, for example, a table in which each row corresponds to a vertex and each column corresponds to a time at a predetermined interval. The time at a predetermined interval may be based on, for example, the minimum travel time between each vertex. Then, as an initial state, the table creation unit 1021 inputs a weight value based on the condition data into the square (vertex) where the vehicle is initially placed. The table creation unit 1021 outputs the created table to the route control unit 1022.
[0034] Furthermore, the table creation unit 1021 inputs the path and the objective function value into the cell corresponding to the moved vertex. The table creation unit 1021 may input the path and the objective function value into the cell corresponding to the moved vertex based on information received from the path control unit 1022 and the objective function calculation unit 1023.
[0035] The route control unit 1022 moves the vehicle along an arbitrary route based on dynamic programming in which the constraints on the route of the demand points are further constrained or relaxed. That is, the route control unit 1022 moves the vehicle to another vertex. The route control unit 1022 outputs information about the vertex to which the vehicle has been moved to the table creation unit 1021 and the objective function calculation unit 1023.
[0036] The objective function calculation unit 1023 calculates the objective function value at the moved vertex based on the condition data, and outputs the calculated objective function value to the table creation unit 1021.
[0037] The cost determining unit 1024 determines whether the delay cost is equal to or greater than λ.
[0038] The solution calculation unit 103 calculates a solution by using a local search method as appropriate. The solution calculation unit 103 rounds a value corresponding to an upper bound to an integer solution. Then, the solution calculation unit 103 calculates a solution by using a local search method as appropriate. In other words, the solution calculation unit 103 operates as a search unit that searches for a path.
[0039] The error evaluation unit 104 calculates the difference between the solution calculated by the solution calculation unit 103 and the lower bound received from the upper-bound / lower-bound calculation unit 102. The error evaluation unit 104 evaluates the error from the optimal value of the original problem based on the error. For example, since the lower bound is the cost of the optimal solution to the original problem, (cost of the solution calculated by the solution calculation unit 103 - lower bound) > (cost of the solution calculated by the solution calculation unit 103 - cost of the optimal solution). In other words, it is possible to evaluate the error between the solution calculated by the solution calculation unit 103 and the optimal solution as being smaller than the difference between the solution calculated by the solution calculation unit 103 and the lower bound.
[0040] (operation) First, the method for calculating the lower and upper bounds will be described. ·How to calculate the lower bound (relaxation) In the original problem, there was a constraint that the same vertex could not be passed twice, but when calculating the lower bound, dynamic programming is executed under a relaxed constraint that allows passing twice, but not consecutively, instead of the near constraint. This relaxed constraint eliminates the need to store information about vertices that have been passed so far, and simply stores one path (the path passed most recently) for each square. Therefore, the calculation time for dynamic programming can be calculated in polynomial time. As the problem moves in the relaxed direction, the maximum value of the objective function, maxy T b r Therefore, after the binary search, λ L,P The lower bound of is calculated.
[0041] For example, if we solve the current integer programming problem exactly, then of course, λ L,P Now, if we relax the constraints of the current integer programming problem, we can obtain the value of λ L,P A lower bound for λ can be obtained. L,P is the lower bound of the maximum value of the objective function, so λ L,P The lower bound of λ is the lower bound of the maximum value of the objective function, i.e., the lower bound of the maximum value of the objective function. L,P Since itself is a lower bound on the optimal value of the original problem, this λ L,P The lower bound of can be used as a lower bound for the original problem.
[0042] ·How to calculate the upper bound (limit) While keeping the constraint that the same vertex must not be passed twice, a new constraint is added that if two or more paths are held in each cell, only the one with the maximum objective function value at that time is left. With this constraint, just like in the case of the lower bound, it is sufficient to hold one path in each cell. Therefore, the calculation time for the dynamic program can be calculated in polynomial time. As the number of paths to be searched is narrowed, the maximum objective function value maxy T b r The following values are calculated: After the binary search is performed, λ L,P The upper bound of is calculated.
[0043] For example, λ L,PThe upper bound of λ is the upper bound of the lower bound of the maximum value of the objective function. Therefore, the magnitude relationship with the maximum value of the objective function itself is not determined. However, λ L,P It is possible to evaluate the mitigation system based on whether the upper and lower bounds are close to each other.
[0044] Furthermore, since there are no changes to the path constraints, it is possible to simultaneously output a feasible solution to the linear relaxation problem, and by rounding the value calculated after the bisection search to an appropriate value, it is possible to obtain a feasible solution to the original problem.
[0045] (operation) FIG. 3 is a flowchart showing an example of a processing procedure for calculating a lower bound of an objective function value in this embodiment. The operation of this flowchart is realized by the control unit 10 of the route search device 1 reading and executing a program stored in the program storage unit 20. This operation is started when a user or an administrator of the route search device 1 inputs condition data into the input device 51. Alternatively, it may be started by obtaining condition data stored in the data storage unit 30 at any time. In this case, step ST101 described below may be omitted.
[0046] In step ST101, the data acquisition unit 101 acquires condition data. The condition data may include, for example, vertex information including the initial position and demand point of the vehicle, the time until the delay cost corresponding to each vertex information reaches a predetermined cost (λ), location information including the work time and weight at each vertex, and the travel time between vertices. The data acquisition unit 101 may store the acquired conditions in the data storage unit 301.
[0047] In step ST102, the upper and lower bound calculation unit 102 calculates the lower bound based on the condition data stored in the data storage unit 301.
[0048] FIG. 4 is a flowchart showing an example of a specific processing procedure for calculating the lower bound. In step ST201, the table creation unit 1021 creates a table. The table creation unit 1021 creates the table based on the condition data stored in the data storage unit 301. The table may be, for example, a table in which each row corresponds to a vertex and each column corresponds to a time at a predetermined interval. The time at a predetermined interval may be based on, for example, the minimum travel time between each vertex. Then, as an initial state, the table creation unit 1021 inputs a weight value based on the condition data into the square (vertex) where the vehicle is initially placed. The table creation unit 1021 outputs the created table to the route control unit 1022.
[0049] In step ST202, the route control unit 1022 moves the vehicle along an arbitrary route. The route control unit 1022 moves the vehicle along an arbitrary route that satisfies the constraint that the vehicle may pass through the same vertex twice but not pass through the same point consecutively. In other words, the route control unit 1022 moves the vehicle to another vertex. The route control unit 1022 outputs information about the moved vertex to the table creation unit 1021 and the objective function calculation unit 1023.
[0050] In step ST203, the objective function calculation unit 1023 calculates the objective function at the moved vertex based on the condition data, and outputs the calculated objective function to the table creation unit 1021.
[0051] In step ST204, the table creation unit 1021 inputs the path and the objective function value into the cell corresponding to the moved vertex. The table creation unit 1021 may input the path and the objective function value into the cell corresponding to the moved vertex based on information received from the path control unit 1022 and the objective function calculation unit 1023.
[0052] In step ST205, the cost determination unit 1024 determines whether the delay cost is equal to or greater than λ. If the delay cost is less than λ, the process returns to step ST202. On the other hand, if the delay cost is equal to or greater than λ, the process proceeds to step ST206.
[0053] In step ST206, the table creation unit 1021 outputs the maximum objective function value to the error evaluation unit 104. The table creation unit 1021 searches for the cell into which the maximum objective function value is input, and outputs the searched maximum objective function value as a lower bound to the error evaluation unit 104. The table creation unit 1021 may also store the maximum objective function value in the processing data storage unit 302. In this way, the upper and lower bound calculation unit 102 can calculate the lower bound of the maximum objective function value for a route and weight that can be traversed with a cost of λ or less, based on dynamic programming in which the constraints on the manner in which the vertices are passed are relaxed.
[0054] 3, in step ST103, the upper-bound / lower-bound calculation unit 102 calculates the upper bound based on the condition data stored in the data storage unit 301.
[0055] FIG. 5 is a flowchart showing an example of a specific processing procedure for calculating the upper bound. Steps ST301 to ST303 may be the same as steps ST201 to ST203 described with reference to FIG. 4, and therefore a duplicated description will be omitted here.
[0056] In step ST304, the table creation unit 1021 determines whether or not two or more routes exist in the square corresponding to the moved vertex. For example, if there are two or more vehicles, they may arrive at the same point by following different routes. The table creation unit 1021 determines whether or not such a case exists. If it is determined that two or more routes do not exist in the square corresponding to the moved vertex, the process proceeds to step ST305. On the other hand, if it is determined that two or more routes exist in the square corresponding to the moved vertex, the process proceeds to step ST306.
[0057] In step ST305, the table creation unit 1021 inputs the path and the objective function value into the cell corresponding to the moved vertex. The table creation unit 1021 may input the path and the objective function value into the cell corresponding to the moved vertex based on information received from the path control unit 1022 and the objective function calculation unit 1023.
[0058] In step ST306, the table creation unit 1021 inputs the maximum objective function value among the objective function values received from the objective function calculation unit 1023 and the maximum objective function value into the cell corresponding to the vertex traveled along the route corresponding to that objective function value. In other words, if there are multiple vehicles that have arrived at the same point along different routes, the table creation unit 1021 keeps only the one with the maximum objective function value.
[0059] Step ST307 may be the same as step ST205 described with reference to FIG. 4, and therefore a duplicated description will be omitted here.
[0060] In step ST308, the table creation unit 1021 outputs the maximum objective function value to the solution calculation unit 103. The table creation unit 1021 searches for the cell into which the maximum objective function value is input, and outputs the searched maximum objective function value as an upper bound to the solution calculation unit 103. The table creation unit 1021 may also store the maximum objective function in the processing data storage unit 302. In this way, the upper bound / lower bound calculation unit 102 can calculate an upper bound of the maximum objective function value for a route and weight that can be traveled at a cost of λ or less, based on dynamic programming that further restricts the way in which demand points are routed.
[0061] Returning to FIG. 3 , in step ST104, the solution calculation unit 103 calculates a solution using a local search method as appropriate. The solution calculation unit 103 rounds the value corresponding to the upper bound to an integer solution. Then, the solution calculation unit 103 calculates a solution using a local search method as appropriate. The solution is close to the optimal solution of the original problem. The solution calculation unit 103 then outputs the calculated solution to the error evaluation unit 104 and the processed data storage unit 302.
[0062] In step ST105, the error evaluation unit 104 evaluates the error. The error evaluation unit 104 calculates the difference between the solution received from the solution calculation unit 103 and the lower bound received from the upper-bound / lower-bound calculation unit 102. The error evaluation unit 104 evaluates the error from the optimal value of the original problem based on the error. Then, the error evaluation unit 104 outputs information about the evaluation result to the processing data storage unit 302.
[0063] In step ST106, the output control unit 105 outputs the results. The output control unit 105 outputs the calculation results, including the upper bound, lower bound, solution, evaluation result, etc. stored in the processing data storage unit 302, to the output device 52 via the input / output interface 50. Then, the output control unit 105 may control the output device 52 to display the results on its display.
[0064] (Calculation example) The weight is y, and the objective function value y within the route r that can be traveled at a cost of λ or less is T b r A specific example of calculating the upper and lower bounds of the maximum value of will be described.
[0065] As condition data, the number of vehicles is two, and the initial locations are v1 and v2. There are three demand points, v3, v4, and v5.
[0066] FIG. 6 is a diagram showing an example of the travel time between vertices. The travel time between each vertex is as shown in Fig. 6. The unit of this value may be, for example, time.
[0067] Also, the time it takes for the delay cost to reach λ is d λ 3:1,d λ 4:1.25,d λ 5:1, and the working hours are w3=0, w4=0, and w5=0. Furthermore, the weights y=(1,2,3,4,5) T Let's say.
[0068] The objective function value y under these conditions T b r The maximum value of is 11. An example of calculating the upper and lower bounds of this value will be explained.
[0069] The table creation unit 1021 prepares a table corresponding to each vertex. Then, the table creation unit 1021 inputs values corresponding to the weights into the squares corresponding to the initial positions of the vehicles, that is, the squares of v1 and v2.
[0070] Then, the route control unit 1022 moves the vehicle from the vertex corresponding to the current square to an arbitrary vertex. The objective function calculation unit 1023 calculates the objective function value for the corresponding vertex. The table creation unit 1021 then inputs the route and the objective function value into the square corresponding to the moved vertex. This is repeated until the delay cost reaches λ.
[0071] FIG. 7 is a diagram showing an example of calculating the lower bound of the maximum value of the objective function, and FIG. 8 is a diagram showing an example of calculating the upper bound of the maximum value of the objective function.
[0072] When calculating the lower bound, the constraint is relaxed to allow passing through the same vertex twice, but not consecutively, and the table is entered. As shown in Figure 7, a path that passes through the same vertex twice is entered at time 1.25, and it can be seen that a value greater than the maximum value of the original objective function is calculated.
[0073] In addition, when calculating the upper bound, the objective function values and paths are entered into the table in order from left to right, under the constraint that the same vertex must not be passed twice. As shown in Figure 8, at time 0.75, the path v1, v3, and v5 with an objective function value of 9 and the path v2, v4, and v5 with an objective function value of 11 are entered into the same cell, but only the latter with the larger objective function value remains.
[0074] (Effects of the embodiment) According to the embodiment described above, by calculating the lower and upper bounds by appropriate relaxation and restriction, rounding the value corresponding to the upper bound, and calculating the solution by a local search method, it is possible to avoid falling into a local optimum that is clearly different from the global optimum and obtain a practically good solution. In addition, by taking the difference from the lower bound, it is possible to evaluate the error from the optimum value of the original problem.
[0075] This makes it possible to calculate routes to supply water or electricity to disaster-stricken areas while minimizing damage, for example, in the event of a disaster, by taking into account the importance of each location.
[0076] [Other embodiments] It should be noted that the present invention is not limited to the above embodiment. For example, the route search device 1 may calculate only the upper bound without calculating the upper and lower bounds, and calculate only the solution. Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]
[0077] 1...Route search device 10...Control unit 101...Data acquisition section 102...Upper bound / lower bound calculation section 1021...Table Creation Section 1022...Routing control unit 1023...Objective function calculation unit 1024...Cost determination section 103…Solution calculation part 104...Error evaluation section 105...Output control section 20...Program memory section 30...Data storage unit 301...Data storage unit 302...Processing data storage unit 40...Communication interface 50...Input / output interface 51...Input device 52...Output device
Claims
1. A route search device for searching, using a column generation method, for a route that travels from an initial position of a vehicle to all vertices corresponding to demand points, and minimizes the maximum value of delay costs at each vertex, which is a function of the importance of each vertex, the time when the vehicle finishes work at any one of the vertices, and the time when supplies at each vertex are depleted, comprising: a data acquisition unit that acquires condition data including vertex information including vertices corresponding to the initial position of the vehicle and the demand points, point information including the time until the delay cost corresponding to each vertex reaches a predetermined cost, the work time at each vertex, and the weight of each vertex, and travel time between the vertices; calculating a route that can be traveled at or below the predetermined cost and a lower bound of the maximum value of the objective function at the weight based on dynamic programming in which the constraint on how the vertices are passed is relaxed to allow the same vertex to be passed twice, but not consecutively; calculating an upper bound on the maximum value of the objective function value for the weight and a route that can be traveled at a cost equal to or less than the predetermined cost based on dynamic programming with further constraints on the manner in which the vertices are passed; A calculation unit; a search unit that rounds the value corresponding to the upper bound to an integer value and searches for a path that minimizes the maximum value of the delay cost of each vertex by using a local search method as appropriate; an evaluation unit that evaluates that the error between the searched route solution and the optimum value of the route is smaller than the difference between the searched route solution and the lower bound by calculating the difference between the searched route solution and the lower bound; wherein the objective function value is defined by the weight and a vector corresponding to a route that can be traveled at or below the predetermined cost, the constraint on how to pass through the vertices is a constraint that the same vertex is not passed through twice, and further constraining the constraint on how to pass through the vertices is by adding a constraint that, when two or more vehicles arrive at the same vertex at the same time, only one with the largest objective function value at that time is left.
2. 2. The route search device according to claim 1, wherein the calculation unit repeats an operation of determining a route from the position of the vehicle to a next vertex and calculating an objective function value for the determined route for a period equal to or less than the predetermined cost, and calculates the largest value as the maximum value of the objective function value.
3. A route search method executed by a route search device for searching, using a column generation method, for a route that travels from an initial position of a vehicle around all vertices corresponding to demand points, and minimizes a maximum value of delay costs at each vertex, the maximum value being a function of the importance of each vertex, the time when the vehicle finishes work at any one of the vertices, and the time when supplies are depleted at each vertex, the method comprising: acquiring condition data including vertex information including vertices corresponding to the initial position of the vehicle and the demand points, point information including the time until the delay cost corresponding to each vertex reaches a predetermined cost, the work time at each vertex, and the weight of each vertex, and travel time between the vertices; calculating a route that can be traveled at a cost equal to or less than the predetermined cost and a lower bound of the maximum value of the objective function at the weight, based on a dynamic programming method in which the constraint on how the vertices are passed is relaxed so that the same vertex may be passed twice, but not consecutively; calculating a route that can be traveled at or below the predetermined cost and an upper bound of a maximum value of an objective function value at the weights based on a dynamic programming method in which the constraints on the manner in which the vertices are passed are further constrained; rounding the value corresponding to the upper bound to an integer value and searching for a path that minimizes the maximum value of the delay cost of each of the vertices using a local search method as appropriate; calculating a difference between the solution of the searched route and the lower bound, and evaluating that the error between the solution of the searched route and the optimum value of the route is smaller than the difference between the solution of the searched route and the lower bound; wherein the objective function value is defined by the weight and a vector corresponding to a route that can be traveled at or below the predetermined cost, the constraint on how to pass through the vertices is a constraint that the same vertex is not passed through twice, and further restricting the constraint on how to pass through the vertices is by adding a further constraint that, when two or more vehicles arrive at the same vertex at the same time, only one with the largest objective function value at that time is left.
4. A route search program for searching, using a column generation method, for a route that travels from an initial position of a vehicle to all vertices corresponding to demand points, and minimizes the maximum value of delay costs at each vertex, which is a function of the importance of each vertex, the time when the vehicle finishes work at any one of the vertices, and the time when supplies at each vertex are depleted, the program comprising: acquiring condition data including vertex information including vertices corresponding to the initial position of the vehicle and the demand point, point information including the time until the delay cost corresponding to each vertex information reaches a predetermined cost, the work time at each vertex, and the weight of each vertex, and travel time between the vertices; calculating a route that can be traveled at a cost equal to or less than the predetermined cost and a lower bound of the maximum value of the objective function at the weight, based on a dynamic programming method in which the constraint on how the vertices are passed is relaxed so that the same vertex may be passed twice, but not consecutively; calculating a route that can be traveled at or below the predetermined cost and an upper bound of a maximum value of an objective function value at the weights based on a dynamic programming method in which the constraints on the manner in which the vertices are passed are further constrained; rounding the value corresponding to the upper bound to an integer value and searching for a path that minimizes the maximum value of the delay cost of each of the vertices using a local search method as appropriate; calculating a difference between the solution of the searched route and the lower bound, and evaluating that the error between the solution of the searched route and the optimum value of the route is smaller than the difference between the solution of the searched route and the lower bound; an instruction to cause a processor of the route search device to execute the above; A route search program, wherein the objective function value is defined by the weight and a vector corresponding to a route that can be traveled at or below the specified cost, the constraint on how to pass through the vertices is a constraint that the same vertex is not passed through twice, and further restricting the constraint on how to pass through the vertices is by adding a constraint that if two or more vehicles arrive at the same vertex at the same time, only the one with the largest objective function value at that time is left.
Citation Information
Patent Citations
Problem solving device
JP1994266697A
Route-search method
JP2004333377A
Vehicle operation plan preparing method, device, and program
JP2005096928A
Information processing apparatus and information processing program
JP2020057050A