Delivery matching system, and delivery matching method
Patent Information
- Application Number
- JP2023128811
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-07
- Publication Date
- 2025-02-20
Smart Images

Figure 2025024595000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a delivery matching system and a delivery matching method. [Background technology]
[0002] In the delivery industry, there has been a growing need to improve efficiency by having multiple delivery companies and shippers jointly deliver goods in order to deal with driver shortages and energy conservation.To achieve this, a technology is known that matches cargo requests with vehicle requests using a multi-objective optimization method that takes into account multiple indicators, such as the total travel distance of vehicles such as trucks and the fairness of revenue for delivery companies.
[0003] For example, Patent Document 1 describes the method as comprising: "(a) the step of providing a neural network 20; (b) the step of giving the neural network a plurality of input data x1, x2 related to a multi-objective optimization problem; (c) the step of the neural network learning as a result of (b); and (d) the step of obtaining the neural network that approximates a preference function in the multi-objective optimization problem as a result of (c)." [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2002-288625 A Summary of the Invention [Problem to be solved by the invention]
[0005] In the optimization of multiple indices, a trade-off relationship between the indices is likely to occur. Therefore, in addition to weighting to create a single index, Pareto solutions with different balances of multiple indices are derived by a multi-objective optimization method using a genetic algorithm or the like, and then the user selects a solution from the Pareto solutions while considering the balance between the indices. In Patent Document 1, the evaluation index value xi of the solution selected by multi-objective optimization is input, and the user's subjective evaluation value (a numerical value indicating whether it is good or bad) for the solution is used as training data to learn in a neural network. However, it is considered that the user selects a solution by judging the relative relationship between the solutions from the distribution shape of the index values of the entire solution set, and in this technology, since a single solution is input and learned, the relative relationship between the solutions cannot be considered.
[0006] As a result, when there are many evaluation indices for multi-objective optimization, the proportion of solutions that are dominated by other solutions (i.e., inferior in all indices) is small, so that there are many Pareto solutions (for example, about 100 solutions with five indices), and the task of selecting a solution by the user becomes cumbersome. In addition, when selecting a solution, the user often implicitly decides on a solution by considering the balance (weight) of the indices, and therefore the weight varies depending on the user. Furthermore, the weight between the indices changes depending on the distribution of the indices values of the entire Pareto solution. For example, if a user who basically prioritizes cost has a small difference in cost indices between solutions to a certain extent, it is considered that the user will select a solution with good fairness even if the cost is poor within the range that the user can tolerate. Alternatively, the shorter the time until delivery, the more priority the driver burden index is considered, so that the Pareto solution cannot be determined by the fixed weight between the indices. Therefore, in optimization calculations when there are multiple indices, a technology has been required that can select a user-preferred solution that takes into account the index that the user values, from among multiple optimal solutions, according to the distribution of the index values.
[0007] The present invention aims to provide a technology that, in an optimization calculation when there are multiple indexes, can select a user-preferred solution from multiple optimal solutions, taking into account the index that the user values, depending on the distribution of index values. [Means for solving the problem]
[0008] The delivery matching system according to the present invention is a delivery matching system that allocates additional orders for delivering packages to existing delivery routes using a computer having a processor and a memory, wherein the processor is configured as a delivery matching system that learns a predetermined learning model using, as teaching data, index values for a selected solution that is a Pareto solution selected by a user from among Pareto solutions based on predetermined indexes obtained from past input data including combinations of delivery routes and additional delivery orders, inputs current input data including the combination into the learned predetermined learning model, calculates a prediction index weight vector for each index of the Pareto solution, identifies, from among the Pareto solutions, a Pareto solution whose similarity with the prediction index weight vector satisfies a predetermined condition, and outputs the identified Pareto solution. Effect of the Invention
[0009] According to the present invention, in an optimization calculation when there are multiple indicators, a user-preferred solution that takes into account the indicator that the user values according to the distribution of the indicator values can be selected from multiple optimal solutions. As a result, the cost required for the user to select the user-preferred solution from multiple optimal solutions can be reduced. Problems, configurations, and effects other than those described above will be made clear by the following description of the embodiment of the invention. [Brief description of the drawings]
[0010] [Figure 1] FIG. 1 is a diagram illustrating an example of the configuration of a delivery matching system in an embodiment of the present invention. [Diagram 2] FIG. 1 is a diagram illustrating an example of a schematic configuration of a computer. [Figure 3A] FIG. 2 is a diagram showing an example of input data accepted by the present system. [Figure 3B] FIG. 13 is a diagram for explaining an example of a Pareto solution between indexes output by a multi-objective optimization unit. [Figure 3C]13 is a diagram for explaining a predicted index weight vector output by an index weight prediction unit, using a learning model learned by an index weight learning unit. FIG. [Figure 4] FIG. 2 is a diagram illustrating an example of a shipper master table. [Diagram 5] FIG. 13 is a diagram illustrating an example of a delivery company master table. [Figure 6] FIG. 13 illustrates an example of a base master table. [Figure 7] FIG. 13 is a diagram showing an example of additional order data. [Figure 8] FIG. 2 is a diagram showing an example of existing route data; [Figure 9] FIG. 11 is a diagram showing an example of post-matching route data. [Figure 10] FIG. 13 is a diagram illustrating an example of solution set index data. [Figure 11] FIG. 13 is a diagram illustrating an example of learning data. [Figure 12] FIG. 13 is a diagram illustrating an example of teacher data. [Figure 13A] 11 is a flowchart showing an example of a processing procedure for a delivery matching process performed in the present system. [Figure 13B] 13 is a flowchart showing another example of the processing procedure of the delivery matching process performed in the present system. [Figure 14] 13 is a flowchart illustrating an example of a processing procedure for index value normalization processing. [Figure 15A] 13 is a flowchart illustrating an example of a processing procedure for index weight prediction processing. [Figure 15B] 13 is a flowchart showing another example of the processing procedure of the index weight prediction process. [Figure 16] 13 is a flowchart illustrating an example of a processing procedure for a solution recommendation process. [Figure 17] FIG. 11 is a diagram for explaining a method for calculating cosine similarity. [Figure 18A] FIG. 11 is a diagram illustrating an example of comprehensive index data. [Figure 18B] FIG. 13 is a diagram illustrating an example of a screen on which a user selects an index. [Figure 19]13 is a flowchart illustrating an example of a processing procedure for a solution selection process. [Figure 20] FIG. 13 is a diagram showing an example of the distribution of index values of selected Pareto solutions (user preferred solutions) output in step 1905. [Figure 21] FIG. 19 is a diagram showing an example of a delivery route corresponding to the selected Pareto solution (user preferred solution) output in step 1906 (whole route). [Figure 22] FIG. 13 is a diagram showing an example of a delivery route corresponding to the selected Pareto solution (user preferred solution) output in step 1906 (individual route). [Diagram 23] FIG. 13 is a diagram showing an example of an overall process flow of a delivery matching process. [Figure 24] FIG. 13 is an illustration of the selection of Pareto solutions that match the preferences of delivery companies. [Diagram 25] FIG. 13 is an explanatory diagram regarding fitting of a prediction index weight vector for each delivery company. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Hereinafter, an embodiment of the present invention will be described with reference to the drawings. The following description and drawings are examples for explaining the present invention, and appropriate omissions and simplifications have been made for clarity of explanation. The present invention can be implemented in various other forms. Unless otherwise specified, each component may be singular or plural.
[0012] In order to facilitate understanding of the invention, the position, size, shape, range, etc. of each component shown in the drawings may not represent the actual position, size, shape, range, etc. Therefore, the present invention is not necessarily limited to the position, size, shape, range, etc. disclosed in the drawings.
[0013] In the following explanation, various information may be described using expressions such as "database," "table," and "list," but the various information may be expressed in other data structures. To indicate independence of data structure, "XX table," "XX list," and the like may be referred to as "XX information." When describing identification information, when expressions such as "identification information," "identifier," "name," "ID," and "number" are used, these are interchangeable.
[0014] When there are multiple components having the same or similar functions, they may be described by using the same reference numerals with different subscripts. However, when there is no need to distinguish between these multiple components, the subscripts may be omitted.
[0015] In addition, in the following description, processing performed by executing a program may be described, but the program is executed by a processor (e.g., a CPU, a Graphics Processing Unit (GPU)) to perform a defined process using storage resources (e.g., a memory) and / or an interface device (e.g., a communication port) as appropriate, so the subject of the processing may be the processor. Similarly, the subject of the processing performed by executing a program may be a controller, device, system, computer, or node having a processor. The subject of the processing performed by executing a program may be a calculation unit, and may include a dedicated circuit (e.g., a Field-Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC)) that performs a specific process.
[0016] A program may be installed in a device such as a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable storage medium. When the program source is a program distribution server, the program distribution server may include a processor and a storage resource for storing a program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers. In the following description, two or more programs may be realized as one program, and one program may be realized as two or more programs.
[0017] An embodiment of the delivery matching system and delivery matching method according to the present embodiment will be described below. In the system described below, the index values of the solution set of a predetermined number of multi-objective optimizations performed in the past are used as learning data, and machine learning is performed using a vector whose components are the index values of the user's preferred solution selected by the user for the solution set as teacher data. Then, using the created learning model, a vector whose components are the index values of the user's preferred solution is predicted for the solution set of a newly performed multi-objective optimization, and a solution from the solution set that has a high similarity between the vector whose components are the index values of the user's preferred solution and the vector whose components are the index values of the solutions included in the solution set is presented to the user as a recommended solution.
[0018] FIG. 1 is a diagram showing an example of the configuration of a delivery matching system in this embodiment. As shown in FIG. 1, the delivery matching system 1000 has an information processing device 100 for managing delivery routes, such as allocating additional orders to delivery routes of packages. The information processing device 100 is configured to have an input / output unit 101, a multi-objective optimization unit 102, an index value normalization unit 103, an index weight prediction unit 104, a solution recommendation unit 105, a solution selection unit 106, an index weight calculation unit 107, an index weight learning unit 108, and a storage unit 109. The storage unit 109 stores a shipper master table 1091, a delivery company master table 1092, a base master table 1093, additional order data 1094, existing route data 1095, post-matching route data 1096, solution set index data 1097, learning data 1098, and teacher data 1099.
[0019] The specific processing of each part of the information processing device 100 will be described later, but the information processing device 100 can be realized, for example, by a general computer 1600 having a CPU 1601, a memory 1602, an external storage device 1603 such as an HDD (Hard Disk Drive), a reading / writing device 1607 for reading and writing information from a portable storage medium 1608 such as a CD (Compact Disk) or a USB memory, an input device 1606 such as a keyboard, mouse, microphone, etc., an output device 1605 such as a display and speakers, a communication device 1604 such as a NIC (Network Interface Card) for connecting to a communication network, and an internal communication line (called a system bus) 1609 such as a system bus that connects these together, as shown in Figure 2 (schematic diagram of a computer).
[0020] Moreover, various data stored in each terminal or server or used for processing can be realized by the CPU 1601 reading it from the memory 1602 or the external storage device 1603 and using it. Moreover, each functional unit of the information processing device 100 (for example, the input / output unit 101, the multi-objective optimization unit 102, the index value normalization unit 103, the index weight prediction unit 104, the solution recommendation unit 105, the solution selection unit 106, the index weight calculation unit 107, and the index weight learning unit 108) can be realized by the CPU 1601 loading a predetermined program stored in the external storage device 1603 into the memory 1602 and executing it.
[0021] The above-mentioned predetermined program may be stored (downloaded) in the external storage device 1603 from the storage medium 1608 via the reading / writing device 1607 or from the network via the communication device 1604, and then loaded onto the memory 1602 and executed by the CPU 1601. Alternatively, the program may be directly loaded onto the memory 1602 from the storage medium 1608 via the reading / writing device 1607 or from the network via the communication device 1604, and executed by the CPU 1601.
[0022] In the following, an example is given in which the information processing device 100 is configured by a single computer, but similar functions may be realized by distributing all or part of these functions across one or more computers, such as a cloud, and communicating with each other via a network.
[0023] The input / output unit 101 receives input of data used in processing by this system, including delivery routes and additional delivery orders, from the input device 1606, and outputs to the output device 1605 the results of processing performed by this system.
[0024] For example, using FIG. 3A, consider a case where there are additional delivery orders 1 to m and delivery routes 1 to n. In this example, there are two additional delivery orders m, and a delivery route n that travels around three delivery bases. There are multiple possible cases for the timing of receiving the added delivery order m on the delivery route n, as shown by the order insertion position. The input / output unit 101 accepts input of input data including such combinations of delivery routes and additional delivery orders. Specific examples of the results of the above processing output by the input / output unit 101 will be described later.
[0025] The multi-objective optimization unit 102 outputs a predetermined number of Pareto solutions using a method such as a genetic algorithm or PSO (Particle Swarm Optimization). Since a trade-off relationship between the indexes is likely to occur in the optimization of multiple indexes, the multi-objective optimization unit 102 uses the above-mentioned method to derive Pareto solutions with different balances between the indexes. Taking into consideration the balance between the indexes, the user selects a desired solution as a user preferred solution from the Pareto solutions derived by the multi-objective optimization unit 102 and output by the input / output unit 101.
[0026] For example, the multi-objective optimization unit 102 derives a Pareto solution between the following indices for the combinations of allocating additional delivery orders to the above-mentioned delivery routes (in FIG. 3A, the combination of additional delivery orders 1 and 2) and the combinations of travel orders for each combination (in FIG. 3A, the combination of insertion positions of additional delivery orders 1 and 2). A Pareto solution is a solution that is not dominated by any other solution (superior to other solutions in any of the indices).
[0027] Specifically, the multi-objective optimization unit 102 calculates five evaluation indices, such as 1. total travel distance, 2. variance of revenue, 3. average vehicle utilization rate, 4. compatibility between the delivery company and the shipper, and 5. number of changes in the operation plan, and derives a Pareto solution between each of the indices. The indices to be used are determined in advance by the user. In this example, the indices are determined as follows: total travel distance from a cost perspective, variance of revenue from a fairness perspective, average vehicle utilization rate from a delivery efficiency perspective, compatibility between the delivery company and the shipper from a business practice perspective, and number of changes in the operation plan from a driver burden perspective.
[0028] Fig. 3B is a diagram for explaining an example of a Pareto solution between the indexes output by the multi-objective optimization unit 102. Fig. 3B shows a Pareto solution output on a two-dimensional coordinate axis between the indexes "1. Total travel distance" and "2. Variance of profit", but in reality, a Pareto solution is output for the above-mentioned five indexes.
[0029] As shown in FIG. 3B, the multi-objective optimization unit 102 calculates a Pareto solution P between the total travel distance (index a) and the variance of the profit (index b) by using a method such as a genetic algorithm or PSO. The user selects a Pareto solution that is a user-preferred solution that takes into account the index that the user values from among these Pareto solutions. For example, the user basically prioritizes distance, but between the Pareto solutions P1 and P2, the difference in the total travel distance is smaller than between the other Pareto solutions, while the difference in the variance of the profit is larger than between the other Pareto solutions. Therefore, the user selects the Pareto solution P2 as the Pareto solution PU that is the above-mentioned user-preferred solution. Note that the solution Q is a solution for which there are other solutions that are superior in all the indices. The multi-objective optimization unit 102 outputs such Pareto solutions between the indices as solution set index data 1097. An example of the solution set index data 1097 will be described later.
[0030] Each index can be calculated, for example, by the following method. Regarding "1. total travel distance," the multi-objective optimization unit 102 can calculate it by the following steps (Formula 1): (1) travel distance of a vehicle such as a truck = Euclidean distance between the starting point (e.g., departure base) and the arrival point (e.g., arrival base) from which each vehicle travels, (2) travel distance of a delivery route of each vehicle = summing up the Euclidean distance in (1) for all travels of the vehicle, and (3) total travel distance = summing up the travel distance of the delivery route for each vehicle calculated in (2) for all vehicles.
[0031]
number
[0032] In addition, regarding “2. Variance of profit,” the multi-objective optimization unit 102 can calculate it by the following steps (equation 2): (1) obtain the profit value of each vehicle’s delivery route; (2) obtain the average profit value of all delivery routes; (3) calculate the variance of profit = the square of the difference between (1) and (2) for each vehicle’s delivery route, and calculate the average value of all vehicles’ delivery routes.
[0033]
number
[0034] In addition, regarding "3. Average of vehicle load ratio," the multi-objective optimization unit 102 can calculate it in the following steps (Equation 3): (1) obtain the travel distance of each vehicle's delivery route, (2) obtain the empty travel distance of each vehicle's delivery route, (3) obtain the vehicle load ratio of each vehicle's delivery route, and (4) calculate the average of vehicle load ratio = average vehicle load ratio of all vehicles' delivery routes.
[0035]
number
[0036] In addition, with regard to "4. Compatibility between delivery companies and shippers," the multi-objective optimization unit 102 can calculate it in the following steps (equation 4): (1) store a file that predefines the compatibility value between delivery companies and shippers; (2) set information indicating the "delivery company" (e.g., the delivery company ID shown in Figure 5) for each delivery route of each vehicle; (3) set information indicating the "shipper" (e.g., the shipper ID shown in Figure 4) for each package; (4) average compatibility value for each vehicle's delivery route = for each vehicle's delivery route, obtain the compatibility value between the delivery company and shipper at the time of delivery from the file defined in (1) and calculate the average value; (5) compatibility between delivery company and shipper = calculate the minimum compatibility value for each vehicle's delivery route from all delivery routes.
[0037]
number
[0038] Regarding "5. Number of changes in operation plan", the multi-objective optimization unit 102 can calculate it by the following procedure (Formula 5): (1) obtain the number of changes in operation plan for the delivery route of each vehicle, (2) add up the number of changes in operation plan for the delivery route of all vehicles = the number of changes in operation plan (number of changes in operation plan). Regarding (1), the multi-objective optimization unit 102 counts it as 1 if there is a series of additional orders (including delivery) in the existing route.
[0039]
number
[0040] The index value normalization unit 103 outputs normalized index values obtained by normalizing the values of the indexes of each solution included in the solution set of the solution set index data 1097 calculated by the multi-objective optimization unit 102, and a normalized index value vector having the normalized index values as components. The index value normalization unit 103 also accumulates the normalized index value vector as learning data 1098. The reason for normalization is that the criteria for superiority / inferiority relationships such as the units of each index and the magnitude of the values (for example, whether a larger value is closer to the best value or a smaller value is closer to the best value) are different.
[0041] For example, the smaller the value, the better, is the criterion for the total travel distance and the variance of the profit. The total travel distance is the total travel distance of the vehicles that deliver the goods, and the variance of the profit is an index showing how evenly the goods are transported along the delivery route (the fewer the empty vehicles, the better). The larger the value, the better, is the criterion for the average of the occupancy rate and the compatibility between the delivery company and the shipper. The average of the occupancy rate is the ratio of vehicles that are not empty but are delivering goods, and the compatibility between the delivery company and the shipper is the ratio of the shipper's requests to a specific delivery company to the entire delivery company. The smaller the value, the better, is the criterion for the number of changes in the operation plan. The number of changes in the operation plan is the number of places where the vehicle has changed the operation plan of the delivery route due to an additional order. For example, if the departure point becomes a different departure point and the delivery route is changed, the number of places where the operation plan has been changed is 1. Based on such a criterion, the index value normalization unit 103 normalizes the index weight with "1" as the best value and "0" as the worst value so that the index weight does not become a 0 vector.
[0042] The index weight prediction unit 104 inputs the normalized index value vector having the normalized index values output by the index value normalization unit 103 as components into the trained learning model trained by the index weight learning unit 108, and outputs a predicted index weight vector for each Pareto solution having each index of the Pareto solution included in the solution set index data 1097 as components.
[0043] The solution recommendation unit 105 rearranges the recommended solutions, which are Pareto solutions to be recommended, according to a predetermined criterion based on the cosine similarity between the normalized index value vector output by the index value normalization unit 103 and the predicted index weight vector output by the index weight prediction unit 104, and outputs the recommended solutions.
[0044] The solution selection unit 106 outputs information such as a delivery route for selecting a user preferred solution from the recommended solutions output by the solution recommendation unit 105, an index value distribution of the recommended solutions, and a delivery route of the recommended solutions to the output device 1605. In addition, the solution selection unit 106 accepts the selection of the above-mentioned user preferred solution from the user via the input device 1606.
[0045] The index weight calculation unit 107 outputs, as training data, a user preferred solution that is a Pareto solution selected by the user from among the Pareto solutions presented as recommended solutions. The index weight calculation unit 107 identifies normalized index values corresponding to the values of each index of the Pareto solutions constituting the output training data from the normalized index values output by the index value normalization unit 103, and outputs a normalized index value vector having the identified normalized index values as components. The index weight calculation unit 107 feeds back and adds the normalized index value vector to past learning data 1098 accumulated by the index value normalization unit 103.
[0046] The index weight learning unit 108 updates the learning model by learning the learning data 1098 accumulated by the index value normalization unit 103 and added by the index weight calculation unit 107 using a neural network, a decision tree, or the like. Specifically, the index weight learning unit 108 fits the predicted index weight vector output by the index weight prediction unit 104 so that the difference between the normalized index value vector having each index of the Pareto solution output as the teacher data as a component is minimized.
[0047] 3C is a diagram for explaining a predicted index weight vector output by the index weight prediction unit 104 using a learning model learned by the index weight learning unit 108. As shown in FIG. 3C, the index weight learning unit 108 inputs learning data 1098, which is accumulated as a normalized index value vector having the normalized index value obtained from past solution set index data 1097 as a component, to a learning model such as a neural network or a decision tree. In this example, the index weight learning unit 108 extracts a solution set index value (CSV) of the number of indexes N (N=5 in this example) and the number of solutions M (M=100 in this example) for the target number of days (for example, the most recent one month) from the learning data 1098.
[0048] In order to improve the learning efficiency, the index weight learning unit 108 uses the following formula 6 to output a normalized index value vector scaled so that the sum of each component of the neuron becomes 1 as a prediction index weight vector.
[0049]
number
[0050] Specifically, the index weight learning unit 108 updates the learning model up to that point by determining a value that minimizes the prediction error (cosine similarity with inverted sign) with a normalized index value vector whose components are normalized index values corresponding to the values of each index of the Pareto solutions constituting the teacher data while gradually changing the coefficients w and b in Equation 1 for the input learning data 1098. The above-mentioned index weight prediction unit 104 inputs the normalized index value vector output by the index value normalization unit 103 to the learning model updated by the index weight learning unit 108, and outputs the above-mentioned predicted index weight vector for each Pareto solution.
[0051] Next, various data stored in storage unit 109 will be described.
[0052] Fig. 4 is a diagram showing an example of the shipper master table 1091. The shipper master table 1091 is a table for managing shippers who use this system. As shown in Fig. 4, the shipper master table 1091 stores a shipper ID 401 for identifying a shipper and a name 402 of the shipper in association with each other. In Fig. 4, for example, it can be seen that the shipper identified by the shipper ID "1" has the name "A."
[0053] Fig. 5 is a diagram showing an example of the delivery company master table 1092. The delivery company master table 1092 is a table for managing delivery companies that use this system. As shown in Fig. 5, the delivery company master table 1092 stores a delivery company ID 501 for identifying a delivery company and a name 502 of the delivery company in association with each other. In Fig. 5, for example, it can be seen that the delivery company identified by the delivery company ID "1" has the name "X".
[0054] FIG. 6 is a diagram showing an example of the base master table 1093. The base master table 1093 is a table stored for each delivery company, and is used to manage delivery bases on the delivery route traveled by the delivery company. As shown in FIG. 6, the base master table 1093 stores a delivery base ID 601 for identifying a delivery base, a name 502 of the delivery base, and a latitude 503 and longitude 504 of the delivery base in association with each other. In FIG. 6, for example, it can be seen that the delivery base identified by the delivery base ID "1" is named "L" and is located at latitude "43.521" and longitude "141.345".
[0055] FIG. 7 is a diagram showing an example of the additional order data 1094. The additional order data 1094 is a table stored for each delivery company and for managing additional delivery orders on the delivery route traveled by the delivery company. As shown in FIG. 7, the additional order data 1094 stores an additional order ID 701 for identifying an additional delivery order, a shipper ID 702 that has made the additional delivery order, and the latitude 503 and longitude 504 of the delivery base where the additional delivery order has been made in association with each other. In FIG. 7, for example, an additional delivery order identified by an additional order ID of "1" indicates that the additional delivery order is an order to deliver a package from a base identified by a loading base ID "1" of a shipper identified by a shipper ID "1" to a base identified by a loading base ID "2".
[0056] Fig. 8 is a diagram showing an example of the existing route data 1095. The existing route data 1095 is a table for managing existing delivery routes for delivery companies to deliver packages. As shown in Fig. 8, the existing route data 1095 stores a route ID 801 for identifying an existing delivery route, the above-mentioned delivery company ID 802, an order ID 803 for identifying a delivery order, the above-mentioned shipper ID 804, a departure point 805 which is a point from which the package departs, a destination point 806 which is a point from which the package arrives, and a type 807 which indicates the status of delivery, in association with each other. In Figure 8, for example, a delivery route identified by a route ID of "1" indicates that a delivery company identified by a delivery company ID of "1" accepts a delivery order identified by a delivery order ID of "10", loads cargo for a shipper identified by a shipper ID of "3" at a base identified by a departure base ID of "2" (record 810), moves the cargo from the base with base ID "2" to the base with base ID "3" (record 811), and unloads the cargo at a base identified by a unloading base ID of "3".
[0057] Fig. 9 is a diagram showing an example of the post-matching route data 1096. The post-matching route data 1096 is a table for managing a post-matching route in which an additional order is incorporated into an existing delivery route, as shown in Fig. 3A.
[0058] As shown in Fig. 9, the matching route data 1096 stores a solution ID 901 for identifying a Pareto solution in addition to a route ID 902, a delivery company ID 903, an order ID 904, a shipper ID 905, a starting point 906, a destination point 907, and a type 908, which are similar to the existing route data 1095 shown in Fig. 8. In Fig. 9, for example, a record group 910 identified by a route ID of "1" is one of the delivery routes realized by the Pareto solution identified by a solution ID of "1", and similar to this record group 910, record groups identified by route IDs of "2" and after are also stored in the same manner. In other words, the matching route data 1096 stores specific details of the delivery route that satisfies each Pareto solution. The solution ID in the post-matching route data 1096 can be associated with other items by the multi-objective optimization unit 102 using the data in Equations 1 to 5 and Figures 4 to 8 used by the multi-objective optimization unit 102 when deriving the Pareto solutions for each index.
[0059] FIG. 10 is a diagram showing an example of solution set index data 1097. The solution set index data 1097 is a set of data of Pareto solutions between the indexes output by the multi-objective optimization unit 102. As shown in FIG. 10, the solution set index data 1097 stores each index when the Pareto solution is derived. In this example, the values of the above-mentioned five indexes (1. total travel distance, 2. variance of profit, 3. average actual vehicle rate, 4. compatibility between the delivery company and the shipper, 5. number of changes in the operation plan) are stored. These values are calculated using the above-mentioned formulas 1 to 5 and FIGS. 4 to 8.
[0060] For example, the indices of the Pareto solution (record 1010) identified by solution ID "1" are: total travel distance "9299", revenue variance "3616", average vehicle utilization rate "0.70", compatibility between delivery companies and shippers "14", and number of changes in operation plan "0.75". The number of Pareto solutions, N, is the number of solutions output by multi-objective optimization in one matching.
[0061] FIG. 11 is a diagram showing an example of the learning data 1098. The learning data 1098 is set data of Pareto solutions in which each index of the solution set index data 1097 output by the index value normalization unit 103 is normalized. As shown in FIG. 11, the learning data 1098 stores normalized index values in which the same index as the solution set index data 1097 is normalized. For example, it can be seen that the indexes of the normalized Pareto solution (record 1110) identified by the solution ID "1" are the total travel distance of "1.0", the variance of the profit of "0.06", the average of the actual vehicle rate of "0.23", the compatibility between the delivery company and the shipper of "0.18", and the number of changes in the operation plan of "0.63".
[0062] FIG. 12 is a diagram showing an example of the teacher data 1099. The teacher data 1099 is a normalized index value vector whose components are normalized index values corresponding to the values of each index of the user-preferred solution selected by the user from among the Pareto solutions presented as recommended solutions. The teacher data 1099 is scaled so that the sum of the components, which are the values of each index of the user-preferred solution, is 1. For example, when the user selects a Pareto solution identified by a solution ID "2" and the solution selection unit 106 outputs the selected Pareto solution as the user-preferred solution, the index weight calculation unit 107 reads out each index of the normalized Pareto solution identified by the solution ID "2" (record 1111) and scales it so that the sum of the components is 1. In this example, each indicator of the Pareto solution identified by solution ID "2" has been scaled, and record 1210 has been accumulated, in which the total travel distance is "0.12", the variance of revenue is "0.30", the average vehicle utilization rate is "0.11", the compatibility between the delivery company and the shipper is "0.35", and the number of changes to the operation plan is "0.13".
[0063] Next, the processing performed in this system will be described.
[0064] FIG. 13A is a flowchart showing an example of a processing procedure of a delivery matching process performed in this system. As shown in FIG. 13A, the multi-objective optimization unit 102 performs a multi-objective optimization process (step 1301) in which a Pareto solution between predetermined indices is derived for the combination of allocating additional delivery orders to delivery routes and the combination of travel orders for each combination, which are received by the input / output unit 101, and outputs the solution set index data 1097. The predetermined indices are, for example, the above-mentioned five indices: total travel distance, variance of profit, average of actual vehicle rate, compatibility between the delivery company and the shipper, and number of changes in the operation plan. In the multi-objective optimization process in step 1301, the multi-objective optimization unit 102 outputs the solution set index data 1097 and post-matching route data 1096, which is a delivery route (solution route) corresponding to each of the derived Pareto solutions.
[0065] The index value normalization unit 103 performs an index value normalization process (step 1302) to normalize the value of each index of each Pareto solution included in the solution set of the solution set index data 1097 calculated by the multi-objective optimization unit 102, and output the normalized index value as learning data 1098. The index value normalization process will be described later with reference to FIG.
[0066] The index weight prediction unit 104 inputs the normalized index value output by the index value normalization unit 103 into the trained learning model, and performs an index weight prediction process to output a predicted index weight vector having each index of the user's preferred solution selected by the user as a component (step 1303). The index weight prediction process will be described later with reference to Figures 15A and 15B.
[0067] The solution recommendation unit 105 performs a solution recommendation process (step 1304) to output a recommended solution that is a Pareto solution to be recommended, based on the cosine similarity between the normalized index value vector, whose components are the normalized index values of the Pareto solutions included in the learning data 1098 output in step 1302, and the index weight prediction vector output in step 1303. The solution recommendation process will be described later with reference to FIG.
[0068] The solution selection unit 106 performs a solution selection process (step 1305) to allow the user to select the recommended solution output in step 1304. The solution selection process will be described later with reference to FIG.
[0069] The index weight calculation unit 107 calculates a normalized index value vector scaled from the normalized index values of the user preferred solutions, which are the Pareto solutions selected in step 1305, so that the sum of each component is 1, and outputs the normalized index value vector as the training data 1099 (step 1306).
[0070] The index weight calculation unit 107 judges whether or not the current time and the delivery time satisfy a predetermined temporal relationship (step 1307). When the predetermined temporal relationship is satisfied, for example, when the timing of performing this process is a certain amount of time before the delivery time, such as when the current time is the same day as the delivery time or the day before, the index weight calculation unit 107 judges that the predetermined temporal relationship is satisfied. In other words, the index weight calculation unit 107 executes either of the following steps 1308 or 1309 depending on the time until delivery.
[0071] If the index weight calculation unit 107 determines in step 1307 that the current time and the delivery time satisfy a predetermined temporal relationship (step 1307; Yes), it accumulates the prediction index weight vector calculated in step 1306 in the first learning data (step 1308). For example, if the current time is one day or more before the delivery time (i.e., before the previous day), the index weight calculation unit 107 determines that the above-mentioned predetermined temporal relationship is satisfied, and accumulates the prediction index weight vector calculated in step 1306 in the learning data 1098 (first learning data).
[0072] On the other hand, when the index weight calculation unit 107 determines in step 1307 that the current time and the delivery time do not satisfy the predetermined temporal relationship (step 1307; No), it accumulates the prediction index weight vector calculated in step 1306 in the second learning data (step 1309). For example, when the current time is not one day or more before the delivery time (i.e., the same day), the index weight calculation unit 107 determines that the above-mentioned predetermined temporal relationship is not satisfied, and accumulates the prediction index weight vector calculated in step 1306 in the learning data 1098 (second learning data).
[0073] In this example, the index weight calculation unit 107 performs step 1307 to divide and accumulate the learning data based on the relationship between the current time and the delivery time, but step 1307 does not necessarily have to be performed, and the prediction index weight vector calculated in step 1306 may be accumulated as one learning data 1098 regardless of the relationship between the current time and the delivery time. By performing step 1307, the values of each component of the normalized index value vector having the normalized index value of the Pareto solution included in the learning data 1098 output in step 1302 as its components and the values of each component of the prediction index weight vector scaled in step 1306 are added to the past data, and learning data according to the above-mentioned predetermined relationship (for example, learning data for the most recent target days, learning data for the current day) is accumulated.
[0074] The index weight learning unit 108 inputs the learning data 1098 accumulated in steps 1308 and 1309 into a learning model such as the neural network or decision tree shown in FIG. 3C, and updates the learning model up to that point by determining values that minimize the prediction error with the teacher data 1099 (step 1310).
[0075] In this example, the learning data 1098 is accumulated according to the above-mentioned temporal relationship, but the learning data 1098 may be accumulated according to the user who uses the system. In this case, for example, before executing the delivery matching process, a user is registered as a user of the system, and then a login process is performed in which the user entered when using the system is authenticated by the registered user. By performing such a login process, the delivery matching process can be executed by switching users.
[0076] The multi-objective optimization unit 102 associates the solution set index data 1097 and post-matching route data 1096 output by executing step 1301 with the authenticated user authenticated in the login process, and stores them. Then, when each process from steps 1301 to 1306 shown in Fig. 13A is performed for the authenticated user in this system, as shown in Fig. 13B, the index weight calculation unit 107 determines whether or not there is learning data 1098 for the authenticated user (step 1307A).
[0077] When the index weight calculation unit 107 determines that the authenticated user has the learning data 1098 (step 1307A; Yes), the index weight calculation unit 107 accumulates the user learning data, which is the learning data 1098, for the authenticated user (step 1308A). On the other hand, when the index weight calculation unit 107 determines that the authenticated user does not have the learning data 1098 (step 1307A; No), the index weight calculation unit 107 newly creates the user learning data for the authenticated user (step 1309A). Then, the index weight learning unit 108 inputs the learning data 1098 accumulated for each authenticated user in steps 1308 and 1309 into the learning model described above, and determines a value that minimizes the prediction error with the teacher data 1099 for each authenticated user, thereby updating the learning model for each authenticated user up to that point (step 1310A).
[0078] In this way, by accumulating the learning data 1098 for each authenticated user and updating the learning model, the learning model can be switched depending on the user using the system. As a result, it becomes possible to present the recommended solution that better matches the user's preferences. Of course, depending on the environment in which the system is used, the process shown in FIG. 13A and the process shown in FIG. 13B may be combined and executed. This allows the learning model of each authenticated user to be further updated while taking into account the above-mentioned temporal relationship, and makes it possible to present the recommended solution that better matches the user's preferences.
[0079] FIG. 14 is a flowchart illustrating an example of a processing procedure for the index value normalization process. As shown in FIG. 14, the index value normalization unit 103 reads the values of each index (evaluation index value) of each Pareto solution included in the solution set (solution list) of the solution set index data 1097 calculated by the multi-objective optimization unit 102 (step 1401).
[0080] The index value normalization unit 103 performs the following processes for each index read in step 1401 (steps 1402, 1404).
[0081] The index value normalization unit 103 calculates the worst value (Ai: worst value of index i) and the best value (Bi: best value of index i) of the read index (step 1403). For example, the index value normalization unit 103 sets the maximum value of each of the indexes, total travel distance, variance of profit, and number of changes in operation plan, as the worst value, and sets the minimum value of each of the indexes, average vehicle utilization rate, and compatibility with delivery companies, as the worst value.
[0082] In addition, for example, the index value normalization unit 103 sets the minimum value of each of the indexes, i.e., the total travel distance, the variance of revenue, and the number of changes in the operation plan, as the best value, and sets the maximum value of each of the indexes, i.e., the average vehicle utilization rate and the compatibility with the delivery company, as the best value.
[0083] Next, the index value normalization unit 103 performs the following processes for each Pareto solution included in the solution list (steps 1405 and 1409).
[0084] Furthermore, the index value normalization unit 103 performs the following process for each index of the Pareto solutions (steps 1406 and 1408).
[0085] The index value normalization unit 103 calculates a normalized index value of each index (step 1407). For example, the index value normalization unit 103 calculates a normalized index value fi of index i by fi=(f'i-Ai) / (Bi-Ai), where f'i represents the i-th index value. When step 1409 ends, the index value normalization process shown in FIG. 14 ends. When this process ends, the index value normalization unit 103 outputs normalized index values obtained by normalizing the index values of the Pareto solutions included in the solution set index data 1097, and outputs a normalized index value vector having the normalized index values as components as the learning data 1098.
[0086] FIG. 15A is a flowchart illustrating an example of a processing procedure for the index weight prediction process. 15A, the index weight prediction unit 104 judges whether or not there is previously accumulated learning data 1098 (step 1501). When it is judged that there is no previously accumulated learning data 1098 (step 1501; No), the index weight prediction unit 104 judges that the learning has not been performed because there is no previously accumulated learning data 1098, and reads and outputs initial learning data in which a preset initial value is stored (step 1508).
[0087] On the other hand, if the index weight prediction unit 104 determines that there is previously accumulated learning data 1098 (step 1501; Yes), the input / output unit 101 accepts the input, and reads the normalized index values of the Pareto solutions included in the solution set index data 1097 output by the multi-objective optimization unit 102 (step 1502).
[0088] The index weight prediction unit 104 judges whether or not the current time and the delivery time satisfy a predetermined temporal relationship (step 1503). The predetermined temporal relationship is the same as that in step 1307.
[0089] If the index weight prediction unit 104 determines in step 1503 that the current time and the delivery time satisfy a predetermined temporal relationship (step 1503; Yes), it reads the first learning data accumulated in step 1308 (step 1504).
[0090] On the other hand, if the index weight prediction unit 104 determines in step 1503 that the current time and the delivery time do not satisfy a predetermined temporal relationship (step 1503; No), it reads the second learning data accumulated in step 1309 (step 1505).
[0091] The index weight prediction unit 104 inputs the normalized index value vector having the normalized index value read in step 1502 as a component to the trained learning model trained by the index weight learning unit 108 by reading the learning data in step 1504 or step 1505 (step 1506), and outputs a prediction index weight vector having each index of the Pareto solution included in the solution set index data 1097 as a component for each Pareto solution (step 1507). When this process is completed, a prediction index weight vector learned by the latest learning model from the normalized index value vector of the Pareto solution included in the solution set index data 1097 is output for each Pareto solution.
[0092] In this example, the learning data 1098 is read in accordance with the above-mentioned temporal relationship, but as in the case of Figs. 13A and 13B, the learning data 1098 may be read in accordance with the user who uses this system. In this case, when each process from steps 1501 to 1502 shown in Fig. 15A is performed, as shown in Fig. 15B, the index weight prediction unit 104 determines whether or not there is learning data 1098 of the authenticated user (step 1503A). Then, when the index weight prediction unit 104 determines in step 1503A that there is learning data 1098 of the authenticated user (step 1503A; Yes), it reads the user learning data accumulated in step 1308A (step 1504A).
[0093] On the other hand, if it is determined in step 1503A that there is no learning data 1098 for the authenticated user (step 1503A; No), the index weight prediction unit 104 reads the user learning data created in step 1309A (step 1505A).
[0094] Then, the index weight prediction unit 104 inputs the normalized index value vector read in step 1502 into the trained learning model for each authenticated user that was trained by the index weight learning unit 108 by reading the user learning data in step 1504A or step 1505A (step 1506A), and outputs a predicted index weight vector for each Pareto solution, with each index of the Pareto solution included in the solution set index data 1097 as its component, for each authenticated user (step 1507A).
[0095] In this way, by accumulating learning data 1098 for each authenticated user, reading an updated learning model, and outputting a prediction index weight vector, the prediction index weight vector can be output according to the user using this system. As a result, it becomes possible to present the above-mentioned recommended solution that matches the user's preferences more. Of course, the process shown in FIG. 15A and the process shown in FIG. 15B may be combined and executed according to the environment in which this system is used. In this way, it becomes possible to output a prediction index weight vector according to each authenticated user after taking into account the above-mentioned temporal relationship, and it becomes possible to present the above-mentioned recommended solution that matches the user's preferences.
[0096] FIG. 16 is a flowchart illustrating an example of a processing procedure of the solution recommendation processing. As shown in FIG. 16, similarly to step 1401, the solution recommending unit 105 reads the values of each index of each Pareto solution included in the solution set (solution list) of the solution set index data 1097 calculated by the multi-objective optimization unit 102 (step 1601).
[0097] The solution recommending unit 105 reads (step 1602) the normalized index value for each index of each Pareto solution read in step 1601. The normalized index value to be read is the value calculated in the index value normalization process of FIG.
[0098] The solution recommending unit 105 reads each component of the prediction index weight vector of each Pareto solution (step 1603). The prediction index weight vector to be read is the vector calculated in the index weight prediction process of FIGS. 15A and 15B.
[0099] The solution recommending unit 105 performs the following processes for each Pareto solution read in step 1601 (steps 1604 and 1606).
[0100] The solution recommending unit 105 calculates the cosine similarity between the normalized index value vector of the normalized index values read in step 1602 and the index weight vector output in step 1603, and sets the calculated cosine similarity as the overall index for each Pareto solution (step 1605).
[0101] Fig. 17 is a diagram for explaining a method of calculating the cosine similarity. In Fig. 17, the cosine similarity (cosθ) between the normalized index value vector x and the prediction index weight vector w is calculated by the right formula in Fig. 17. The larger the calculated cosine similarity, the closer the normalized index value vector x is to the prediction index weight vector w, and therefore the greater the Pareto solution is that which is more likely to be selected by the user, that is, that which is more likely to become the user's preferred solution.
[0102] The solution recommendation unit 105 rearranges each Pareto solution read in step 1601 so that the larger value of the overall index calculated in step 1605 is placed at the top, and outputs overall index data in which each Pareto solution is associated with the overall index (step 1606). That is, in step 1606, the solution recommendation unit 105 outputs, as overall index data, a recommended solution list in which the Pareto solutions are rearranged in order of recommendation.
[0103] Fig. 18A is a diagram showing an example of overall index data. As shown in Fig. 18A, the overall index data 1800 stores the above-mentioned overall index in association with each Pareto solution of the solution set index data 1097 shown in Fig. 10. In Fig. 18A, the solution recommending unit 105 outputs a record 1810 with an overall index of "0.99" as the most recommended Pareto solution.
[0104] In FIG. 18A, the solution recommendation unit 105 outputs the Pareto solutions sorted in descending order of overall index as the overall index data 1800, but the output position of the index value of the Pareto solution may be changed according to the superiority / inferiority relationship of each index value of the Pareto solution. For example, when there are five indexes, namely, total travel distance, variance of profit, average actual vehicle rate, compatibility between the delivery company and the shipper, and number of changes in the operation plan, the solution recommendation unit 105 calculates how close each of these indexes is to the best value. The solution recommendation unit 105 displays the index closer to the best value of each index in a position that is easy for the user to see. The solution recommendation unit 105 displays the index closest to the best value in a position to the right of the overall index 1802 shown in FIG. 18A as a position that is easy for the user to see, for example, and displays the index next closest to the best value in a position to the right of that. In this way, the index closer to the best value is displayed in a position closer to the solution ID 1801 or the overall index 1802. This makes it easy to understand which indicators contribute to the sorting order of the recommended solutions.
[0105] Furthermore, the index desired by the user may be displayed at a position where the user can easily view it. For example, as shown in FIG. 18B, on a screen where the user selects an index, the user selects an index with the highest priority from a pull-down menu, and the solution recommendation unit 105 displays the selected index at a position closest to the solution ID 1801 and the overall index 1802 as shown in FIG. 18A. After that, when an index with the next highest priority is selected, it is displayed at a position to the right of the index displayed at the closest position. In FIG. 18B, the "total travel distance" is displayed as the index with the highest priority as a default, but the user can select a desired index from the pull-down menu 1820. Then, the solution recommendation unit 105 outputs the Pareto solutions in which the index value of the index selected as the index with the highest priority (in this example, "total travel distance") is sorted in descending order as the overall index data 1800.
[0106] In this way, the solution recommending unit 105 displays the index selected as having a higher priority in a position closer to the solution ID 1801 or the overall index 1802, and further sorts the index values in descending order. This allows the indexes that the user wants to check carefully to be displayed in an easy-to-see position, and sorts the indexes in descending order of the index selected by the user, providing an environment in which the user can more easily select a Pareto solution.
[0107] When the process shown in FIG. 16 is completed, a solution list in order of recommendation in which the Pareto solutions for the solution set index data 1097 are rearranged in order of recommendation is output.
[0108] FIG. 19 is a flowchart illustrating an example of a processing procedure of the solution selection process. As shown in Fig. 19, the solution selection unit 106 reads the solution list in the order of recommendation output in Fig. 16 (step 1901). Furthermore, the solution selection unit 106 reads post-matching route data 1096, which is the delivery route (solution route) corresponding to each Pareto solution in the solution list output in step 1301 in Figs. 13A and 13B (step 1902).
[0109] The solution selection unit 106 determines whether or not the desired Pareto solution has been selected as the user's preferred solution by the user via the input device 1606 from the list of solutions in the order of recommendation output in FIG. 16 (step 1903), and if it is determined that the desired Pareto solution has been selected as the user's preferred solution (step 1903; Yes), the process is terminated.
[0110] On the other hand, when the solution selection unit 106 determines that the desired Pareto solution has not been selected as the user preferred solution by the user (step 1903; No), it determines whether or not another Pareto solution has been selected as the user preferred solution (step 1904).When the solution selection unit 106 determines that another Pareto solution has not been selected as the user preferred solution (step 1904; No), it returns to step 1903 and repeats the process until the user preferred solution is selected.
[0111] On the other hand, if the solution selection unit 106 determines that another Pareto solution has been selected as the user's preferred solution (step 1904; Yes), it displays the distribution of each index value of the selected user's preferred solution and the delivery route on the output device 1605 (steps 1905, 1906).
[0112] Fig. 20 is a diagram showing an example of the distribution of each index value of the selected Pareto solution (user preferred solution) output in step 1905. As shown in Fig. 20, the solution selection unit 106 displays the distribution of each index value of the Pareto solution for multiple indexes on the output device 1605, similar to the diagram for explaining an example of the Pareto solution shown in Fig. 3B. In Fig. 20, similar to the case of Fig. 3B, the distribution of each index value between the total travel distance (horizontal axis) and the variance of profit (vertical axis) is displayed, and the user preferred solution PS is highlighted.
[0113] 20 shows the distribution of the total travel distance (horizontal axis) and the variance of the profit (vertical axis). The solution selection unit 106 can similarly display the distribution of other index values, such as the average of the total travel distance and the actual vehicle rate, the total travel distance and the number of changes in the operation plan, the total travel distance and the compatibility between the delivery company and the shipper.
[0114] 21 and 22 are diagrams showing an example of a delivery route corresponding to the selected Pareto solution (user preferred solution) output in step 1906. Fig. 21 shows an example of a pattern of all delivery routes (overall routes) corresponding to the above user preferred solution, and Fig. 22 shows an example of a delivery route (individual route) selected by the user from the delivery routes shown in Fig. 21.
[0115] The solution selection unit 106 reads out the delivery route corresponding to the user's preferred solution from the post-matching route data 1096, and displays it on the output device 1605. In Fig. 21, the delivery route patterns are displayed in a identifiable manner, with the vertical axis representing latitude and the horizontal axis representing longitude. Here, it is shown that there are eight delivery routes corresponding to the user's preferred solution, from route 0 to route 7, and that the user selected route 3 from among them.
[0116] In this way, by presenting the user with the user's preferred solutions in a visually recognizable manner the relationship between the index values of the user's preferred solutions as shown in Fig. 20, the user can easily check the index values of the Pareto solutions selected by the user. Also, by presenting the delivery route patterns of the user's preferred solutions and the delivery route selected from the patterns in a visually recognizable manner as shown in Figs. 21 and 22, the user can easily check the delivery route candidates of the Pareto solutions selected by the user and the actual location and route of the selected delivery route.
[0117] When the process shown in FIG. 19 is completed, the user preferred solution selected by the user from the Pareto solutions presented as the recommended solutions, as well as the index values and delivery route corresponding to the user preferred solution, are output.
[0118] The delivery matching process performed in this system has been described above using the drawings from FIG. 13A onwards, but the overall process of the delivery matching process can be shown as a process flow shown in FIG. 23. That is, as shown in FIG. 23, in this system, first, (1) the multi-objective optimization unit 102 derives a solution set (solution list) of solution set index data 1097 of the Pareto solutions between each index for input data including a combination of a delivery route and an additional delivery order, and post-matching route data 1096 which is a delivery route (solution route) corresponding to each Pareto solution in the solution list. Then, (2) the index value normalization unit 103 outputs a normalized index value obtained by normalizing the value of each index of each Pareto solution included in the solution list, and accumulates a normalized index value vector having the normalized index value as a component in the learning data 1098.
[0119] Furthermore, (3) the index weight prediction unit 104 inputs the normalized index value vector to a trained learning model trained by the index weight learning unit 108, and outputs a predicted index weight vector for each Pareto solution. Then, (4) the solution recommendation unit 105 outputs a recommended solution list in which the Pareto solutions are rearranged in order of recommendation based on the cosine similarity between the normalized index value vector and the predicted index weight vector.
[0120] Then, (5) when the solution selection unit 106 selects a Pareto solution desired by the user as a user preferred solution from among the Pareto solutions in the recommended solution list, it outputs information such as a delivery route, an index value distribution of the recommended solution, and a delivery route of the recommended solution to the output device 1605. Next, (6) the index weight calculation unit 107 outputs a normalized index value vector of the teaching data that is the user preferred solution from among the Pareto solutions presented as recommended solutions, and feeds back and adds the normalized index value vector to the past learning data 1098.
[0121] Furthermore, (7) the index weight learning unit 108 inputs the learning data 1098 accumulated by the index value normalization unit 103 and added by the index weight calculation unit 107 to update the learning model. Then, using the new learning model updated by the index weight learning unit 108 in (3), the index weight prediction unit 104 outputs the latest predicted index weight vector.
[0122] The delivery matching system in this embodiment has been described above. However, in consideration of cases where the indexes emphasized differ depending on the delivery company that delivers the package, it is also possible to select a Pareto solution that matches the preference of each delivery company. In this case, as shown in FIG. 24, first, the multi-objective optimization unit 102 derives a solution set (solution list) of the solution set index data 1097 of the Pareto solution between each index for each delivery company from input data including a combination of the delivery route and additional delivery order for each delivery company, and a delivery route (solution route) corresponding to each Pareto solution in the solution list. In this example, the multi-objective optimization unit 102 reads the delivery route and additional order of the company 2401 (delivery company A) and the delivery route and additional order of the company 2402 (delivery company B) as input data. The multi-objective optimization unit 102 performs the multi-objective optimization process 2403 described above and outputs the Pareto solution for each delivery company. In this example, Pareto solutions 1 to n for the companies A and B are output.
[0123] Then, for each delivery company, the index value normalization unit 103 normalizes each index value of each Pareto solution, the index weight prediction unit 104 calculates a predicted index weight vector for each Pareto solution, and the solution recommendation unit 105 outputs a recommended solution list. Then, the solution selection unit 106 accepts the selection of a user's preferred solution from the Pareto solutions. In this example, the selected solution 2405 is selected by the solution selection 2404. The selected solution 2405 includes Pareto solutions 2405a and 2405b for companies A and B, respectively. The Pareto solution 2405a is the user's preferred solution PSa in the solution set 2406 for each index, and the Pareto solution 2405b is the user's preferred solution PSb in the solution set 2407 for each index.
[0124] Then, for each delivery company for which the index value is calculated, the index weight calculation unit 107 outputs a normalized index value vector for the selected user preferred solution. Furthermore, as shown in FIG. 25, the index weight learning unit 108 inputs the normalized index value of the Pareto solution output by the multi-objective optimization unit 102 into the learning model for each delivery company for which the index value is calculated, and fits the prediction index weight vector output by the index weight prediction unit 104 so that the prediction error with the normalized index value of the teacher data, which is the selected user preferred solution, is minimized. In FIG. 25, the normalized index value of the Pareto solution for a certain delivery company (company A) is input into the learning model, and the prediction index weight vector for company A is calculated 2501, and the normalized index value of the Pareto solution for another delivery company (company Z) is input into the learning model, and the prediction index weight vector for company Z is calculated 2501. Then, the index weight prediction unit 104 outputs a prediction index weight vector that minimizes the sum of prediction errors (or the maximum value of prediction errors) for each delivery company.
[0125] In this way, in consideration of the case where a delivery route is formed across multiple delivery companies, each index value is calculated for each delivery company, and the Pareto solution that minimizes the sum of the differences between the prediction index weight vector and the normalized vector for each company or the maximum value of the prediction error is selected as the user preferred solution. This makes it possible to select a Pareto solution that matches the preference of the delivery company even if the indicators emphasized differ depending on the delivery company.
[0126] As described above, in the delivery matching system in this embodiment, as described with reference to Figs. 1, 13, etc., in the delivery matching system 1000 that allocates additional orders for delivering packages to existing delivery routes by a computer 1600 having a processor and a memory, the processor uses as training data index values for a selected solution (user preferred solution) that is the Pareto solution selected by a user from among Pareto solutions based on predetermined indexes (the above-mentioned indexes 1 to 5) obtained from past input data including combinations of delivery routes and additional delivery orders, and generates a predetermined learning model (e.g., a neural network or a decision tree) is trained (e.g., the indicator weight training unit 108), current input data including the above combination is input to the trained predetermined learning model, a predicted indicator weight vector for each indicator of the Pareto solution is calculated (e.g., the indicator weight prediction unit 104), and among the Pareto solutions, a Pareto solution whose similarity to the predicted indicator weight vector satisfies a predetermined condition (e.g., the cosine similarity is the largest or is equal to or greater than a predetermined value) is identified (e.g., the solution recommendation unit 105, the solution selection unit 106), and the identified Pareto solution is output (the solution selection unit 106, the input / output unit 101). As a result, in an optimization calculation when there are multiple indicators, a user's preferred solution that takes into account the indicator that the user values according to the distribution situation of the indicator values can be selected from multiple optimal solutions (Pareto solutions). As a result, the cost required for the user to select a user's preferred solution from multiple optimal solutions can be reduced.
[0127] 24, 25, etc., the processor learns the predetermined learning model using the index values of the selected solutions for each of the multiple delivery companies (e.g., companies A and B) among the Pareto solutions for the multiple delivery companies included in the past input data as training data, inputs the input data including the multiple delivery companies to the learning model, and calculates the prediction index weight vector for each of the delivery companies. This makes it possible to select a Pareto solution that matches the preference of the delivery company even if the indicators emphasized differ depending on the delivery company.
[0128] As described with reference to Fig. 3C etc., the processor performs machine learning using a neural network as the learning using the predetermined learning model. This allows machine learning to be performed with simple tuning.
[0129] 18 and the like, the processor outputs the identified Pareto solutions by sorting them in descending order of similarity, thereby allowing the user to easily grasp the Pareto solutions that should be recommended to the user.
[0130] As described with reference to Fig. 10, formulas 1-5, etc., the processor calculates a Pareto solution based on the predetermined indexes, such as the travel distance of the vehicle delivering the parcel, the variance of revenue indicating how evenly parcels are transported along the delivery route, the actual vehicle ratio indicating the ratio of vehicles delivering parcels, the compatibility with the delivery company indicating the ratio of requests made by the shipper to a specific delivery company relative to the total number of delivery companies, and the number of changes in the operation plan indicating the number of changes in the operation plan of the delivery route due to additional orders by the vehicle. This makes it possible to select a Pareto solution desired by the user as a user-preferred solution from among the Pareto solutions between these indexes.
[0131] 13B, 15, etc., the processor accumulates the past and current input data and the Pareto solutions for each user who uses the system, and switches the learning of the predetermined learning model and the calculation of the prediction index weight vector for each user. This makes it possible to switch the learning model depending on the user who uses the system, and to present the recommended solution that better matches the user's preferences.
[0132] 18A and the like, the processor changes the output positions of the index values of the Pareto solutions according to the relative superiority of the index values of the identified Pareto solutions, which allows the user to easily understand which indexes contribute to the rearrangement of the recommended solutions.
[0133] 18B and the like, the processor rearranges the Pareto solutions according to the priority of the index value of the identified Pareto solution. This allows the solutions to be rearranged in descending order of the index selected by the user, providing an environment in which the user can more easily select a Pareto solution.
[0134] As described with reference to Fig. 20 and other figures, the processor displays the distribution of the index values of the identified Pareto solutions on a screen, which allows the user to easily check the index values of the user's preferred solution selected by the user.
[0135] 21, 22, etc., the processor displays the delivery route corresponding to the identified Pareto solution on the screen. This allows the user to easily check the delivery route candidates of the user's preferred solution selected by the user, and the actual location and route of the delivery route.
[0136] As described with reference to Figs. 13A, 15A, etc., the processor accumulates the past and current input data and the Pareto solutions, and switches between learning the predetermined learning model and calculating the prediction index weight vector according to the time until delivery. The indexes and the weights of the indexes to be considered differ between a case where this process is performed at a timing when a certain amount of time is secured until the delivery time (e.g., the day before) and a case where this process is performed at a timing approaching the delivery time (e.g., the day of delivery). For example, when the time until delivery is short, a Pareto solution of an index that reduces the burden on the driver is often selected as the user's preferred solution. Therefore, with this configuration, it becomes possible to present the recommended solution that matches the user's preference while taking into account time constraints.
[0137] 23 and the like, the processor adds, by feeding back, the index value of the selected solution selected by the user from among the identified Pareto solutions, to the index value of the Pareto solution based on the predetermined index obtained from the past input data. This makes it possible to accumulate learning data reflecting the index values of user-preferred solutions selected by the user in the past, thereby improving the learning accuracy.
[0138] The present invention is not limited to the above-described embodiments as they are, and in the implementation stage, the components can be modified and embodied within the scope of the gist of the present invention, or multiple components disclosed in the above-described embodiments can be appropriately combined. [Explanation of symbols]
[0139] 1000 Delivery Matching System 101 Input / output section 102 Multi-objective optimization section 103 Index value normalization unit 104 Index weight prediction unit 105 Solution Recommendation Section 106 Solution Selection Section 107 Indicator weight calculation unit 108 Index weight learning unit 109 Storage section 1091 Shipper Master Table 1092 Shipping Company Master Table 1093 Base Master Table 1094 Additional Order Data 1095 Existing Route Data 1096 Post-matching route data 1097 Solution Set Index Data 1098 Learning Data 1099 Teacher Data
Claims
1. A delivery matching system that allocates additional orders for delivery of packages to existing delivery routes by a computer having a processor and a memory, The processor, A predetermined learning model is trained using as training data an index value for a selected solution, which is a Pareto solution selected by a user from among Pareto solutions based on a predetermined index obtained from past input data including combinations of delivery routes and additional delivery orders; inputting current input data including the combination into the trained predetermined learning model, and calculating a predictive index weight vector for each index of the Pareto solution; Identifying a Pareto solution whose similarity to the prediction index weight vector satisfies a predetermined condition among the Pareto solutions; outputting the identified Pareto solutions; A delivery matching system.
2. The processor, learning the predetermined learning model using, as training data, index values of the selected solution for each of the plurality of delivery companies among the Pareto solutions for the plurality of delivery companies included in the past input data; inputting the input data including the plurality of delivery companies into the learning model, and calculating the prediction index weight vector for each of the delivery companies; 2. The delivery matching system according to claim 1.
3. The processor, As the learning by the predetermined learning model, machine learning is performed by a neural network.
2. The delivery matching system according to claim 1.
4. The processor, The identified Pareto solutions are sorted in descending order of the similarity and output.
2. The delivery matching system according to claim 1.
5. The processor, A Pareto solution is calculated based on the predetermined indices including the travel distance of the vehicle delivering the package, the variance of the revenue indicating how evenly the package is transported along the delivery route, the actual vehicle ratio indicating the ratio of vehicles delivering packages, the compatibility with the delivery company indicating the ratio of requests made by the shipper to a specific delivery company compared to all delivery companies, and the number of changes in the operation plan indicating the number of places where the vehicle has changed the operation plan of the delivery route due to additional orders.
2. The delivery matching system according to claim 1.
6. The processor, accumulating the past and present input data and the Pareto solutions for each user of the system; The learning of the predetermined learning model and the calculation of the prediction index weight vector are switched for each user.
2. The delivery matching system according to claim 1.
7. The processor, changing an output position of the index value of the Pareto solution according to a superiority / inferiority relationship of the index value of the specified Pareto solution; 5. The delivery matching system according to claim 4.
8. The processor, rearranging the Pareto solutions according to the priorities of the index values of the identified Pareto solutions; 5. The delivery matching system according to claim 4.
9. The processor, Displaying the distribution of each index value of the identified Pareto solution on a screen.
5. The delivery matching system according to claim 4.
10. The processor, displaying on a screen the delivery route corresponding to the identified Pareto solution; 5. The delivery matching system according to claim 4.
11. The processor, storing the past and present input data and the Pareto solutions; The learning of the predetermined learning model and the calculation of the prediction index weight vector are switched depending on the time until delivery.
6. The delivery matching system according to claim 5.
12. The processor, feeding back and adding an index value of the selected solution selected by the user from the identified Pareto solutions to an index value of the Pareto solution based on a predetermined index obtained from the past input data; 2. The delivery matching system according to claim 1.
13. A delivery matching method in which a computer assigns an additional order for delivering a package to an existing delivery route, comprising: A predetermined learning model is trained using as training data an index value for a selected solution, which is a Pareto solution selected by a user from among Pareto solutions based on a predetermined index obtained from past input data including combinations of delivery routes and additional delivery orders; inputting current input data including the combination into the trained predetermined learning model, and calculating a predictive index weight vector for each index of the Pareto solution; Identifying a Pareto solution whose similarity to the prediction index weight vector satisfies a predetermined condition among the Pareto solutions; outputting the identified Pareto solutions; A delivery matching method comprising:
Citation Information
Patent Citations
Multipurpose optimization method, program and planning device
JP2002288625A