Order reassignment method and device
By selecting orders to be transferred for riders and optimizing the assignment relationship between riders and orders, the problem of inflexible order handling without display is solved, and the delivery efficiency is improved.
Patent Information
- Application Number
- CN201910678055.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-07-25
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2039-07-25
AI Technical Summary
In the prior art, the order-pressure method of not showing the order is relatively inflexible, resulting in low delivery efficiency for riders and inability to effectively deal with uncertain factors.
By determining the rider's orders to be transferred and using an optimization algorithm to select orders for alternative riders, we can maximize the overall delivery efficiency and adjust the assignment relationship between rider and order.
It improves the delivery efficiency of undisplayed orders, optimizes the matching degree between riders and orders, and improves the overall efficiency of the delivery system.
Smart Images

Figure CN112288346B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of computer technology, and in particular to a method and device for reassigning an order. Background Art
[0002] With the development of technology, the online-to-offline (O2O) business model has become increasingly mature and is being applied to more and more industries. A typical example is the food delivery industry, which has grown rapidly under the influence of O2O.
[0003] Typically, to improve rider delivery efficiency and user experience, food delivery platforms use a routing optimization algorithm to determine the match between riders and orders based on received user orders. They then determine a dispatch plan that assigns orders to riders and assigns orders to riders according to this dispatch plan and the scheduling cycle. Orders that have been assigned to riders but haven't yet been assigned are stored in the backend and are therefore invisible to riders, making them unavailable to them. These orders are also called undisplayed orders.
[0004] At the same time, because riders may encounter uncertainties during the actual delivery process, which may cause changes in the matching degree between orders and riders in the dispatch plan, and reduce the rider's delivery efficiency, the existing technology can perform order suppression for undisplayed orders that are prone to uncertainties, unmatched orders, and orders with little impact from suppressing orders. In other words, orders that undergo order suppression are all undisplayed orders.
[0005] However, the existing method of handling order holdbacks usually only temporarily postpones assigning undisplayed orders to riders, which is still not flexible enough. Summary of the Invention
[0006] The embodiments of this specification provide a method and apparatus for order reassignment to partially solve the above-mentioned problems existing in the prior art.
[0007] The embodiments of this specification adopt the following technical solutions:
[0008] This manual provides a method for reassigning an order, including:
[0009] For each rider, determine the undisplayed orders to be placed from the rider's undisplayed orders, and then determine the rider's orders to be reassigned based on the undisplayed orders to be placed;
[0010] For each order to be reassigned and each backup rider, determine the backup rider's delivery efficiency relative to the order to be reassigned after the order to be reassigned is assigned to the backup rider based on the backup rider's assigned orders and the non-reassigned orders among the backup rider's undisplayed orders.
[0011] For each alternative rider, a specified optimization algorithm is used with the optimization goal of maximizing the overall delivery efficiency. Orders are selected for the alternative rider from the orders to be reassigned, and the selected orders are assigned to the alternative rider as new orders; wherein, the overall delivery efficiency is determined based on the delivery efficiency of each alternative rider relative to their respective new orders.
[0012] Optionally, determining the undisplayed orders to be suppressed from the rider's undisplayed orders specifically includes:
[0013] Divide the rider's undisplayed orders into several order packages based on the rider's original delivery route;
[0014] Suppress the order packages that meet the order suppression conditions in each order package;
[0015] Based on the undisplayed orders that are being held back, the rider's orders to be reassigned are determined, including:
[0016] Among the order packages to be suppressed, the order package with the latest delivery time is used as the order package to be reassigned, and the orders in the order package to be reassigned are determined to be the orders to be reassigned.
[0017] Optionally, after determining to assign the order to be reassigned to the candidate rider, the delivery efficiency of the candidate rider relative to the order to be reassigned specifically includes:
[0018] For each candidate rider, obtain the original delivery route of the candidate rider determined based on the assigned orders of the candidate rider and the undisplayed orders of the candidate rider;
[0019] After the order to be reassigned is determined to be assigned to the backup rider, the delivery route corresponding to the backup rider is updated;
[0020] According to the delivery efficiency of the original delivery path and the delivery efficiency of the updated delivery path, the efficiency change of the updated delivery path is determined as the delivery efficiency of the alternative rider relative to the order to be reassigned.
[0021] Optionally, based on the delivery efficiency of the optional delivery path and the delivery efficiency of the rider's original delivery path, determining the change in the rider's efficiency corresponding to the optional delivery path includes:
[0022] determining an efficiency change of the updated delivery route based on at least one of an efficiency change based on distance, an efficiency change based on waiting time, and an efficiency change based on just-in-time delivery;
[0023] Among them, the efficiency change based on distance is determined according to the difference in delivery distance between the original delivery path and the updated delivery path; the efficiency change based on waiting time is determined according to the difference between the sum of waiting times of each order in the original delivery path and the sum of waiting times of each order in the updated delivery path; the efficiency change based on on-time delivery is determined according to the difference between the sum of advance delivery times of each order in the original delivery path and the sum of advance delivery times of each order in the updated delivery path.
[0024] Optionally, a specified optimization algorithm is used to maximize the overall delivery efficiency and select orders for the candidate rider from the orders to be reassigned, specifically including:
[0025] Assign values to each candidate rider and each order to be reassigned based on their delivery efficiency relative to the orders to be reassigned. For each candidate rider, the sum of the assigned value of the candidate rider and the assigned value of any order to be reassigned equals the maximum delivery efficiency of the candidate rider relative to the orders to be reassigned.
[0026] In a preset order, for each candidate rider, based on the assigned values of the orders to be reassigned and the assigned value of the candidate rider, select any order to be reassigned that meets the specified conditions as the new order corresponding to the candidate rider; the specified conditions include: the sum of the assigned value of the order to be reassigned and the assigned value of the candidate rider is equal to the delivery efficiency of the candidate rider relative to the order to be reassigned;
[0027] Determine whether there is a conflict between the candidate riders for the newly added order, wherein if the newly added orders corresponding to at least two candidate riders are the same, then there is a conflict between the at least two candidate riders;
[0028] If so, adjust the new orders corresponding to the candidate riders who have determined the new orders until there is no conflict;
[0029] Otherwise, the new order corresponding to the next alternative rider is determined according to the preset order until all orders to be reassigned are selected as new orders.
[0030] Optionally, adjusting the new orders corresponding to each rider whose new orders have been determined specifically includes:
[0031] For each order to be reassigned, determine that the newly added orders are at least two alternative riders for the order to be reassigned, as conflicting riders;
[0032] For at least one conflicting rider determined, the new order corresponding to the conflicting rider is reselected according to the specified conditions until there is no conflict.
[0033] Optionally, the method further includes:
[0034] If, according to the specified conditions, it is not possible to reselect a new order for any conflicting rider, or if a conflict still exists after traversing all methods of selecting a new order for the conflicting rider, then adjust the assignment of each conflicting rider and the assignment of the order to be reassigned;
[0035] Based on the adjusted value of each conflicting rider and the adjusted value of the order to be reassigned, new orders are reselected for at least one conflicting rider until there is no conflict.
[0036] Optionally, adjust the value assigned to each conflicting rider and the value assigned to the order to be reassigned, including:
[0037] According to the preset step size, the assignment of each conflicting rider is reduced, and the assignment of the order to be reassigned is increased.
[0038] Optionally, if the alternative rider has initiated an order transfer within a preset period of time, no new order will be selected for the alternative rider.
[0039] This specification provides a device for reassigning an order, including:
[0040] A selection module determines, for each rider, the undisplayed orders that need to be placed on hold from the rider's undisplayed orders, and determines the rider's orders to be reassigned based on the undisplayed orders that need to be placed on hold;
[0041] A delivery efficiency determination module determines, for each order to be reassigned and each backup rider, the delivery efficiency of the backup rider relative to the order to be reassigned after the order to be reassigned is assigned to the backup rider based on the assigned orders of the backup rider and the non-displayed orders of the backup rider;
[0042] The reassignment module uses a specified optimization algorithm for each alternative rider, with the optimization goal of maximizing the overall delivery efficiency. It selects orders for the alternative rider from the orders to be reassigned, and assigns the selected orders as new orders to the rider; wherein, the overall delivery efficiency is determined based on the delivery efficiency of each alternative rider relative to their respective new orders.
[0043] A computer-readable storage medium provided in this specification is characterized in that the storage medium stores a computer program, and when the computer program is executed by a processor, the above-mentioned order reassignment method is implemented.
[0044] This specification provides an electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned order reassignment method when executing the program.
[0045] At least one of the above technical solutions adopted in the embodiments of this specification can achieve the following beneficial effects:
[0046] First, for each rider, the orders to be reassigned for the rider are determined from the undisplayed orders that the rider has placed on hold. Secondly, for each order to be reassigned and each alternative rider, based on the alternative rider's assigned orders and the alternative rider's non-to-be-reassigned orders (that is, other undisplayed orders in the undisplayed orders that are not orders to be reassigned), determine the delivery efficiency of the alternative rider relative to the order to be reassigned after the order to be reassigned is assigned to the alternative rider. Finally, based on the comprehensive delivery efficiency determined based on the delivery efficiency of each alternative rider relative to their respective new orders, for each alternative rider, with maximizing the comprehensive delivery efficiency as the optimization goal, select orders from the orders to be reassigned for the alternative rider as new orders and assign them to the alternative rider. By determining the delivery efficiency of the alternative rider relative to each order to be reassigned after different orders to be reassigned are assigned to the alternative rider, the reassignment object of the order to be reassigned is determined with maximizing the comprehensive delivery efficiency as the optimization goal. Since the principle behind order retention is that the assignment relationship between orders and riders is not ideal (i.e., the delivery efficiency is low), the delivery efficiency of orders can be improved by reassigning the orders that have been retained. Compared with the existing method of simply temporarily postponing the assignment of retained orders to riders, the method provided in this specification can improve the delivery efficiency of orders after the retained orders have been processed. BRIEF DESCRIPTION OF THE DRAWINGS
[0047] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0048] Figure 1 A process for reassigning an order provided for this manual;
[0049] Figure 2 A schematic diagram of the process of determining the relationship between orders to be reassigned and alternative riders provided in this manual;
[0050] Figure 3 A schematic diagram of the structure of an order reassignment device provided in an embodiment of this specification;
[0051] Figure 4 The embodiments of this specification provide corresponding Figure 1 Schematic diagram of electronic equipment. DETAILED DESCRIPTION
[0052] To make the purpose, technical solutions, and advantages of this specification more clear, the technical solutions of this application will be clearly and completely described below in conjunction with the specific embodiments of this specification and the corresponding drawings. Obviously, the embodiments described are only some of the embodiments of this application, not all of them. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.
[0053] The following describes in detail the technical solutions provided by various embodiments of the present application in conjunction with the accompanying drawings.
[0054] Figure 1 The order reassignment process provided in the embodiments of this specification may include the following steps:
[0055] S102: For each rider, determine the undisplayed orders to be suppressed from the rider's various undisplayed orders, and determine the rider's orders to be reassigned based on the undisplayed orders to be suppressed.
[0056] In this specification, the order reassignment process is the process by which the platform reassigns the rider's undisplayed orders after the platform has suppressed them. This order reassignment process can be specifically executed by the delivery platform's server.
[0057] Specifically, the server can first identify the undisplayed orders for each rider from among their undisplayed orders that are to be held. Then, based on the undisplayed orders that are to be held, the server can determine the rider's pending orders for reassignment. In other words, the server can first identify the orders that have been temporarily suspended from the rider, and then identify the pending orders that can be reassigned. The pending orders are orders that have not yet been assigned to the rider.
[0058] In addition, in this specification, when the server performs order suppression processing on the undisplayed orders, it can first divide the rider's undisplayed orders into several order packages according to the rider's original delivery path, and use the order packages as the objects for order suppression processing, determine the order packages that meet the order suppression processing, and perform order suppression processing. Among them, the rider's original delivery path is the delivery path determined after path planning based on the rider's assigned orders and each undisplayed order. That is, before the order is reassigned, the rider's delivery path is determined based on the assigned orders and each undisplayed order that have an assignment relationship with the rider. If the order is not reassigned, the original delivery path is the path for the subsequent rider to perform the delivery business. Of course, if the rider's undisplayed orders are reassigned through subsequent steps, the path for the rider to perform the delivery business may no longer be the original delivery path.
[0059] Specifically, when dividing the rider's various undisplayed orders into several order packages as objects for order suppression processing, the server can divide the rider's various undisplayed orders into several order packages based on the delivery locations and pickup locations corresponding to the various undisplayed orders on the rider's original delivery path, in a manner that the delivery locations and pickup locations corresponding to the same undisplayed order are divided into the same task package. For example, according to the delivery order of the delivery locations and pickup locations on the rider's original delivery path from morning to night, the delivery location corresponding to the last undisplayed order that is not divided into an order package is determined as the starting location, and then according to the delivery order of the delivery locations and pickup locations on the rider's original delivery path from night to morning, the end location is searched from the starting location, wherein the number of all pickup locations and delivery locations from the starting location to the end location is the same, and finally, the undisplayed orders corresponding to all pickup locations and delivery locations from the starting location to the end location are divided into one order package, and the order packages are determined repeatedly until all undisplayed orders are divided into order packages.
[0060] Afterwards, the server can suppress the order packages that meet the order suppression conditions in each order package, and determine the order package with the latest delivery time from each order package that has been suppressed as the order package to be re-dispatched. The orders in the order package to be re-dispatched are the orders to be re-dispatched.
[0061] S104: For each newly added order to be reassigned, determine the delivery efficiency of the alternative rider relative to the order to be reassigned after the order to be reassigned is assigned to the alternative rider based on the assigned orders of the alternative rider and the non-reassigned orders among the alternative rider's undisplayed orders.
[0062] In this specification, after the server identifies several riders' pending reassignment orders, it can further determine which candidate riders these pending reassignment orders can be reassigned to. A candidate rider is a rider who can accept the pending reassignment orders and perform the corresponding delivery tasks. Furthermore, to improve the delivery efficiency of the pending reassignment orders after reassignment, the server can determine the assignment relationship between each pending reassignment order and each candidate rider based on the matching degree between the pending reassignment orders and the candidate riders. Therefore, for each candidate rider and each pending reassignment order, the server can determine the delivery efficiency of the candidate rider relative to the pending reassignment order.
[0063] Specifically, since the server can determine several orders to be reassigned through step S102 and there are also several alternative riders who can receive the orders to be reassigned, the server can first determine, for at least one alternative rider and at least one order to be reassigned, the updated delivery path corresponding to the alternative rider after the order to be reassigned is assigned to the alternative rider. Then, based on the delivery efficiency of the alternative rider's original delivery path and the delivery efficiency of the updated delivery path, the server determines the efficiency change of the updated delivery path as the delivery efficiency of the alternative rider relative to the order to be reassigned. Therefore, through step S104, the server can determine the delivery efficiency of the alternative rider relative to each order to be reassigned after accepting different orders to be reassigned.
[0064] Among them, for each rider in step S102, since the server can use some of the undisplayed orders that the rider has suppressed as orders to be reassigned, after step S102, the orders with an assignment relationship with the rider include two types of orders: one is the assigned orders, that is, the rider can see the orders assigned to him, and the other is the non-to-be-reassigned orders among the undisplayed orders. Therefore, for the rider who has been determined to have orders to be reassigned, when the rider is used as a backup rider to determine the delivery efficiency, the server can determine the updated delivery path corresponding to the backup rider after assigning the to-be-reassigned orders of other riders to the backup rider based on the assigned orders of the backup rider and the non-to-be-reassigned orders among the backup rider's undisplayed orders.
[0065] That is, when determining each updated delivery route corresponding to the backup rider, the server needs to perform route planning based on the rider's assigned orders, orders not to be reassigned, and any other rider's orders to be reassigned. This determines the rider's delivery route after reassigning the other rider's orders to be reassigned to the backup rider, which is the updated delivery route. Of course, if the backup rider is not the rider whose orders were determined to be reassigned in step S102, the backup rider's orders not to be reassigned will be consistent with the backup rider's undisplayed orders.
[0066] For example, Table 1 is a schematic table of the order correspondence relationship of alternative riders provided in this manual.
[0067] Alternative riders Assigned orders Non-redispatch orders Orders to be reassigned Alternative rider A Order d Order e Order f Alternative rider B Order h Order i Order g Alternative rider C Order k Order Order m
[0068] Table 1
[0069] Assuming that the server has determined the orders to be reassigned for riders A to C respectively in step S102, it can determine the updated delivery path corresponding to each rider as an alternative rider in step S104. Taking alternative rider A as an example, when determining the updated delivery path of alternative rider A, the server can determine the updated delivery path corresponding to alternative rider A after rider B's order to be reassigned is reassigned to alternative rider A based on order d, order e, and order g. Similarly, based on order d, order e, and order m, the updated delivery path of alternative rider A can be determined after rider C's order to be reassigned is reassigned to alternative rider A. The same is true for alternative riders B and C. After assigning the orders to be reassigned to other riders, the updated delivery paths corresponding to alternative riders B and C can be determined.
[0070] Furthermore, for each pending reassignment order, the desired result after the pending reassignment order is reassigned is an improvement in the delivery efficiency of the pending reassignment order. Similarly, for each candidate rider, the desired result is an improvement in the average delivery efficiency of the assigned orders after the candidate rider is assigned a pending reassignment order. Therefore, to determine whether the candidate rider's delivery efficiency relative to the pending reassignment order has improved, the server can first determine the delivery efficiency of the candidate rider's original delivery route, as well as the delivery efficiency of the candidate rider corresponding to the updated delivery route after the pending reassignment order is assigned to the candidate rider.
[0071] Afterwards, based on the delivery efficiency of the updated delivery path and the delivery efficiency of the original delivery path of the alternative rider, the efficiency change of the rider corresponding to the updated delivery path is determined as the delivery efficiency of the alternative rider relative to the order to be reassigned.
[0072] That is, for each updated delivery route, determine the change in the delivery efficiency of the alternative rider in performing the delivery business on the updated delivery route compared to performing the delivery business on the original delivery route. If the delivery efficiency is improved, it means that the effectiveness of the alternative rider in performing the delivery business on the updated delivery route after the reassignment has improved.
[0073] In this specification, after the server determines the updated delivery paths corresponding to the alternative rider, in order to determine which delivery path is most suitable between the original delivery path of the alternative rider and the updated delivery paths corresponding to the alternative rider, the server can respectively determine the delivery efficiency of each updated delivery path corresponding to the alternative rider, and determine the delivery efficiency of the alternative rider relative to each order to be reassigned.
[0074] Specifically, the server can determine the efficiency change of the updated delivery path of the alternative rider based on at least one of the efficiency change based on distance, the efficiency change based on waiting time, and the efficiency change based on on-time delivery. Since the same number of orders are delivered, the longer the delivery distance, the more time cost the alternative rider needs to spend and the transportation cost the platform needs to spend, and the lower the delivery efficiency, so the delivery distance can be used as the delivery efficiency based on the delivery distance. Similarly, the waiting time is the time the alternative rider waits to obtain the delivery item after arriving at the location of the delivery provider during the delivery process. The longer the waiting time, the lower the delivery efficiency. The delivery punctuality data is the time it takes for the alternative rider to arrive at the receiving location in advance. The longer the waiting time, the lower the delivery efficiency.
[0075] The change in efficiency based on distance can be determined by the difference in delivery distance between the original and updated delivery routes. The change in efficiency based on waiting time can be determined by the difference between the sum of waiting times for each order in the original delivery route and the sum of waiting times for each order in the updated delivery route. The change in efficiency based on on-time delivery can be determined by the difference between the sum of early delivery times for each order in the original delivery route and the sum of early delivery times for each order in the updated delivery route.
[0076] S106: For each alternative rider, a specified optimization algorithm is used, with maximizing the overall delivery efficiency as the optimization goal, to select orders for the alternative rider from the orders to be reassigned, and the selected orders are assigned to the alternative rider as new orders; wherein the overall delivery efficiency is determined based on the delivery efficiency of each alternative rider relative to their respective new orders.
[0077] In this specification, since the server has determined the delivery efficiency of each alternative rider relative to each order to be reassigned, the assignment relationship between the order to be reassigned and the alternative rider can be determined based on the delivery efficiency, and the specified optimization algorithm can be used to maximize the overall delivery efficiency as the optimization goal, to determine the alternative riders for the order to be reassigned and assign them.
[0078] Specifically, according to the specified optimization algorithm, the process of selecting new orders for the candidate rider from the orders to be reassigned can be as follows: Figure 2 shown.
[0079] Figure 2 The process diagram for determining the relationship between the order to be reassigned and the candidate rider provided in this specification may include the following steps:
[0080] S1060: Assign values to each candidate rider and each order to be reassigned based on the delivery efficiency of each candidate rider relative to each order to be reassigned.
[0081] In step S1060, the server may first initialize the values of each candidate rider and each order to be reassigned, so that the assignment relationship between the order to be reassigned and the candidate rider can be determined based on the values in subsequent steps.
[0082] The specific assignment rules are as follows: the initial assignment for each reassigned order is a preset fixed value; for each candidate rider, the initial assignment is the sum of the assignment for any reassigned order and the candidate rider's maximum delivery efficiency relative to all reassigned orders. For example, if the preset fixed value is 0, the candidate rider's initial assignment is equal to the candidate rider's maximum delivery efficiency relative to all reassigned orders.
[0083] S1062: In a preset order, for each candidate rider, based on the assigned values of the orders to be reassigned and the assigned value of the candidate rider, select any order to be reassigned that meets a specified condition as the new order corresponding to the candidate rider. The specified condition includes: the sum of the assigned value of the order to be reassigned and the assigned value of the candidate rider is equal to the delivery efficiency of the candidate rider relative to the order to be reassigned.
[0084] The server may select, in a preset order, any order to be reassigned from among the orders to be reassigned that meet the specified conditions for each candidate rider, as the new order corresponding to the candidate rider. In this case, since the specified conditions may include: the sum of the assigned value of the order to be reassigned and the assigned value of the candidate rider is equal to the delivery efficiency of the candidate rider relative to the order to be reassigned, and the delivery efficiency of the candidate rider relative to the order to be reassigned is determined in step S104 based on the delivery efficiency of the updated delivery path and the change in the delivery efficiency of the original delivery path, selecting the new order for the candidate rider according to the specified conditions can maximize the delivery efficiency of the candidate rider's delivery.
[0085] S1064: Determine whether there is a conflict between the candidate riders for the newly added order. If so, execute step S1066; otherwise, execute step S1068. If the newly added orders corresponding to at least two candidate riders are the same, then there is a conflict between the at least two candidate riders.
[0086] In this specification, in step S1062, only one alternative rider is determined to determine the new order corresponding to the alternative rider. Although the delivery efficiency of the task corresponding to the new order is maximized for the alternative rider, maximizing the delivery efficiency of a single alternative rider does not necessarily maximize the overall delivery efficiency. This is because for each order to be reassigned, there may be multiple alternative riders whose delivery efficiency is maximized when performing the task corresponding to the order to be reassigned. In other words, there may be a situation where the new orders corresponding to at least two alternative riders are the same. In other words, there may be a situation where the order to be reassigned has been determined as a new order for other alternative riders. Obviously, one order to be reassigned cannot be assigned to two alternative riders. Therefore, in this specification, it is also necessary to determine whether there is a conflict among the alternative riders for the newly determined orders, and resolve the conflict if there is a conflict.
[0087] If at least two candidate riders have the same new order, it can be determined that there is a conflict between the candidate riders with the same new order, and the conflict needs to be resolved in S1066. Of course, if there is no conflict, the server can execute step S1068 to continue to determine the new order corresponding to the next candidate rider in the preset order.
[0088] S1066: Adjust the new orders corresponding to the candidate riders for whom the new orders have been determined until there is no conflict.
[0089] In this description, when the server determines that a conflict exists, it can, for each order to be reassigned, identify at least two candidate riders for the newly assigned order as conflicting riders. In other words, the newly assigned order is used as a candidate rider for the newly assigned order, also known as the conflicting rider. Thus, all candidate riders determined to have a conflict in step S1064 are identified as conflicting riders.
[0090] Since there may be more than one reassigned order for each conflicting rider whose assignment satisfies the specified conditions, the server may reselect a new order corresponding to the at least one conflicting rider based on the specified conditions until no conflict exists. The server may continue to select an order to be reassigned that satisfies the specified conditions for the next candidate rider, as the new order corresponding to the candidate rider, until a candidate rider is assigned to each reassigned order.
[0091] Furthermore, since there may be other orders to be reassigned that do not meet the specified conditions, the server cannot reselect new orders for the conflicting rider. If the server cannot reselect new orders for any conflicting rider, then simply reselecting new orders will not resolve the conflict. Therefore, the server can also adjust the assignments of each conflicting rider and the assignments of the orders to be reassigned, and reselect new orders for at least one conflicting rider based on the adjusted assignments of each conflicting rider and the adjusted assignments of the orders to be reassigned, until there is no conflict.
[0092] Furthermore, if a conflict still exists after the server has traversed all methods for selecting new orders for the conflicting rider, this does not mean that the conflicting rider cannot select other new orders for the conflicting rider, but even if other new orders are selected, the conflict cannot be avoided. Therefore, the server can adjust the assignment of each conflicting rider and the assignment of the order to be reassigned, and reselect new orders for at least one conflicting rider based on the adjusted assignment of each conflicting rider and the adjusted assignment of the order to be reassigned, until there is no conflict.
[0093] Furthermore, in this specification, the server may adjust the assignment of each conflicting rider and the assignment of the order to be reassigned according to a preset step size, by lowering the assignment of each conflicting rider and increasing the assignment of the order to be reassigned.
[0094] Specifically, the preset step size can be set as needed. For example, the minimum step size of the delivery efficiency is used as the preset step size. Assuming that the delivery efficiency is set with a minimum step size of 0.1, the preset step size can be 0.1. Alternatively, the server can also determine the combination of conflicting riders and orders to be reassigned that is closest to the specified conditions based on the assignments of each conflicting rider, the assignments of each order to be reassigned, and the delivery efficiency of each conflicting rider relative to each order to be reassigned, and determine the step size used for this adjustment based on the sum of the assignments of the conflicting rider and the assignments of the order to be reassigned, as well as the delivery efficiency of the conflicting rider relative to the order to be reassigned. Specifically, the server can determine the sum of the assignments of the conflicting rider and the assignments of the order to be reassigned for each conflicting rider and each order to be reassigned as the median value of the conflicting rider relative to the order to be reassigned, and then calculate the difference between the median value of the conflicting rider relative to the order to be reassigned and the delivery efficiency of the conflicting rider relative to the order to be reassigned. Then, the minimum value among the differences between the distribution efficiencies is selected as the value corresponding to the step size used in this adjustment.
[0095] In addition, after adjusting the assignments of the conflicting riders and the assignments of the order to be reassigned, it is still possible that the server cannot reselect a new order for any conflicting rider, or that conflicts still exist after the server has traversed all methods of selecting new orders for conflicting riders. This means that the assignment adjustment cannot resolve the conflict. The server can continue to adjust the assignments of the conflicting riders and the assignments of the order to be reassigned according to the preset step size until there is no conflict.
[0096] S1068: Determine the new order corresponding to the next rider according to the preset order until all orders to be reassigned are selected as new orders.
[0097] pass Figure 2 After the process shown, the server can select an alternative rider for each order to be reassigned to perform the task corresponding to the order to be reassigned. However, for any alternative rider, after adjusting the new orders corresponding to each alternative rider who has determined the new orders in step S1066, the alternative rider may not have a corresponding new order. This means that the alternative rider is not helpful in maximizing the overall delivery efficiency, so the alternative rider is not considered to receive the order to be reassigned.
[0098] based on Figure 1 The method of order reassignment shown selects orders that have not been assigned to riders and are being pressed for processing as orders to be reassigned. By determining the delivery efficiency of the alternative riders relative to each order to be reassigned after assigning different orders to be reassigned to the alternative riders, the reassignment objects of the orders to be reassigned are determined with the maximization of the overall delivery efficiency as the optimization goal. Since the principle behind the pressing of orders is that the assignment relationship between orders and riders is not ideal (that is, the delivery efficiency is low), the delivery efficiency of orders can be improved by reassigning the orders that are being pressed. Compared with the prior art method of only temporarily postponing the assignment of orders that have been pressed to riders, the method provided in this specification can improve the delivery efficiency of orders after the pressing of orders.
[0099] In addition, since the efficiency change based on distance in step S104 of this specification can be determined specifically based on the difference in delivery distance between the original delivery path of the candidate rider and the updated delivery path. For example, based on the formula The server can determine the above distance difference, and in order to prevent the distance change from being too large, resulting in an excessive increase in the total delivery distance of each candidate rider, the server can also use the distance constraint Determine the change in the distance-based delivery efficiency of the candidate riders on the updated delivery path that meets the distance constraint. In other words, the server can determine the distance difference that meets the distance constraint. If the combination of a candidate rider and a reassigned order (i.e., the candidate rider's updated delivery path) does not meet the distance constraint, it means that the candidate rider's delivery efficiency based on delivery distance has decreased significantly after accepting the reassigned order, and it is not appropriate to assign the reassigned order to the candidate rider.
[0100] Among them, newRider∈R, oldRider∈R, wbs∈WB, r∈R, D represents the distance length, r represents the alternative rider, R is the set of alternative riders who can receive the order to be reassigned, route r,wbs represents an updated delivery path for the candidate rider r, and wbs represents route r,wbs Path is an updated delivery path. Similarly, route r,0 represents the original delivery path of the candidate rider r, i represents route r,wbs Mission points on the path, I r,wbs Indicates route r,wbs The set of task points on the path, so i∈I r,wbs , Indicates that the alternative rider r is updating the delivery route r,wbs Relative to the original delivery route r,0 Changes in delivery distances, Indicates the path route r,wbs The distance between the task point i and the i-1 task point on the path is Indicates the path route r,wbs The total delivery distance, Indicates the path route r,0 Total delivery distance.
[0101] condition Middle D e is the preset distance threshold, Represents the change in the delivery distance of the alternative rider (i.e., newRider) after the reassignment. Similarly, Indicates the change in delivery distance of the rider who originally delivered the order to be reassigned (i.e., oldRider) after the reassignment. Since the reassignment of an order usually involves two riders and causes changes in the delivery distances of these two riders, if the change in delivery distance of the reassigned alternative rider exceeds the change in delivery distance of the rider who originally delivered the order to be reassigned by too much (i.e., exceeds the preset distance threshold), it means that from the perspective of the two riders as a whole, the delivery distance has increased too much, and it is not appropriate to assign the order to be reassigned to the alternative rider. The server can no longer calculate the delivery efficiency of the alternative rider relative to the order to be reassigned.
[0102] In addition, the efficiency change based on the waiting time can be determined based on the difference between the sum of the waiting time of each order in the original delivery path and the sum of the waiting time of each order in the updated delivery path. For example, based on the formula The server can determine the difference in the waiting time. In addition, similar to the distance constraint, in order to prevent the overall waiting time of each candidate rider from increasing too much, the server can also determine whether the waiting time constraint is met. The change in delivery efficiency based on waiting time corresponding to the alternative riders.
[0103] Among them, when the task point i in the path is the pickup location x i =1, when the task point i in the path is the delivery location x i =0, W represents the waiting time, represents the sum of the waiting time of the candidate rider r at each task point belonging to the pickup location on the updated delivery path wbs, It represents the sum of the waiting time of the alternative rider r at each task point belonging to the pickup location on the original delivery path wbs. Middle W e is the preset waiting time threshold, Represents the change in the total waiting time of the alternative rider (i.e., newRider) after the reassignment. Similarly, This represents the change in the total waiting time of the rider who originally delivered the order to be reassigned (i.e., oldRider) after the reassignment. It should be noted that changes in the delivery route may also cause changes in the order of delivery orders, resulting in changes in the total waiting time after the delivery route changes. As can be seen from the formula for delivery efficiency changes based on waiting time, the total waiting time is the sum of the waiting times of all orders included in the delivery route.
[0104] Furthermore, based on the change in efficiency of on-time delivery, the difference between the sum of the advance delivery time of each order in the original delivery route and the sum of the advance delivery time of each order in the updated delivery route is determined. Similar to the change in efficiency based on waiting time, the server can be based on the formula Determine the efficiency change based on on-time delivery, where P represents the time the rider arrives in advance, then represents the advance arrival time of candidate rider r at each task point i on the updated delivery route wbs. The advance arrival time is the difference between the predicted arrival time and the promised arrival time. To improve user experience, after receiving an order from a user, the server will calculate the arrival time of a rider (i.e., the promised arrival time) and send it to the user. However, if the order is reassigned, the delivery time to the user may be earlier than the promised delivery time. If the delivery time is too early, it will also result in wasted time. Therefore, the smaller the advance arrival time, the better; a larger the advance arrival time, the lower the delivery efficiency.
[0105] Furthermore, the efficiency changes based on on-time delivery, the efficiency changes based on distance, and the efficiency changes based on waiting time determined above can all be processed by discretization or indexation and then used in subsequent steps. Alternatively, when it is necessary to use the above-mentioned technical efficiency changes in combination, the sum of the weighted efficiency changes can be used as the delivery efficiency of the alternative rider relative to the order to be reassigned based on the preset weights for each efficiency change. For example, each of the aforementioned efficiency changes is preset as x1~x3, and the corresponding weight values are p1~p3, respectively, then the delivery efficiency of the alternative rider relative to the order to be reassigned is determined to be p1x1+p2x2+p3x3.
[0106] Of course, in order to prevent the overall waiting time of each candidate rider from increasing too much, the server can also determine whether the on-time arrival constraint is met. and The change in delivery efficiency based on on-time delivery corresponding to the alternative riders. Where T represents the timeout time, P e The preset on-time delivery threshold. It indicates the timeout time of the alternative rider (i.e., newRider) after the reassignment on the updated delivery path wbs, compared with the timeout time of the rider who originally delivered the order to be reassigned on the original delivery path (i.e., ) will not increase. It means that the early arrival time of the alternative rider after reassignment will not exceed the preset on-time delivery threshold than the early arrival time of the rider who originally delivered the order to be reassigned. That is, the early arrival time is allowed to increase, but if it increases too much (exceeds the preset on-time delivery threshold), it is not suitable for reassignment.
[0107] In addition, in order to prevent orders from being delivered by alternative riders who are blacklisted by the user, before calculating the change in delivery efficiency of the alternative rider's updated delivery route relative to the original delivery route, if it is determined that the alternative rider is included in the blacklist of the user who initiated the order to be reassigned, the delivery efficiency change will not be calculated again, and the order to be reassigned will be determined not to be reassigned to the alternative rider. Therefore, the user's blacklist can also be regarded as a constraint condition, which is similar to the above as well as The effect is similar to that of . When the alternative rider does not meet the above constraints, the server may no longer calculate the change in delivery efficiency and determine that the order to be reassigned cannot be reassigned to the alternative rider.
[0108] Furthermore, in step S104 of the present specification, since what is considered is whether the overall delivery efficiency will be improved after the alternative rider executes the order to be reassigned, the above-mentioned efficiency change in the present specification only considers the case where the updated delivery path is higher than the original delivery path. When the delivery efficiency of the updated delivery path is lower than the original delivery path, the updated delivery path of the alternative rider may no longer be considered. In other words, for each alternative rider and each order to be reassigned, if the delivery efficiency of the alternative rider relative to the updated delivery path corresponding to the order to be reassigned is lower than the delivery efficiency of the alternative rider's original delivery path, the delivery efficiency of the alternative rider relative to the order to be reassigned will no longer be considered. The specific implementation method can set the delivery efficiency of the rider relative to the order to be reassigned to zero, or a preset negative minimum value, or an uncertain delivery efficiency, etc. So that when determining the assignment relationship between each alternative rider and each order to be reassigned in step S106, the above-mentioned reduction in delivery efficiency is not considered.
[0109] Furthermore, when determining a candidate rider for a reassigned order, the server may select the rider whose undisplayed order was identified as a reassigned order in step S102 as a candidate rider for the reassigned order. In other words, while the server may seek a more optimal delivery method for that rider's reassigned order, if other riders are less efficient than that rider in delivering the reassigned order, the server may still select that rider as a candidate and reassign the reassigned order to that rider. For example, if rider A's undisplayed order f is identified as a reassigned order f, rider A is selected as a candidate, ensuring that the worst-case reassignment outcome for reassigned order f is "rescheduled" to rider A. Of course, when the reassigned order is identified in step S102, the reassigned order no longer has an assignment relationship with the rider. Therefore, if a subsequent reassignment outcome determines that the reassigned order is reassigned to the rider, this can be considered a special order reassignment process.
[0110] Furthermore, since the alternative rider accepts the reassigned order of other riders, or reassigns his assigned order to other riders, it will complicate the delivery process of the alternative rider and increase the uncertainty of the rider's delivery. Therefore, he is not suitable as a rider to receive the order to be reassigned. Therefore, in this description, when the server determines the alternative rider who can receive the order to be reassigned, if the rider has initiated the order transfer behavior within the preset time period, the alternative rider will not be selected to add a new order. In other words, the alternative rider who has initiated the order transfer behavior within the preset time period will not be selected as a rider who can receive the order to be reassigned. Among them, the preset time period can be set as needed and is not limited in this description.
[0111] Of course, in this specification, the server can also select backup riders suitable for assigning reassigned orders based on preset conditions. For example, if a rider has a small number of assigned orders, accepting reassigned orders will not place significant delivery pressure on the rider. Therefore, a rider whose number of assigned orders is less than a preset value may be designated as a backup rider. In this specification, the specific content of the preset conditions is not limited and can be set as needed.
[0112] In addition, in step S104, when determining the delivery efficiency of the candidate rider relative to the order to be reassigned, the server may also determine the difference between the average waiting time of the orders in the original delivery path and the average waiting time of the orders in the updated delivery path, as the efficiency change based on waiting time, based on the efficiency change based on waiting time. Similarly, based on the efficiency change of on-time delivery, the server may determine the difference between the average early delivery time of the orders in the original delivery path and the average early delivery time of the orders in the updated delivery path, as the efficiency change based on early delivery time.
[0113] It should be noted that, in step S102 of this specification, the server identifies the orders being held as pending orders for reassignment. Since the number of held orders typically represents only a small fraction of the orders assigned during the scheduling period, the number of pending orders determined in this specification is generally smaller than the number of available riders. Therefore, in step S106, the server only needs to determine the available riders for each pending order to complete the order reassignment process.
[0114] In addition, the server described in step S102 may divide the undisplayed orders of each rider into several order packages, and then determine the order packages to be reassigned for the suppression process. Then in step S104, the server may also determine, for each order package, the delivery efficiency of the alternative rider relative to the order package to be reassigned after the order package to be reassigned is assigned to the alternative rider. Then finally in step S106, the server may use a specified optimization algorithm for the alternative rider, with maximizing the comprehensive delivery efficiency as the optimization goal, select a new order package for the alternative rider from each order package to be reassigned, and assign the selected order package as a new order package to the alternative rider. The comprehensive delivery efficiency is determined based on the delivery efficiency of each alternative rider relative to their respective new order packages.
[0115] In step S104, when the server determines the backup rider's delivery efficiency relative to the pending reassignment order package, it may determine the backup rider's updated delivery route based on the pending reassignment orders, the backup rider's assigned orders, and the backup rider's non-pending reassignment orders contained in the pending reassignment order package. The specific processes in the remaining steps are consistent with the aforementioned server's order reassignment process based on the determined pending reassignment orders, and will not be further described in this specification.
[0116] based on Figure 1 The order reassignment method shown in the embodiment of the present specification also provides a structural schematic diagram of an order reassignment device, such as Figure 3 shown.
[0117] Figure 3 This is a schematic diagram of the structure of an order reassignment device provided in an embodiment of this specification, the device comprising:
[0118] Selection module 200, for each rider, determines the undisplayed orders to be placed on hold from the rider's undisplayed orders, and determines the rider's orders to be reassigned based on the undisplayed orders to be placed on hold;
[0119] The delivery efficiency determination module 202 determines, for each order to be reassigned and each candidate rider, the delivery efficiency of the candidate rider relative to the order to be reassigned after the order to be reassigned is assigned to the candidate rider based on the assigned orders of the candidate rider and the non-to-be-reassigned orders among the candidate rider's undisplayed orders.
[0120] The reassignment module 204 adopts a specified optimization algorithm for each alternative rider, takes maximizing the comprehensive delivery efficiency as the optimization goal, selects new orders for the alternative rider from the orders to be reassigned, and assigns the selected orders as new orders to the alternative rider; wherein, the comprehensive delivery efficiency is determined based on the delivery efficiency of each alternative rider relative to their respective new orders.
[0121] Optionally, module 200 is selected to divide the rider's undisplayed orders into several order packages according to the rider's original delivery route, and the order packages in each order package that meet the order suppression conditions are suppressed. Among the order packages that are suppressed, the order package with the latest delivery time is used as the order package to be reassigned, and the orders in the order package to be reassigned are determined to be the orders to be reassigned.
[0122] Optionally, the delivery efficiency is determined 202. For each alternative rider, the original delivery path of the alternative rider determined based on the assigned orders of the alternative rider and the various undisplayed orders of the alternative rider is obtained. After the order to be reassigned is determined to be assigned to the alternative rider, the updated delivery path corresponding to the alternative rider is determined. According to the delivery efficiency of the original delivery path and the delivery efficiency of the updated delivery path, the efficiency change of the updated delivery path is determined as the delivery efficiency of the alternative rider relative to the order to be reassigned.
[0123] Optionally, the delivery efficiency is determined 202, and the efficiency change of the updated delivery path is determined based on at least one of the efficiency change based on distance, the efficiency change based on waiting time, and the efficiency change based on on-time delivery, wherein the efficiency change based on distance is determined based on the difference in delivery distance between the original delivery path and the updated delivery path; the efficiency change based on waiting time is determined based on the difference between the sum of the waiting times of each order in the original delivery path and the sum of the waiting times of each order in the updated delivery path; the efficiency change based on on-time delivery is determined based on the difference between the sum of the advance delivery times of each order in the original delivery path and the sum of the advance delivery times of each order in the updated delivery path.
[0124] Optionally, the reassignment module 204 assigns a value to each candidate rider and each order to be reassigned based on the delivery efficiency of each candidate rider relative to each order to be reassigned, wherein for each candidate rider, the sum of the assigned value of the candidate rider and the assigned value of any order to be reassigned is equal to the maximum delivery efficiency of the candidate rider relative to each order to be reassigned. In a preset order, for each candidate rider, based on the assigned values of each order to be reassigned and the assigned value of the candidate rider, any order to be reassigned that meets specified conditions is selected as the new order corresponding to the rider; the specified conditions include: The sum of the assigned value of the order to be reassigned and the assigned value of the alternative rider is equal to the delivery efficiency of the alternative rider relative to the order to be reassigned. It is judged whether there is a conflict among the alternative riders who have determined the new order. If the new orders corresponding to at least two alternative riders are the same, then there is a conflict between the at least two alternative riders. If so, the new orders corresponding to the alternative riders who have determined the new orders are adjusted until there is no conflict. Otherwise, the new order corresponding to the next alternative rider is determined according to the preset order until all orders to be reassigned are selected as new orders.
[0125] Optionally, the reassignment module 204 determines, for each order to be reassigned, that the newly added orders are all from at least two alternative riders for the order to be reassigned, as conflicting riders. For at least one conflicting rider determined, the newly added orders corresponding to the conflicting rider are reselected according to the specified conditions until there is no conflict.
[0126] Optionally, the reassignment module 204 adjusts the assignment of each conflicting rider and the assignment of the order to be reassigned, and reselects a new order for at least one conflicting rider based on the adjusted assignment of each conflicting rider and the adjusted assignment of the order to be reassigned, if a new order cannot be reselected for any conflicting rider according to the specified conditions, or if a conflict still exists after traversing all methods of selecting new orders for the conflicting riders, until there is no conflict.
[0127] Optionally, the reassignment module 204 reduces the assigned value of each conflicting rider and increases the assigned value of the order to be reassigned according to a preset step size.
[0128] Optionally, the reassignment module 204 does not select a new order for the alternative rider if the alternative rider has initiated an order transfer within a preset time period.
[0129] The embodiment of this specification also provides a computer-readable storage medium, which stores a computer program that can be used to execute the above Figure 1 The method provided for order reassignment.
[0130] based on Figure 1 The method for reassigning an order shown in the embodiment of this specification also proposes Figure 4 The schematic structure diagram of the electronic device shown in FIG. Figure 4 At the hardware level, the electronic device includes a processor, an internal bus, a network interface, a memory, and a non-volatile memory. Of course, it may also include other hardware required for the business. The processor reads the corresponding computer program from the non-volatile memory into the memory and then runs it to achieve the above Figure 1 The method of reassigning an order as described.
[0131] Of course, in addition to software implementation, this specification does not exclude other implementation methods, such as logic devices or a combination of software and hardware, etc. That is to say, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.
[0132] In the 1990s, technological improvements could be clearly distinguished as either hardware improvements (for example, improvements to circuit structures like diodes, transistors, and switches) or software improvements (improvements to process flows). However, with the advancement of technology, many process flow improvements today can now be considered direct improvements to hardware circuit structures. Designers almost always create the corresponding hardware circuit structure by programming the improved process flow into the hardware circuit. Therefore, it cannot be said that a process flow improvement cannot be implemented using hardware modules. For example, a programmable logic device (PLD), such as a field programmable gate array (FPGA), is an integrated circuit whose logical function is determined by user programming. Designers can "integrate" a digital system on a PLD through their own programming, without having to hire a chip manufacturer to design and manufacture a dedicated integrated circuit chip. Moreover, nowadays, instead of manually fabricating integrated circuit chips, this programming is mostly done using "logic compiler" software. This is similar to the software compilers used when developing programs. Before compilation, the original code must also be written in a specific programming language, called a hardware description language (HDL). There are not just one HDL, but many, such as ABEL (Advanced Boolean Expression Language), AHDL (Altera Hardware Description Language), Confluence, CUPL (Cornell University Programming Language), HDCal, JHDL (Java Hardware Description Language), Lava, Lola, MyHDL, PALASM, and RHDL (Ruby Hardware Description Language). Currently, the most commonly used are VHDL (Very-High-Speed Integrated Circuit Hardware Description Language) and Verilog. Those skilled in the art will also understand that by simply programming the method flow in one of these hardware description languages and then programming it into an integrated circuit, a hardware circuit that implements the logic method flow can be easily obtained.
[0133] The controller can be implemented in any suitable manner. For example, the controller can take the form of a microprocessor or processor and a computer-readable medium storing computer-readable program code (e.g., software or firmware) executable by the (micro)processor, logic gates, switches, application-specific integrated circuits (ASICs), programmable logic controllers, and embedded microcontrollers. Examples of controllers include, but are not limited to, the following microcontrollers: ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, and Silicone Labs C8051F320. The memory controller can also be implemented as part of the control logic of the memory. Those skilled in the art will also know that in addition to implementing the controller in a purely computer-readable program code format, the controller can be implemented in the form of logic gates, switches, application-specific integrated circuits, programmable logic controllers, and embedded microcontrollers by logically programming the method steps. Therefore, such a controller can be considered a hardware component, and the devices included therein for implementing various functions can also be considered as structures within the hardware component. Or even, the devices for implementing various functions can be considered as both software modules that implement the method and structures within the hardware component.
[0134] The systems, devices, modules, or units described in the above embodiments may be implemented by computer chips or entities, or by products having certain functions. A typical implementation device is a computer. Specifically, the computer may be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smartphone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
[0135] For the convenience of description, the above devices are described as being divided into various units according to their functions. Of course, when implementing this specification, the functions of each unit can be implemented in the same or multiple software and / or hardware.
[0136] It will be understood by those skilled in the art that embodiments of the present invention may be provided as methods, systems, or computer program products. Thus, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0137] The present invention is described with reference to flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present invention. It should be understood that each process and / or block in the flowcharts and / or block diagrams, as well as combinations of processes and / or blocks in the flowcharts and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowcharts and / or block diagrams. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0138] These computer program instructions may also be stored in a computer readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.
[0139] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing the instructions executed on the computer or other programmable device for implementing the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A step that specifies a function in one or more boxes.
[0140] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.
[0141] Memory may include non-permanent storage in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.
[0142] Computer-readable media includes permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information. The information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include transitory computer-readable media (transitory media), such as modulated data signals and carrier waves.
[0143] It should also be noted that the terms "comprises," "includes," or any other variations thereof are intended to encompass non-exclusive inclusion, such that a process, method, commodity, or apparatus that includes a series of elements includes not only those elements but also other elements not explicitly listed, or includes elements inherent to such process, method, commodity, or apparatus. In the absence of further limitations, an element defined by the phrase "comprises a ..." does not exclude the presence of other identical elements in the process, method, commodity, or apparatus that includes the element.
[0144] Those skilled in the art will appreciate that the embodiments of this specification may be provided as methods, systems, or computer program products. Thus, this specification may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware. Furthermore, this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0145] This specification may be described in the general context of computer-executable instructions, such as program modules, executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, and the like that perform specific tasks or implement specific abstract data types. This specification may also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media, including storage devices.
[0146] The various embodiments in this specification are described in a progressive manner. Similar parts between the various embodiments can be referred to in conjunction with each other. Each embodiment focuses on the differences between the other embodiments. In particular, the system embodiments are generally similar to the method embodiments, so the description is relatively simple. For relevant parts, refer to the description of the method embodiments.
[0147] The foregoing is merely an example of the present invention and is not intended to limit the present invention. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, or improvements made within the spirit and principles of the present invention are intended to be included within the scope of the claims of the present invention.
Claims
1. A method for reassigning an order, characterized in that: include: For each rider, determine the undisplayed orders to be placed from the rider's undisplayed orders, and then determine the rider's orders to be reassigned based on the undisplayed orders to be placed; For each order to be reassigned and each backup rider, determine the backup rider's delivery efficiency relative to the order to be reassigned after the order to be reassigned is assigned to the backup rider based on the backup rider's assigned orders and the non-reassigned orders among the backup rider's undisplayed orders. For each candidate rider, a specified optimization algorithm is used to maximize overall delivery efficiency. Orders are selected for the candidate rider from the orders to be reassigned, and the selected orders are assigned to the candidate rider as new orders. The overall delivery efficiency is determined based on the delivery efficiency of each candidate rider relative to their respective new orders. After the order to be reassigned is determined to be assigned to the backup rider, the backup rider's delivery efficiency relative to the order to be reassigned specifically includes: For each candidate rider, obtain the original delivery route of the candidate rider determined based on the assigned orders of the candidate rider and the undisplayed orders of the candidate rider; After the order to be reassigned is determined to be assigned to the backup rider, the delivery route corresponding to the backup rider is updated; According to the delivery efficiency of the original delivery path and the delivery efficiency of the updated delivery path, the efficiency change of the updated delivery path is determined as the delivery efficiency of the alternative rider relative to the order to be reassigned.
2. The method according to claim 1, wherein From the rider's various undisplayed orders, determine the undisplayed orders to be suppressed, specifically including: Divide the rider's undisplayed orders into several order packages based on the rider's original delivery route; Suppress the order packages that meet the order suppression conditions in each order package; Based on the undisplayed orders that are being held back, the rider's orders to be reassigned are determined, including: Among the order packages to be suppressed, the order package with the latest delivery time is used as the order package to be reassigned, and the orders in the order package to be reassigned are determined to be the orders to be reassigned.
3. The method according to claim 1, wherein Determining a change in the efficiency of the updated delivery path based on the delivery efficiency of the original delivery path and the delivery efficiency of the updated delivery path, specifically comprising: determining an efficiency change of the updated delivery route based on at least one of an efficiency change based on distance, an efficiency change based on waiting time, and an efficiency change based on just-in-time delivery; Among them, the efficiency change based on distance is determined according to the difference in delivery distance between the original delivery path and the updated delivery path; the efficiency change based on waiting time is determined according to the difference between the sum of waiting times of each order in the original delivery path and the sum of waiting times of each order in the updated delivery path; the efficiency change based on on-time delivery is determined according to the difference between the sum of advance delivery times of each order in the original delivery path and the sum of advance delivery times of each order in the updated delivery path.
4. The method according to claim 1, wherein Using a specified optimization algorithm, with the goal of maximizing overall delivery efficiency, select orders for the candidate rider from all orders to be reassigned, specifically including: Assign values to each candidate rider and each order to be reassigned based on their delivery efficiency relative to the orders to be reassigned. For each candidate rider, the sum of the assigned value of the candidate rider and the assigned value of any order to be reassigned equals the maximum delivery efficiency of the candidate rider relative to the orders to be reassigned. In a preset order, for each candidate rider, based on the assigned values of the orders to be reassigned and the assigned value of the candidate rider, select any order to be reassigned that meets the specified conditions as the new order corresponding to the candidate rider; the specified conditions include: the sum of the assigned value of the order to be reassigned and the assigned value of the candidate rider is equal to the delivery efficiency of the candidate rider relative to the order to be reassigned; Determine whether there is a conflict between the candidate riders for the newly added order, wherein if the newly added orders corresponding to at least two candidate riders are the same, then there is a conflict between the at least two candidate riders; If so, adjust the new orders corresponding to the candidate riders who have determined the new orders until there is no conflict; Otherwise, the new order corresponding to the next alternative rider is determined according to the preset order until all orders to be reassigned are selected as new orders.
5. The method according to claim 4, wherein Adjust the new orders corresponding to each rider who has been determined to have new orders, specifically including: For each order to be reassigned, determine that the newly added orders are at least two alternative riders for the order to be reassigned, as conflicting riders; For at least one conflicting rider determined, the new order corresponding to the conflicting rider is reselected according to the specified conditions until there is no conflict.
6. The method according to claim 5, wherein The method further comprises: If, according to the specified conditions, it is not possible to reselect a new order for any conflicting rider, or if a conflict still exists after traversing all methods of selecting a new order for the conflicting rider, then adjust the assignment of each conflicting rider and the assignment of the order to be reassigned; Based on the adjusted value of each conflicting rider and the adjusted value of the order to be reassigned, new orders are reselected for at least one conflicting rider until there is no conflict.
7. The method according to claim 6, wherein Adjust the assignment of each conflicting rider and the assignment of the order to be reassigned, including: According to the preset step size, the assignment of each conflicting rider is reduced, and the assignment of the order to be reassigned is increased.
8. The method according to claim 1, wherein If the backup rider has initiated an order transfer within the preset time period, no new orders will be selected for the backup rider.
9. A device for reassigning an order, characterized in that: The device comprises: A selection module determines, for each rider, the undisplayed orders that need to be placed on hold from the rider's undisplayed orders, and determines the rider's orders to be reassigned based on the undisplayed orders that need to be placed on hold; The delivery efficiency determination module determines, for each order to be reassigned and each alternative rider, the delivery efficiency of the alternative rider relative to the order to be reassigned after the order to be reassigned is assigned to the alternative rider based on the alternative rider's assigned orders and the non-to-be-reassigned orders among the alternative rider's undisplayed orders. Specifically, the module includes: for each alternative rider, obtaining the original delivery path of the alternative rider determined based on the alternative rider's assigned orders and the non-displayed orders of the alternative rider, determining the updated delivery path corresponding to the alternative rider after the order to be reassigned is assigned to the alternative rider, and determining the efficiency change of the updated delivery path based on the delivery efficiency of the original delivery path and the delivery efficiency of the updated delivery path as the delivery efficiency of the alternative rider relative to the order to be reassigned; The reassignment module uses a specified optimization algorithm for each alternative rider, with the optimization goal of maximizing the overall delivery efficiency. It selects orders for the alternative rider from the orders to be reassigned, and assigns the selected orders as new orders to the alternative rider; wherein, the overall delivery efficiency is determined based on the delivery efficiency of each alternative rider relative to their respective new orders.
10. A computer-readable storage medium, characterized in that The storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 8 is implemented.
11. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein: When the processor executes the program, the method according to any one of claims 1 to 8 is implemented.
Citation Information
Patent Citations
An intelligent dispatching method of riders
CN109034575A
Method and apparatus for dynamic dispatch
CN109034652A