Server and method for processing on-demand service
By designing a server that can receive user item delivery service requests and select a suitable delivery site, the problem of users waiting for food to be delivered to their current location in the traditional method is solved, and the efficiency of instant access to items during transportation services is improved.
Patent Information
- Application Number
- CN202380060604.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-19
- Filing Date
- 2023-07-31
- Publication Date
- 2025-03-18
AI Technical Summary
Traditionally, when requesting item delivery services, users need to request food delivery to their current location first, and then request transportation services to reach their destination, resulting in inefficiency.
A server is designed to receive user's item delivery service requests, determine the overlap point between the user's driving route and multiple predetermined driving routes, identify candidate sets of multiple delivery sites, and select a delivery site based on the criteria, so that the user can take the selected items along the driving route.
The efficiency improvement of handling different on-demand services simultaneously is achieved, and users can instantly obtain the required items during use of transportation services without waiting for delivery to the current location.
Smart Images

Figure CN119654642A_ABST
Abstract
Description
Technical Field
[0001] Various embodiments relate to a server and method for processing on-demand services. Background Art
[0002] Due to the development of information and communication technology, users can use computing devices to request on-demand services. On-demand services can allow users to meet their needs via instant access to items and / or services. Users can use a user interface presented on a computing device to request on-demand services, such as transportation services or item delivery services.
[0003] However, conventionally, a user who wishes to order an item (e.g., food) and needs to use a transportation service at the same time may have to request a food delivery service at the user's current location, wait for the food to be delivered to the user's current location, and then request a transportation service to use the transportation service. Otherwise, the user may have to use a transportation service, request a food delivery service with a destination as a delivery location, and expect the food to be delivered around the time the user arrives at the destination.
[0004] Furthermore, conventionally, in an item delivery service (e.g., a food delivery service), a user may have to request a food delivery service with a fixed location as a delivery location. Thus, in response to the user's request for the food delivery service, only item providers (e.g., restaurants) located within a fixed perimeter of the fixed location (e.g., the user's current location or destination) may be presented to the computing device.
[0005] Therefore, there is a need to provide an improved solution for simultaneously handling different on-demand services. Summary of the invention
[0006] According to various embodiments, there is a server for processing on-demand services, the server comprising: a memory for storing instructions; and a processor for executing the stored instructions and configured to: receive a request from a computing device associated with a user to provide an item delivery service to a user on the way to a destination while using a transportation service, wherein the request for the item delivery service includes information about at least one selected item for the item delivery service; determine that a driving route of the user associated with the transportation service overlaps with at least one of a plurality of predetermined driving routes in which a plurality of delivery stations are deployed; identify a candidate set of a plurality of delivery stations deployed on the user's driving route; and select a delivery station from the candidate set of a plurality of delivery stations based on at least one criterion so that the user picks up the selected item along the user's driving route to the destination.
[0007] In some embodiments, the processor is further configured to: receive a request for searching for item delivery services from a computing device; and provide a list of items associated with at least one item provider to the computing device, wherein the items in the list of items can be prepared and delivered to a candidate set of multiple delivery sites within an estimated time for a user to arrive at the candidate set of multiple delivery sites.
[0008] In some embodiments, the selected item is selected from a list of items; and the processor is further configured to: provide information about the selected item to a selected item provider associated with the selected item for use in preparing the selected item.
[0009] In some embodiments, the processor is further configured to: select a delivery service provider from the one or more delivery service providers based on the geographic locations of the one or more delivery service providers; and request the selected delivery service provider to pick up the selected item at the geographic location of the selected item provider and deliver the selected item to the selected delivery site.
[0010] In some embodiments, the processor is further configured to: identify the geographic locations of multiple item providers near multiple scheduled driving routes; divide the multiple item providers into multiple areas based on the identified geographic locations of the multiple item providers; divide each of the multiple areas into multiple sub-areas, so that one or more item providers connected to each of the multiple scheduled driving routes are grouped into respective sub-areas; and deploy multiple delivery stations along the multiple scheduled driving routes, wherein the candidate set of multiple delivery stations includes one or more delivery stations deployed in the same sub-area.
[0011] In some implementations, the candidate set of multiple delivery sites includes a primary delivery site mapped to the selected item provider, and one or more subsequent delivery sites deployed in a sub-region where the primary delivery site is deployed.
[0012] In some embodiments, the processor is further configured to: determine that the selected delivery service provider has picked up the selected item from the selected item provider; check the current geographic location of the computing device associated with the user; select a primary delivery site if the current geographic location of the computing device associated with the user is not in the sub-area; and reselect a delivery site from one or more subsequent delivery sites based on a calculation of a first estimated time for the user to arrive at the one or more subsequent delivery sites and a second estimated time for the selected delivery service provider to arrive at the one or more subsequent delivery sites if the current geographic location of the computing device associated with the user is in the sub-area.
[0013] In some implementations, the processor is further configured to: define an entry point on the user's travel route; and detect that the user is in the sub-area when a computing device associated with the user passes through the entry point.
[0014] In some embodiments, the processor is further configured to: calculate the difference between a third estimated time for the user to arrive at the selected delivery site and a fourth estimated time for the selected delivery service provider to arrive at the selected delivery site; determine that a race condition is observed if the difference is greater than a first threshold, and / or if the rate of increase of the difference is greater than a second threshold; and if it is determined that a race condition is observed, reselect a delivery site from one or more subsequent delivery sites based on the calculation of the first estimated time for the user to arrive at the one or more subsequent delivery sites and the second estimated time for the selected delivery service provider to arrive at the one or more subsequent delivery sites.
[0015] According to various embodiments, there is a method for processing an on-demand service, the method comprising: receiving a request from a computing device associated with a user to provide an item delivery service to a user who is en route to a destination while using a transportation service, wherein the request for the item delivery service includes information about at least one selected item for the item delivery service; determining that a travel route of the user associated with the transportation service overlaps with at least one of a plurality of predetermined travel routes in which a plurality of delivery stops are deployed; identifying a candidate set of a plurality of delivery stops deployed on the user's travel route; and selecting a delivery stop from the candidate set of a plurality of delivery stops based on at least one criterion so that the user picks up the selected item along the user's travel route to the destination.
[0016] In some embodiments, the method further includes: receiving a request to search for item delivery services from a computing device; and providing a list of items associated with at least one item provider to the computing device, wherein the items in the list of items can be prepared and delivered to a candidate set of multiple delivery sites within an estimated time of a user arriving at the candidate set of multiple delivery sites.
[0017] In some implementations, the selected item is selected from a list of items; and the method further includes: providing information about the selected item to a selected item provider associated with the selected item for use in preparing the selected item.
[0018] In some embodiments, the method further includes: selecting a delivery service provider from the one or more delivery service providers based on the geographic locations of the one or more delivery service providers; and requesting the selected delivery service provider to pick up the selected item at the geographic location of the selected item provider and deliver the selected item to the selected delivery site.
[0019] In some embodiments, the method further includes: identifying geographic locations of multiple item providers near multiple scheduled driving routes; dividing the multiple item providers into multiple areas based on the identified geographic locations of the multiple item providers; dividing each of the multiple areas into multiple sub-areas, so that one or more item providers connected to each of the multiple scheduled driving routes are grouped into respective sub-areas; and deploying multiple delivery stations along the multiple scheduled driving routes, wherein the candidate set of the multiple delivery stations includes one or more delivery stations deployed in the same sub-area.
[0020] In some implementations, the candidate set of multiple delivery sites includes a primary delivery site mapped to the selected item provider, and one or more subsequent delivery sites deployed in a sub-region where the primary delivery site is deployed.
[0021] In some embodiments, the method further includes: determining that the selected delivery service provider has picked up the selected item from the selected item provider; checking the current geographic location of the computing device associated with the user; selecting a primary delivery site if the current geographic location of the computing device associated with the user is not in the sub-area; and reselecting a delivery site from one or more subsequent delivery sites based on a calculation of a first estimated time for the user to arrive at the one or more subsequent delivery sites and a second estimated time for the selected delivery service provider to arrive at the one or more subsequent delivery sites if the current geographic location of the computing device associated with the user is in the sub-area.
[0022] In some implementations, the method further includes: defining an entry point on the user's travel route; and detecting that the user is in the sub-area when a computing device associated with the user passes through the entry point.
[0023] In some embodiments, the method also includes: calculating the difference between a third estimated time for the user to arrive at the selected delivery site and a fourth estimated time for the selected delivery service provider to arrive at the selected delivery site; if the difference is greater than a first threshold, and / or if the rate of increase of the difference is greater than a second threshold, determining that a race condition is observed; and if it is determined that a race condition is observed, reselecting a delivery site from one or more subsequent delivery sites based on the calculation of the first estimated time for the user to arrive at the one or more subsequent delivery sites and the second estimated time for the selected delivery service provider to arrive at the one or more subsequent delivery sites.
[0024] According to various embodiments, there is provided a data processing apparatus configured to execute the method of any one of the above embodiments.
[0025] According to various embodiments, a computer program element is provided, comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of the above embodiments.
[0026] According to various embodiments, a computer readable medium is provided, including program instructions, which, when executed by one or more processors, cause the one or more processors to perform any of the methods in the above embodiments. The computer readable medium may include a non-transitory computer readable medium.
[0027] According to various embodiments, there is a system for processing on-demand services. The system includes a computing device associated with a user. The system also includes a server, which includes: a memory for storing instructions; and a processor for executing the stored instructions and is configured to: receive a request from the computing device to provide an item delivery service to a user on the way to a destination during the use of a transportation service, wherein the request for the item delivery service includes information about at least one selected item for the item delivery service; determine that the travel route of the user associated with the transportation service overlaps with at least one of a plurality of predetermined travel routes where a plurality of delivery sites are deployed; identify a candidate set of a plurality of delivery sites deployed on the user's travel route; and select a delivery site from the candidate set of a plurality of delivery sites based on at least one criterion so that the user can pick up the selected item along the user's travel route to the destination. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] The invention will be better understood with reference to the detailed description when considered in conjunction with the non-limiting examples and accompanying drawings, in which:
[0029] Figure 1 An infrastructure of a system including a server for processing on-demand services according to various embodiments is shown.
[0030] Figure 2 A block diagram of a server for processing on-demand services according to various embodiments is shown.
[0031] Figure 3 A flow chart of a method for processing an on-demand service according to various embodiments is shown.
[0032] Figure 4 An example diagram illustrating identification of multiple predetermined travel routes according to various implementations is shown.
[0033] Figure 5 An example diagram of clustering a plurality of sub-regions according to various embodiments is shown.
[0034] Figure 6A flow chart of a method for deploying a delivery site according to various embodiments is shown.
[0035] Figure 7 A flow chart of a method for deploying a delivery site according to various embodiments is shown.
[0036] Figure 8 A flow chart of a method for recommending a list of items according to various embodiments is shown.
[0037] Fig. 9 A flow chart of a method for selecting a delivery site according to various embodiments is shown.
[0038] Fig.10 A flow chart of a method for reselecting a delivery site according to various embodiments is shown.
[0039] Fig.11 A flow chart of a method for reselecting a delivery site according to various embodiments is shown. DETAILED DESCRIPTION
[0040] The following detailed description refers to the accompanying drawings, which illustrate in a diagrammatic manner the specific details and embodiments in which the present disclosure may be practiced. The detailed description of these embodiments is sufficient to enable those skilled in the art to practice the present disclosure. Other embodiments may also be utilized, and structural and logical changes may be made without departing from the scope of the present disclosure. The various embodiments are not necessarily mutually exclusive, as some embodiments may be combined with one or more other embodiments to form new embodiments.
[0041] Embodiments described in the context of one of the server and the method are also valid for the other server and the method. Similarly, embodiments described in the context of the server are also valid for the method, and vice versa.
[0042] Features described in one embodiment may be applicable to the same or similar features in other embodiments accordingly. Features described in one embodiment may be applicable to other embodiments accordingly, even if not explicitly described in these other embodiments. In addition, additions and / or combinations and / or alternatives described for a feature in the context of one embodiment may be applicable to the same or similar features in other embodiments accordingly.
[0043] In the context of various embodiments, the articles “a,” “an,” and “the” used with respect to features or elements include reference to one or more features or elements.
[0044] As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items.
[0045] Hereinafter, embodiments will be described in detail.
[0046] Figure 1 The infrastructure of a system 200 including a server 100 for processing on-demand services according to various embodiments is shown.
[0047] like Figure 1 As shown, system 200 may include, but is not limited to, server 100 , database system 140 , network 150 , computing device 160 , and one or more external devices 170 , 180 , 190 (not shown).
[0048] In some embodiments, an on-demand service may be a service that allows a user 161 (also referred to as a "passenger") to satisfy a user's needs via instant access to goods and / or services. User 161 may request an on-demand service, such as a transportation service or an item delivery service, using a user interface presented on computing device 160.
[0049] In some embodiments, the network 150 may include, but is not limited to, a local area network (LAN), a wide area network (WAN), a global area network (GAN), or any combination thereof. The network 150 may provide wired communication, wireless communication, or a combination of wired and wireless communication between the server 100 and the computing device 160, and between the server 100 and one or more external devices 170, 180, 190 (e.g., one or more transportation service provider devices 170, one or more delivery service provider devices 180, and one or more item provider devices 190).
[0050] In some embodiments, computing device 160 may be connected to server 100 via network 150. In some embodiments, computing device 160 may be arranged to communicate data or signals with server 100 via network 150. In some embodiments, computing device 160 may include, but is not limited to, at least one of the following: a mobile phone, a tablet computer, a laptop computer, a desktop computer, a head-mounted display, and a smart watch. In some embodiments, computing device 160 may be associated with user 161. For example, computing device 160 may belong to user 161. Although not shown, in some embodiments, system 200 may also include multiple computing devices, each of which belongs to multiple users.
[0051] In some implementations, computing device 160 may include a location sensor. In some implementations, the location sensor may communicate with at least one of a global positioning satellite (GPS) server, a network server, and a Wi-Fi server to detect the location of computing device 160. In some implementations, computing device 160 may generate information about the location of computing device 160.
[0052] In some embodiments, for example, the server 100 implemented by a server computer may include a communication interface 110, a processor 120, and a memory 130 (as will be referred to in Figure 2 described).
[0053] In some embodiments, server 100 may communicate with computing device 160 via network 150. In some embodiments, computing device 160 may receive a request for an on-demand service from user 161. Computing device 160 may send the request to server 100 via network 150. In some embodiments, computing device 160 may send information about the location of computing device 160 to server 100 via network 150. The location of computing device 160 may be considered as the location of user 161.
[0054] In some embodiments, the system 200 may also include a database 141. In some embodiments, the database 141 may be part of a database system 140 that may be external to the server 100. The server 100 may communicate with the database 141. In some other embodiments, although not shown, the database 141 may be implemented locally in the memory 130 of the server 100.
[0055] In some embodiments, the server 100 may communicate with one or more external devices 170 (e.g., one or more transportation service provider devices 170) via the network 150. The one or more transportation service provider devices 170 may be associated with one or more transportation service providers 171 (also referred to as "drivers"), respectively. For example, the one or more transportation service provider devices 170 may belong to one or more transportation service providers 171, respectively. The one or more transportation service providers 171 may include, but are not limited to, taxi drivers or private car drivers, who may use their vehicles to provide ride-hailing services to the user 161. In some embodiments, the server 100 may receive a request for transportation services with information about the location and destination of the user 161, and then assign one of the transportation service providers 171 (e.g., transportation service provider 171a) to the user 161 based on the location and destination of the user 161. In some embodiments, the server 100 may communicate with the transportation service provider device 170a (not shown) to check the availability of the transportation service provider 171a. In some embodiments, the server 100 may communicate with the transportation service provider device 170a to aggregate information, including but not limited to the location of the transportation service provider 171a and the direction in which the vehicle of the transportation service provider 171a is moving, in order to assign the transportation service provider 171a to the user 161. In some embodiments, the computing device 160 may display the information of the assigned transportation service provider 171a and the aggregated information on a user interface.
[0056] In some embodiments, the server 100 may communicate with one or more external devices 180 (e.g., one or more delivery service provider devices 180) via the network 150. The one or more delivery service provider devices 180 may be associated with one or more delivery service providers 181, respectively. For example, the one or more delivery service provider devices 180 may belong to one or more delivery service providers 181, respectively. The one or more delivery service providers 181 may include, but are not limited to, delivery partners that can provide delivery services from a first location (e.g., the location of a selected item provider 191a) to a second location (e.g., the location of a selected delivery station) (as will be referred to in the accompanying drawings). Figure 2 In some embodiments, after the user 161 selects a request for an item delivery service by, for example, selecting an item provider 191a and an item using the computing device 160, the server 100 may assign at least one of the delivery service providers 181, such as the delivery service provider 181a, to deliver the selected item from the selected item provider 191a to the selected delivery site.
[0057] In some embodiments, the server 100 may communicate with one or more external devices 190 (e.g., one or more item provider devices 190) via the network 150. The one or more item provider devices 190 may be associated with one or more item providers 191, respectively. For example, the one or more item provider devices 190 may belong to one or more item providers 191, respectively. The one or more item providers 191 may include, but are not limited to, food providers and goods providers, which may provide items, such as food or goods. For example, food providers may include, but are not limited to, restaurants and cafes. As an example, goods providers may include, but are not limited to, stores, markets, and supermarkets. In some embodiments, the server 100 may receive a request for an item delivery service with information about the location of the user 161, and then generate an item list associated with at least one item provider, the items in the item list may be prepared and delivered to one or more delivery sites (as will be referred to in the figure) within the estimated time of the user 161 arriving at the delivery site. Figure 2 191). In some embodiments, the server 100 may communicate with one or more item provider devices 190 to check the availability of one or more item providers 191. In some embodiments, the server 100 may communicate with one or more item provider devices 190 to aggregate information, including but not limited to a list of available items, an estimated preparation time for each item, and an estimated price for each item, so as to generate a list of items. In some embodiments, the computing device 160 may display a list of items with aggregated information of at least one of the one or more item providers 191 on a user interface. In some embodiments, after the user 161 makes a selection on the user interface for a request for an item delivery service, for example by selecting an item provider 191a and an item, the server 100 may communicate with an item provider device 190a (not shown) of the selected item provider 191a to prepare the selected item.
[0058] Figure 2 A block diagram of a server 100 for processing on-demand services according to various embodiments is shown.
[0059] like Figure 2 As shown, the server 100 , which is implemented by a server computer, for example, may include a communication interface 110 , a processor 120 , and a memory 130 .
[0060] In some embodiments, the memory 130 (also referred to as a "database") may temporarily or permanently store input data and / or output data. In some embodiments, the memory 130 may store program code (such as the one described in the reference 100 ) that allows the server 100 to perform the method 300. Figure 3100). In some embodiments, the program code may be embedded in a software development kit (SDK). The memory 130 may include an internal memory and / or an external memory of the server 100. The external memory may include, but is not limited to, an external storage medium such as a memory card, a flash drive, and a network storage.
[0061] In some embodiments, the communication interface 110 may allow one or more computing devices (including the computing device 160) to communicate with the processor 120 of the server 100 via the network 150, such as Figure 1 In some embodiments, Figure 1 As shown, computing device 160 may belong to user 161 who wants to request an on-demand service. In some implementations, communication interface 110 may send signals to and / or receive signals from computing device 160 via network 150.
[0062] In some embodiments, the communication interface 110 may allow one or more external devices 170, 180, 190 (e.g., one or more transportation service provider devices 170, one or more delivery service provider devices 180, and one or more item provider devices 190) to communicate with the processor 120 of the server 100 via the network 150, such as Figure 1 In some implementations, the communication interface 110 may send signals to and / or receive signals from one or more external devices 170 , 180 , 190 via the network 150 .
[0063] In some embodiments, the communication interface 110 may receive a request for an on-demand service (e.g., providing an item delivery service to a user on the way to a destination during use of a transportation service) from the computing device 160 via the network 150. In some embodiments, the user 161 may request the item delivery service after the transportation service begins. For example, the user 161 may request the item delivery service when the user 161 is riding in a vehicle assigned to the transportation service. In some other embodiments, the user 161 may request the item delivery service before the transportation service begins. For example, the user 161 may request the item delivery service when the user 161 is waiting for a vehicle assigned to the transportation service. In some embodiments, the request for the item delivery service includes information about at least one selected item and at least one selected item provider that provides the at least one selected item. The communication interface 110 may then send the request for the item delivery service to the processor 120.
[0064] In some implementations, communication interface 110 may also receive information about the location of computing device 160 from computing device 160 via network 150. Communication interface 110 may then send the information about the location of computing device 160 to processor 120.
[0065] In some implementations, communication interface 110 may simultaneously receive a request for an item delivery service and information about the location of computing device 160 from computing device 160 via network 150. In some other implementations, communication interface 110 may first receive a request for an item delivery service from computing device 160 via network 150, and then receive information about the location of computing device 160.
[0066] The processor 120 may include, but is not limited to, a microprocessor, an analog circuit, a digital circuit, a mixed signal circuit, a logic circuit, an integrated circuit, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), or any combination thereof. Any other type of implementation of the corresponding functions described in further detail below may also be understood as the processor 120.
[0067] In some embodiments, processor 120 may be connected to communication interface 110. In some embodiments, processor 120 may be arranged to be in data or signal communication with communication interface 110 to receive a request for an item delivery service and information about the location of computing device 160.
[0068] In some implementations, processor 120 may simultaneously receive a request for an item delivery service and information about the location of computing device 160 from communication interface 110. In some other implementations, processor 120 may first receive a request for an item delivery service from communication interface 110, and then receive information about the location of computing device 160.
[0069] In some embodiments, the processor 120 may determine that the driving route of the user 161 associated with the transportation service overlaps with at least one of the plurality of predetermined driving routes where the plurality of delivery sites are deployed. In some embodiments, the processor 120 may determine the driving route of the user 161 based on the pickup location and the destination of the user 161. In some embodiments, the processor 120 may provide the driving route of the user 161 to the transportation service provider device 170a of the selected transportation service provider 171a. In some embodiments, the processor 120 may provide the driving route of the user 161 to the computing device 160.
[0070] In some embodiments, the processor 120 may predetermine a plurality of travel routes. For example, the plurality of predetermined travel routes may include a certain number of routes that are most traveled by a plurality of users within a predetermined time period. In some embodiments, the processor 120 may identify the geographic locations of a plurality of item providers 191 near the plurality of predetermined travel routes. In some embodiments, the processor 120 may divide the plurality of item providers 191 into a plurality of regions (also referred to as “clusters”) based on the identified geographic locations of the plurality of item providers 191. For example, the processor 120 may group a predetermined number of item providers (e.g., 50 item providers) located nearby into a single region. In some embodiments, the processor 120 may divide each of the plurality of regions into a plurality of sub-regions, so that one or more item providers connected to each of the plurality of predetermined travel routes are grouped into respective sub-regions. In this way, each region may include one or more sub-regions based on the number of predetermined travel routes contained in the region. In some embodiments, the processor 120 may deploy a plurality of distribution sites along the plurality of predetermined travel routes.
[0071] In some embodiments, multiple distribution sites may be physical locations where selected items are distributed to the distribution site service provider responsible for the distribution site by the selected distribution service provider 181a. When the vehicle of the selected transportation service provider 171a taken by the user 161 arrives at the distribution site, the distribution site service provider may distribute the selected items to the user 161 in sequence. In some other embodiments, multiple distribution sites may be physical locations where the selected items are directly distributed to the user 161 by the selected distribution service provider 181a when the vehicle of the selected transportation service provider 171a taken by the user 161 arrives at the distribution site. In some other embodiments, multiple distribution sites may be unmanned. For example, the selected distribution service provider 181a may distribute the selected items to a specific space of the selected distribution site, such as a locker or a table, so that the user 161 who takes the vehicle of the selected transportation service provider 171a takes the selected items at the specific space of the selected distribution site.
[0072] In some embodiments, each delivery station may have a capacity for how many items it can store, and the capacity of a delivery station may be the basis for determining whether a delivery station operates as an online delivery station or as an offline delivery station. For example, if a delivery station does not have room for more items, then the delivery station may be considered an offline delivery station. As another example, if a delivery station has room for more items, then the delivery station may be considered an online delivery station (as referenced in FIG. 1 ). Figure 8 described).
[0073] In some implementations, processor 120 may compare the driving route of user 161 with a plurality of predetermined driving routes and determine that the driving route of user 161 overlaps with at least one of the plurality of predetermined driving routes.
[0074] In some embodiments, processor 120 may identify a candidate set of multiple delivery sites deployed on the driving route of user 161. In some embodiments, the candidate set of multiple delivery sites is one or more delivery sites deployed in the same sub-area associated with the driving route of user 161, and the driving route of the user overlaps with at least one of the multiple predetermined driving routes.
[0075] In some embodiments, the processor 120 may select a delivery station from the candidate set of multiple delivery stations based on at least one criterion so that the user 161, together with the selected transportation service provider 171a, can pick up the selected item along the travel route of the user 161 to the destination. In some embodiments, the selected item may be delivered to the selected delivery station so that the user 161, together with the selected transportation service provider 171a, can pick up the selected item along the travel route of the user 161 to the destination. In some embodiments, the at least one criterion may include, but is not limited to, whether the selected delivery service provider 181a has already picked up the selected item from the selected item provider 191a associated with the selected item, the current geographic location of the computing device 160 associated with the user 161, the estimated time for the user 161 to arrive at the candidate set of multiple delivery stations, the estimated time for the selected delivery service provider 181a to arrive at the candidate set of multiple delivery stations, the delay (e.g., the time difference between the estimated time for the user 161 to arrive at the candidate set of multiple delivery stations and the estimated time for the selected delivery service provider 181a to arrive at the candidate set of multiple delivery stations), and the rate of increase of the delay.
[0076] In some embodiments, the processor 120 may receive a request for searching for an item delivery service from the computing device 160. In some embodiments, the processor 120 may generate an item list associated with at least one item provider, the items in the item list being prepared and delivered to the candidate set of multiple delivery sites within an estimated time when the user 161 arrives at the candidate set of multiple delivery sites. The processor 120 may then provide the item list to the computing device 160 so that the user 161 may select an item provider 191a and an item for the item delivery service. For example, the candidate set of multiple delivery sites includes at least two delivery sites.
[0077] In some implementations, the user 161 may select an item provider 191a and an item from a list of items. The computing device 160 may generate information about the selected item provider 191a and the selected item based on the input of the user 161. The processor 120 may receive the information about the selected item provider 191a and the selected item from the computing device 160 via the communication interface 110. In some implementations, the processor 120 may then provide the information about the selected item to the selected item provider 191a via the communication interface 110 for use in preparing the selected item.
[0078] In some embodiments, the processor 120 may select a delivery service provider 181a from one or more delivery service providers 181 based on the geographic locations of the one or more delivery service providers 181. In some embodiments, the processor 120 may request the selected delivery service provider 181a to pick up the selected item at the geographic location of the selected item provider 191a and deliver the selected item to the selected delivery site.
[0079] As described above, the delivery site can be selected from a candidate set of multiple delivery sites based on at least one criterion. In some embodiments, the candidate set of multiple delivery sites includes a primary delivery site mapped to the selected item provider 191a, and one or more subsequent delivery sites deployed in the sub-area where the primary delivery site is deployed.
[0080] In some implementations, the processor 120 may check whether the selected delivery service provider 181a has already picked up the selected item from the selected item provider 191a. If the processor 120 determines that the selected delivery service provider 181a has already picked up the selected item from the selected item provider 191a, the processor 120 may check the current geographic location of the computing device 160 associated with the user 161 and / or the current geographic location of the transportation service provider device 170a associated with the selected transportation service provider 171a. When the user 161 is in the vehicle of the selected transportation service provider 171a, the current geographic location of the computing device 160 associated with the user 161 and the current geographic location of the transportation service provider device 170a associated with the selected transportation service provider 171a may be the same.
[0081] In some implementations, if the current geographic location of the computing device 160 associated with the user 161 is not in a sub-region where a primary delivery site is deployed, the processor 120 may select the primary delivery site, which is mapped to the selected item provider 191a. The selected delivery service provider 181a may deliver the selected item to the primary delivery site, and the user 161 and / or the selected transportation service provider 171a may pick up the selected item at the primary delivery site along the travel route of the user 161 to the destination.
[0082] In some embodiments, if the current geographic location of the computing device 160 associated with the user 161 is in a sub-region where a primary delivery site is deployed, the processor 120 may reselect a delivery site from one or more subsequent delivery sites. In some embodiments, the processor 120 may reselect a delivery site based on a calculation of an estimated time for the user 161 to arrive at one or more subsequent delivery sites (i.e., an estimated arrival time of the selected transportation service provider 171a) (also referred to as a "first estimated arrival time") and an estimated time for the selected delivery service provider 181a to arrive at one or more subsequent delivery sites (also referred to as a "second estimated arrival time").
[0083] In some implementations, the processor 120 may predefine an entry point on the travel route of the user 161. When the computing device 160 associated with the user 161 passes through the entry point, the processor 120 may detect that the user 161 is in the sub-area.
[0084] In some embodiments, the processor 120 may consider a race condition. In some embodiments, the processor 120 may calculate the difference between the estimated time for the user 161 to arrive at the selected delivery station (hereinafter referred to as the "third estimated arrival time") and the estimated time for the selected delivery service provider 181a to arrive at the selected delivery station (hereinafter referred to as the "fourth estimated arrival time"). The difference may be referred to as "delay". If the delay is greater than a threshold (also referred to as the "first threshold") and / or the rate of increase of the delay is greater than a threshold (also referred to as the "second threshold"), the processor 120 may determine that a race condition is observed. In other words, if the delay is greater than the first threshold, the processor 120 may determine that a race condition is observed. If the rate of increase of the delay is greater than the second threshold, the processor 120 may determine that a race condition is observed. If it is determined that a race condition is observed, the processor 120 may reselect a delivery station from one or more subsequent delivery stations. In some embodiments, the processor 120 may reselect a delivery station based on the calculation of the first estimated time for the user 161 to arrive at one or more subsequent delivery stations and the second estimated time for the selected delivery service provider 181a to arrive at one or more subsequent delivery stations.
[0085] As described above, the server 100 according to various embodiments can allow the user 161 riding in a vehicle of a transportation service to place an order for an item (e.g., food) and pick up the food with minimal or no waiting on the way to the destination. The server 100 according to various embodiments can expand the number of item providers 190 (e.g., restaurants) with which the user 161 can place an order, and reduce the number of separate deliveries performed by the delivery service provider 180.
[0086] Figure 3 A flow chart of a method 300 for processing an on-demand service according to various embodiments is shown. According to various embodiments, a method 300 for processing an on-demand service may be provided.
[0087] In some embodiments, method 300 may include step 301: receiving a request from a computing device associated with a user to provide an item delivery service to a user en route to a destination while using a transportation service. In some embodiments, the request for the item delivery service includes information about at least one selected item for the item delivery service.
[0088] In some implementations, method 300 may include step 302: determining that a driving route of a user associated with a transportation service overlaps with at least one of a plurality of predetermined driving routes where a plurality of delivery stations are deployed.
[0089] In some implementations, method 300 may include step 303: identifying a candidate set of multiple delivery stations deployed on the user's driving route.
[0090] In some implementations, method 300 may include step 304 of selecting a delivery station from a candidate set of multiple delivery stations based on at least one criterion for the user to pick up the selected item along the user's travel route to the destination.
[0091] Figure 4 An example diagram illustrating identification of multiple predetermined travel routes according to various implementations is shown.
[0092] As part of the initial setup steps, the server 100 (see reference Figure 2 The method described herein may define parameters and identify a plurality of predetermined travel routes. For example, the plurality of predetermined travel routes may include a certain number of routes that are most frequently traveled by a plurality of users within a predetermined time period.
[0093] In some embodiments, a road network, such as an entire trunk road network in an urban area, can be visualized as a graph network with intersections as vertices and roads connecting the vertices as edges. The weight of an edge can be defined as the number of users that traverse the edge. In a graph network with weights, the most traveled route can be the route that has more than a threshold number of users along its path. In some embodiments, the threshold can vary by zone within a region. In some embodiments, the threshold can be defined based on the organization's operations in the region and / or various other parameters specific to the organization. In some embodiments, each edge can have two weights because traffic can be bidirectional. For example, the same route that is most traveled in one direction may not be the most traveled route in the opposite direction.
[0094] exist Figure 4 In , the weight of each edge is indicated in brackets. For example, the weight of the first edge (E1) may be 10, and the weight of the second edge (E2) may be 5. Figure 4 As shown, based on the weights of the edges included in each driving route, the first driving route (E1→E3→E7→E8→E10→E13→E12) and the second driving route (E4→E5→E7→E8→E11) can be considered as the most traveled routes. Some parts of the first driving route and the second driving route (E7 and E8) can overlap.
[0095] Figure 5 An example diagram of clustering a plurality of sub-regions according to various embodiments is shown.
[0096] As part of the initial setup steps, the server 100 (see reference Figure 2 As described herein, item providers may be identified and the identified item providers may be clustered into regions (also referred to as “clusters”) and sub-regions.
[0097] In some implementations, clustering item providers into clusters may involve the following steps: spatial clustering of item providers (also referred to as a "first step"); and separation of clusters into sub-regions (also referred to as a "second step").
[0098] In some embodiments, in a first step, the latitude and longitude of the item providers in, for example, an urban area may be used to cluster the item providers. In some embodiments, at least one conventional unsupervised clustering algorithm may be used to cluster the item providers, including, but not limited to, a k-means clustering algorithm, a DBSCAN (density-based spatial clustering of applications with noise) algorithm for spatial clustering, a fuzzy c-means clustering algorithm, and a custom clustering algorithm. As an example, the server 100 may use a custom clustering algorithm, such as clustering a predetermined number of item providers (e.g., 50 item providers) into a single cluster to cluster the item providers. In some embodiments, the server 100 may cluster the item providers using a fuzzy c-means clustering algorithm, which may provide the item providers with a probability of belonging to a specific cluster, rather than a strict division with rigid boundaries between the item providers. The use of a fuzzy c-means clustering algorithm may provide the advantage of defining a custom boundary based on a defined threshold probability. The threshold may be defined based on the organization's operations in the region and / or various other parameters specific to the organization. There may be some item providers that do not belong to any cluster, called outliers, while other item providers are inliers because they are within the clusters.
[0099] In some embodiments, the server 100 may filter only the clusters that overlap with at least one of the plurality of scheduled travel routes, for example, the most traveled routes identified as described above, because for the clusters that do not overlap with at least one of the plurality of scheduled travel routes, the probability that the user places an order for the item during transportation is low and is considered to be part of the outliers.
[0100] In some embodiments, the spatial orientation including latitude and longitude can be used to cluster item providers. In some other embodiments, both users and delivery service providers can use bidirectional roads in the road network within the cluster to travel.
[0101] In some embodiments, in the second step, the cluster may be divided into sub-regions such that one or more item providers connected to each of the plurality of predetermined travel routes may be grouped into the sub-regions.
[0102] In some embodiments, if there are n driving routes that pass through a cluster, the cluster may be divided into n sub-regions such that an item provider is included in the sub-region if the street distance between the geographic location of the item provider and the corresponding driving route is less than a predetermined threshold. Item providers may be mapped to a range of 0 to n driving routes. Since driving routes may be bidirectional, item providers may be mapped to driving routes in both directions or in one direction depending on street connectivity.
[0103] exist Figure 5 In FIG. 1 , a cluster is shown, for example, the first cluster (R1). Figure 5 As shown, there may be four scheduled travel routes (TR1, TR2, TR3, TR4). The server 100 may divide the first cluster (R1) into three sub-regions (SR1, SR2, SR3) so that one or more item providers connected to each of the four scheduled travel routes (TR1, TR2, TR3, TR4) may be grouped into the sub-regions. For example, the item providers connected to the third scheduled travel route (TR3) may be grouped into the second sub-region (SR2), and the item providers connected to the fourth scheduled travel route (TR4) may be grouped into the third sub-region (SR3). In some embodiments, if a predetermined condition is met, the item providers connected to multiple scheduled travel routes may be grouped into a single sub-region. For example, if the distance between multiple scheduled travel routes may be less than a predetermined threshold, the item providers connected to multiple scheduled travel routes may be grouped into a single sub-region. For example, the item providers connected to the first scheduled travel route (TR1) and the second scheduled travel route (TR2) may be grouped into the first sub-region (SR1).
[0104] Figure 6 A flow chart of a method 400 for deploying delivery sites is shown in accordance with various embodiments. Figure 7 A flow chart of a method 500 for deploying delivery sites is shown, according to various embodiments.
[0105] A circle is defined as the locus of points that are at a constant distance from a set of points, whereas the locus of points that are at a constant distance from a set of points on a circle is the center of the circle. Similarly, an ellipse is defined as a set of points whose distances from a pair of points sum to a constant, whereas the locus of a pair of points whose distances from any point on the ellipse sum to a constant is the center of the ellipse. In some embodiments, a circle centered on k points may be defined such that the sum of the distances from any point in the set of points to the k centers has the smallest possible standard deviation. Depending on the spatial orientation of the set of points, there may be various solutions ranging from zero to infinity.
[0106] In some embodiments, the spatial factor and the street distance may be considered as metrics for identifying sub-regions. In addition, since the distribution site is a physical distribution site where the selected items are distributed by the distribution service provider to the user in conjunction with the transportation service provider, there may be a need for synchronization between the distribution service provider and the user in conjunction with the transportation service provider, and therefore, a time parameter may also be included when deploying the distribution site. Unlike the street distance, the time parameter may vary depending on the traffic conditions of the area, and therefore, the location of the distribution site may be selected / evaluated considering different traffic conditions, for example, including three traffic conditions of low, moderate or heavy traffic. It is understood that the number of traffic conditions is not limited to three.
[0107] In some implementations, because clusters may be isolated from one another, if an item provider is selected to order a selected item, delivery of the selected item may be completed within the selected item provider's cluster.
[0108] In some embodiments, due to real-time delay conditions, the delivery service provider may miss the delivery of the selected item at the selected delivery station, thereby causing a race condition between the delivery service provider and the user. To avoid such a scenario, the delivery stations may be located so that even in the event of missing the delivery of the selected item at the selected delivery station, the delivery service provider may successfully deliver the selected item at a subsequent delivery station within a sub-area along the user's travel route with minimal or no delay.
[0109] In some embodiments, the method 400 for deploying a delivery station can be designed so that it has minimal or no delay to the user's travel time. Therefore, the delivery station can be positioned along the user's driving route so that there is no deviation along the user's driving route.
[0110] In some embodiments, if the delivery service provider is slightly behind the user along the same driving route, given the same traffic parameters, it may be unlikely that the delivery of the selected item will arrive at the delivery site before the user passes through any delivery site. Therefore, the delivery site may be deployed at the intersection of the street and the user's driving route, so that the delivery service provider can arrive at the delivery site before the user.
[0111] In some embodiments, because each driving route in a cluster can have its own sub-area defined, delivery stops along the same driving route are essentially exhaustive because the delivery stops can cover all driving routes in the cluster, and delivery stops on different driving routes can be mutually exclusive because the delivery stops can operate independently.
[0112] In some implementations, one of the possible scenarios (also referred to as a "worst case scenario") may be that the selected item is prepared and assigned to the delivery service provider, but when the user passes through the selected delivery station, the delivery service provider has not yet started transportation at the selected item provider. In such a scenario, the race condition may define a threshold for the delay at which the selected item can be delivered to the user, and also define the allowed time variance that may be provided to receive the selected item.
[0113] In some embodiments, in a portion of the user's driving route that overlaps with the cluster, there may be m item providers in the sub-area of the driving route and in eligible intersections (due to some reasons, such as the owner's objection, delivery stations may not be deployed at some intersections). In some embodiments, the function F(i,j) may be defined as the time taken to reach the jth intersection from the i-th item provider. By evaluating all F(i,j), a lookup matrix may be generated. Since the time may vary with the traffic on each street, the server 100 (as shown in reference Figure 2 The positions of the distribution stations under different traffic conditions can be verified and the values of the matrix can be adjusted respectively. Among the n intersections on the driving route, k intersections can be selected as the positions of the distribution stations.
[0114] like Figure 6 As shown, a method 400 for deploying a delivery station may be provided. The method 400 may include the step of selecting k intersections to optimize the delay of the delivery of the selected item to the user.
[0115] In some implementations, method 400 may include step 401: starting from k=2.
[0116] In some implementations, method 400 may include step 402: triggering evaluation of a k-vector delay.
[0117] In some implementations, method 400 may include step 403: checking whether the user's delay is less than D th In some embodiments, D th Represents the threshold latency defined by organizational operations in a region.
[0118] In some implementations, method 400 may include step 404: If the user's delay is not less than D th , then increase k.
[0119] In some implementations, method 400 may include step 405: If the user's delay is less than D th , then exit. In this way, k is determined.
[0120] like Figure 7As shown, a method 500 for deploying a delivery station may be provided. In some embodiments, starting from k=2, one of nCk combinations of selected intersections may be selected. nCk represents selecting an object from a set of objects, where the order of the objects does not matter.
[0121] In some implementations, method 500 may include step 501 : evaluating the RMS (root mean square) delay for a fixed k.
[0122] In some implementations, method 500 may include step 502: selecting k intersections from n intersections as delivery sites.
[0123] In some embodiments, method 500 may include step 503: for each combination of selected intersections, mapping item providers to their primary delivery sites. In some embodiments, item providers in a sub-region may be respectively mapped to the locations of k delivery sites, so that the item providers may belong to the delivery site that is closest to the item provider in time. The delivery site to which the item provider is mapped may be referred to as a "primary delivery site". In this way, each item provider may be mapped to their primary delivery site.
[0124] In some embodiments, method 500 may include step 504: for the above scenario (also referred to as the "worst case scenario"), using the norm function L to calculate the norm value for the delivery site. In such a scenario, when the user is at the primary delivery site corresponding to the selected item provider (e.g., the i-th delivery site on the user's driving route), the delivery service provider may still be at the item provider and has not yet started the delivery of the selected item. From i=1 to n, for all p item providers mapped to the delivery site, the following steps may be performed.
[0125] a) Calculate the time difference between the user’s arrival at the subsequent delivery station (i+1, i+2, ... n) and the delivery service provider’s arrival at the same subsequent delivery station.
[0126] b) Calculate the L(ki) norm of the time difference.
[0127] c) After executing steps a) and b) for all p item providers mapped to the delivery station, a vector of size p is obtained, and the L(p) norm value of the vector is considered to be the delay metric of the delivery station.
[0128] d) After executing steps a), b) and c) for all delivery sites, a delay vector of size k is obtained, storing the delay metric of each delivery site.
[0129] In some embodiments, method 500 may include step 505: verifying the results under different traffic conditions. In some embodiments, in addition to steps a), b), c) and d), the following steps may also be performed.
[0130] e) Since the time required by the user and the time required by the delivery service provider may vary with traffic conditions, steps c) and d) can be cross-validated v times using different traffic scenarios to generate a matrix of size v×k.
[0131] In some embodiments, method 500 may include step 506: repeating steps 503, 504, and 505 for both directions. In some embodiments, since the travel route may be bidirectional and some item providers may only be included in one specific direction, steps 503, 504, and 505 may be performed for both directions.
[0132] In some embodiments, method 500 may include step 507: repeating steps 503, 504, 505, and 506 for all combinations. In some embodiments, steps 503, 504, 505, and 506 may be performed for all possible combinations of nCk, and the delivery station configuration with the smallest delay in most verifications may be selected.
[0133] In some implementations, method 500 may include step 508 of selecting an orientation with a minimum delay among the delivery stops.
[0134] In some embodiments, method 500 may include step 509: returning the k-vector delay. In some embodiments, as described in method 400, k is incremented, and steps 503, 504, 505, 506, 507, 508, and 509 may be performed until an average delay less than a threshold and a variance less than a threshold are obtained, and then the loop is terminated. The average delay represents the average value of the delay vector elements.
[0135] After executing the steps of method 500, k intersections can be obtained as the locations of the delivery stations with the minimum delay in the worst case scenario. The equation used to calculate the delay can be customized, and the algorithm of method 500 can remain valid until certain thresholds are reached.
[0136] In the case of overlapping travel routes, each travel route may be processed independently. A maximum number of delivery sites to be deployed on the overlapping portion may be considered. The delivery sites may be deployed such that the variance of observed relative positions is low. The thresholds used in the algorithm of method 500 may be determined by the organization based on its operational statistics, or requested from a user before placing an order for a selected item.
[0137] In some embodiments, the delivery station can be designed to be at the intersection of popular driving routes. For orders of selected items, the selected items can be delivered to the delivery station before the user arrives, and the delivery station can act as a drive-through, allowing the user to arrive, pick up the selected items, and leave with low latency. For users waiting at the delivery station to receive the selected items, the delivery station can act as a parking space. The software application provided by the server 100 (such as reference Figure 2 As described above, the selected transportation service provider may be notified immediately to pick up the selected items from the delivery site after the selected items are delivered to the delivery site.
[0138] In some embodiments, the entire street network that connects the item providers in the sub-area to the delivery site can be selected. A graph data structure can be generated so that all item providers, street intersections to multiple predetermined driving routes, and delivery sites on multiple predetermined driving routes are considered vertices, and the street connections between them are considered edges. Between two vertices, there can be a directed edge in each of the two directions, and the edge weight is the time it takes to reach the destination. Since each sub-area is isolated from other sub-areas, each generated graph can be isolated even if there are some vertices belonging to multiple graphs and some edges shared among multiple graphs. In addition, the graph can be open to expand when new item providers and / or new driving routes are physically identified. Since some item providers may be included only in one direction, the graph generated along the same driving route may be different in two directions. In some embodiments, the generated graph can be used in a dynamic step with real-time edge weights to observe and bypass race conditions.
[0139] Figure 8 A flow chart of a method 600 for recommending a list of items is shown in accordance with various implementations.
[0140] In some embodiments, when ordering selected items from an item provider in a sub-region, the selected items can be delivered in the sub-region. Even though all order deliveries may be mutually exclusive, the delivery sites selected for delivery may be the same for all delivery service providers, and therefore congestion may be generated at the assigned delivery sites. Therefore, an appropriate load balancing mechanism may be required, which considers factors including, but not limited to, the capacity of the delivery site, the average time of the vehicle at the delivery site, and the redirection capability of the delivery site (e.g., the user assigned to the penultimate delivery site can only be redirected to the last delivery site). In some embodiments, some threshold (including risk congestion and congestion hit) factors may be defined. These factors may include, but not limited to, the redirection capability of the delivery site, the capacity of the delivery site, and the shutdown factor that makes the delivery site offline and makes the delivery site available / online for incoming order delivery after successful redirection or delivery site success.
[0141] In some cases, the user's driving route may not include a delivery station. In some cases, among multiple scheduled driving routes including some delivery stations, not all orders for item delivery can be delivered on time. To avoid this, the server 100 (as shown in FIG. Figure 2 Described in ) can set conditions on each item provided by an item provider, as follows:
[0142] a) The time taken to prepare the item, assign a delivery service provider for delivery of the item, and pick up the item from the item provider by the delivery service provider may be less than the time taken by the user (ie, the transportation service provider) to enter the area.
[0143] b) The time taken by the delivery service provider to prepare the item, assign a delivery service provider for delivery of the item, pick up the item from the item provider by the delivery service provider, and reach at least two online delivery stations by the delivery service provider may be less than a certain threshold value by the time taken by the user (i.e., the transportation service provider) to traverse the online delivery stations.
[0144] c) Acceptance of orders for item delivery may fall within the congestion control limits of both the item provider and the online delivery site shortlisted under the above conditions.
[0145] According to various implementations, a method 600 for recommending a list of items may be provided.
[0146] In some implementations, method 600 may include step 601: considering all item providers mapped to the user's travel route.
[0147] In some implementations, method 600 may include step 602: for each item provider, considering each item provided by the item provider.
[0148] In some embodiments, method 600 may include step 603: for each item, checking whether the time required to prepare the selected item is less than the time required for the user to enter the sub-area.
[0149] In some embodiments, method 600 may include step 604: when the time required to prepare the selected items is less than the time required for the user to enter the sub-area, checking whether the sum of the time required to prepare the selected items and the time required for the delivery service provider to arrive at the delivery site is less than the time required for the user to pass through the delivery site.
[0150] In some implementations, method 600 may include step 605: checking whether the item provider and / or the delivery site is not congested.
[0151] In some implementations, method 600 may include step 606: recommending the item to the user.
[0152] In some embodiments, items that meet the above conditions can be picked up, and the corresponding item provider can be recommended to the user. In some embodiments, if such an item provider is not available, an item provider close to the user's destination can be recommended, and the user's destination can be a delivery address.
[0153] In some embodiments, item providers that have multiple locations along a user's travel route and that offer unique items can be consolidated under the item provider's brand. This can make room for more items in the user interface presented on a computing device associated with the user. In some embodiments, a user can place orders from different item providers, as each item provider may be asynchronous with respect to one another. In some embodiments, all items from a particular item provider can be asynchronously mapped to a corresponding online delivery site and picked up asynchronously by the user.
[0154] In some embodiments, mapping users to item providers may be performed at predetermined time intervals to refresh and filter qualified item providers until the user places an order. In some embodiments, in order to provide item delivery services to users who are on their way to a destination during the use of a transportation service, a time limit for placing an order may be set for the user.
[0155] Fig. 9 A flow chart of a method 700 for selecting a delivery site according to various embodiments is shown. According to various embodiments, a method 700 for selecting a delivery site may be provided.
[0156] In some implementations, method 700 may include step 701: determining that a delivery service provider has picked up an item for delivery at a selected item provider.
[0157] In some implementations, method 700 may include step 702: checking whether the user and the transportation service provider are in a sub-area.
[0158] In some implementations, method 700 may include step 703: if the user is not in the sub-region, assigning a primary delivery site corresponding to the selected item provider.
[0159] In some implementations, method 700 may include step 704: if the user is in the sub-area, evaluating the time required for the delivery service provider to reach a subsequent delivery site in the sub-area.
[0160] In some implementations, method 700 may include step 705: if the user is in the sub-area, evaluating the time required for the user and the transportation service provider to reach a subsequent delivery site in the sub-area.
[0161] In some implementations, method 700 may include step 706 : evaluating a difference between the evaluation time of step 704 and the evaluation time of step 705 , and generating a delay vector.
[0162] In some implementations, method 700 may include step 707: assigning a delivery station with minimal delay.
[0163] As described above, in some embodiments, if the delivery service provider is assigned and arrives at the item provider slightly in advance before the selected item is ready, it can be considered that the delivery service provider has not yet started transportation. If the user and the transportation service provider are still not in the sub-area, the main delivery site corresponding to the selected item provider can be selected by default. If the user is already in the sub-area, the time required for the user to reach the subsequent delivery site and the time required for the real-time delivery service provider to reach the subsequent delivery site can be calculated, for example, taking into account the real-time edge weights. Thereafter, a delivery site with no delay or minimal delay can be selected.
[0164] In some embodiments, in order to check whether the user is in a sub-area, a custom entry point may be defined on the driving route. When the user passes through the entry point, the user may be considered to be in the sub-area. Similarly, a custom exit point may be defined on the driving route. When the user passes through the exit point, the user may be considered to have left the sub-area.
[0165] Fig.10 A flow chart of a method 800 for reselecting a delivery site is shown according to various embodiments.
[0166] In some embodiments, even if the distribution / selection of delivery sites minimizes the probability of missed delivery, there may be some factors that may increase the delivery delay of the selected items. These factors may include, but are not limited to, unusual traffic surges.
[0167] In some embodiments, in order to identify and mitigate race conditions, the estimated time for the user to arrive at the selected delivery station (hereinafter referred to as the "third estimated arrival time") and the estimated time for the selected delivery service provider to arrive at the selected delivery station (hereinafter referred to as the "fourth estimated arrival time") can be calculated in a frequent manner, for example, taking into account the real-time edge weight and / or the rate of increase of the edge weight. The difference between the third estimated arrival time and the fourth estimated arrival time can be referred to as "delay".
[0168] In some implementations, a race condition may be observed if at least one of the following conditions is true.
[0169] a) If the delivery delay of the selected item is greater than a first threshold.
[0170] b) If the rate of increase of the delay is such that the delay of the delivery service provider in arriving at the delivery station is greater than a second threshold.
[0171] According to various implementations, a method 800 for selecting a delivery site may be provided.
[0172] In some implementations, the method 800 may include step 801 : triggering a monitoring process after a predetermined time interval (eg, a small time interval).
[0173] In some implementations, method 800 may include step 802: checking whether there is a race condition delay.
[0174] In some implementations, method 800 may include step 803: assigning the selected delivery site to a delivery service provider for delivery.
[0175] In some implementations, method 800 may include step 804 of assigning a transportation service provider (along with the user) to the same selected delivery site for delivery.
[0176] In some implementations, method 800 may include step 805: checking whether the delay is greater than a first threshold. If it is determined that the delay is not greater than the first threshold, steps 801, 802, 803, and 804 are repeated.
[0177] In some embodiments, method 800 may include step 806: checking whether the rate of increase of the delay predicts a delay greater than a second threshold. If it is determined that the rate of increase of the delay predicts a delay greater than the second threshold, steps 801, 802, 803 and 804 are repeated.
[0178] In some embodiments, method 800 may include step 807: triggering reallocation of a new delivery station if it is determined that the delay is greater than a first threshold and / or the rate of increase of the delay predicts that the delay is greater than a second threshold.
[0179] In some embodiments, once a race condition is observed, the delay of the delivery station can be recalculated using the real-time location of the user (together with the transportation service provider) and the delivery service provider as the source vertex, and the real-time value of the edge weight as the initial weight. For both the user (together with the transportation service provider) and the delivery service provider, the rate of increase of the edge weight can be considered, and the delivery station with the smallest delay can be assigned as the new delivery station.
[0180] In some embodiments, the above steps may be performed to reallocate the delivery station over and over again until it is reallocated to the last delivery station in the sub-area in order to improve the delay. However, this may result in a longer transportation time for the delivery service provider and frequent changes in the destination of the delivery service provider. In some other embodiments, the number of reallocations of the delivery station may be limited to a certain number, such as once, to reduce the transportation time of the delivery service provider.
[0181] Fig.11 A flow chart of a method 900 for reselecting a delivery station according to various embodiments is shown. According to various embodiments, a method 900 for reselecting a delivery station may be provided.
[0182] In some implementations, method 900 may include step 901 : observing a race condition between a transportation service provider (along with a user) and a delivery service provider.
[0183] In some implementations, method 900 may include step 902: extracting a real-time instance of a sub-region graph having real-time edges.
[0184] In some implementations, method 900 may include step 903: updating edge weights using the rate of increase of delays observed during monitoring.
[0185] In some implementations, method 900 may include step 904: calculating the time required for the transportation service provider (along with the user) to arrive at the subsequent delivery site.
[0186] In some implementations, method 900 may include step 905: calculating the time required for the delivery service provider to arrive at the subsequent delivery site.
[0187] In some implementations, method 900 may include step 906: selecting a delivery site with minimal delay.
[0188] In some implementations, method 900 may include step 907: reallocating a delivery station to the selected delivery station.
[0189] In some implementations, method 900 may include step 908: monitoring race conditions relative to the latest delivery site.
[0190] In some embodiments, in the case of a chain of item providers (e.g., a restaurant with multiple branches along the driving route), there may be multiple item providers that provide the same item. Therefore, a load balancer may be introduced to reduce the load on a specific item provider and spread the orders among other item providers along the driving route.
[0191] In some embodiments, a machine learning model can be used to observe race conditions and solve related problems. For example, an SVM (support vector machine) can be trained with parameters in the dynamic step size, derived delivery sites, and actual delivery sites as data points for the machine. After training and improving the performance probability, the SVM can be used to predict the actual delivery site for delivery. As another example, an RNN (recurrent neural network) can be used.
[0192] Although the disclosed contents have been particularly shown and described with reference to specific embodiments, it should be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the scope of the present invention shall be subject to the appended claims, and all changes within the meaning and equivalent range of the claims shall be included within the scope of the present invention.
Claims
1. A server for processing an on-demand service, the server comprising: A memory for storing instructions; as well as A processor for executing the stored instructions and configured to: receiving, from a computing device associated with a user, a request for providing an item delivery service to the user en route to a destination during use of a transportation service, wherein the request for the item delivery service includes information regarding at least one selected item for the item delivery service; determining that a driving route of the user associated with the transportation service overlaps with at least one of a plurality of predetermined driving routes in which a plurality of delivery stations are deployed; Identifying a candidate set of the plurality of delivery stations deployed on the user's driving route; and A delivery station is selected from the candidate set of the plurality of delivery stations based on at least one criterion for the user to pick up the selected item along the user's travel route to the destination.
2. The server according to claim 1, wherein: The processor is further configured to: receiving, from the computing device, a request to search for the item delivery service; and An item list associated with at least one item provider is provided to the computing device, the items in the item list being capable of being prepared and delivered to the candidate set of the plurality of delivery stations within an estimated time of the user arriving at the candidate set of the plurality of delivery stations.
3. The server according to claim 2, wherein: The selected item is selected from the list of items; and The processor is further configured to provide information about the selected item to a selected item provider associated with the selected item for use in preparing the selected item.
4. The server according to claim 3, wherein: The processor is further configured to: selecting a delivery service provider from the one or more delivery service providers based on the geographic locations of the one or more delivery service providers; as well as The selected delivery service provider is requested to pick up the selected item at the geographic location of the selected item provider and deliver the selected item to the selected delivery site.
5. The server according to claim 3 or claim 4, wherein: The processor is further configured to: identifying geographic locations of a plurality of item providers proximate to the plurality of predetermined travel routes; Based on the identified geographic locations of the plurality of item providers, dividing the plurality of item providers into a plurality of regions; dividing each of the plurality of areas into a plurality of sub-areas such that one or more item providers connected to each of the plurality of predetermined travel routes are grouped into respective sub-areas; as well as deploying the plurality of delivery sites along the plurality of predetermined driving routes, The candidate set of the multiple delivery sites includes one or more delivery sites deployed in the same sub-area.
6. The server according to claim 5, wherein: The candidate set of the plurality of delivery sites includes a primary delivery site mapped to the selected item provider, and one or more subsequent delivery sites deployed in a sub-region where the primary delivery site is deployed.
7. The server according to claim 6, wherein: The processor is further configured to: determining that the selected delivery service provider has picked up the selected item from the selected item provider; checking a current geographic location of the computing device associated with the user; selecting the primary delivery site if the current geographic location of the computing device associated with the user is not within the sub-region; as well as If the current geographic location of the computing device associated with the user is in the sub-area, a delivery site is reselected from the one or more subsequent delivery sites based on a calculation of a first estimated time for the user to arrive at the one or more subsequent delivery sites and a second estimated time for the selected delivery service provider to arrive at the one or more subsequent delivery sites.
8. The server according to claim 7, wherein: The processor is further configured to: defining entry points on the travel route of the user; and When the computing device associated with the user passes through the entry point, the user is detected to be in the sub-area.
9. The server according to claim 7 or claim 8, wherein: The processor is further configured to: calculating a difference between a third estimated time for the user to arrive at the selected delivery site and a fourth estimated time for the selected delivery service provider to arrive at the selected delivery site; If the difference is greater than a first threshold, and / or if the rate of increase of the difference is greater than a second threshold, determining that a race condition is observed; as well as If it is determined that the race condition is observed, a delivery site is reselected from the one or more subsequent delivery sites based on the calculation of the first estimated time for the user to arrive at the one or more subsequent delivery sites and the second estimated time for the selected delivery service provider to arrive at the one or more subsequent delivery sites.
10. A method for processing an on-demand service, the method comprising: receiving, from a computing device associated with a user, a request for providing an item delivery service to the user en route to a destination during use of a transportation service, wherein the request for the item delivery service includes information regarding at least one selected item for the item delivery service; determining that a driving route of the user associated with the transportation service overlaps with at least one of a plurality of predetermined driving routes in which a plurality of delivery stations are deployed; Identifying a candidate set of the plurality of delivery sites deployed on the driving route of the user; and A delivery station is selected from the candidate set of the plurality of delivery stations based on at least one criterion for the user to pick up the selected item along the user's travel route to the destination.
11. The method according to claim 10, further comprising: receiving, from the computing device, a request to search for the item delivery service; as well as An item list associated with at least one item provider is provided to the computing device, the items in the item list being capable of being prepared and delivered to the candidate set of the plurality of delivery stations within an estimated time of the user arriving at the candidate set of the plurality of delivery stations.
12. The method according to claim 11, wherein: The selected item is selected from the list of items; and The method also includes providing information about the selected item to a selected item provider associated with the selected item for use in preparing the selected item.
13. The method according to claim 12, further comprising: selecting a delivery service provider from the one or more delivery service providers based on the geographic locations of the one or more delivery service providers; as well as The selected delivery service provider is requested to pick up the selected item at the geographic location of the selected item provider and deliver the selected item to the selected delivery site.
14. The method according to claim 12 or claim 13, further comprising: identifying geographic locations of a plurality of item providers proximate to the plurality of predetermined travel routes; Based on the identified geographic locations of the plurality of item providers, dividing the plurality of item providers into a plurality of regions; dividing each of the plurality of areas into a plurality of sub-areas such that one or more item providers connected to each of the plurality of predetermined travel routes are grouped into respective sub-areas; as well as deploying the plurality of delivery sites along the plurality of predetermined driving routes, The candidate set of the multiple delivery sites includes one or more delivery sites deployed in the same sub-area.
15. The method according to claim 14, wherein: The candidate set of the plurality of delivery sites includes a primary delivery site mapped to the selected item provider, and one or more subsequent delivery sites deployed in a sub-region where the primary delivery site is deployed.
16. The method according to claim 15, further comprising: determining that the selected delivery service provider has picked up the selected item from the selected item provider; checking a current geographic location of the computing device associated with the user; selecting the primary delivery site if the current geographic location of the computing device associated with the user is not within the sub-region; as well as If the current geographic location of the computing device associated with the user is in the sub-area, a delivery site is reselected from the one or more subsequent delivery sites based on a calculation of a first estimated time for the user to arrive at the one or more subsequent delivery sites and a second estimated time for the selected delivery service provider to arrive at the one or more subsequent delivery sites.
17. The method according to claim 16, further comprising: defining an entry point on the travel route of the user; as well as When the computing device associated with the user passes through the entry point, the user is detected to be in the sub-area.
18. The method according to claim 16 or claim 17, further comprising: calculating a difference between a third estimated time for the user to arrive at the selected delivery site and a fourth estimated time for the selected delivery service provider to arrive at the selected delivery site; If the difference is greater than a first threshold, and / or if the rate of increase of the difference is greater than a second threshold, determining that a race condition is observed; as well as If it is determined that the race condition is observed, a delivery site is reselected from the one or more subsequent delivery sites based on the calculation of the first estimated time for the user to arrive at the one or more subsequent delivery sites and the second estimated time for the selected delivery service provider to arrive at the one or more subsequent delivery sites.
19. A data processing device configured to execute the method according to any one of claims 10 to 18.
20. A computer readable medium comprising program instructions which, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 10 to 18.