WO2023204356A1 - Method and apparatus for assigning order to delivery person - Google Patents

Method and apparatus for assigning order to delivery person Download PDF

Info

Publication number
WO2023204356A1
WO2023204356A1 PCT/KR2022/011365 KR2022011365W WO2023204356A1 WO 2023204356 A1 WO2023204356 A1 WO 2023204356A1 KR 2022011365 W KR2022011365 W KR 2022011365W WO 2023204356 A1 WO2023204356 A1 WO 2023204356A1
Authority
WO
WIPO (PCT)
Prior art keywords
delivery
orders
information
order
score
Prior art date
Application number
PCT/KR2022/011365
Other languages
French (fr)
Korean (ko)
Inventor
쉬이
주롱차오
마펭준
Original Assignee
쿠팡 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020220090999A external-priority patent/KR20230150174A/en
Application filed by 쿠팡 주식회사 filed Critical 쿠팡 주식회사
Publication of WO2023204356A1 publication Critical patent/WO2023204356A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management

Definitions

  • Embodiments of the present specification relate to a method and device for assigning orders to delivery people.
  • the biggest difficulty with the OA problem is that it is a problem that must be solved in a real-time scenario.
  • a large amount of calculations and predictions must be performed within seconds to determine the optimal match between orders and delivery people.
  • Primary objectives in OA optimization may include reducing delivery times to provide the best CX, reducing the proportion of orders with late allocation and delivery (so-called long tail orders), and increasing acceptance rates by delivery personnel. Therefore, in order to provide the best CX in real-time scenarios, an order allocation method to delivery workers is required to reduce delivery time, reduce the ratio of long-tail orders, and increase the acceptance rate of delivery workers.
  • the embodiment of this specification is proposed to solve the above-mentioned problem, and its purpose is to confirm information on multiple orders and multiple delivery workers, and perform optimal order allocation to delivery workers based on the confirmed information.
  • the service server identifies a subset of pairs of orders and delivery workers selected from the set of each pair between a plurality of orders and a plurality of delivery men, determines a score corresponding to each pair included in the subset, and based on the scores,
  • the purpose is to determine the optimal match between order and delivery person pairs.
  • a method of allocating orders to deliverymen in a service server includes the steps of checking first information about a plurality of orders and second information about a plurality of deliverymen; Confirming a subset of pairs of orders and delivery workers selected from each set of pairs between the plurality of orders and the plurality of delivery men based on at least one of the first information and the second information; determining a score corresponding to each pair included in the subset based on at least one of the first information and the second information; determining a match between an order and a delivery person to whom an order will be assigned among the subset based on the score; And allocating at least some of the plurality of orders to at least some of the plurality of delivery workers based on the matching.
  • the first information includes information about the plurality of orders associated with a first geographic region
  • the second information includes the first geographic region and the plurality of orders within a geographic region adjacent to the first geographic region. It is characterized by including information about a plurality of delivery workers.
  • the step of checking the first information and the second information is performed at a set cycle, and the cycle is determined based on the order quantity of the first geographical area.
  • the first information includes information about the plurality of orders to which no delivery person is assigned
  • the second information includes information about the plurality of delivery people set as available for delivery.
  • the second information includes information about the preferred areas of the plurality of delivery workers, and the step of confirming the subset is based on the information about the preferred areas of each of the plurality of delivery workers. Characterized in that it includes the step of filtering the orders.
  • the subset of the order and delivery person pairs is selected so that the number of delivery people paired with each order is less than or equal to a certain number.
  • the first information includes information about the order acceptance time of the store corresponding to the plurality of orders
  • the step of confirming the subset includes the plurality of orders based on the information about the order acceptance time. Confirming the expected completion time of preparation to respond to the order; And, among the plurality of orders, it is characterized in that it includes the step of checking the subset based on the orders for which the remaining time until the expected preparation completion time is within a certain time.
  • the certain time is determined based on the size of the waiting space of the store corresponding to the plurality of orders.
  • the first information includes location information of a store corresponding to the plurality of orders
  • the second information includes current location information of the plurality of delivery workers
  • the score is provided by the first information. And characterized in that it is determined based on the pickup distance of each pair included in the subset confirmed based on the second information.
  • the first information includes information about the order acceptance time of the store corresponding to the plurality of orders, and the step of determining the score is performed from the order acceptance time among the orders corresponding to the subset. labeling orders whose elapsed time exceeds a certain amount of time; and determining the score corresponding to each pair included in the subset based on the labeling.
  • the second information includes information about the delivery performance history of the plurality of delivery workers for a certain period of time in the past, and the score is determined based on the information about the delivery performance history. .
  • the score corresponding to each order and delivery person pair included in the subset includes: a first score associated with the order; a second score associated with the delivery person; And characterized in that it is determined based on a third score associated with the time the delivery person travels to the store corresponding to the order.
  • the score corresponding to each order and delivery person pair included in the subset is the familiarity of the delivery person with a geographic area that includes at least one of a store and a delivery destination corresponding to the order. ) is characterized in that it is further determined based on the fourth score associated with.
  • a first weight, a second weight, and a third weight are set for the first score, the second score, and the third score, respectively, and the first weight, the second weight, and the third weight are set, respectively.
  • the weight is characterized in that it is determined based on at least one of the characteristics of the geographical area associated with the order and the current time.
  • the matching is characterized in that the sum of the scores of the matched pair of order and delivery person is determined to be minimum.
  • a service server that allocates an order to a delivery person includes: a memory storing at least one command; and executing the at least one command to confirm first information about a plurality of orders and second information about a plurality of delivery people, and to determine the plurality of orders based on at least one of the first information and the second information. and identifying a subset of pairs of orders and delivery workers selected from the set of each pair between the plurality of delivery workers, and scoring corresponding to each pair included in the subset based on at least one of the first information and the second information.
  • a processor that determines a match between an order and a delivery person to whom an order is to be assigned among the subset based on the score, and assigns at least some of the plurality of orders to at least some of the plurality of delivery people based on the matching. It is characterized by including.
  • a non-transitory computer-readable storage medium includes a medium configured to store computer-readable instructions, wherein when the computer-readable instructions are executed by a processor, the processor: Confirming first information about and second information about a plurality of delivery workers; Confirming a subset of pairs of orders and delivery workers selected from each set of pairs between the plurality of orders and the plurality of delivery men based on at least one of the first information and the second information; determining a score corresponding to each pair included in the subset based on at least one of the first information and the second information; determining a match between an order and a delivery person to whom an order will be assigned among the subset based on the score; and allocating at least some of the plurality of orders to at least some of the plurality of delivery workers based on the matching, wherein the service server performs an order allocation method for delivery workers.
  • the service server deviates from the greedy approach of considering multiple orders one at a time and assigning each order to the nearest delivery person, and sets the order and delivery person as nodes on each side of the bipartite graph and sets the order and delivery person as nodes on each side of the bipartite graph.
  • the edge weight of to a matching score that takes into account various factors such as pickup time, delivery person characteristics, and order characteristics, it is possible to provide global allocation of orders with optimal matching.
  • the service server considers various factors and pre-filters and removes pairs between orders and delivery personnel that are expected to be unfavorable in terms of improving customer experience or improving the delivery acceptance rate of delivery personnel, thereby allocating orders. can increase the accuracy and reduce the computational load for matching.
  • FIG. 1 is an exemplary diagram schematically showing each configuration of a service server according to an embodiment of the present specification.
  • Figure 2 shows an example of local allocation and global allocation of orders to deliverymen according to an embodiment of the present specification.
  • Figure 3 shows another example of local allocation and global allocation of orders to deliverymen according to an embodiment of the present specification.
  • Figure 4 is a flowchart showing the flow of an order allocation method for a delivery person in a service server according to an embodiment of the present specification.
  • FIG. 5 is a schematic diagram of a global allocation process of orders to deliverymen according to an embodiment of the present specification.
  • Figure 6 is an example diagram for explaining the minimum weight binary matching problem according to an embodiment of the present specification.
  • each block of the processing flow diagram diagrams and combinations of the flow diagram diagrams can be performed by computer program instructions.
  • These computer program instructions can be mounted on a processor of a general-purpose computer, special-purpose computer, or other programmable data processing equipment, so that the instructions performed through the processor of the computer or other programmable data processing equipment are described in the flow chart block(s). It creates the means to perform functions.
  • These computer program instructions may also be stored in computer-usable or computer-readable memory that can be directed to a computer or other programmable data processing equipment to implement a function in a particular manner, so that the computer-usable or computer-readable memory It is also possible to produce manufactured items containing instruction means that perform the functions described in the flowchart block(s).
  • Computer program instructions can also be mounted on a computer or other programmable data processing equipment, so that a series of operational steps are performed on the computer or other programmable data processing equipment to create a process that is executed by the computer, thereby generating a process that is executed by the computer or other programmable data processing equipment. Instructions that perform processing equipment may also provide steps for executing the functions described in the flow diagram block(s).
  • each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s).
  • each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s).
  • the term ' ⁇ unit' used in this embodiment refers to software or hardware components such as FPGA or ASIC, and the ' ⁇ unit' performs certain roles.
  • ' ⁇ part' is not limited to software or hardware.
  • the ' ⁇ part' may be configured to reside in an addressable storage medium and may be configured to reproduce on one or more processors. Therefore, as an example, ' ⁇ part' refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables.
  • components and 'parts' may be combined into a smaller number of components and 'parts' or may be further separated into additional components and 'parts'. Additionally, components and 'parts' may be implemented to regenerate one or more CPUs within a device or a secure multimedia card.
  • FIG. 1 is an exemplary diagram schematically showing each configuration of a service server according to an embodiment of the present specification.
  • the service server 100 may include a processor 110 and a memory 120, and may perform a method of allocating an order to a delivery person.
  • the service server 100 shown in FIG. 1 only components related to the present embodiments are shown. Accordingly, it is obvious to those skilled in the art that the service server 100 may further include other general-purpose components in addition to the components shown in FIG. 1.
  • the service server 100 is shown in FIG. 1, any electronic device capable of performing a method of allocating a delivery person's order can be replaced with the service server 100.
  • the processor 110 serves to control overall functions for order allocation to deliverymen in the service server 100.
  • the processor 110 generally controls the service server 100 by executing programs stored in the memory 120 within the service server 100.
  • the processor 110 may be implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application processor (AP), etc. provided in the service server 100, but is not limited thereto.
  • the memory 120 is hardware that stores various data processed within the service server 100.
  • the memory 120 may store data processed and data to be processed in the service server 100. Additionally, the memory 120 may store applications, drivers, etc. to be run by the service server 100.
  • the memory 120 includes random access memory (RAM) such as dynamic random access memory (DRAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD- It may include ROM, Blu-ray or other optical disk storage, a hard disk drive (HDD), a solid state drive (SSD), or flash memory.
  • RAM random access memory
  • DRAM dynamic random access memory
  • SRAM static random access memory
  • ROM read-only memory
  • EEPROM electrically erasable programmable read-only memory
  • CD- It may include ROM, Blu-ray or other optical disk storage, a hard disk drive (HDD), a solid state drive (SSD), or flash memory.
  • Approaches to solve order allocation (OA) problems generally include routing-based approaches and matching-based approaches.
  • the route-based approach is to solve OA with the Vehicle Routing Problem (VRP), a classic problem in the field of Operations Research, where the individual optimization problem is the best assignment of orders to delivery people and the optimal route for each delivery person. It is configured to determine sets simultaneously.
  • VRP Vehicle Routing Problem
  • the purpose of this route-based approach is to maximize a specific objective function given different constraints, such as minimizing the total travel distance or minimizing the expected delivery time of all orders.
  • VRP is an NP-hard problem for which it is difficult to find an efficient solution in the general case, which makes it difficult to apply to real-time scenarios such as food delivery where decisions must be made within seconds.
  • matching-based approaches solve OA as a matching problem between delivery people and orders.
  • Each delivery person-order pair has a matching score, and the optimal assignment is obtained by maximizing the total matching score.
  • the matching-based approach or algorithm is computationally more efficient and more suitable for real-time scenarios, and for this reason, the service server can use the matching-based approach.
  • matching-based approaches can be further divided into local and global allocation algorithms.
  • the local allocation algorithm considers orders one at a time and may use a greedy approach, assigning each order to the nearest delivery person. Although this is simple and convenient, the performance of local allocation algorithms is highly dependent on the specific order in which delivery operations or orders are processed, and can often end up providing poor solutions with suboptimal allocations.
  • the global assignment algorithm sets the order and delivery person as nodes on each side of a bipartite graph, where the edge weights of the bipartite graph may correspond to the matching scores.
  • OA can be treated as a bipartite graph matching problem, and a globally optimal solution that maximizes the overall matching score can be obtained in polynomial time. For this reason, the service server may use this score-based global allocation method.
  • Figure 2 shows an example of local allocation and global allocation of orders to deliverymen according to an embodiment of the present specification.
  • the diagram on the left shows an example local assignment of a service server assigning orders for two stores (S1, S2) to two deliverymen (D1, D2).
  • the service server checks the orders for the store (S1) and the store (S2) one at a time. In order to first allocate orders to the store (S1), the delivery person closest to the store (S1) is the delivery person (D1). After confirming, the order for the store (S1) can be assigned to the delivery person (D1). Next, in order to assign an order to the store (S2), the service server searches for a delivery person who has not yet been assigned an order among the delivery people closest to the store (S2), identifies the delivery person (D2) as a result of the search, and The order for the store (S2) can be assigned to the delivery person (D2). In this case, the estimated time it takes for deliverymen (D1, D2) to complete the order is a total of 6 minutes.
  • the diagram on the right shows an example global allocation of a service server that assigns orders for two stores (S1, S2) to two deliverymen (D1, D2).
  • the service server globally distributes information about orders for all stores (S1, S2) located within a geographic area and for all delivery drivers (D1, D2) located in that geographical area or in the vicinity of that geographical area.
  • orders can be assigned to the optimal solution.
  • orders for store (S1) may be assigned to delivery person (D2) and orders for store (S2) may be assigned to delivery person (D1).
  • delivery person (D1, D2) may complete the order.
  • the estimated time it takes is a total of 4 minutes, and you can see that it takes less time than the delivery time of order allocation through local allocation.
  • Figure 3 shows another example of local allocation and global allocation of orders to deliverymen according to an embodiment of the present specification.
  • the diagram on the left shows an example local assignment of a service server assigning two orders (o1, o2) to two deliverymen (d1, d2).
  • orders can be processed in the order requested using a greedy approach. Because the order (o1) occurred at a location closer to the delivery person (d2) than the delivery person (d1), the order (o1) is first assigned to the delivery person (d2). In this case, the order o2 must be assigned to the remaining delivery person d1, which may lead to a poor assignment resulting in a long pickup distance to travel from the delivery person d1 to the order o2.
  • the diagram on the right shows an example global allocation of a service server assigning two orders (o1, o2) to two deliverymen (d1, d2).
  • Global allocation can solve this problem and obtain a global optimal solution for all orders, where order (o1) is assigned to delivery person (d1) and order (o2) is assigned to delivery person (d2).
  • the matching score is calculated based on the pickup distance and may be inversely proportional to the pickup distance, that is, the smaller the distance, the higher the matching score may be. In this way, global allocation can use the matching score of the bipartite graph to obtain the best order allocation solution for all current orders.
  • the service server may determine the delivery person's pickup distance (i.e., the distance the delivery person travels to pick up the food from his current location to the store associated with the order) as the matching score. This may be the most intuitive way to directly use the delivery person's pickup distance as a matching score.
  • CX customer experience
  • delivery driver order acceptance rate factors such as delivery driver waiting time, delivery person location preference, overtime availability, and new customer benefits are taken into account.
  • a matching score can be calculated. In one embodiment, some of these factors and predictions may be obtained using the output of a machine learning model, such as a preference model trained with historical data.
  • the service server can design various strategies to achieve specific business goals by assigning different weights to the scores. Weights can be determined by methods such as offline simulation, online experimentation, online optimization, and reinforcement learning.
  • Figure 4 is a flowchart showing the flow of an order allocation method for a delivery person in a service server according to an embodiment of the present specification.
  • the subject performing each step shown in FIG. 4 may include the service server 100 shown in FIG. 1 .
  • the service server may check first information about a plurality of orders and second information about a plurality of delivery workers.
  • the service server can check multiple orders received through the delivery brokerage application and check information about multiple delivery workers who will allocate delivery for the multiple orders.
  • multiple orders and multiple delivery drivers to assign them may be identified by geographic region.
  • the first information includes information about a plurality of orders associated with a first geographic region
  • the second information includes information about a plurality of delivery persons within the first geographic region and a geographic region adjacent to the first geographic region.
  • Orders associated with the first geographic area may include orders where at least one of a store (e.g., a restaurant) that prepares the ordered food and a delivery location selected by the customer when ordering is located within the first geographic area.
  • the service server verifies the incoming multiple order information associated with each geographic zone and prepares M-to-N matching by identifying multiple couriers currently located within that geographic zone or adjacent geographic zones to which multiple orders can be assigned. can do.
  • checking the first information and second information may be performed at a set cycle.
  • the service server may confirm multiple orders and multiple delivery persons, for example, in a 30-second cycle, perform M-to-N matching of multiple orders and multiple delivery persons confirmed in the current cycle period, and perform M-to-N matching of the multiple orders and multiple delivery persons confirmed in the current cycle period. Orders and delivery personnel that are not matched and assigned in a cycle can be set to be matched in the next cycle cycle.
  • the service server may set a separate weight so that orders or delivery personnel not assigned in the current cycle cycle can be assigned more priority in the next cycle cycle.
  • the set weight may affect the matching score for matching an order or a delivery person, and a pair of an order and a delivery person that includes at least one of the order and the delivery person for which the weight is set may be given a high score.
  • the frequency of checking the first information and the second information may be determined based on the order quantity in the first geographic region.
  • the service server may adaptively determine the cycle for checking order and delivery person information and performing matching by considering the regional characteristics of the first geographical area.
  • the first geographical area may be a residential area and a commercial area. If it is a dense area with a relatively high order volume, the cycle can be shortened to ensure order allocation to delivery workers is performed smoothly, reduce the calculation load per cycle, and reduce the proportion of old orders (i.e. long-tail orders) with unassigned delivery workers. can be reduced.
  • the first geographical area is an area where residential or commercial areas are not densely populated and the order volume is relatively low, the overall calculation load can be reduced and the efficiency of order allocation can be increased by lengthening the cycle.
  • the order quantity for the first geographic region may be confirmed based on regional order history data stored in a database associated with the service server.
  • the frequency of checking the first information and the second information is whether it is peak time, the proportion of delivery workers who are not assigned an order among all delivery workers who are online, the proportion of long-tail orders among all orders, statistical data related to delivery time, etc. It can be decided based on .
  • a delivery person located in a first geographic zone may be simultaneously assigned an order associated with the first geographic zone and an order associated with a second geographic zone adjacent to the first geographic zone.
  • the service server first assigns to the delivery person the order associated with the first geographic zone in which the delivery person is currently located, and the order associated with the second geographic zone that was not assigned is the order of the next cycle in the order allocation associated with the second geographic zone. It can be passed on as an allocation.
  • the service server may assign weight so that orders associated with the unallocated second geographic area are allocated preferentially in the next cycle.
  • the first information may include information about a plurality of orders to which no delivery person is assigned
  • the second information may include information about a plurality of delivery persons set as available for delivery.
  • the service server can prevent multiple delivery people from being assigned to one order by only checking information about orders to which delivery people have not yet been assigned.
  • the delivery person can use the delivery application installed on his terminal to enter whether the delivery person is currently available for delivery or is unable to deliver due to work, rest, vacation, etc., and the entered information is transmitted to the service server. It can be.
  • the service server can perform order allocation by checking only the information of the delivery person currently available for delivery based on the delivered information, thereby ensuring that the order is smoothly assigned only to the delivery person currently available for delivery.
  • FIG. 5 is a schematic diagram of a global allocation process of orders to deliverymen according to an embodiment of the present specification.
  • a table such as table 510 of FIG. 5 may be created.
  • the service server confirmed information about three orders (order 1, order 2, order 3) and three delivery people (delivery person 1, delivery person 2, delivery person 3), and each column of the table is It can represent 9 delivery person and order pairs, which can consist of 3 orders and 3 delivery people.
  • the service server can perform a filtering operation on the table 510, and to explain this, we return to FIG. 4.
  • the service server may confirm a subset of pairs of orders and delivery workers selected from each set of pairs between a plurality of orders and a plurality of delivery men based on at least one of the first information and the second information. This may involve the service server considering various factors to pre-filter and remove pairs between orders and delivery personnel that are expected to be unfavorable in terms of improving the customer experience or improving the delivery acceptance rate of the delivery person.
  • the service server determines the delivery person's preferred area, the store's food preparation time, the delivery person's waiting time, the number of candidate delivery people for assigning one order, the delivery person's pick-up distance, and the drop-off distance (i.e., the delivery person picks up the food from the store). Filtering can be performed by considering various factors such as (distance traveled from pick-up to delivery destination), delivery time, obstacles (rivers, military facilities, etc.), delivery refusal history, delivery person's transportation method, etc.
  • the service server may first perform primary filtering to remove orders and delivery people that are not suitable for assignment to reduce the dimensionality of the bipartite graph, and then perform secondary filtering for each order and delivery person pair. .
  • the primary filtering may include filtering for delivery workers, including those who are not currently available for delivery due to holidays, breaks, etc. (i.e., offline rather than online delivery workers), or those who are currently performing other deliveries. may be filtered and excluded from the delivery person pool.
  • the number of delivery workers who are currently online is small, and even if a delivery worker is currently in the process of delivering, a delivery worker who has not long left until the expected delivery completion time may be included in the delivery worker pool and designated as a candidate for order allocation.
  • the primary filtering may include filtering for orders to be filtered and excluded from the order pool if the time remaining until the order's expected completion time at the store associated with the order exceeds, for example, 15 minutes. You can. However, in one embodiment, if an order is left unassigned to a delivery person for, for example, more than 30 minutes, it is classified as a long tail order and needs to be processed quickly, so it is not excluded from the order pool and is a candidate for assigning a delivery person. It can be specified as .
  • secondary filtering may be performed on each order and delivery person pair consisting of multiple orders and multiple delivery drivers, including pickup distance (the distance from the delivery person's current location to the location of the store associated with the order) and May include drop-off distance (distance from the store's location to the delivery destination) restrictions. Thresholds corresponding to pickup distance and drop-off distance limits may vary depending on the delivery person's mode of transportation (e.g., car, motorcycle, bicycle, walking).
  • the current time corresponds to a time when road traffic is congested, such as rush hour, and at least one of the pick-up distance and drop-off distance exceeds a certain distance
  • delivery workers using cars are filtered out and excluded from the delivery worker pool. It can be.
  • the pair of order and delivery person may be filtered if there are predefined obstacles (e.g., rivers, mountains, military installations) on the delivery person's path to the store associated with the order.
  • predefined obstacles e.g., rivers, mountains, military installations
  • delivery workers currently located in Gangnam, Seoul may be filtered so that they cannot be assigned orders for stores located in Gangbuk.
  • the order may be filtered so that an acceptance request for the same order is not sent to that delivery person.
  • the second information includes information about the preferred areas of the plurality of delivery workers
  • the service server determines the subset to filter the plurality of orders based on the information about the preferred areas of each of the plurality of delivery workers.
  • the service server checks each pair between a plurality of orders and a plurality of delivery men, selects only the pairs of orders associated with the delivery man and the delivery man's preferred region to be included in the subset, and pairs of orders not associated with the delivery man and the delivery man's preferred region. can be removed from being included in the subset by filtering. Through such filtering, the service server can ensure that only orders from the delivery person's preferred region are assigned, thereby increasing the delivery person's order acceptance rate and improving customer experience through quick and accurate delivery.
  • a subset of order and delivery person pairs may be selected such that the number of delivery persons paired with each order is less than or equal to a certain number.
  • the service server can regulate the computational load during matching so that it is not exceeded by limiting each order to have at most a certain number (e.g., 10) of candidate couriers to prevent flooding of downstream services. This can be designed by having the service server select, for example, only the 10 delivery workers located within the closest straight line distance from the store associated with a specific order and set them as candidate delivery workers for the specific order.
  • the first information includes information about the order acceptance time of the store corresponding to the plurality of orders
  • the service server determines the subset corresponding to the plurality of orders based on the information about the order acceptance time. This may include checking the expected preparation completion time and checking a subset based on orders for which the remaining time until the expected order completion time is within a certain time among the plurality of orders.
  • the order information is transmitted to the store's terminal corresponding to the order, and the store can accept or reject the order.
  • the service server can check the order acceptance time and the expected completion time of the food corresponding to the order.
  • the database associated with the service server may include history information about the preparation completion time for each food and time period of the store, and the service server extracts the history information from the database from the time the store accepts the order to the time the food is prepared. You can predict how long it will take.
  • the expected preparation time corresponding to an order can be confirmed by adding the predicted preparation time based on history information to the store's order acceptance time.
  • the service server may limit the subset to include only pairs between an order and a delivery person whose time remaining until the expected order completion time is within a certain time (for example, 15 minutes) among the plurality of orders. If there is too much time remaining until the expected order completion time, if these orders are assigned to a delivery person, the delivery person will have to wait a significant amount of time even after traveling to the store for pickup, which can harm the efficiency of order allocation. Accordingly, the service server can reduce the waiting time of the delivery person and increase the delivery efficiency of the delivery person by performing filtering so that pairs containing orders whose remaining time exceeds a certain time are not included in the subset.
  • a certain time for example, 15 minutes
  • the certain amount of time may be determined based on the size of the store's waiting space corresponding to a plurality of orders. If the size of the store's waiting space is small, the service server may set the certain time to a relatively small time (for example, 8 minutes) because the store's business may be disrupted due to the waiting of numerous delivery workers.
  • the service server determines the remaining time until the expected order completion time of the first order among the plurality of orders as the first time, and determines the estimated time it will take to travel to the store of the first delivery person among the plurality of delivery people.
  • the service server can reduce the unnecessary waiting time of the delivery person and perform efficient order allocation to the delivery person by determining whether to filter the order and delivery person pair in consideration of the waiting time of the delivery person.
  • the second information includes information about the means of transportation of the plurality of delivery workers
  • the service server determines the subset to filter the plurality of orders based on the information about the means of transportation of each of the plurality of delivery workers. may include For example, if the pick-up and drop-off distances corresponding to an order are quite far, or if the weight of the ordered food is quite heavy, delivery workers who use walking may not be suitable for the order and may be filtered out in advance.
  • the connection between the order and a delivery person traveling in a vehicle (e.g., car, motorcycle) Pairs can be pre-filtered and removed.
  • step S420 of FIG. 4 when the service server confirms a subset of pairs of orders and delivery workers selected from among the sets of each pair between a plurality of orders and a plurality of delivery men based on at least one of the first information and the second information, A table such as table 520 may be created.
  • the service server may filter all pairs containing Order 1 so that they are not included in the subset. For example, this may be to prevent the possibility that the waiting time of the delivery person becomes too long because the time remaining until the expected time of completion of food preparation corresponding to order 1 exceeds a certain time.
  • the service server may filter the pair of order 2 and delivery person 2 and the pair of order 3 and delivery person 3 so that they are not included in the subset. This may be, for example, because the geographic area associated with Order 2 is included in the preferred regions of Delivery Person 1 and Delivery Person 3, but is not included in Delivery Person 3's preferred areas. Additionally, this may be because, for example, the pick-up distance corresponding to Order 3 is relatively long, so Deliveryman 3, who uses walking, is not suitable for Order 3. In this way, the service server can increase the accuracy of order allocation and reduce the computational load for matching by filtering in advance the order and delivery person pairs that will have a negative impact on the customer experience and the delivery person's order acceptance rate. .
  • the service server can determine the score of each pair in the filtered table 520, and to explain this, we return to FIG. 4.
  • the service server may determine a score corresponding to each pair included in the subset based on at least one of the first information and the second information.
  • the service server may use the matching scores of the bipartite graph to determine scores for order and delivery person pairs included in the filtered subset to perform global assignment of orders.
  • the first information includes location information of a store corresponding to a plurality of orders
  • the second information includes current location information of a plurality of delivery workers
  • the score is based on the first information and the second information. It may be determined based on the pickup distance of each pair included in the identified subset. The pickup distance may refer to the distance traveled to pick up food from the delivery person's current location to the store's location. In one embodiment, the score may be determined to be proportional or inversely proportional to the pickup distance.
  • the score may be determined based on the pickup time of the delivery person corresponding to the pickup distance.
  • Pick-up time may refer to the estimated travel time for the delivery person to travel the pickup distance based on the delivery person's transportation method.
  • the pickup time can be calculated directly by the service server or obtained through an external navigation API.
  • the score may be proportional to the pick-up time, and the service server may determine matching so that the sum of the scores of each order and delivery person pair is minimal, thereby performing order allocation to the delivery person that minimizes the pickup time.
  • the first information includes information about the order acceptance time of the store corresponding to a plurality of orders
  • the service server determines the score by determining the time elapsed from the order acceptance time among orders corresponding to the subset. This may include labeling orders that exceed a certain amount of time and determining a score corresponding to each pair included in the subset based on the labeling.
  • the service server labels orders for which a significant amount of time has passed since the order was accepted (i.e., long-tail orders), for example, orders for which a delivery person has not been assigned for more than 30 minutes, or orders for which a delivery person has not been assigned even though the food preparation has been completed. And, a score can be determined so that delivery workers can be assigned preferentially to these labeled orders.
  • the service server may design scores to preferentially match orders and delivery person pairs that include labeled orders by assigning relatively high scores to them.
  • the first information includes order history information of an orderer (i.e., customer) corresponding to a plurality of orders
  • the service server determines the score when the order is selected a certain number of times by the customer among orders corresponding to the subset. This may include labeling the orders corresponding to the orders within the order and determining a score corresponding to each pair included in the subset based on the labeling.
  • the service server may determine a score so that new customers' orders are assigned more quickly than regular customers' orders to improve the customer experience of new customers and encourage them to continue using the delivery brokerage service.
  • the service server may label the customer as a new customer if the order corresponds to the customer's third or lower order (i.e., order 1, order 2, and order 3) and place orders for this labeled customer.
  • a score can be determined so that a delivery person can be assigned priority.
  • the service server may design scores to preferentially match orders and delivery person pairs that include labeled orders by assigning relatively high scores to them.
  • the second information includes information about the delivery performance history of a plurality of delivery workers over a certain period of time in the past, and the score may be determined based on the information about the delivery performance history.
  • Information about the delivery performance history of the delivery person may include statistical data including information such as evaluation, rating, delivery acceptance rate, average moving speed, number of deliveries per day, and delivery performance time zone related to the delivery person's delivery work. For example, a pair of an order and a delivery person that includes a first delivery person may be adjusted according to the rating of the first delivery person, and a pair of an order and a delivery person that includes a delivery person with a high rating may be given a high score and sent to the service server to be matched preferentially. It can be designed by
  • the score corresponding to each order and delivery person pair included in the subset includes a first score associated with the order, a second score associated with the delivery person, and a second score associated with the time the delivery person travels to the store corresponding to the order. 3 Can be decided based on the score.
  • the service server can determine the score by considering all information about the order, information about the delivery person, and information related to the delivery person's travel time, and can adjust the weight of each element that determines the score as necessary.
  • the score corresponding to each order and delivery person pair included in the subset is a fourth score associated with the delivery person's familiarity with the geographic area that includes at least one of the store and delivery destination corresponding to the order. It can be decided further based on the score.
  • the service server can check the delivery person's familiarity with a specific geographic area based on information about the delivery person's preferred area provided to the service server through the application and data on the delivery person's delivery history by region.
  • the score corresponding to a pair of order and delivery person associated with a geographical area with high familiarity can be set high to increase the likelihood that the delivery person will be matched to an order corresponding to a geographical area with high familiarity.
  • a first weight, a second weight, and a third weight are set for the first score, the second score, and the third score, respectively, and the first weight, the second weight, and the third weight are set in order and The determination may be based on at least one of the characteristics of the associated geographic area and the current time. For example, if the difference in delivery time depending on the current location of the delivery people is not large because stores and delivery people are concentrated in the geographic area associated with the order, the service server lowers the third weight for the third score associated with the pickup time. and the first and second weights can be set high.
  • the service server may set the third weight for the third score associated with the pickup time to be high.
  • the service server can determine the weight of each factor based on the order volume in the geographical area, the complexity of the geographical area, the difficulty of delivery, etc. In this way, the service server can perform optimal order allocation suitable for real-time situations by adjusting the score by considering various factors.
  • the score corresponding to each order and delivery person pair included in the subset may be determined further based on a fifth score associated with cost per order (CPO).
  • CPO cost per order
  • a plurality of delivery persons may have different payment structures depending on the type, and the service server may determine a score corresponding to the pair of order and delivery person by considering the cost to be paid to the delivery person.
  • the service server determines a score corresponding to each pair included in the subset based on at least one of the first information and the second information in step S430 of FIG. 4, a table such as the table 530 of FIG. 5 will be created. You can. In the example shown in Figure 5, the service server sets the score corresponding to the pair of order 2 and delivery person 1 as 3, the score corresponding to the pair of order 2 and delivery person 3 as 4, and the score corresponding to the pair of order 3 and delivery person 1. 2, and the score corresponding to the pair of order 3 and delivery person 2 can be determined to be 5.
  • the service server may determine the score based on various factors such as factors associated with the order, factors associated with the delivery person, factors associated with the pickup time, factors associated with the familiarity of the delivery person, etc. For example, in this example, the delivery person is at the current location. The estimated time it will take to travel to the store location corresponding to the order may be determined by the score.
  • the service server may determine a match between the order and the delivery person to whom the order will be assigned based on the determined score in the table 530, and to explain this, we return to FIG. 4.
  • the service server may determine the match between the order and the delivery person to whom the order will be assigned among the subset based on the score.
  • the service server can check the score corresponding to each order and delivery person pair included in the subset and solve this as a bipartite graph matching problem in which each edge has a score.
  • matching may be determined such that the sum of the scores of matched order and delivery person pairs is minimal.
  • the service server may determine that the sum of the scores of matched pairs of orders and delivery workers is maximized if the score function is designed so that pairs with high scores are preferentially selected, and conversely, pairs with low scores are preferentially selected. If the score function is designed as much as possible, it can be determined that the sum of the scores of the matched order and delivery person pair is minimal. In one embodiment, when there are two or more matches with the minimum sum of scores, matches for pairs with the same score may be randomly selected. Determining the matching that has the minimum sum of edge scores in a bipartite graph is a general minimum weight bipartite matching problem, which will be explained with reference to FIG. 6 below.
  • Figure 6 is an example diagram for explaining the minimum weight binary matching problem according to an embodiment of the present specification.
  • the least-cost flow problem is an optimization and decision problem that finds the cheapest way to send a certain amount of flow through a network, typically the optimal delivery route from a factory to a warehouse using a road network consisting of roads with a capacity and an associated cost. It is related to how to solve the problem of finding . Ultimately, this may be related to a method of solving the problem of simultaneously allocating multiple orders to multiple deliverymen at minimal cost, which is addressed in this specification.
  • the minimum weight binary matching problem or assignment problem, involves finding a complete match M ⁇ E such that the total weight is minimized. This problem can ultimately be reduced to a minimum cost flow problem, where we add a source node s to connect to all nodes in A, add a sink node t to connect to all nodes in B, add a source node s and connect to a sink node t. If the capacity of the connected edge is 1 and the cost is 0, the minimum weight binary matching problem can be solved as a minimum cost flow problem, and the optimal matching that minimizes the sum of scores can be found in polynomial time.
  • step S440 of FIG. 4 when the service server determines the match between the order and the delivery person to whom the order will be assigned among the subset based on the score, a table such as the table 540 of FIG. 5 may be created.
  • the service server can calculate that the sum of the score 4 of the pair of order 2 and delivery person 3 and the score 2 of the pair of order 3 and delivery person 1 is the minimum through minimum weight binary matching, , Therefore, these pairs can be determined by matching.
  • the minimum weight binary matching problem can be solved using Google's OR-Tools.
  • the service server can assign multiple orders to multiple delivery workers based on matching, and to explain this, we return to FIG. 4.
  • the service server may allocate at least some of the plurality of orders to at least some of the plurality of delivery workers based on matching.
  • the service server may check a plurality of orders and a plurality of delivery people at a set cycle (e.g., 30 seconds) and perform assignment for at least some of them, and orders and delivery people not assigned in the current cycle cycle may be assigned to the next cycle. You can then enter the order pool and delivery person pool to be assigned in a cycle.
  • the service server deviates from the greedy approach of considering multiple orders one at a time and assigning each order to the nearest delivery person, and sets the order and delivery person as nodes on each side of the bipartite graph and picks up the edge weight of the bipartite graph.
  • a matching score that takes into account various factors such as time, delivery person characteristics, and order characteristics, it is possible to provide global allocation of orders with optimal matching.
  • the service server considers various factors and pre-filters and removes pairs between orders and delivery personnel that are expected to be unfavorable in terms of improving customer experience or improving the delivery acceptance rate of delivery personnel, thereby improving the accuracy of order allocation and calculation for matching.
  • the load can be reduced.

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention relates to a method by which a service server assigns an order to a delivery person, comprising the steps of: identifying first information about a plurality of orders and second information about a plurality of delivery people; identifying a selected subset of order and delivery person pairs from a set of pairs between the plurality of orders and the plurality of delivery people on the basis of the first information and/or the second information; determining scores corresponding to respective pairs included in the subset on the basis of the first information and/or the second information; determining matching of an order and a delivery person to whom the order is to be assigned from the subset on the basis of the scores; and assigning at least some of the plurality of orders to at least some of the plurality of delivery people on the basis of the matching.

Description

배달원에 주문을 할당하기 위한 방법 및 장치Method and apparatus for allocating orders to delivery people
본 명세서의 실시 예는 배달원에 주문을 할당하기 위한 방법 및 장치에 관한 것이다.Embodiments of the present specification relate to a method and device for assigning orders to delivery people.
인터넷의 사용이 보편화됨에 따라 전자상거래 시장이 확대되고 있다. 특히 감염병의 확산에 따라, 오프라인 매장에 방문하여 상품을 구매하는 비중은 줄어들고 있는 반면, 컴퓨터 또는 스마트폰을 이용한 전자상거래를 통해 상품을 구매하는 비중은 급속도로 증가하고 있다. 또한, 배달 중개 시장의 활성화에 따라 사람들이 오프라인 음식점에 방문하여 식사를 하는 비중은 줄어들고, 스마트폰을 이용한 음식 배달 중개 서비스 관련 애플리케이션을 통해 배달 음식을 주문하는 비중 또한 급속도로 증가하고 있다.As the use of the Internet becomes more widespread, the e-commerce market is expanding. In particular, as infectious diseases spread, the proportion of products purchased by visiting offline stores is decreasing, while the proportion of products purchased through e-commerce using computers or smartphones is rapidly increasing. In addition, with the revitalization of the delivery brokerage market, the proportion of people visiting offline restaurants to eat is decreasing, and the proportion of people ordering delivery food through applications related to food delivery brokerage services using smartphones is also rapidly increasing.
배달 중개 서비스에서 고객의 주문에 대해 신속한 음식 배달을 제공하기 위해 중요한 것은 각각의 주문을 최적의 배달원에게 할당하는 것이다. 고객으로부터 요청된 각각의 주문을 최적의 배달원에게 효율적으로 할당하는 것은 신속한 배송 및 높은 고객 경험(customer experience; CX) 측면에서 매우 중요하다. 한편 배달원에 대한 주문 할당(Order Assignment; OA) 문제는 어려운 데이터 사이언스 작업이고, 이러한 OA 문제를 풀기 위해 일반적인 접근법들이 사용되고 있다.In order to provide rapid food delivery for customer orders in a delivery brokerage service, the important thing is to assign each order to the optimal delivery person. Efficiently allocating each order requested by a customer to the optimal delivery person is very important in terms of rapid delivery and high customer experience (CX). Meanwhile, the Order Assignment (OA) problem for delivery workers is a difficult data science task, and common approaches are used to solve this OA problem.
OA 문제의 가장 큰 어려움은 이것이 실시간 시나리오에서 풀어야 하는 문제라는 것이다. 주문들과 배달원 간의 최적의 매칭을 결정하기 위해 수초 안에 매우 많은 양의 계산과 예측이 수행되어야 한다. OA 최적화에서의 주된 목적은 최고의 CX를 제공하기 위한 배달 시간 감소, 할당 및 배달이 지연된 주문(이른바, 롱테일(long tail) 주문) 비율 감소, 배달원의 수락율 증가를 포함할 수 있다. 따라서, 실시간 시나리오에서 최고의 CX를 제공하기 위해 배달 시간 감소, 롱테일 주문 비율 감소 및 배달원의 수락율 증가를 위한 배달원에 대한 주문 할당 방법이 요구된다.The biggest difficulty with the OA problem is that it is a problem that must be solved in a real-time scenario. A large amount of calculations and predictions must be performed within seconds to determine the optimal match between orders and delivery people. Primary objectives in OA optimization may include reducing delivery times to provide the best CX, reducing the proportion of orders with late allocation and delivery (so-called long tail orders), and increasing acceptance rates by delivery personnel. Therefore, in order to provide the best CX in real-time scenarios, an order allocation method to delivery workers is required to reduce delivery time, reduce the ratio of long-tail orders, and increase the acceptance rate of delivery workers.
관련 선행기술로는 대한민국공개특허공보 제2020-0102277호(2020.08.31. 공개)가 있다.Related prior art includes Korea Patent Publication No. 2020-0102277 (published on August 31, 2020).
본 명세서의 실시 예는 상술한 문제점을 해결하기 위하여 제안된 것으로 복수의 주문 및 복수의 배달원의 정보를 확인하고, 확인된 정보를 기반으로 배달원에 대한 최적의 주문 할당을 수행하는 것을 목적으로 한다. 구체적으로, 서비스 서버에서 복수의 주문 및 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인하고, 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하며, 스코어를 기반으로 주문 및 배달원 쌍의 최적의 매칭을 결정하는 것을 목적으로 한다.The embodiment of this specification is proposed to solve the above-mentioned problem, and its purpose is to confirm information on multiple orders and multiple delivery workers, and perform optimal order allocation to delivery workers based on the confirmed information. Specifically, the service server identifies a subset of pairs of orders and delivery workers selected from the set of each pair between a plurality of orders and a plurality of delivery men, determines a score corresponding to each pair included in the subset, and based on the scores, The purpose is to determine the optimal match between order and delivery person pairs.
상술한 과제를 달성하기 위하여, 본 명세서의 일 실시 예에 따르는 서비스 서버에서의 배달원에 대한 주문 할당 방법은, 복수의 주문에 대한 제1 정보 및 복수의 배달원에 대한 제2 정보를 확인하는 단계; 상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 복수의 주문 및 상기 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인하는 단계; 상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하는 단계; 상기 스코어를 기반으로 상기 서브세트 중에서 주문이 할당될 배달원과 주문의 매칭을 결정하는 단계; 및 상기 매칭을 기반으로 상기 복수의 주문 중 적어도 일부를 상기 복수의 배달원 중 적어도 일부에 할당하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above-described problem, a method of allocating orders to deliverymen in a service server according to an embodiment of the present specification includes the steps of checking first information about a plurality of orders and second information about a plurality of deliverymen; Confirming a subset of pairs of orders and delivery workers selected from each set of pairs between the plurality of orders and the plurality of delivery men based on at least one of the first information and the second information; determining a score corresponding to each pair included in the subset based on at least one of the first information and the second information; determining a match between an order and a delivery person to whom an order will be assigned among the subset based on the score; And allocating at least some of the plurality of orders to at least some of the plurality of delivery workers based on the matching.
일 실시 예에 따르면, 상기 제1 정보는 제1 지리적 구역과 연관된 상기 복수의 주문에 대한 정보를 포함하고, 상기 제2 정보는 상기 제1 지리적 구역 및 상기 제1 지리적 구역과 인접한 지리적 구역 내의 상기 복수의 배달원에 대한 정보를 포함하는 것을 특징으로 한다.According to one embodiment, the first information includes information about the plurality of orders associated with a first geographic region, and the second information includes the first geographic region and the plurality of orders within a geographic region adjacent to the first geographic region. It is characterized by including information about a plurality of delivery workers.
일 실시 예에 따르면, 상기 제1 정보 및 상기 제2 정보를 확인하는 단계는 설정된 주기로 수행되고, 상기 주기는 상기 제1 지리적 구역의 주문량을 기반으로 결정되는 것을 특징으로 한다.According to one embodiment, the step of checking the first information and the second information is performed at a set cycle, and the cycle is determined based on the order quantity of the first geographical area.
일 실시 예에 따르면, 상기 제1 정보는 배달원이 할당되지 않은 상기 복수의 주문에 대한 정보를 포함하고, 상기 제2 정보는 배달 가능으로 설정된 복수의 배달원에 대한 정보를 포함하는 것을 특징으로 한다.According to one embodiment, the first information includes information about the plurality of orders to which no delivery person is assigned, and the second information includes information about the plurality of delivery people set as available for delivery.
일 실시 예에 따르면, 상기 제2 정보는 상기 복수의 배달원의 선호 지역에 대한 정보를 포함하고, 상기 서브세트를 확인하는 단계는 상기 복수의 배달원 각각의 상기 선호 지역에 대한 정보를 기반으로 상기 복수의 주문을 필터링하는 단계를 포함하는 것을 특징으로 한다.According to one embodiment, the second information includes information about the preferred areas of the plurality of delivery workers, and the step of confirming the subset is based on the information about the preferred areas of each of the plurality of delivery workers. Characterized in that it includes the step of filtering the orders.
일 실시 예에 따르면, 상기 주문 및 배달원 쌍의 서브세트는 각 주문과 쌍을 이루는 배달원의 수가 일정 수 이하가 되도록 선택되는 것을 특징으로 한다.According to one embodiment, the subset of the order and delivery person pairs is selected so that the number of delivery people paired with each order is less than or equal to a certain number.
일 실시 예에 따르면, 상기 제1 정보는 상기 복수의 주문에 대응하는 스토어의 주문 수락 시각에 대한 정보를 포함하고, 상기 서브세트를 확인하는 단계는 상기 주문 수락 시각에 대한 정보를 기반으로 상기 복수의 주문에 대응하는 준비 완료 예상 시각을 확인하는 단계; 및 상기 복수의 주문 중 상기 준비 완료 예상 시각까지 남은 시간이 일정 시간 이내인 주문을 기반으로 상기 서브세트를 확인하는 단계를 포함하는 것을 특징으로 한다.According to one embodiment, the first information includes information about the order acceptance time of the store corresponding to the plurality of orders, and the step of confirming the subset includes the plurality of orders based on the information about the order acceptance time. Confirming the expected completion time of preparation to respond to the order; And, among the plurality of orders, it is characterized in that it includes the step of checking the subset based on the orders for which the remaining time until the expected preparation completion time is within a certain time.
일 실시 예에 따르면, 상기 일정 시간은 상기 복수의 주문에 대응하는 스토어의 대기 공간의 크기를 기반으로 결정되는 것을 특징으로 한다.According to one embodiment, the certain time is determined based on the size of the waiting space of the store corresponding to the plurality of orders.
일 실시 예에 따르면, 상기 제1 정보는 상기 복수의 주문에 대응하는 스토어의 위치 정보를 포함하고, 상기 제2 정보는 상기 복수의 배달원의 현재 위치 정보를 포함하고, 상기 스코어는 상기 제1 정보 및 상기 제2 정보를 기반으로 확인되는 상기 서브세트에 포함된 각 쌍의 픽업 거리를 기반으로 결정되는 것을 특징으로 한다.According to one embodiment, the first information includes location information of a store corresponding to the plurality of orders, the second information includes current location information of the plurality of delivery workers, and the score is provided by the first information. And characterized in that it is determined based on the pickup distance of each pair included in the subset confirmed based on the second information.
일 실시 예에 따르면, 상기 제1 정보는 상기 복수의 주문에 대응하는 스토어의 주문 수락 시각에 대한 정보를 포함하고, 상기 스코어를 결정하는 단계는 상기 서브세트에 대응하는 주문 중 상기 주문 수락 시각으로부터 경과한 시간이 일정 시간을 초과하는 주문을 라벨링하는 단계; 및 상기 라벨링을 기반으로 상기 서브세트에 포함된 각 쌍에 대응하는 상기 스코어를 결정하는 단계를 포함하는 것을 특징으로 한다.According to one embodiment, the first information includes information about the order acceptance time of the store corresponding to the plurality of orders, and the step of determining the score is performed from the order acceptance time among the orders corresponding to the subset. labeling orders whose elapsed time exceeds a certain amount of time; and determining the score corresponding to each pair included in the subset based on the labeling.
일 실시 예에 따르면, 상기 제2 정보는 상기 복수의 배달원의 과거 일정 기간 동안의 배달 수행 이력에 대한 정보를 포함하고, 상기 스코어는 상기 배달 수행 이력에 대한 정보를 기반으로 결정되는 것을 특징으로 한다.According to one embodiment, the second information includes information about the delivery performance history of the plurality of delivery workers for a certain period of time in the past, and the score is determined based on the information about the delivery performance history. .
일 실시 예에 따르면, 상기 서브세트에 포함된 각각의 주문 및 배달원 쌍에 대응하는 상기 스코어는: 상기 주문과 연관된 제1 스코어; 상기 배달원과 연관된 제2 스코어; 및 상기 배달원이 상기 주문에 대응하는 스토어로 이동하는 시간과 연관된 제3 스코어를 기반으로 결정되는 것을 특징으로 한다.According to one embodiment, the score corresponding to each order and delivery person pair included in the subset includes: a first score associated with the order; a second score associated with the delivery person; And characterized in that it is determined based on a third score associated with the time the delivery person travels to the store corresponding to the order.
일 실시 예에 따르면, 상기 서브세트에 포함된 각각의 주문 및 배달원 쌍에 대응하는 상기 스코어는 상기 주문에 대응하는 스토어 및 배달 목적지 중 적어도 하나를 포함하는 지리적 구역에 대한 상기 배달원의 친숙도(familiarity)와 연관된 제4 스코어를 더 기반으로 결정되는 것을 특징으로 한다.According to one embodiment, the score corresponding to each order and delivery person pair included in the subset is the familiarity of the delivery person with a geographic area that includes at least one of a store and a delivery destination corresponding to the order. ) is characterized in that it is further determined based on the fourth score associated with.
일 실시 예에 따르면, 상기 제1 스코어, 상기 제2 스코어 및 상기 제3 스코어에 대해 각각 제1 가중치, 제2 가중치 및 제3 가중치가 설정되고, 상기 제1 가중치, 상기 제2 가중치 및 상기 제3 가중치는 상기 주문과 연관된 지리적 구역의 특성 및 현재 시각 중 적어도 하나를 기반으로 결정되는 것을 특징으로 한다.According to one embodiment, a first weight, a second weight, and a third weight are set for the first score, the second score, and the third score, respectively, and the first weight, the second weight, and the third weight are set, respectively. 3 The weight is characterized in that it is determined based on at least one of the characteristics of the geographical area associated with the order and the current time.
일 실시 예에 따르면, 상기 매칭은 매칭된 주문 및 배달원 쌍의 스코어의 합이 최소가 되도록 결정되는 것을 특징으로 한다.According to one embodiment, the matching is characterized in that the sum of the scores of the matched pair of order and delivery person is determined to be minimum.
본 명세서의 일 실시 예에 따르는 배달원에 대한 주문을 할당하는 서비스 서버는, 적어도 하나의 명령어를 저장하는 메모리; 및 상기 적어도 하나의 명령어를 실행함으로써, 복수의 주문에 대한 제1 정보 및 복수의 배달원에 대한 제2 정보를 확인하고, 상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 복수의 주문 및 상기 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인하고, 상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하고, 상기 스코어를 기반으로 상기 서브세트 중에서 주문이 할당될 배달원과 주문의 매칭을 결정하고, 상기 매칭을 기반으로 상기 복수의 주문 중 적어도 일부를 상기 복수의 배달원 중 적어도 일부에 할당하는 프로세서를 포함하는 것을 특징으로 한다.A service server that allocates an order to a delivery person according to an embodiment of the present specification includes: a memory storing at least one command; and executing the at least one command to confirm first information about a plurality of orders and second information about a plurality of delivery people, and to determine the plurality of orders based on at least one of the first information and the second information. and identifying a subset of pairs of orders and delivery workers selected from the set of each pair between the plurality of delivery workers, and scoring corresponding to each pair included in the subset based on at least one of the first information and the second information. A processor that determines a match between an order and a delivery person to whom an order is to be assigned among the subset based on the score, and assigns at least some of the plurality of orders to at least some of the plurality of delivery people based on the matching. It is characterized by including.
본 명세서의 일 실시 예에 따르는 비일시적 컴퓨터 판독 가능 저장 매체는, 컴퓨터 판독 가능 명령어들을 저장하도록 구성되는 매체를 포함하고, 상기 컴퓨터 판독 가능 명령어들은 프로세서에 의해 실행되는 경우 상기 프로세서가: 복수의 주문에 대한 제1 정보 및 복수의 배달원에 대한 제2 정보를 확인하는 단계; 상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 복수의 주문 및 상기 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인하는 단계; 상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하는 단계; 상기 스코어를 기반으로 상기 서브세트 중에서 주문이 할당될 배달원과 주문의 매칭을 결정하는 단계; 및 상기 매칭을 기반으로 상기 복수의 주문 중 적어도 일부를 상기 복수의 배달원 중 적어도 일부에 할당하는 단계를 포함하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법을 수행하도록 하는 것을 특징으로 한다.A non-transitory computer-readable storage medium according to an embodiment of the present specification includes a medium configured to store computer-readable instructions, wherein when the computer-readable instructions are executed by a processor, the processor: Confirming first information about and second information about a plurality of delivery workers; Confirming a subset of pairs of orders and delivery workers selected from each set of pairs between the plurality of orders and the plurality of delivery men based on at least one of the first information and the second information; determining a score corresponding to each pair included in the subset based on at least one of the first information and the second information; determining a match between an order and a delivery person to whom an order will be assigned among the subset based on the score; and allocating at least some of the plurality of orders to at least some of the plurality of delivery workers based on the matching, wherein the service server performs an order allocation method for delivery workers.
본 명세서의 실시 예에 따르면, 서비스 서버는 복수의 주문들을 한번에 하나씩 고려하여 각각의 주문을 가장 가까운 배달원에게 할당하는 탐욕 접근법에서 벗어나, 이분 그래프의 각 측면의 노드로서 주문 및 배달원을 설정하고 이분 그래프의 엣지 가중치를 픽업 시간, 배달원 특성, 및 주문 특성 등과 같은 다양한 요소를 고려한 매칭 스코어로 설정하여, 최적의 매칭을 갖는 주문의 전역 할당을 제공할 수 있다. According to an embodiment of the present specification, the service server deviates from the greedy approach of considering multiple orders one at a time and assigning each order to the nearest delivery person, and sets the order and delivery person as nodes on each side of the bipartite graph and sets the order and delivery person as nodes on each side of the bipartite graph. By setting the edge weight of to a matching score that takes into account various factors such as pickup time, delivery person characteristics, and order characteristics, it is possible to provide global allocation of orders with optimal matching.
또한, 본 명세서의 실시 예에 따르면, 서비스 서버는 다양한 요소를 고려하여 고객 경험 개선 또는 배달원의 배달 수락율 향상 측면에서 좋지 않을 것으로 예상되는 주문 및 배달원 간의 쌍을 사전에 필터링하여 제거함으로써, 주문 할당의 정확성을 높이고 매칭을 위한 계산 부하를 줄일 수 있다.In addition, according to an embodiment of the present specification, the service server considers various factors and pre-filters and removes pairs between orders and delivery personnel that are expected to be unfavorable in terms of improving customer experience or improving the delivery acceptance rate of delivery personnel, thereby allocating orders. can increase the accuracy and reduce the computational load for matching.
도 1은 본 명세서의 일 실시 예에 따른 서비스 서버의 각 구성을 개략적으로 도시하는 예시적인 도면이다.1 is an exemplary diagram schematically showing each configuration of a service server according to an embodiment of the present specification.
도 2는 본 명세서의 일 실시 예에 따른 배달원에 대한 주문의 로컬 할당 및 전역 할당에 대한 예시를 보여준다.Figure 2 shows an example of local allocation and global allocation of orders to deliverymen according to an embodiment of the present specification.
도 3은 본 명세서의 일 실시 예에 따른 배달원에 대한 주문의 로컬 할당 및 전역 할당에 대한 다른 예시를 보여준다.Figure 3 shows another example of local allocation and global allocation of orders to deliverymen according to an embodiment of the present specification.
도 4는 본 명세서의 일 실시 예에 따른 서비스 서버에서의 배달원에 대한 주문 할당 방법의 흐름을 나타내는 순서도이다.Figure 4 is a flowchart showing the flow of an order allocation method for a delivery person in a service server according to an embodiment of the present specification.
도 5는 본 명세서의 일 실시 예에 따른 배달원에 대한 주문의 전역 할당 프로세스에 대한 개략도이다.5 is a schematic diagram of a global allocation process of orders to deliverymen according to an embodiment of the present specification.
도 6은 본 명세서의 일 실시 예에 따른 최소 가중치 이분 매칭 문제를 설명하기 위한 예시적인 도면이다.Figure 6 is an example diagram for explaining the minimum weight binary matching problem according to an embodiment of the present specification.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the attached drawings.
실시 예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.In describing the embodiments, description of technical content that is well known in the technical field to which the present invention belongs and that is not directly related to the present invention will be omitted. This is to convey the gist of the present invention more clearly without obscuring it by omitting unnecessary explanation.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.For the same reason, some components are exaggerated, omitted, or schematically shown in the accompanying drawings. Additionally, the size of each component does not entirely reflect its actual size. In each drawing, identical or corresponding components are assigned the same reference numbers.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and may be implemented in various different forms. The present embodiments are merely provided to ensure that the disclosure of the present invention is complete and to provide common knowledge in the technical field to which the present invention pertains. It is provided to fully inform those who have the scope of the invention, and the present invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
이 때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.At this time, it will be understood that each block of the processing flow diagram diagrams and combinations of the flow diagram diagrams can be performed by computer program instructions. These computer program instructions can be mounted on a processor of a general-purpose computer, special-purpose computer, or other programmable data processing equipment, so that the instructions performed through the processor of the computer or other programmable data processing equipment are described in the flow chart block(s). It creates the means to perform functions. These computer program instructions may also be stored in computer-usable or computer-readable memory that can be directed to a computer or other programmable data processing equipment to implement a function in a particular manner, so that the computer-usable or computer-readable memory It is also possible to produce manufactured items containing instruction means that perform the functions described in the flowchart block(s). Computer program instructions can also be mounted on a computer or other programmable data processing equipment, so that a series of operational steps are performed on the computer or other programmable data processing equipment to create a process that is executed by the computer, thereby generating a process that is executed by the computer or other programmable data processing equipment. Instructions that perform processing equipment may also provide steps for executing the functions described in the flow diagram block(s).
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Additionally, each block may represent a module, segment, or portion of code that includes one or more executable instructions for executing specified logical function(s). Additionally, it should be noted that in some alternative execution examples it is possible for the functions mentioned in the blocks to occur out of order. For example, it is possible for two blocks shown in succession to be performed substantially at the same time, or it is possible for the blocks to be performed in reverse order depending on the corresponding function.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.At this time, the term '~unit' used in this embodiment refers to software or hardware components such as FPGA or ASIC, and the '~unit' performs certain roles. However, '~part' is not limited to software or hardware. The '~ part' may be configured to reside in an addressable storage medium and may be configured to reproduce on one or more processors. Therefore, as an example, '~ part' refers to components such as software components, object-oriented software components, class components, and task components, processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functions provided within the components and 'parts' may be combined into a smaller number of components and 'parts' or may be further separated into additional components and 'parts'. Additionally, components and 'parts' may be implemented to regenerate one or more CPUs within a device or a secure multimedia card.
명세서 전체에서 어떤 부분이 어떤 구성요소를 “포함”한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 “~부”, “~모듈” 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a part in the entire specification is said to “include” a certain element, this means that it does not exclude other elements but may further include other elements, unless specifically stated to the contrary. Additionally, terms such as “~unit” and “~module” used in the specification refer to a unit that processes at least one function or operation, which may be implemented as hardware or software, or as a combination of hardware and software.
명세서 전체에서 기재된 “a, b, 및 c 중 적어도 하나”의 표현은, ‘a 단독’, ‘b 단독’, ‘c 단독’, ‘a 및 b’, ‘a 및 c’, ‘b 및 c’, 또는 ‘a,b,c 모두’를 포괄할 수 있다.The expression “at least one of a, b, and c” used throughout the specification means ‘a alone’, ‘b alone’, ‘c alone’, ‘a and b’, ‘a and c’, ‘b and c’. ', or 'all a, b, c'.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Below, with reference to the attached drawings, embodiments of the present disclosure will be described in detail so that those skilled in the art can easily practice them. However, the present disclosure may be implemented in many different forms and is not limited to the embodiments described herein.
도 1은 본 명세서의 일 실시 예에 따른 서비스 서버의 각 구성을 개략적으로 도시하는 예시적인 도면이다.1 is an exemplary diagram schematically showing each configuration of a service server according to an embodiment of the present specification.
도 1을 참조하면, 서비스 서버(100)는 프로세서(110) 및 메모리(120)를 포함할 수 있고, 배달원에 주문을 할당하는 방법을 수행할 수 있다. 도 1에 도시된 서비스 서버(100)에는 본 실시 예들과 관련된 구성요소들만이 도시되어 있다. 따라서, 서비스 서버(100)에는 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다. 또한, 도 1에는 서비스 서버(100)로 도시되었지만, 배달원의 주문을 할당하는 방법을 수행할 수 있는 전자 장치라면 모두 서비스 서버(100)로 대체될 수 있다.Referring to FIG. 1, the service server 100 may include a processor 110 and a memory 120, and may perform a method of allocating an order to a delivery person. In the service server 100 shown in FIG. 1, only components related to the present embodiments are shown. Accordingly, it is obvious to those skilled in the art that the service server 100 may further include other general-purpose components in addition to the components shown in FIG. 1. In addition, although the service server 100 is shown in FIG. 1, any electronic device capable of performing a method of allocating a delivery person's order can be replaced with the service server 100.
프로세서(110)는 서비스 서버(100)에서의 배달원에 대한 주문 할당을 위한 전반적인 기능들을 제어하는 역할을 한다. 예를 들어, 프로세서(110)는 서비스 서버(100) 내의 메모리(120)에 저장된 프로그램들을 실행함으로써, 서비스 서버(100)를 전반적으로 제어한다. 프로세서(110)는 서비스 서버(100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.The processor 110 serves to control overall functions for order allocation to deliverymen in the service server 100. For example, the processor 110 generally controls the service server 100 by executing programs stored in the memory 120 within the service server 100. The processor 110 may be implemented as a central processing unit (CPU), a graphics processing unit (GPU), an application processor (AP), etc. provided in the service server 100, but is not limited thereto.
메모리(120)는 서비스 서버(100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 메모리(120)는 서비스 서버(100)에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(120)는 서비스 서버(100)에 의해 구동될 애플리케이션들, 드라이버들 등을 저장할 수 있다. 메모리(120)는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.The memory 120 is hardware that stores various data processed within the service server 100. The memory 120 may store data processed and data to be processed in the service server 100. Additionally, the memory 120 may store applications, drivers, etc. to be run by the service server 100. The memory 120 includes random access memory (RAM) such as dynamic random access memory (DRAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), CD- It may include ROM, Blu-ray or other optical disk storage, a hard disk drive (HDD), a solid state drive (SSD), or flash memory.
주문 할당(OA) 문제를 해결하기 위한 접근법으로는 일반적으로 경로 기반(routing-based) 접근법 및 매칭 기반(matching-based) 접근법이 있다. Approaches to solve order allocation (OA) problems generally include routing-based approaches and matching-based approaches.
경로 기반 접근법은 운영 과학(Operations Research) 분야에서 고전적인 문제인 차량 경로 문제(Vehicle Routing Problem; VRP)로 OA를 해결하는 것이며, 개별 최적화 문제가 배달원에 대한 최선의 주문 할당 및 각 배달원의 최적의 경로 세트를 동시에 결정하도록 구성된다. 이 경로 기반 접근법의 목적은 총 이동 거리를 최소화하거나 또는 모든 주문의 예상 배달 시간을 최소화하는 것과 같은 상이한 제약 조건이 주어질 때 특정 목적 함수를 최대화하기 위한 것이다. The route-based approach is to solve OA with the Vehicle Routing Problem (VRP), a classic problem in the field of Operations Research, where the individual optimization problem is the best assignment of orders to delivery people and the optimal route for each delivery person. It is configured to determine sets simultaneously. The purpose of this route-based approach is to maximize a specific objective function given different constraints, such as minimizing the total travel distance or minimizing the expected delivery time of all orders.
그러나, VRP는 일반적인 경우 효율적인 솔루션을 찾기 어려운 NP-난해(NP-hard) 문제이며, 이는 결정이 수초 내에 이루어져야 하는 음식 배달과 같은 실시간 시나리오에 대한 적용을 어렵게 한다.However, VRP is an NP-hard problem for which it is difficult to find an efficient solution in the general case, which makes it difficult to apply to real-time scenarios such as food delivery where decisions must be made within seconds.
이와는 대조적으로, 매칭 기반 접근법은 OA를 배달원들과 주문들 간의 매칭 문제로 해결한다. 각각의 배달원-주문 쌍은 매칭 스코어를 가지고, 최적의 할당은 총 매칭 스코어를 최대화하는 것으로 획득된다. OA를 VRP로 다루는 라우팅 기반 접근법과 비교하여, 매칭 기반 접근법 또는 알고리즘은 계산 측면에서 더욱 효율적이고 실시간 시나리오에 더욱 적합하며, 이러한 이유로 서비스 서버는 매칭 기반 접근법을 사용할 수 있다. In contrast, matching-based approaches solve OA as a matching problem between delivery people and orders. Each delivery person-order pair has a matching score, and the optimal assignment is obtained by maximizing the total matching score. Compared with the routing-based approach that treats OA as a VRP, the matching-based approach or algorithm is computationally more efficient and more suitable for real-time scenarios, and for this reason, the service server can use the matching-based approach.
이하에서는, 매칭 기반 접근법에 대해 더욱 상세히 논의한다.Below, we discuss the matching-based approach in more detail.
매칭 문제를 어떻게 해결하는지에 따라, 매칭 기반 접근법은 로컬(local) 및 전역(global) 할당 알고리즘으로 더 나누어질 수 있다.Depending on how the matching problem is solved, matching-based approaches can be further divided into local and global allocation algorithms.
로컬 할당 알고리즘은 주문들을 한번에 하나씩 고려하며 각각의 주문을 가장 가까운 배달원에게 할당하는 탐욕 접근법(greedy approach)을 사용할 수 있다. 이는 단순하고 편리하지만, 로컬 할당 알고리즘의 성능은 배달 작업 또는 주문이 처리되는 특정 순서에 크게 의존하며, 종종 최적화되지 않은 할당을 갖는 좋지 않은 솔루션을 제공하는 데 그칠 수 있다.The local allocation algorithm considers orders one at a time and may use a greedy approach, assigning each order to the nearest delivery person. Although this is simple and convenient, the performance of local allocation algorithms is highly dependent on the specific order in which delivery operations or orders are processed, and can often end up providing poor solutions with suboptimal allocations.
반대로, 전역 할당 알고리즘은 이분 그래프(bipartite graph)의 각 측면의 노드로서 주문 및 배달원을 설정하고, 여기서 이분 그래프의 엣지 가중치는 매칭 스코어에 대응할 수 있다. 전역 할당에서, OA는 이분 그래프 매칭 문제로 취급될 수 있으며, 전체 매칭 스코어를 최대화하는 전역 최적 솔루션이 다항 시간(polynomial time) 내에 획득될 수 있다. 이러한 이유로, 서비스 서버는 이 스코어 기반의 전역 할당 방법을 사용할 수 있다.In contrast, the global assignment algorithm sets the order and delivery person as nodes on each side of a bipartite graph, where the edge weights of the bipartite graph may correspond to the matching scores. In global assignment, OA can be treated as a bipartite graph matching problem, and a globally optimal solution that maximizes the overall matching score can be obtained in polynomial time. For this reason, the service server may use this score-based global allocation method.
도 2는 본 명세서의 일 실시 예에 따른 배달원에 대한 주문의 로컬 할당 및 전역 할당에 대한 예시를 보여준다.Figure 2 shows an example of local allocation and global allocation of orders to deliverymen according to an embodiment of the present specification.
왼쪽의 도면은 두 개의 스토어(S1, S2)에 대한 주문을 두 명의 배달원(D1, D2)에 할당하는 서비스 서버의 예시적인 로컬 할당을 도시한다. 서비스 서버는 스토어(S1) 및 스토어(S2)에 대한 주문을 한번에 하나씩 확인하며, 먼저 스토어(S1)에 대한 주문을 할당하기 위해 스토어(S1)로부터 가장 가까운 위치에 있는 배달원은 배달원(D1)임을 확인하고, 스토어(S1)에 대한 주문을 배달원(D1)에 할당할 수 있다. 그 다음, 서비스 서버는 스토어(S2)에 대한 주문을 할당하기 위해 스토어(S2)로부터 가장 가까운 위치에 있는 배달원 중 주문이 아직 할당되지 않은 배달원을 검색하며, 검색 결과로 배달원(D2)을 확인하고 스토어(S2)에 대한 주문을 배달원(D2)에 할당할 수 있다. 이 경우, 배달원(D1, D2)가 주문을 완료하는 데 걸리는 예상 시간은 총 6분이다.The diagram on the left shows an example local assignment of a service server assigning orders for two stores (S1, S2) to two deliverymen (D1, D2). The service server checks the orders for the store (S1) and the store (S2) one at a time. In order to first allocate orders to the store (S1), the delivery person closest to the store (S1) is the delivery person (D1). After confirming, the order for the store (S1) can be assigned to the delivery person (D1). Next, in order to assign an order to the store (S2), the service server searches for a delivery person who has not yet been assigned an order among the delivery people closest to the store (S2), identifies the delivery person (D2) as a result of the search, and The order for the store (S2) can be assigned to the delivery person (D2). In this case, the estimated time it takes for deliverymen (D1, D2) to complete the order is a total of 6 minutes.
오른쪽의 도면은 두 개의 스토어(S1, S2)에 대한 주문을 두 명의 배달원(D1, D2)에 할당하는 서비스 서버의 예시적인 전역 할당을 도시한다. 로컬 할당과 달리, 서비스 서버는 하나의 지리적 구역 내에 위치한 모든 스토어(S1, S2)에 대한 주문과, 해당 지리적 구역 또는 해당 지리적 구역의 인근 지역에 위치한 모든 배달원(D1, D2)에 대한 정보를 전역적으로 확인하고 이들을 이분 그래프 매칭 문제에 적용시켜 최적의 솔루션으로 주문을 할당할 수 있다. 전역 할당 결과 스토어(S1)에 대한 주문은 배달원(D2)에 할당되고 스토어(S2)에 대한 주문은 배달원(D1)에 할당될 수 있으며, 이 경우, 배달원(D1, D2)가 주문을 완료하는 데 걸리는 예상 시간은 총 4분으로, 로컬 할당을 통한 주문 할당의 배송 시간보다 더 짧은 시간이 소요되는 것을 확인할 수 있다. The diagram on the right shows an example global allocation of a service server that assigns orders for two stores (S1, S2) to two deliverymen (D1, D2). Unlike local allocation, the service server globally distributes information about orders for all stores (S1, S2) located within a geographic area and for all delivery drivers (D1, D2) located in that geographical area or in the vicinity of that geographical area. By verifying these problems and applying them to the bipartite graph matching problem, orders can be assigned to the optimal solution. As a result of global assignment, orders for store (S1) may be assigned to delivery person (D2) and orders for store (S2) may be assigned to delivery person (D1). In this case, delivery person (D1, D2) may complete the order. The estimated time it takes is a total of 4 minutes, and you can see that it takes less time than the delivery time of order allocation through local allocation.
도 3은 본 명세서의 일 실시 예에 따른 배달원에 대한 주문의 로컬 할당 및 전역 할당에 대한 다른 예시를 보여준다.Figure 3 shows another example of local allocation and global allocation of orders to deliverymen according to an embodiment of the present specification.
왼쪽의 도면은 두 개의 주문(o1, o2)을 두 명의 배달원(d1, d2)에 할당하는 서비스 서버의 예시적인 로컬 할당을 도시한다. 로컬 할당에서 주문은 탐욕 접근법을 사용하여 요청된 순서대로 처리될 수 있다. 주문(o1)은 배달원(d1)보다 배달원(d2)에 더 가까운 위치에서 발생하였기 때문에 주문(o1)은 먼저 배달원(d2)에 할당된다. 이 경우, 주문(o2)은 남은 배달원(d1)에 할당되어야 하며, 이는 배달원(d1)으로부터 주문(o2)까지 이동하기 위한 긴 픽업 거리를 초래하는 좋지 않은 할당으로 이어질 수 있다. The diagram on the left shows an example local assignment of a service server assigning two orders (o1, o2) to two deliverymen (d1, d2). In local allocation, orders can be processed in the order requested using a greedy approach. Because the order (o1) occurred at a location closer to the delivery person (d2) than the delivery person (d1), the order (o1) is first assigned to the delivery person (d2). In this case, the order o2 must be assigned to the remaining delivery person d1, which may lead to a poor assignment resulting in a long pickup distance to travel from the delivery person d1 to the order o2.
오른쪽의 도면은 두 개의 주문(o1, o2)을 두 명의 배달원(d1, d2)에 할당하는 서비스 서버의 예시적인 전역 할당을 도시한다. 전역 할당은 이 문제를 해결하고 주문(o1)이 배달원(d1)에 할당되고 주문(o2)가 배달원(d2)에 할당되는, 모든 주문에 대한 전역 최적 솔루션을 획득할 수 있다. 본 실시 예에서 매칭 스코어는 픽업 거리를 기반으로 계산되며 픽업 거리에 반비례할 수 있고, 즉 거리가 작을수록 매칭 스코어는 더 높을 수 있다. 이와 같이, 전역 할당은 이분 그래프의 매칭 스코어를 사용하여 모든 현재 주문에 대한 최선의 주문 할당 솔루션을 획득할 수 있다. The diagram on the right shows an example global allocation of a service server assigning two orders (o1, o2) to two deliverymen (d1, d2). Global allocation can solve this problem and obtain a global optimal solution for all orders, where order (o1) is assigned to delivery person (d1) and order (o2) is assigned to delivery person (d2). In this embodiment, the matching score is calculated based on the pickup distance and may be inversely proportional to the pickup distance, that is, the smaller the distance, the higher the matching score may be. In this way, global allocation can use the matching score of the bipartite graph to obtain the best order allocation solution for all current orders.
한편, 매칭 스코어는 매칭 기반 접근법에서의 할당의 성능을 개선할 수 있는 중요한 요소이다. 일 실시 예에서, 서비스 서버는 배달원의 픽업 거리(즉, 배달원이 그의 현재 위치에서 주문과 연관된 스토어까지 음식을 픽업하기 위해 이동하는 거리)를 매칭 스코어로 결정할 수 있다. 이는 배달원의 픽업 거리를 매칭 스코어로 직접 활용하는 가장 직관적인 방법일 수 있다. 그러나, 고객 경험(CX) 및 배달원의 주문 수락율을 개선하기 위한 주문 할당의 목적에 있어서 균형을 맞추기 위해, 배달원의 대기 시간, 배달원의 지역 선호도, 초과근무 가능성, 및 신규 고객 혜택과 같은 인자를 추가적으로 고려하여 매칭 스코어를 계산할 수 있다. 일 실시 예에서, 이들 인자 및 예측의 일부는 이력 데이터로 트레이닝된 선호도 모델과 같은 기계 학습 모델의 출력을 사용하여 획득될 수 있다. Meanwhile, matching score is an important element that can improve allocation performance in matching-based approaches. In one embodiment, the service server may determine the delivery person's pickup distance (i.e., the distance the delivery person travels to pick up the food from his current location to the store associated with the order) as the matching score. This may be the most intuitive way to directly use the delivery person's pickup distance as a matching score. However, in order to strike a balance for the purpose of order allocation to improve customer experience (CX) and delivery driver order acceptance rate, factors such as delivery driver waiting time, delivery person location preference, overtime availability, and new customer benefits are taken into account. With additional considerations, a matching score can be calculated. In one embodiment, some of these factors and predictions may be obtained using the output of a machine learning model, such as a preference model trained with historical data.
나아가, 매칭 스코어 뿐만 아니라, 서비스 서버는 스코어에 상이한 가중치를 부여함으로써 특정 비즈니스 목표를 달성하기 위한 다양한 전략이 설계될 수 있다. 가중치는 오프라인 시뮬레이션, 온라인 실험, 온라인 최적화, 및 강화 학습(reinforcement learning)과 같은 방법에 의해 결정될 수 있다.Furthermore, in addition to the matching score, the service server can design various strategies to achieve specific business goals by assigning different weights to the scores. Weights can be determined by methods such as offline simulation, online experimentation, online optimization, and reinforcement learning.
이하, 서비스 서버에서 배달원에게 주문을 할당하기 위한 방법의 흐름을 도 4를 참조하여 상세하게 설명하기로 한다. Hereinafter, the flow of a method for assigning an order from a service server to a delivery person will be described in detail with reference to FIG. 4.
도 4는 본 명세서의 일 실시 예에 따른 서비스 서버에서의 배달원에 대한 주문 할당 방법의 흐름을 나타내는 순서도이다. 도 4에 도시된 각 단계의 수행 주체는 도 1에 도시된 서비스 서버(100)를 포함할 수 있다.Figure 4 is a flowchart showing the flow of an order allocation method for a delivery person in a service server according to an embodiment of the present specification. The subject performing each step shown in FIG. 4 may include the service server 100 shown in FIG. 1 .
단계 S410에서, 서비스 서버는 복수의 주문에 대한 제1 정보 및 복수의 배달원에 대한 제2 정보를 확인할 수 있다. 서비스 서버는 배달 중개 애플리케이션을 통해 수신한 복수의 주문을 확인하고, 복수의 주문에 대한 배달을 할당할 복수의 배달원에 대한 정보를 확인할 수 있다.In step S410, the service server may check first information about a plurality of orders and second information about a plurality of delivery workers. The service server can check multiple orders received through the delivery brokerage application and check information about multiple delivery workers who will allocate delivery for the multiple orders.
일 실시 예에서, 복수의 주문 및 이를 할당하기 위한 복수의 배달원은 지리적 구역별로 확인될 수 있다. 예를 들어, 제1 정보는 제1 지리적 구역과 연관된 복수의 주문에 대한 정보를 포함하고, 제2 정보는 제1 지리적 구역 및 제1 지리적 구역과 인접한 지리적 구역 내의 복수의 배달원에 대한 정보를 포함할 수 있다. 제1 지리적 구역과 연관된 주문은 주문한 음식을 조리하는 스토어(예를 들어, 식당) 및 고객이 주문시 설정한 배달 장소 중 적어도 하나가 제1 지리적 구역 내에 위치하는 주문을 포함할 수 있다. 서비스 서버는 각 지리적 구역과 연관된 들어오는 복수의 주문 정보를 확인하고, 복수의 주문을 할당할 수 있는 해당 지리적 구역 또는 인접한 지리적 구역 내에 현재 위치하고 있는 복수의 배달원을 확인하여 M-대-N 매칭을 준비할 수 있다.In one embodiment, multiple orders and multiple delivery drivers to assign them may be identified by geographic region. For example, the first information includes information about a plurality of orders associated with a first geographic region, and the second information includes information about a plurality of delivery persons within the first geographic region and a geographic region adjacent to the first geographic region. can do. Orders associated with the first geographic area may include orders where at least one of a store (e.g., a restaurant) that prepares the ordered food and a delivery location selected by the customer when ordering is located within the first geographic area. The service server verifies the incoming multiple order information associated with each geographic zone and prepares M-to-N matching by identifying multiple couriers currently located within that geographic zone or adjacent geographic zones to which multiple orders can be assigned. can do.
일 실시 예에서, 제1 정보 및 제2 정보를 확인하는 것은 설정된 주기로 수행될 수 있다. 서비스 서버는 복수의 주문 및 복수의 배달원의 확인을 예를 들어, 30초 주기로 할 수 있으며, 현재 사이클 주기에서 확인된 복수의 주문 및 복수의 배달원의 M-대-N 매칭을 수행하고, 현재 사이클 주기에서 매칭 및 할당되지 않은 주문 및 배달원은 다음 사이클 주기에서 매칭되도록 설정할 수 있다. 일 실시 예에서, 서비스 서버는 현재 사이클 주기에서 할당되지 않은 주문 또는 배달원이 다음 사이클 주기에서 보다 우선적으로 할당될 수 있도록 별도의 가중치를 설정할 수 있다. 설정된 가중치는 주문 또는 배달원이 매칭되기 위한 매칭 스코어에 영향을 미칠 수 있으며, 가중치가 설정된 주문 및 배달원 중 적어도 하나를 포함하는 주문 및 배달원 쌍은 높은 스코어가 부여될 수 있다.In one embodiment, checking the first information and second information may be performed at a set cycle. The service server may confirm multiple orders and multiple delivery persons, for example, in a 30-second cycle, perform M-to-N matching of multiple orders and multiple delivery persons confirmed in the current cycle period, and perform M-to-N matching of the multiple orders and multiple delivery persons confirmed in the current cycle period. Orders and delivery personnel that are not matched and assigned in a cycle can be set to be matched in the next cycle cycle. In one embodiment, the service server may set a separate weight so that orders or delivery personnel not assigned in the current cycle cycle can be assigned more priority in the next cycle cycle. The set weight may affect the matching score for matching an order or a delivery person, and a pair of an order and a delivery person that includes at least one of the order and the delivery person for which the weight is set may be given a high score.
일 실시 예에서, 제1 정보 및 제2 정보를 확인하는 주기는 제1 지리적 구역의 주문량을 기반으로 결정될 수 있다. 서비스 서버는 제1 지리적 구역의 지역 특성을 고려하여 주문 및 배달원 정보를 확인하고 이에 대한 매칭을 수행하는 주기를 적응적으로 결정할 수 있으며, 예를 들어, 제1 지리적 구역이 주거 지역 및 상가 지역이 밀집한 지역으로 주문량이 상대적으로 많은 지역이라면 주기를 짧게 하여 배달원에 대한 주문 할당이 원활하게 수행되도록 하고 한 주기 사이클 당 계산 부하를 감소시키며, 배달원 미할당 상태로 오래된 주문(즉 롱테일 주문)의 비율을 감소시킬 수 있다. 반면, 제1 지리적 구역이 주거 지역 또는 상가 지역이 밀집되어 있지 않아 주문량이 상대적으로 적은 지역이라면 주기를 길게 하여 전체 계산 부하를 줄이고 주문 할당의 효율성을 높일 수 있다. 제1 지리적 구역의 주문량은 서비스 서버와 연관된 데이터베이스에 저장된 지역별 주문 이력 데이터를 기반으로 확인될 수 있다.In one embodiment, the frequency of checking the first information and the second information may be determined based on the order quantity in the first geographic region. The service server may adaptively determine the cycle for checking order and delivery person information and performing matching by considering the regional characteristics of the first geographical area. For example, the first geographical area may be a residential area and a commercial area. If it is a dense area with a relatively high order volume, the cycle can be shortened to ensure order allocation to delivery workers is performed smoothly, reduce the calculation load per cycle, and reduce the proportion of old orders (i.e. long-tail orders) with unassigned delivery workers. can be reduced. On the other hand, if the first geographical area is an area where residential or commercial areas are not densely populated and the order volume is relatively low, the overall calculation load can be reduced and the efficiency of order allocation can be increased by lengthening the cycle. The order quantity for the first geographic region may be confirmed based on regional order history data stored in a database associated with the service server.
그 외에도, 제1 정보 및 제2 정보를 확인하는 주기는 피크 타임인지 여부, 온라인 상태인 전체 배달원 중 주문이 할당되지 않은 배달원의 비율, 전체 주문 중 롱테일 주문의 비율, 배달 시간과 연관된 통계 데이터 등을 기반으로 결정될 수 있다.In addition, the frequency of checking the first information and the second information is whether it is peak time, the proportion of delivery workers who are not assigned an order among all delivery workers who are online, the proportion of long-tail orders among all orders, statistical data related to delivery time, etc. It can be decided based on .
일 실시 예에서, 제1 지리적 구역에 위치한 배달원은 제1 지리적 구역과 연관된 주문 및 제1 지리적 구역에 인접한 제2 지리적 구역과 연관된 주문을 동시에 할당받을 수 있다. 이 경우, 서비스 서버는 배달원이 현재 위치하는 제1 지리적 구역과 연관된 주문을 배달원에게 먼저 할당하고, 할당되지 못한 제2 지리적 구역과 연관된 주문은 제2 지리적 구역과 연관된 주문 할당에 있어서 다음 사이클의 주문 할당으로 넘길 수 있다. 이때, 서비스 서버는 할당되지 못한 제2 지리적 구역과 연관된 주문이 다음 사이클에서 우선적으로 할당되도록 가중치를 부여할 수 있다.In one embodiment, a delivery person located in a first geographic zone may be simultaneously assigned an order associated with the first geographic zone and an order associated with a second geographic zone adjacent to the first geographic zone. In this case, the service server first assigns to the delivery person the order associated with the first geographic zone in which the delivery person is currently located, and the order associated with the second geographic zone that was not assigned is the order of the next cycle in the order allocation associated with the second geographic zone. It can be passed on as an allocation. At this time, the service server may assign weight so that orders associated with the unallocated second geographic area are allocated preferentially in the next cycle.
일 실시 예에서, 제1 정보는 배달원이 할당되지 않은 복수의 주문에 대한 정보를 포함하고, 제2 정보는 배달 가능으로 설정된 복수의 배달원에 대한 정보를 포함할 수 있다. 서비스 서버는 배달원이 아직 할당되지 않은 주문에 대한 정보만을 확인함으로써 하나의 주문에 대해 복수의 배달원이 할당되는 것을 방지할 수 있다. 또한, 배달원은 그의 단말기에 설치된 배달원용 애플리케이션을 사용하여 배달원이 현재 배달 가능 상태인지, 퇴근, 휴식, 휴가 등으로 인해 배달이 불가능한 상태인지 여부를 입력할 수 있고, 입력된 정보는 서비스 서버에 전달될 수 있다. 서비스 서버는 전달된 정보를 기반으로 현재 배달 가능한 배달원의 정보만을 확인하여 주문 할당을 수행함으로써 주문이 현재 배달 가능한 배달원에게만 원활하게 할당되도록 할 수 있다.In one embodiment, the first information may include information about a plurality of orders to which no delivery person is assigned, and the second information may include information about a plurality of delivery persons set as available for delivery. The service server can prevent multiple delivery people from being assigned to one order by only checking information about orders to which delivery people have not yet been assigned. In addition, the delivery person can use the delivery application installed on his terminal to enter whether the delivery person is currently available for delivery or is unable to deliver due to work, rest, vacation, etc., and the entered information is transmitted to the service server. It can be. The service server can perform order allocation by checking only the information of the delivery person currently available for delivery based on the delivered information, thereby ensuring that the order is smoothly assigned only to the delivery person currently available for delivery.
설명의 편의를 위해, 이하 도 5에 도시된 예시와 함께 설명하기로 한다.For convenience of explanation, the description will be given below with the example shown in FIG. 5.
도 5는 본 명세서의 일 실시 예에 따른 배달원에 대한 주문의 전역 할당 프로세스에 대한 개략도이다.5 is a schematic diagram of a global allocation process of orders to deliverymen according to an embodiment of the present specification.
도 4의 단계 S410에서 서비스 서버가 복수의 주문 및 복수의 배달원에 대한 정보를 확인하면 도 5의 테이블(510)과 같은 테이블이 생성될 수 있다. 도 5에 도시된 예시에서, 서비스 서버는 3개의 주문(주문1, 주문2, 주문3) 및 3명의 배달원(배달원1, 배달원2, 배달원3)에 대한 정보를 확인하였고, 테이블의 각 칸은 3개의 주문 및 3명의 배달원으로 구성될 수 있는 9개의 배달원 및 주문 쌍을 나타낼 수 있다. 이와 같이 테이블(510)이 구성된 후, 서비스 서버는 테이블(510)에 대한 필터링 작업을 수행할 수 있으며, 이를 설명하기 위해 다시 도 4로 돌아간다.If the service server confirms information about multiple orders and multiple delivery workers in step S410 of FIG. 4, a table such as table 510 of FIG. 5 may be created. In the example shown in Figure 5, the service server confirmed information about three orders (order 1, order 2, order 3) and three delivery people (delivery person 1, delivery person 2, delivery person 3), and each column of the table is It can represent 9 delivery person and order pairs, which can consist of 3 orders and 3 delivery people. After the table 510 is configured in this way, the service server can perform a filtering operation on the table 510, and to explain this, we return to FIG. 4.
단계 S420에서, 서비스 서버는 제1 정보 및 제2 정보 중 적어도 하나를 기반으로 복수의 주문 및 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인할 수 있다. 이는 서비스 서버에서 다양한 요소를 고려하여 고객 경험 개선 또는 배달원의 배달 수락율 향상 측면에서 좋지 않을 것으로 예상되는 주문 및 배달원 간의 쌍을 사전에 필터링하여 제거하는 작업을 포함할 수 있다. 이때, 서비스 서버는 배달원의 선호 지역, 스토어의 음식 준비 시간, 배달원의 대기 시간, 하나의 주문을 할당하기 위한 후보 배달원의 수, 배달원의 픽업 거리, 드랍오프 거리(즉, 배달원이 스토어에서 음식을 픽업하여 배달 목적지까지 이동하는 거리), 배달 시간, 장애물(강, 군사시설 등), 배달 거부 이력, 배달원의 교통 수단 등과 같은 다양한 요소를 고려하여 필터링을 수행할 수 있다.In step S420, the service server may confirm a subset of pairs of orders and delivery workers selected from each set of pairs between a plurality of orders and a plurality of delivery men based on at least one of the first information and the second information. This may involve the service server considering various factors to pre-filter and remove pairs between orders and delivery personnel that are expected to be unfavorable in terms of improving the customer experience or improving the delivery acceptance rate of the delivery person. At this time, the service server determines the delivery person's preferred area, the store's food preparation time, the delivery person's waiting time, the number of candidate delivery people for assigning one order, the delivery person's pick-up distance, and the drop-off distance (i.e., the delivery person picks up the food from the store). Filtering can be performed by considering various factors such as (distance traveled from pick-up to delivery destination), delivery time, obstacles (rivers, military facilities, etc.), delivery refusal history, delivery person's transportation method, etc.
보다 구체적으로, 서비스 서버는 우선 이분 그래프의 차원을 줄이기 위해 할당에 적합하지 않은 주문 및 배달원을 제거하는 1차 필터링을 수행하고, 이어서 각각의 주문 및 배달원 쌍에 대한 2차 필터링을 수행할 수 있다.More specifically, the service server may first perform primary filtering to remove orders and delivery people that are not suitable for assignment to reduce the dimensionality of the bipartite graph, and then perform secondary filtering for each order and delivery person pair. .
일 실시 예에서, 1차 필터링은 배달원에 대한 필터링을 포함할 수 있으며, 현재 휴무, 휴식 등으로 인해 배달 가능한 상태가 아닌 배달원(즉, 온라인이 아닌 오프라인 배달원)이나, 현재 다른 배달을 수행 중인 배달원은 필터링되어 배달원 풀에서 제외될 수 있다. 다만, 일 실시 예에서, 현재 온라인 상태인 배달원의 수가 적고, 현재 배달을 진행 중인 배달원이라도 배달 완료 예상 시각까지 얼마 남지 않은 배달원의 경우는 배달원 풀에 포함시켜 주문을 할당할 후보로 지정할 수 있다.In one embodiment, the primary filtering may include filtering for delivery workers, including those who are not currently available for delivery due to holidays, breaks, etc. (i.e., offline rather than online delivery workers), or those who are currently performing other deliveries. may be filtered and excluded from the delivery person pool. However, in one embodiment, the number of delivery workers who are currently online is small, and even if a delivery worker is currently in the process of delivering, a delivery worker who has not long left until the expected delivery completion time may be included in the delivery worker pool and designated as a candidate for order allocation.
일 실시 예에서, 1차 필터링은 주문에 대한 필터링을 포함할 수 있으며, 주문과 연관된 스토어에서 주문 완료 예상 시각까지 남은 시간이 예를 들어, 15분을 초과하는 경우에는 필터링되어 주문 풀에서 제외될 수 있다. 다만, 일 실시 예에서, 주문에 배달원이 할당되지 않은 채 예를 들어, 30분 이상 방치된 경우, 이는 롱테일 주문으로 분류되어 신속하게 처리될 필요가 있으므로 주문 풀에서 제외하지 않고 배달원을 할당할 후보로 지정할 수 있다.In one embodiment, the primary filtering may include filtering for orders to be filtered and excluded from the order pool if the time remaining until the order's expected completion time at the store associated with the order exceeds, for example, 15 minutes. You can. However, in one embodiment, if an order is left unassigned to a delivery person for, for example, more than 30 minutes, it is classified as a long tail order and needs to be processed quickly, so it is not excluded from the order pool and is a candidate for assigning a delivery person. It can be specified as .
일 실시 예에서, 2차 필터링은 복수의 주문 및 복수의 배달원으로 구성된 각각의 주문 및 배달원 쌍에 대해 수행될 수 있으며, 픽업 거리(배달원의 현재 위치로부터 주문과 연관된 스토어의 위치까지의 거리) 및 드랍오프 거리(스토어의 위치로부터 배달 목적지까지의 거리) 제한을 포함할 수 있다. 픽업 거리 및 드랍오프 거리 제한에 대응하는 임계값은 배달원의 교통 수단(예를 들어, 자동차, 오토바이, 자전거, 도보)에 따라 달라질 수 있다. In one embodiment, secondary filtering may be performed on each order and delivery person pair consisting of multiple orders and multiple delivery drivers, including pickup distance (the distance from the delivery person's current location to the location of the store associated with the order) and May include drop-off distance (distance from the store's location to the delivery destination) restrictions. Thresholds corresponding to pickup distance and drop-off distance limits may vary depending on the delivery person's mode of transportation (e.g., car, motorcycle, bicycle, walking).
일 실시 예에서, 현재 시각이 출퇴근 시간과 같이 도로 교통이 혼잡한 시간대에 해당하고, 픽업 거리 및 드랍오프 거리 중 적어도 하나가 일정 거리를 초과하는 경우, 자동차를 이용하는 배달원은 필터링되어 배달원 풀에서 제외될 수 있다. In one embodiment, if the current time corresponds to a time when road traffic is congested, such as rush hour, and at least one of the pick-up distance and drop-off distance exceeds a certain distance, delivery workers using cars are filtered out and excluded from the delivery worker pool. It can be.
일 실시 예에서, 배달원이 주문과 연관된 스토어까지 이동하는 경로 상에 사전 정의된 장애물(예를 들어, 강, 산, 군사시설)이 있는 경우, 상기 주문 및 배달원의 쌍은 필터링될 수 있다. 즉, 현재 서울의 강남에 위치하는 배달원은 강북에 위치하는 스토어에 대한 주문을 할당받을 수 없도록 필터링될 수 있다.In one embodiment, the pair of order and delivery person may be filtered if there are predefined obstacles (e.g., rivers, mountains, military installations) on the delivery person's path to the store associated with the order. In other words, delivery workers currently located in Gangnam, Seoul may be filtered so that they cannot be assigned orders for stores located in Gangbuk.
일 실시 예에서, 배달원이 주문을 수락하지 않고 거부한 경험이 있다면, 해당 배달원에게는 동일한 주문에 대한 수락 요청이 전송되지 않도록 필터링될 수 있다.In one embodiment, if a delivery person has a history of rejecting an order rather than accepting it, the order may be filtered so that an acceptance request for the same order is not sent to that delivery person.
일 실시 예에서, 제2 정보는 복수의 배달원의 선호 지역에 대한 정보를 포함하고, 서비스 서버가 서브세트를 확인하는 것은 복수의 배달원 각각의 선호 지역에 대한 정보를 기반으로 복수의 주문을 필터링하는 것을 포함할 수 있다. 배달원은 배달원이 배달하기를 선호하는 지역에 대한 정보를 서비스 애플리케이션을 통해 설정할 수 있고, 설정된 정보는 서비스 서버에 전달될 수 있다. 서비스 서버는 복수의 주문 및 복수의 배달원 간의 각 쌍을 확인하고, 배달원과 배달원의 선호 지역과 연관된 주문의 쌍만이 서브세트에 포함되도록 선택하고, 배달원과 배달원의 선호 지역과 연관되지 않은 주문의 쌍은 필터링하여 서브세트에 포함되지 않도록 제거할 수 있다. 이와 같은 필터링을 통해 서비스 서버는 배달원이 선호하는 지역의 주문만이 할당되도록 하여 배달원의 주문 수락율을 높이고 신속하고 정확한 배송으로 인한 고객 경험을 향상시킬 수 있다.In one embodiment, the second information includes information about the preferred areas of the plurality of delivery workers, and the service server determines the subset to filter the plurality of orders based on the information about the preferred areas of each of the plurality of delivery workers. may include The delivery person can set information about the area the delivery person prefers to deliver to through the service application, and the set information can be transmitted to the service server. The service server checks each pair between a plurality of orders and a plurality of delivery men, selects only the pairs of orders associated with the delivery man and the delivery man's preferred region to be included in the subset, and pairs of orders not associated with the delivery man and the delivery man's preferred region. can be removed from being included in the subset by filtering. Through such filtering, the service server can ensure that only orders from the delivery person's preferred region are assigned, thereby increasing the delivery person's order acceptance rate and improving customer experience through quick and accurate delivery.
일 실시 예에서, 주문 및 배달원 쌍의 서브세트는 각 주문과 쌍을 이루는 배달원의 수가 일정 수 이하가 되도록 선택될 수 있다. 서비스 서버는 다운스트림 서비스의 범람을 방지하기 위해 각 주문이 기껏해야 일정 수(예를 들어, 10개)의 후보 배달원을 갖도록 제한함으로써, 매칭 시 계산 부하가 초과되지 않도록 조절할 수 있다. 이는 서비스 서버가 예를 들어, 특정 주문과 연관된 스토어로부터 가장 가까운 직선 거리에 위치한 10명의 배달원만을 선택하고 이들을 특정 주문에 대한 후보 배달원으로 설정함으로써 설계될 수 있다.In one embodiment, a subset of order and delivery person pairs may be selected such that the number of delivery persons paired with each order is less than or equal to a certain number. The service server can regulate the computational load during matching so that it is not exceeded by limiting each order to have at most a certain number (e.g., 10) of candidate couriers to prevent flooding of downstream services. This can be designed by having the service server select, for example, only the 10 delivery workers located within the closest straight line distance from the store associated with a specific order and set them as candidate delivery workers for the specific order.
일 실시 예에서, 제1 정보는 복수의 주문에 대응하는 스토어의 주문 수락 시간에 대한 정보를 포함하고, 서비스 서버가 서브세트를 확인하는 것은 주문 수락 시간에 대한 정보를 기반으로 복수의 주문에 대응하는 준비 완료 예상 시각을 확인하고, 복수의 주문 중 주문 완료 예상 시각까지 남은 시간이 일정 시간 이내인 주문을 기반으로 서브세트를 확인하는 것을 포함할 수 있다. In one embodiment, the first information includes information about the order acceptance time of the store corresponding to the plurality of orders, and the service server determines the subset corresponding to the plurality of orders based on the information about the order acceptance time. This may include checking the expected preparation completion time and checking a subset based on orders for which the remaining time until the expected order completion time is within a certain time among the plurality of orders.
고객의 주문이 배달 중개 애플리케이션을 통해 접수되면, 주문 정보는 주문에 대응하는 스토어의 단말에 전송되고, 스토어는 해당 주문을 수락 또는 거부할 수 있다. 스토어가 주문을 수락하고 주문된 음식의 준비를 시작하면, 서비스 서버는 주문 수락 시간 및 주문에 대응하는 음식의 준비 완료 예상 시각을 확인할 수 있다. 서비스 서버와 연관된 데이터베이스는 스토어의 음식별 및 시간대별 준비 완료 시간에 대한 이력 정보를 포함할 수 있고, 서비스 서버는 데이터베이스로부터 이력 정보를 추출하여 스토어가 주문을 수락한 시점부터의 음식 준비 완료 시점까지 걸릴 시간을 예측할 수 있다. 주문에 대응하는 준비 완료 예상 시각은 스토어의 주문 수락 시각에 이력 정보를 기반으로 예측된 준비 시간을 더함으로써 확인될 수 있다.When a customer's order is received through a delivery brokerage application, the order information is transmitted to the store's terminal corresponding to the order, and the store can accept or reject the order. When the store accepts the order and begins preparing the ordered food, the service server can check the order acceptance time and the expected completion time of the food corresponding to the order. The database associated with the service server may include history information about the preparation completion time for each food and time period of the store, and the service server extracts the history information from the database from the time the store accepts the order to the time the food is prepared. You can predict how long it will take. The expected preparation time corresponding to an order can be confirmed by adding the predicted preparation time based on history information to the store's order acceptance time.
서비스 서버는 복수의 주문 중 주문 완료 예상 시각까지 남은 시간이 일정 시간(예를 들어, 15분) 이내인 주문과 배달원 간의 쌍만이 서브세트에 포함되도록 제한할 수 있다. 주문 완료 예상 시각까지 남은 시간이 너무 많이 남는 경우, 이러한 주문이 배달원에게 할당된다면 배달원은 픽업을 위해 스토어까지 이동한 후에도 상당한 시간을 기다려야 할 것이고, 이는 주문 할당의 효율성을 해칠 수 있다. 따라서, 서비스 서버는 남은 시간이 일정 시간을 초과하는 주문을 포함하는 쌍은 서브세트에 포함되지 않도록 필터링을 수행함으로써, 배달원의 대기 시간을 줄이고 배달원의 배달 효율을 증가시킬 수 있다. The service server may limit the subset to include only pairs between an order and a delivery person whose time remaining until the expected order completion time is within a certain time (for example, 15 minutes) among the plurality of orders. If there is too much time remaining until the expected order completion time, if these orders are assigned to a delivery person, the delivery person will have to wait a significant amount of time even after traveling to the store for pickup, which can harm the efficiency of order allocation. Accordingly, the service server can reduce the waiting time of the delivery person and increase the delivery efficiency of the delivery person by performing filtering so that pairs containing orders whose remaining time exceeds a certain time are not included in the subset.
일 실시 예에서, 일정 시간은 복수의 주문에 대응하는 스토어의 대기 공간의 크기를 기반으로 결정될 수 있다. 서비스 서버는 스토어의 대기 공간의 크기가 협소한 경우, 수많은 배달원의 대기로 인해 스토어의 영업에 지장이 생길 수 있으므로 일정 시간을 상대적으로 작은 시간(예를 들어, 8분)으로 설정할 수 있다.In one embodiment, the certain amount of time may be determined based on the size of the store's waiting space corresponding to a plurality of orders. If the size of the store's waiting space is small, the service server may set the certain time to a relatively small time (for example, 8 minutes) because the store's business may be disrupted due to the waiting of numerous delivery workers.
한편, 복수의 주문 중 제1 주문의 주문 완료 예상 시각까지 남은 시간이 일정 시간을 초과하여, 예를 들어, 20분인 경우라도, 복수의 배달원 중 제1 배달원이 제1 주문과 연관된 스토어로 이동하는 데 걸리는 예상 시간이 18분인 경우라면 제1 배달원의 스토어 도착 후 예상 대기 시간은 2분밖에 되지 않으므로, 이러한 경우까지 제1 주문을 포함하는 쌍을 서브세트에서 제외시킬 필요는 없을 것이다. 따라서, 일 실시 예에서, 서비스 서버는 복수의 주문 중 제1 주문의 주문 완료 예상 시각까지 남은 시간을 제1 시간으로 확인하고, 복수의 배달원 중 제1 배달원의 스토어까지 이동하는 데 걸릴 예상 시간을 제2 시간으로 확인하며, 제1 시간에서 제2 시간을 뺀 시간(즉, 예상 대기 시간)이 일정 시간(예를 들어, 5분)을 넘는 경우에만, 제1 주문 및 제1 배달원 쌍을 서브세트에 포함되지 않도록 필터링할 수 있다. 이와 같이, 서비스 서버는 배달원의 대기 시간을 고려하여 주문 및 배달원 쌍의 필터링 여부를 결정함으로써 배달원의 불필요한 대기 시간을 감소시키고 배달원에 대한 효율적인 주문 할당을 수행할 수 있다.Meanwhile, even if the time remaining until the expected order completion time of the first order among the plurality of orders exceeds a certain time, for example, 20 minutes, the first delivery person among the plurality of orders moves to the store associated with the first order. If the expected time to order is 18 minutes, then the expected waiting time after the first delivery person arrives at the store is only 2 minutes, so in this case there would be no need to exclude the pair containing the first order from the subset. Therefore, in one embodiment, the service server determines the remaining time until the expected order completion time of the first order among the plurality of orders as the first time, and determines the estimated time it will take to travel to the store of the first delivery person among the plurality of delivery people. It checks with the second time, and serves the pair of the first order and the first delivery person only if the first time minus the second time (i.e., the expected waiting time) exceeds a certain amount of time (e.g., 5 minutes). You can filter them out so they are not included in the set. In this way, the service server can reduce the unnecessary waiting time of the delivery person and perform efficient order allocation to the delivery person by determining whether to filter the order and delivery person pair in consideration of the waiting time of the delivery person.
일 실시 예에서, 제2 정보는 복수의 배달원의 교통 수단에 대한 정보를 포함하고, 서비스 서버가 서브세트를 확인하는 것은 복수의 배달원 각각의 교통 수단에 대한 정보를 기반으로 복수의 주문을 필터링하는 것을 포함할 수 있다. 예를 들어, 주문에 대응하는 픽업 거리 및 드랍오프 거리가 상당히 멀거나, 주문한 음식의 무게가 상당히 무거운 경우, 도보를 이용하는 배달원은 해당 주문에 적합하지 않을 수 있으므로 미리 필터링되어 제거될 수 있다. 다른 예로서, 주문에 대응하는 픽업 경로 또는 드랍오프 경로의 교통 체증이 심하거나, 차량이 진입하기 어려운 경로를 포함하는 경우, 차량(예를 들어, 자동차, 오토바이)으로 이동하는 배달원과 상기 주문 간의 쌍은 사전에 필터링되어 제거될 수 있다.In one embodiment, the second information includes information about the means of transportation of the plurality of delivery workers, and the service server determines the subset to filter the plurality of orders based on the information about the means of transportation of each of the plurality of delivery workers. may include For example, if the pick-up and drop-off distances corresponding to an order are quite far, or if the weight of the ordered food is quite heavy, delivery workers who use walking may not be suitable for the order and may be filtered out in advance. As another example, if the pick-up or drop-off route corresponding to an order is heavily congested with traffic or includes a route that is difficult for vehicles to enter, the connection between the order and a delivery person traveling in a vehicle (e.g., car, motorcycle) Pairs can be pre-filtered and removed.
설명의 편의를 위해, 이하 도 5에 도시된 예시와 함께 설명하기로 한다.For convenience of explanation, the description will be given below with the example shown in FIG. 5.
도 4의 단계 S420에서 서비스 서버가 제1 정보 및 제2 정보 중 적어도 하나를 기반으로 복수의 주문 및 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인하면, 도 5의 테이블(520)과 같은 테이블이 생성될 수 있다. 도 5에 도시된 예시에서, 서비스 서버는 주문1을 포함하는 쌍 모두를 필터링하여 서브세트에 포함되지 않도록 할 수 있다. 이는 예를 들어, 주문 1에 대응하는 음식 준비 완료 예상 시각까지 남은 시간이 일정 시간을 초과하여 배달원의 대기 시간이 너무 길어질 가능성을 차단하기 위한 것일 수 있다. In step S420 of FIG. 4, when the service server confirms a subset of pairs of orders and delivery workers selected from among the sets of each pair between a plurality of orders and a plurality of delivery men based on at least one of the first information and the second information, A table such as table 520 may be created. In the example shown in FIG. 5, the service server may filter all pairs containing Order 1 so that they are not included in the subset. For example, this may be to prevent the possibility that the waiting time of the delivery person becomes too long because the time remaining until the expected time of completion of food preparation corresponding to order 1 exceeds a certain time.
또한, 도 5에 도시된 예시에서, 서비스 서버는 주문2 및 배달원2의 쌍 및 주문3 및 배달원3의 쌍을 필터링하여 서브세트에 포함되지 않도록 할 수 있다. 이는 예를 들어, 주문2와 연관된 지리적 구역이 배달원1 및 배달원3의 선호 지역에는 포함되나 배달원3의 선호 지역에는 포함되지 않기 때문일 수 있다. 또한, 이는 예를 들어, 주문3에 대응하는 픽업 거리가 상대적이로 길어서 도보를 이용하는 배달원3은 주문3에 적합하지 않기 때문일 수 있다. 이와 같이, 서비스 서버는 주문 및 배달원의 쌍 중에서 고객 경험 및 배달원의 주문 수락율에 좋지 않은 영향을 미칠 주문 및 배달원 쌍을 사전에 필터링하여 주문 할당의 정확성을 높이고 매칭을 위한 계산 부하를 줄일 수 있다.Additionally, in the example shown in FIG. 5, the service server may filter the pair of order 2 and delivery person 2 and the pair of order 3 and delivery person 3 so that they are not included in the subset. This may be, for example, because the geographic area associated with Order 2 is included in the preferred regions of Delivery Person 1 and Delivery Person 3, but is not included in Delivery Person 3's preferred areas. Additionally, this may be because, for example, the pick-up distance corresponding to Order 3 is relatively long, so Deliveryman 3, who uses walking, is not suitable for Order 3. In this way, the service server can increase the accuracy of order allocation and reduce the computational load for matching by filtering in advance the order and delivery person pairs that will have a negative impact on the customer experience and the delivery person's order acceptance rate. .
이어서, 서비스 서버는 필터링된 테이블(520)에서 각 쌍의 스코어를 결정할 수 있으며, 이를 설명하기 위해 다시 도 4로 돌아간다.Subsequently, the service server can determine the score of each pair in the filtered table 520, and to explain this, we return to FIG. 4.
단계 S430에서, 서비스 서버는 제1 정보 및 제2 정보 중 적어도 하나를 기반으로 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정할 수 있다. 서비스 서버는 이분 그래프의 매칭 스코어를 사용하여 주문의 전역 할당을 수행하기 위해, 필터링을 거친 서브세트에 포함된 주문 및 배달원 쌍에 대한 스코어를 결정할 수 있다. In step S430, the service server may determine a score corresponding to each pair included in the subset based on at least one of the first information and the second information. The service server may use the matching scores of the bipartite graph to determine scores for order and delivery person pairs included in the filtered subset to perform global assignment of orders.
일 실시 예에서, 제1 정보는 복수의 주문에 대응하는 스토어의 위치 정보를 포함하고, 제2 정보는 복수의 배달원의 현재 위치 정보를 포함하고, 스코어는 제1 정보 및 제2 정보를 기반으로 확인되는 서브세트에 포함된 각 쌍의 픽업 거리를 기반으로 결정될 수 있다. 픽업 거리는 배달원의 현재 위치에서 스토어의 위치까지 음식 픽업을 위해 이동하는 거리를 지칭할 수 있다. 일 실시 예에서, 스코어는 픽업 거리에 비례 또는 반비례하도록 결정될 수 있다.In one embodiment, the first information includes location information of a store corresponding to a plurality of orders, the second information includes current location information of a plurality of delivery workers, and the score is based on the first information and the second information. It may be determined based on the pickup distance of each pair included in the identified subset. The pickup distance may refer to the distance traveled to pick up food from the delivery person's current location to the store's location. In one embodiment, the score may be determined to be proportional or inversely proportional to the pickup distance.
일 실시 예에서, 스코어는 상기 픽업 거리에 대응하는 배달원의 픽업 시간을 기반으로 결정될 수 있다. 픽업 시간은 배달원의 교통 수단을 기반으로 배달원이 픽업 거리를 이동하는 예상 이동 시간을 지칭할 수 있다. 픽업 시간은 서비스 서버에 의해 직접 계산되거나, 외부 네비게이션 API를 통해 획득될 수 있다. 스코어는 픽업 시간에 비례할 수 있으며, 서비스 서버는 각 주문 및 배달원 쌍의 스코어의 합이 최소가 되도록 매칭을 결정하여 픽업 시간을 최소로 하는 배달원에 대한 주문 할당을 수행할 수 있다.In one embodiment, the score may be determined based on the pickup time of the delivery person corresponding to the pickup distance. Pick-up time may refer to the estimated travel time for the delivery person to travel the pickup distance based on the delivery person's transportation method. The pickup time can be calculated directly by the service server or obtained through an external navigation API. The score may be proportional to the pick-up time, and the service server may determine matching so that the sum of the scores of each order and delivery person pair is minimal, thereby performing order allocation to the delivery person that minimizes the pickup time.
일 실시 예에서, 제1 정보는 복수의 주문에 대응하는 스토어의 주문 수락 시각에 대한 정보를 포함하고, 서비스 서버가 스코어를 결정하는 것은 서브세트에 대응하는 주문 중 주문 수락 시각으로부터 경과한 시간이 일정 시간을 초과하는 주문을 라벨링하고, 라벨링을 기반으로 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하는 것을 포함할 수 있다. 서비스 서버는 주문 수락 시간으로부터 상당한 시간이 경과한 주문(즉, 롱테일 주문)으로서, 예를 들어, 30분 이상 배달원이 할당되지 않은 주문 또는 음식 준비가 완료되었는데도 배달원이 할당되지 않은 주문에 대해 라벨링을 하고, 이러한 라벨링된 주문에 대해 우선적으로 배달원이 할당될 수 있도록 스코어를 결정할 수 있다. 일 실시 예에서, 서비스 서버는 라벨링된 주문이 포함된 주문 및 배달원 쌍에 대해서는 상대적으로 높은 스코어를 부여하여 우선적으로 매칭되도록 스코어를 설계할 수 있다.In one embodiment, the first information includes information about the order acceptance time of the store corresponding to a plurality of orders, and the service server determines the score by determining the time elapsed from the order acceptance time among orders corresponding to the subset. This may include labeling orders that exceed a certain amount of time and determining a score corresponding to each pair included in the subset based on the labeling. The service server labels orders for which a significant amount of time has passed since the order was accepted (i.e., long-tail orders), for example, orders for which a delivery person has not been assigned for more than 30 minutes, or orders for which a delivery person has not been assigned even though the food preparation has been completed. And, a score can be determined so that delivery workers can be assigned preferentially to these labeled orders. In one embodiment, the service server may design scores to preferentially match orders and delivery person pairs that include labeled orders by assigning relatively high scores to them.
일 실시 예에서, 제1 정보는 복수의 주문에 대응하는 주문자(즉, 고객) 주문 이력 정보를 포함하고, 서비스 서버가 스코어를 결정하는 것은 서브세트에 대응하는 주문 중 해당 주문이 고객의 일정 횟수 이내의 주문에 해당하는 주문을 라벨링하고, 라벨링을 기반으로 서브세트에 포함되 각 쌍에 대응하는 스코어를 결정하는 것을 포함할 수 있다. 서비스 서버는 신규 고객의 고객 경험을 향상시키고 계속해서 배달 중개 서비스를 이용하도록 장려하기 위해 신규 고객의 주문을 일반 고객의 주문에 비해 보다 신속히 할당되도록 스코어를 결정할 수 있다. 예를 들어, 서비스 서버는 주문이 고객의 3번째 이하의 주문에 해당한다면(즉, 1번째 주문, 2번째 주문 및 3번째 주문), 상기 고객을 신규 고객으로 라벨링하고 이러한 라벨링된 고객의 주문에 대해 우선적으로 배달원이 할당될 수 있도록 스코어를 결정할 수 있다. 일 실시 예에서, 서비스 서버는 라벨링된 주문이 포함된 주문 및 배달원 쌍에 대해서는 상대적으로 높은 스코어를 부여하여 우선적으로 매칭되도록 스코어를 설계할 수 있다.In one embodiment, the first information includes order history information of an orderer (i.e., customer) corresponding to a plurality of orders, and the service server determines the score when the order is selected a certain number of times by the customer among orders corresponding to the subset. This may include labeling the orders corresponding to the orders within the order and determining a score corresponding to each pair included in the subset based on the labeling. The service server may determine a score so that new customers' orders are assigned more quickly than regular customers' orders to improve the customer experience of new customers and encourage them to continue using the delivery brokerage service. For example, the service server may label the customer as a new customer if the order corresponds to the customer's third or lower order (i.e., order 1, order 2, and order 3) and place orders for this labeled customer. A score can be determined so that a delivery person can be assigned priority. In one embodiment, the service server may design scores to preferentially match orders and delivery person pairs that include labeled orders by assigning relatively high scores to them.
일 실시 예에서, 제2 정보는 복수의 배달원의 과거 일정 기간 동안의 배달 수행 이력에 대한 정보를 포함하고, 스코어는 배달 수행 이력에 대한 정보를 기반으로 결정될 수 있다. 배달원의 배달 수행 이력에 대한 정보는 배달원의 배달 업무와 관련된 평가, 평점, 배달 수락율, 평균 이동 속도, 일별 배달 건수, 배달 업무 수행 시간대와 같은 정보를 포함하는 통계 데이터를 포함할 수 있다. 예를 들어, 제1 배달원이 포함되는 주문 및 배달원 쌍은 제1 배달원의 평점에 따라 조정될 수 있으며, 평점이 높은 배달원이 포함된 주문 및 배달원 쌍은 높은 스코어가 부여되어 우선적으로 매칭되도록 서비스 서버에 의해 설계될 수 있다.In one embodiment, the second information includes information about the delivery performance history of a plurality of delivery workers over a certain period of time in the past, and the score may be determined based on the information about the delivery performance history. Information about the delivery performance history of the delivery person may include statistical data including information such as evaluation, rating, delivery acceptance rate, average moving speed, number of deliveries per day, and delivery performance time zone related to the delivery person's delivery work. For example, a pair of an order and a delivery person that includes a first delivery person may be adjusted according to the rating of the first delivery person, and a pair of an order and a delivery person that includes a delivery person with a high rating may be given a high score and sent to the service server to be matched preferentially. It can be designed by
일 실시 예에서, 서브세트에 포함된 각각의 주문 및 배달원 쌍에 대응하는 스코어는 주문과 연관된 제1 스코어, 배달원과 연관된 제2 스코어, 및 배달원이 주문에 대응하는 스토어로 이동하는 시간과 연관된 제3 스코어를 기반으로 결정될 수 있다. 서비스 서버는 주문에 대한 정보, 배달원에 대한 정보, 및 배달원의 이동 시간과 연관된 정보를 모두 고려하여 스코어를 결정할 수 있으며, 필요에 따라 스코어를 결정하는 각 요소의 가중치를 조정할 수 있다.In one embodiment, the score corresponding to each order and delivery person pair included in the subset includes a first score associated with the order, a second score associated with the delivery person, and a second score associated with the time the delivery person travels to the store corresponding to the order. 3 Can be decided based on the score. The service server can determine the score by considering all information about the order, information about the delivery person, and information related to the delivery person's travel time, and can adjust the weight of each element that determines the score as necessary.
일 실시 예에서, 서브세트에 포함된 각각의 주문 및 배달원 쌍에 대응하는 스코어는 주문에 대응하는 스토어 및 배달 목적지 중 적어도 하나를 포함하는 지리적 구역에 대한 배달원의 친숙도(familiarity)와 연관된 제4 스코어를 더 기반으로 결정될 수 있다. 서비스 서버는 배달원이 애플리케이션을 통해 서비스 서버에 제공한 배달원의 선호 지역에 대한 정보와, 배달원의 지역별 배달 이력에 대한 데이터를 기반으로 배달원의 특정 지리적 구역에 대한 친숙도를 확인할 수 있으며, 배달원의 친숙도가 높은 지리적 구역과 연관된 주문과 배달원의 쌍에 대응하는 스코어는 높게 설정하여 배달원이 친숙도가 높은 지리적 구역에 대응하는 주문에 매칭될 가능성을 높일 수 있다. In one embodiment, the score corresponding to each order and delivery person pair included in the subset is a fourth score associated with the delivery person's familiarity with the geographic area that includes at least one of the store and delivery destination corresponding to the order. It can be decided further based on the score. The service server can check the delivery person's familiarity with a specific geographic area based on information about the delivery person's preferred area provided to the service server through the application and data on the delivery person's delivery history by region. The score corresponding to a pair of order and delivery person associated with a geographical area with high familiarity can be set high to increase the likelihood that the delivery person will be matched to an order corresponding to a geographical area with high familiarity.
일 실시 예에서, 제1 스코어, 제2 스코어 및 제3 스코어에 대해 각각 제1 가중치, 제2 가중치, 및 제3 가중치가 설정되고, 제1 가중치 및 제2 가중치, 및 제3 가중치는 주문과 연관된 지리적 구역의 특성 및 현재 시각 중 적어도 하나를 기반으로 결정될 수 있다. 예를 들어, 주문과 연관된 지리적 구역에 스토어들 및 배달원들이 밀집해 있어 배달원들의 현재 위치에 따른 배달 시간의 차이가 크지 않은 경우에는 서비스 서버는 픽업 시간과 연관된 제3 스코어에 대한 제3 가중치를 낮게 설정하고 제1 및 제2 가중치를 높게 설정할 수 있다. 다른 예로서, 현재 시각이 점심 시간 또는 저녁 시간과 같이 배달 수요가 많은 피크 시간대에 해당하는 경우, 서비스 서버는 픽업 시간과 연관된 제3 스코어에 대한 제3 가중치를 높게 설정할 수 있다. 그 외에도, 서비스 서버는 지리적 구역의 주문량, 지리적 구역의 복잡도, 배달의 난이도 등을 기반으로 각 요소별 가중치를 결정할 수 있다. 이와 같이, 서비스 서버는 다양한 요소를 고려하여 스코어를 조정함으로써 실시간의 상황에 적합한 최적의 주문 할당을 수행할 수 있다.In one embodiment, a first weight, a second weight, and a third weight are set for the first score, the second score, and the third score, respectively, and the first weight, the second weight, and the third weight are set in order and The determination may be based on at least one of the characteristics of the associated geographic area and the current time. For example, if the difference in delivery time depending on the current location of the delivery people is not large because stores and delivery people are concentrated in the geographic area associated with the order, the service server lowers the third weight for the third score associated with the pickup time. and the first and second weights can be set high. As another example, if the current time corresponds to a peak time period with high delivery demand, such as lunch time or dinner time, the service server may set the third weight for the third score associated with the pickup time to be high. In addition, the service server can determine the weight of each factor based on the order volume in the geographical area, the complexity of the geographical area, the difficulty of delivery, etc. In this way, the service server can perform optimal order allocation suitable for real-time situations by adjusting the score by considering various factors.
일 실시 예에서, 서브세트에 포함된 각각의 주문 및 배달원 쌍에 대응하는 스코어는 주문 당 비용(cost per order; CPO)과 연관된 제5 스코어를 더 기반으로 결정될 수 있다. 복수의 배달원은 유형에 따라 상이한 지불 구조를 가질 수 있으며, 서비스 서버는 배달원에게 지급될 비용을 고려하여 주문 및 배달원의 쌍에 대응하는 스코어를 결정할 수 있다.In one embodiment, the score corresponding to each order and delivery person pair included in the subset may be determined further based on a fifth score associated with cost per order (CPO). A plurality of delivery persons may have different payment structures depending on the type, and the service server may determine a score corresponding to the pair of order and delivery person by considering the cost to be paid to the delivery person.
설명의 편의를 위해, 이하 도 5에 도시된 예시와 함께 설명하기로 한다.For convenience of explanation, the description will be given below with the example shown in FIG. 5.
도 4의 단계 S430에서 서비스 서버가 제1 정보 및 제2 정보 중 적어도 하나를 기반으로 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하면, 도 5의 테이블(530)과 같은 테이블이 생성될 수 있다. 도 5에 도시된 예시에서, 서비스 서버는 주문2 및 배달원1의 쌍에 대응하는 스코어를 3, 주문2 및 배달원3의 쌍에 대응하는 스코어를 4, 주문3 및 배달원1의 쌍에 대응하는 스코어를 2, 및 주문3 및 배달원2의 쌍에 대응하는 스코어를 5로 결정할 수 있다. 서비스 서버는 주문과 연관된 요소, 배달원과 연관된 요소, 픽업 시간과 연관된 요소, 배달원의 친숙도와 연관된 요소 등과 같은 다양한 요소를 기반으로 스코어를 결정할 수 있으며, 예를 들어, 본 예시에서는 배달원이 현재 위치에서 주문에 대응하는 스토어의 위치까지 이동하는 데 걸릴 예상 시간을 스코어로 결정한 것일 수 있다. If the service server determines a score corresponding to each pair included in the subset based on at least one of the first information and the second information in step S430 of FIG. 4, a table such as the table 530 of FIG. 5 will be created. You can. In the example shown in Figure 5, the service server sets the score corresponding to the pair of order 2 and delivery person 1 as 3, the score corresponding to the pair of order 2 and delivery person 3 as 4, and the score corresponding to the pair of order 3 and delivery person 1. 2, and the score corresponding to the pair of order 3 and delivery person 2 can be determined to be 5. The service server may determine the score based on various factors such as factors associated with the order, factors associated with the delivery person, factors associated with the pickup time, factors associated with the familiarity of the delivery person, etc. For example, in this example, the delivery person is at the current location. The estimated time it will take to travel to the store location corresponding to the order may be determined by the score.
이어서, 서비스 서버는 테이블(530)의 결정된 스코어를 기반으로 주문 및 주문이 할당될 배달원 간의 매칭을 결정할 수 있으며, 이를 설명하기 위해 다시 도 4로 돌아간다.Subsequently, the service server may determine a match between the order and the delivery person to whom the order will be assigned based on the determined score in the table 530, and to explain this, we return to FIG. 4.
단계 S440에서, 서비스 서버는 스코어를 기반으로 서브세트 중에서 주문이 할당될 배달원과 주문의 매칭을 결정할 수 있다. 서비스 서버는 서브세트에 포함된 각 주문 및 배달원 쌍에 대응하는 스코어를 확인하고, 이를 각각의 엣지가 스코어를 갖는 이분 그래프 매칭 문제로서 해결할 수 있다. In step S440, the service server may determine the match between the order and the delivery person to whom the order will be assigned among the subset based on the score. The service server can check the score corresponding to each order and delivery person pair included in the subset and solve this as a bipartite graph matching problem in which each edge has a score.
일 실시 예에서, 매칭은 매칭된 주문 및 배달원 쌍의 스코어의 합이 최소가 되도록 결정될 수 있다. 서비스 서버는 스코어를 결정한 방식에 따라, 높은 스코어의 쌍이 우선적으로 선택되도록 스코어 함수를 설계한 경우 매칭된 주문 및 배달원 쌍의 스코어의 합이 최대가 되도록 결정할 수 있고, 반대로 낮은 스코어의 쌍이 우선적으로 선택되도록 스코어 함수를 설계한 경우 매칭된 주문 및 배달원 쌍의 스코어의 합이 최소가 되도록 결정할 수 있다. 일 실시 예에서, 스코어의 합이 최소가 되는 매칭이 둘 이상 존재하는 경우, 동일한 스코어를 갖는 쌍에 대한 매칭은 랜덤으로 선택될 수 있다. 이분 그래프에서 엣지의 스코어의 합이 최소가 되는 매칭을 결정하는 것은 일반적인 최소 가중치 이분 매칭 문제이며, 이하 도 6을 통해 설명하기로 한다.In one embodiment, matching may be determined such that the sum of the scores of matched order and delivery person pairs is minimal. Depending on how the score is determined, the service server may determine that the sum of the scores of matched pairs of orders and delivery workers is maximized if the score function is designed so that pairs with high scores are preferentially selected, and conversely, pairs with low scores are preferentially selected. If the score function is designed as much as possible, it can be determined that the sum of the scores of the matched order and delivery person pair is minimal. In one embodiment, when there are two or more matches with the minimum sum of scores, matches for pairs with the same score may be randomly selected. Determining the matching that has the minimum sum of edge scores in a bipartite graph is a general minimum weight bipartite matching problem, which will be explained with reference to FIG. 6 below.
도 6은 본 명세서의 일 실시 예에 따른 최소 가중치 이분 매칭 문제를 설명하기 위한 예시적인 도면이다.Figure 6 is an example diagram for explaining the minimum weight binary matching problem according to an embodiment of the present specification.
도 6을 참조하면, 일반적인 최소 가중치 이분 매칭(minimum weight bipartite matching)을 설명하기 위한 그래프가 도시되며, 이는 최소 비용 플로우 문제(minimum-cost flow problem; MFCP)와 연관된 하나의 응용으로 볼 수 있다. 최소 비용 플로우 문제는 네트워크를 통해 특정 양의 플로우를 보내는 가장 저렴한 방법을 찾는 최적화 및 결정 문제로서, 일반적으로 용량(capacity) 및 연관된 비용을 갖는 도로로 이루어진 도로망을 이용하여 공장에서 창고까지 최적의 배송 루트를 찾는 문제를 해결하는 방법과 관련된다. 결국, 이는 본 명세서에서 다루고 있는 복수의 주문을 복수의 배달원에게 최소의 비용으로 동시에 할당하는 문제를 해결하는 방법과 관련될 수 있다.Referring to FIG. 6, a graph is shown to explain general minimum weight bipartite matching, which can be viewed as an application related to the minimum-cost flow problem (MFCP). The least-cost flow problem is an optimization and decision problem that finds the cheapest way to send a certain amount of flow through a network, typically the optimal delivery route from a factory to a warehouse using a road network consisting of roads with a capacity and an associated cost. It is related to how to solve the problem of finding . Ultimately, this may be related to a method of solving the problem of simultaneously allocating multiple orders to multiple deliverymen at minimal cost, which is addressed in this specification.
도 6을 참조하면, 이분 그래프 G = (A ∪ B, E)가 주어질 때, 최소 비용을 갖는 G에서의 최대 매칭을 찾는 것이 목적이다. w: E →R 는 엣지 E에 대한 가중치 함수이다. 최소 가중치 이분 매칭 문제 또는 할당 문제는 총 가중치가 최소화되는 완전한 매칭 M ⊆ E를 찾는 것과 관련된다. 이 문제는 결국 최소 비용 플로우 문제로 축소될 수 있으며, 소스 노드 s를 추가하여 A의 모든 노드에 연결하고, 싱크 노드 t를 추가하여 B의 모든 노드에 연결하며, 소스 노드 s 및 싱크 노드 t에 연결된 엣지의 용량을 1, 비용을 0으로 하면, 최소 가중치 이분 매칭 문제를 최소 비용 플로우 문제로서 풀 수 있고, 스코어의 합이 최소가 되는 최적의 매칭을 다항 시간 내에 찾을 수 있다.Referring to Figure 6, given a bipartite graph G = ( AB , E ), the goal is to find the maximum match in G with minimum cost. w : ER is the weight function for edge E. The minimum weight binary matching problem, or assignment problem, involves finding a complete match ME such that the total weight is minimized. This problem can ultimately be reduced to a minimum cost flow problem, where we add a source node s to connect to all nodes in A, add a sink node t to connect to all nodes in B, add a source node s and connect to a sink node t. If the capacity of the connected edge is 1 and the cost is 0, the minimum weight binary matching problem can be solved as a minimum cost flow problem, and the optimal matching that minimizes the sum of scores can be found in polynomial time.
도 5로 돌아가서, 도 4의 단계 S440에서 서비스 서버가 스코어를 기반으로 서브세트 중에서 주문이 할당될 배달원과 주문의 매칭을 결정하면, 도 5의 테이블(540)과 같은 테이블이 생성될 수 있다. 도 5에 도시된 예시에서, 서비스 서버는 최소 가중치 이분 매칭을 통해 주문2 및 배달원3의 쌍의 스코어 4와, 주문3 및 배달원1의 쌍의 스코어 2의 합이 가장 최소가 되는 것으로 계산할 수 있고, 따라서 이들 쌍을 매칭으로 결정할 수 있다. 일 실시 예에서, 최소 가중치 이분 매칭 문제는 Google 사의 OR-Tools를 사용하여 솔루션을 획득할 수 있다. 서비스 서버는 매칭을 기반으로 복수의 주문을 복수의 배달원에 할당할 수 있으며, 이를 설명하기 위해 다시 도 4로 돌아간다.Returning to FIG. 5 , in step S440 of FIG. 4 , when the service server determines the match between the order and the delivery person to whom the order will be assigned among the subset based on the score, a table such as the table 540 of FIG. 5 may be created. In the example shown in Figure 5, the service server can calculate that the sum of the score 4 of the pair of order 2 and delivery person 3 and the score 2 of the pair of order 3 and delivery person 1 is the minimum through minimum weight binary matching, , Therefore, these pairs can be determined by matching. In one embodiment, the minimum weight binary matching problem can be solved using Google's OR-Tools. The service server can assign multiple orders to multiple delivery workers based on matching, and to explain this, we return to FIG. 4.
단계 S450에서, 서비스 서버는 매칭을 기반으로 복수의 주문 중 적어도 일부를 복수의 배달원 중 적어도 일부에 할당할 수 있다. 서비스 서버는 설정된 주기(예를 들어, 30초)로 복수의 주문 및 복수의 배달원을 확인하고 이들 중 적어도 일부에 대한 할당을 수행할 수 있으며, 현재 주기 사이클에서 할당되지 않은 주문 및 배달원은 다음 주기 사이클에서 할당될 수 있도록 다음 주문 풀 및 배달원 풀에 입력할 수 있다.In step S450, the service server may allocate at least some of the plurality of orders to at least some of the plurality of delivery workers based on matching. The service server may check a plurality of orders and a plurality of delivery people at a set cycle (e.g., 30 seconds) and perform assignment for at least some of them, and orders and delivery people not assigned in the current cycle cycle may be assigned to the next cycle. You can then enter the order pool and delivery person pool to be assigned in a cycle.
이와 같이, 서비스 서버는 복수의 주문들을 한번에 하나씩 고려하여 각각의 주문을 가장 가까운 배달원에게 할당하는 탐욕 접근법에서 벗어나, 이분 그래프의 각 측면의 노드로서 주문 및 배달원을 설정하고 이분 그래프의 엣지 가중치를 픽업 시간, 배달원 특성, 및 주문 특성 등과 같은 다양한 요소를 고려한 매칭 스코어로 설정하여, 최적의 매칭을 갖는 주문의 전역 할당을 제공할 수 있다. In this way, the service server deviates from the greedy approach of considering multiple orders one at a time and assigning each order to the nearest delivery person, and sets the order and delivery person as nodes on each side of the bipartite graph and picks up the edge weight of the bipartite graph. By setting a matching score that takes into account various factors such as time, delivery person characteristics, and order characteristics, it is possible to provide global allocation of orders with optimal matching.
또한, 서비스 서버는 다양한 요소를 고려하여 고객 경험 개선 또는 배달원의 배달 수락율 향상 측면에서 좋지 않을 것으로 예상되는 주문 및 배달원 간의 쌍을 사전에 필터링하여 제거함으로써, 주문 할당의 정확성을 높이고 매칭을 위한 계산 부하를 줄일 수 있다.In addition, the service server considers various factors and pre-filters and removes pairs between orders and delivery personnel that are expected to be unfavorable in terms of improving customer experience or improving the delivery acceptance rate of delivery personnel, thereby improving the accuracy of order allocation and calculation for matching. The load can be reduced.
한편, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으며, 비록 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예 외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.Meanwhile, the specification and drawings disclose preferred embodiments of the present invention, and although specific terms are used, they are used in a general sense to easily explain the technical content of the present invention and to aid understanding of the present invention. It is not intended to limit the scope of the invention. In addition to the embodiments disclosed herein, it is obvious to those skilled in the art that other modifications based on the technical idea of the present invention can be implemented.

Claims (17)

  1. 서비스 서버에서의 배달원에 대한 주문 할당 방법으로서,A method of allocating orders to delivery people in a service server, comprising:
    복수의 주문에 대한 제1 정보 및 복수의 배달원에 대한 제2 정보를 확인하는 단계;Confirming first information about a plurality of orders and second information about a plurality of delivery people;
    상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 복수의 주문 및 상기 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인하는 단계;Confirming a subset of pairs of orders and delivery workers selected from each set of pairs between the plurality of orders and the plurality of delivery men based on at least one of the first information and the second information;
    상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하는 단계;determining a score corresponding to each pair included in the subset based on at least one of the first information and the second information;
    상기 스코어를 기반으로 상기 서브세트 중에서 주문이 할당될 배달원과 주문의 매칭을 결정하는 단계; 및determining a match between an order and a delivery person to whom an order will be assigned among the subset based on the score; and
    상기 매칭을 기반으로 상기 복수의 주문 중 적어도 일부를 상기 복수의 배달원 중 적어도 일부에 할당하는 단계를 포함하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.A method of allocating orders to delivery people in a service server, comprising assigning at least some of the plurality of orders to at least some of the plurality of delivery people based on the matching.
  2. 제1항에 있어서,According to paragraph 1,
    상기 제1 정보는 제1 지리적 구역과 연관된 상기 복수의 주문에 대한 정보를 포함하고, the first information includes information about the plurality of orders associated with a first geographic region;
    상기 제2 정보는 상기 제1 지리적 구역 및 상기 제1 지리적 구역과 인접한 지리적 구역 내의 상기 복수의 배달원에 대한 정보를 포함하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The method of claim 1, wherein the second information includes information about the plurality of delivery drivers within the first geographic area and geographic areas adjacent to the first geographic area.
  3. 제2항에 있어서, According to paragraph 2,
    상기 제1 정보 및 상기 제2 정보를 확인하는 단계는 설정된 주기로 수행되고,The step of checking the first information and the second information is performed at a set period,
    상기 주기는 상기 제1 지리적 구역의 주문량을 기반으로 결정되는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The method of claim 1, wherein the period is determined based on the order quantity in the first geographic area.
  4. 제1항에 있어서,According to paragraph 1,
    상기 제1 정보는 배달원이 할당되지 않은 상기 복수의 주문에 대한 정보를 포함하고,The first information includes information about the plurality of orders for which no delivery person is assigned,
    상기 제2 정보는 배달 가능으로 설정된 복수의 배달원에 대한 정보를 포함하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The second information includes information on a plurality of delivery workers set to be available for delivery.
  5. 제1항에 있어서,According to paragraph 1,
    상기 제2 정보는 상기 복수의 배달원의 선호 지역에 대한 정보를 포함하고,The second information includes information about preferred areas of the plurality of delivery workers,
    상기 서브세트를 확인하는 단계는The step of checking the subset is
    상기 복수의 배달원 각각의 상기 선호 지역에 대한 정보를 기반으로 상기 복수의 주문을 필터링하는 단계를 포함하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.A method of allocating orders to delivery people in a service server, comprising filtering the plurality of orders based on information about the preferred area of each of the plurality of delivery people.
  6. 제1항에 있어서,According to paragraph 1,
    상기 주문 및 배달원 쌍의 서브세트는 각 주문과 쌍을 이루는 배달원의 수가 일정 수 이하가 되도록 선택되는 것을 특징으로 하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The subset of the order and delivery person pairs is selected so that the number of delivery people paired with each order is less than or equal to a certain number.
  7. 제1항에 있어서,According to paragraph 1,
    상기 제1 정보는 상기 복수의 주문에 대응하는 스토어의 주문 수락 시각에 대한 정보를 포함하고,The first information includes information about the order acceptance time of the store corresponding to the plurality of orders,
    상기 서브세트를 확인하는 단계는The step of checking the subset is
    상기 주문 수락 시각에 대한 정보를 기반으로 상기 복수의 주문에 대응하는 준비 완료 예상 시각을 확인하는 단계; 및Confirming an expected preparation completion time corresponding to the plurality of orders based on information about the order acceptance time; and
    상기 복수의 주문 중 상기 준비 완료 예상 시각까지 남은 시간이 일정 시간 이내인 주문을 기반으로 상기 서브세트를 확인하는 단계를 포함하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.A method of allocating orders to a delivery person in a service server, including the step of confirming the subset based on orders among the plurality of orders in which the remaining time until the expected preparation completion time is within a certain time.
  8. 제7항에 있어서,In clause 7,
    상기 일정 시간은 상기 복수의 주문에 대응하는 스토어의 대기 공간의 크기를 기반으로 결정되는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The schedule time is determined based on the size of the waiting space of the store corresponding to the plurality of orders.
  9. 제1항에 있어서,According to paragraph 1,
    상기 제1 정보는 상기 복수의 주문에 대응하는 스토어의 위치 정보를 포함하고,The first information includes location information of a store corresponding to the plurality of orders,
    상기 제2 정보는 상기 복수의 배달원의 현재 위치 정보를 포함하고,The second information includes current location information of the plurality of delivery workers,
    상기 스코어는 상기 제1 정보 및 상기 제2 정보를 기반으로 확인되는 상기 서브세트에 포함된 각 쌍의 픽업 거리를 기반으로 결정되는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The score is determined based on the pick-up distance of each pair included in the subset confirmed based on the first information and the second information.
  10. 제1항에 있어서,According to paragraph 1,
    상기 제1 정보는 상기 복수의 주문에 대응하는 스토어의 주문 수락 시각에 대한 정보를 포함하고,The first information includes information about the order acceptance time of the store corresponding to the plurality of orders,
    상기 스코어를 결정하는 단계는The step of determining the score is
    상기 서브세트에 대응하는 주문 중 상기 주문 수락 시각으로부터 경과한 시간이 일정 시간을 초과하는 주문을 라벨링하는 단계; 및labeling orders whose elapsed time from the order acceptance time exceeds a certain time among orders corresponding to the subset; and
    상기 라벨링을 기반으로 상기 서브세트에 포함된 각 쌍에 대응하는 상기 스코어를 결정하는 단계를 포함하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.Determining the score corresponding to each pair included in the subset based on the labeling.
  11. 제1항에 있어서,According to paragraph 1,
    상기 제2 정보는 상기 복수의 배달원의 과거 일정 기간 동안의 배달 수행 이력에 대한 정보를 포함하고,The second information includes information about the delivery performance history of the plurality of delivery workers for a certain period of time in the past,
    상기 스코어는 상기 배달 수행 이력에 대한 정보를 기반으로 결정되는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The score is determined based on information about the delivery performance history. An order allocation method for a delivery person in a service server.
  12. 제1항에 있어서,According to paragraph 1,
    상기 서브세트에 포함된 각각의 주문 및 배달원 쌍에 대응하는 상기 스코어는:The score corresponding to each order and delivery person pair included in the subset is:
    상기 주문과 연관된 제1 스코어;a first score associated with the order;
    상기 배달원과 연관된 제2 스코어; 및a second score associated with the delivery person; and
    상기 배달원이 상기 주문에 대응하는 스토어로 이동하는 시간과 연관된 제3 스코어를 기반으로 결정되는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.A method of allocating an order to a delivery person in a service server, wherein the order is determined based on a third score associated with the time the delivery person travels to the store corresponding to the order.
  13. 제12항에 있어서,According to clause 12,
    상기 서브세트에 포함된 각각의 주문 및 배달원 쌍에 대응하는 상기 스코어는 상기 주문에 대응하는 스토어 및 배달 목적지 중 적어도 하나를 포함하는 지리적 구역에 대한 상기 배달원의 친숙도(familiarity)와 연관된 제4 스코어를 더 기반으로 결정되는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The score corresponding to each order and delivery person pair included in the subset is a fourth score associated with the delivery person's familiarity with a geographic area that includes at least one of the store and delivery destination corresponding to the order. The order allocation method to the delivery person in the service server is further determined based on .
  14. 제12항에 있어서,According to clause 12,
    상기 제1 스코어, 상기 제2 스코어 및 상기 제3 스코어에 대해 각각 제1 가중치, 제2 가중치 및 제3 가중치가 설정되고, A first weight, a second weight, and a third weight are set for the first score, the second score, and the third score, respectively,
    상기 제1 가중치, 상기 제2 가중치 및 상기 제3 가중치는 상기 주문과 연관된 지리적 구역의 특성 및 현재 시각 중 적어도 하나를 기반으로 결정되는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The first weight, the second weight and the third weight are determined based on at least one of characteristics of a geographic area associated with the order and current time.
  15. 제1항에 있어서,According to paragraph 1,
    상기 매칭은 매칭된 주문 및 배달원 쌍의 스코어의 합이 최소가 되도록 결정되는, 서비스 서버에서의 배달원에 대한 주문 할당 방법.The matching is determined so that the sum of the scores of the matched order and delivery person pair is minimum.
  16. 배달원에 대한 주문을 할당하는 서비스 서버로서,As a service server that assigns orders to delivery people,
    적어도 하나의 명령어를 저장하는 메모리; 및a memory storing at least one instruction; and
    상기 적어도 하나의 명령어를 실행함으로써, 복수의 주문에 대한 제1 정보 및 복수의 배달원에 대한 제2 정보를 확인하고, 상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 복수의 주문 및 상기 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인하고, 상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하고, 상기 스코어를 기반으로 상기 서브세트 중에서 주문이 할당될 배달원과 주문의 매칭을 결정하고, 상기 매칭을 기반으로 상기 복수의 주문 중 적어도 일부를 상기 복수의 배달원 중 적어도 일부에 할당하는 프로세서를 포함하는, 배달원에 대한 주문을 할당하는 서비스 서버.By executing the at least one command, first information about a plurality of orders and second information about a plurality of delivery people are confirmed, and the plurality of orders are based on at least one of the first information and the second information. Identify a subset of pairs of orders and delivery workers selected from the set of each pair between the plurality of delivery workers, and calculate a score corresponding to each pair included in the subset based on at least one of the first information and the second information. a processor that determines a match between an order and a delivery person to whom an order is to be assigned among the subset based on the score, and assigns at least some of the plurality of orders to at least some of the plurality of delivery people based on the matching. A service server that assigns orders to delivery people, including:
  17. 비일시적 컴퓨터 판독 가능 저장 매체로서,A non-transitory computer-readable storage medium, comprising:
    컴퓨터 판독 가능 명령어들을 저장하도록 구성되는 매체를 포함하고,A medium configured to store computer readable instructions,
    상기 컴퓨터 판독 가능 명령어들은 프로세서에 의해 실행되는 경우 상기 프로세서가:The computer-readable instructions, when executed by a processor, cause the processor to:
    복수의 주문에 대한 제1 정보 및 복수의 배달원에 대한 제2 정보를 확인하는 단계;Confirming first information about a plurality of orders and second information about a plurality of delivery people;
    상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 복수의 주문 및 상기 복수의 배달원 간의 각 쌍의 세트 중에서 선택된 주문 및 배달원 쌍의 서브세트를 확인하는 단계;Confirming a subset of pairs of orders and delivery workers selected from each set of pairs between the plurality of orders and the plurality of delivery men based on at least one of the first information and the second information;
    상기 제1 정보 및 상기 제2 정보 중 적어도 하나를 기반으로 상기 서브세트에 포함된 각 쌍에 대응하는 스코어를 결정하는 단계;determining a score corresponding to each pair included in the subset based on at least one of the first information and the second information;
    상기 스코어를 기반으로 상기 서브세트 중에서 주문이 할당될 배달원과 주문의 매칭을 결정하는 단계; 및determining a match between an order and a delivery person to whom an order will be assigned among the subset based on the score; and
    상기 매칭을 기반으로 상기 복수의 주문 중 적어도 일부를 상기 복수의 배달원 중 적어도 일부에 할당하는 단계를 포함하는, 서비스 서버에서의 배달원에 대한 주문 할당 방법을 수행하도록 하는, 비일시적 컴퓨터 판독 가능 저장 매체.A non-transitory computer-readable storage medium for performing a method of allocating orders to delivery people in a service server, comprising assigning at least some of the plurality of orders to at least some of the plurality of delivery people based on the matching. .
PCT/KR2022/011365 2022-04-21 2022-08-02 Method and apparatus for assigning order to delivery person WO2023204356A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20220049587 2022-04-21
KR10-2022-0049587 2022-04-21
KR1020220090999A KR20230150174A (en) 2022-04-21 2022-07-22 Method and apparatus for assigning order to delivery person
KR10-2022-0090999 2022-07-22

Publications (1)

Publication Number Publication Date
WO2023204356A1 true WO2023204356A1 (en) 2023-10-26

Family

ID=88420100

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/011365 WO2023204356A1 (en) 2022-04-21 2022-08-02 Method and apparatus for assigning order to delivery person

Country Status (2)

Country Link
TW (1) TW202347199A (en)
WO (1) WO2023204356A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117808386A (en) * 2024-03-01 2024-04-02 山东大学 All-online AGV material distribution network order distribution method, equipment and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130062468A (en) * 2011-11-25 2013-06-13 주식회사지니 System and method for distribution management for store using mobile communication network
JP2019530935A (en) * 2016-10-18 2019-10-24 ウーワ ブラザーズ カンパニー リミテッドWoowa Brothers Co., Ltd. Delivery order allocation system and method
KR102066377B1 (en) * 2019-09-27 2020-02-17 최영 Delivery order management system interworking with multiple delivery brokerage servers
WO2020102736A1 (en) * 2018-11-15 2020-05-22 Corverity Corporation Autonomous delivery device management
KR102226115B1 (en) * 2020-07-03 2021-03-11 쿠팡 주식회사 Electronic apparatus and operation method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130062468A (en) * 2011-11-25 2013-06-13 주식회사지니 System and method for distribution management for store using mobile communication network
JP2019530935A (en) * 2016-10-18 2019-10-24 ウーワ ブラザーズ カンパニー リミテッドWoowa Brothers Co., Ltd. Delivery order allocation system and method
WO2020102736A1 (en) * 2018-11-15 2020-05-22 Corverity Corporation Autonomous delivery device management
KR102066377B1 (en) * 2019-09-27 2020-02-17 최영 Delivery order management system interworking with multiple delivery brokerage servers
KR102226115B1 (en) * 2020-07-03 2021-03-11 쿠팡 주식회사 Electronic apparatus and operation method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117808386A (en) * 2024-03-01 2024-04-02 山东大学 All-online AGV material distribution network order distribution method, equipment and medium

Also Published As

Publication number Publication date
TW202347199A (en) 2023-12-01

Similar Documents

Publication Publication Date Title
WO2023204356A1 (en) Method and apparatus for assigning order to delivery person
US20190212157A1 (en) Network system for multi-leg transport
US10121381B2 (en) Data flow control order generating apparatus and sensor managing apparatus
Lowalekar et al. Zac: A zone path construction approach for effective real-time ridesharing
US20080109246A1 (en) Method for Cooperative transport of parcels
WO2019030835A1 (en) Shared vehicle management method and shared vehicle management device
CN112466122A (en) Method and device for generating alternative line set and planning line of public traffic line network
CN104931063A (en) Route planning method
CN104464274A (en) Car-sharing taxi taking method and server
WO2009099283A2 (en) Method for searching optimal hub location based on logistics cost estimation
US20220335834A1 (en) Computing timing intervals for vehicles through directional route corridor
CN108921762B (en) Vehicle hybrid scheduling method, device and equipment
EP3491597A1 (en) System and method for controlling vehicle
CN111932182A (en) Distribution path planning method and related device
Dai et al. A balanced assignment mechanism for online taxi recommendation
KR20230150174A (en) Method and apparatus for assigning order to delivery person
KR20230114229A (en) DRT request information clustering method for allocating DRT cars and advanced prediction system thereof
Lin et al. Vshare: A wireless social network aided vehicle sharing system using hierarchical cloud architecture
KR20040072273A (en) Transport system
CN111678530B (en) Carpooling path determination method and device
Fernandez et al. Fleet management optimization in car rental industry: decision aid models for Logistics improvement
Varone et al. Insertion heuristic for a dynamic dial-a-ride problem using geographical maps
CN114819375A (en) Bus operation scheme generation method and device
WO2016155790A1 (en) Method for providing configuration information for a system comprising a plurality of moving objects
CN112885104A (en) Intelligent logistics traffic management system based on Internet of things

Legal Events

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

Ref document number: 22938647

Country of ref document: EP

Kind code of ref document: A1