Server and method for facilitating batching orders for on-demand service

WO2025188234A8PCT designated stage Publication Date: 2025-10-02GRABTAXI HOLDINGS PTE LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/SG2024/050799
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-03-05
Filing Date
2024-12-15
Publication Date
2025-10-02

AI Technical Summary

Technical Problem

Conventional travel routes for batched on-demand service orders often include inefficient sequences, such as zig-zag patterns, leading to longer travel times and costs for delivery service providers.

Method used

A server system that forms candidate batching groups and travel routes by defining nodes and regions based on angles and distances, verifying the route to accept or reject it, and allocating delivery service providers only to accepted routes.

Benefits of technology

This approach optimizes travel routes by reducing inefficiencies, thereby shortening travel times and costs for delivery service providers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure SG2024050799_02102025_PF_FP_ABST
    Figure SG2024050799_02102025_PF_FP_ABST
Patent Text Reader

Abstract

Aspects concern a server for facilitating batching orders for an on-demand service, comprising: a memory configured to store instructions; a communication interface configured to receive a plurality of orders; and a processor for executing the stored instructions and configured to: form a candidate batching group for batching a first order and a second order of the plurality of orders and a candidate travel route for the candidate batching group, based on a first pick-up location and a first drop-off location of the first order and a second pick-up location and a second drop-off location of the second order; define a plurality of nodes each associated with the first pick-up location and the first drop-off location of the first order and the second pick-up location and the second drop-off location of the second order; and verify the candidate travel route before allocating a delivery service provider to the candidate travel route.
Need to check novelty before this filing date? Find Prior Art

Description

SERVER AND METHOD FOR FACILITATING BATCHING ORDERS FOR ON-DEMAND SERVICETECHNICAL FIELD

[0001] Various embodiments relate to a server and a method for facilitating batching orders for an on-demand service.BACKGROUND

[0002] Due to development of information technology, a user (who in some contexts herein may also be referred to as a “requester”, a “consumer”, a “customer” or a “Pax”) may request an on-demand service using a computing device. The on-demand service may allow the user to fulfil the user’s demand via an immediate access to goods and / or services. The user may request the on-demand service, for example, a delivery service or a transport service (also referred to as an “e-hailing service”), using a user interface presented on the computing device. To request the on-demand service, the user may make an order (also referred to as a “booking”) for the on-demand service.

[0003] To improve efficiency in providing the on-demand service, an on-demand service platform provider has introduced a concept of “batching”. The on-demand service platform provider may batch multiple orders if at least one criterion is met, and a delivery service provider may take the batched orders at a time. For example, if the multiple orders are received in a same time slot and locations of the multiple orders are close to each other, such multiple orders may be batched. The on-demand service platform provider may suggest a travel route for the batched orders to the delivery service provider.

[0004] FIG. 1 is an exemplary diagram showing a travel route for batched orders according to a conventional technology. Conventionally, the delivery service provider taking the batched orders may suffer from an inefficient travel route including inefficient pick-up and drop-off sequences, for example, showing a zig-zag pattern. For example, as shown in FIG. 1, the suggested travel route may suggest travel sequences of a first pick-up location Pl, a second pick-up location P2, a first drop-off location DI, and a second drop-off location D2. Therefore, the delivery service provider may not always move forward, and in certain steps of the travel route, the delivery service provider may need to move backward. Such inefficient travel route may lead longer travel time and costs.

[0005] Therefore, there is a need to provide a solution for facilitating batching orders, to improve the travel route planning for the batched orders by avoiding such zig-zag travel route.SUMMARY

[0006] According to various embodiments, there is a server for facilitating batching orders for an on-demand service, the server comprising: a memory configured to store instructions; a communication interface configured to receive a plurality of orders for the on-demand service, wherein each of the plurality of orders relates to information about a pick-up location and a drop-off location for the on-demand service; and a processor for executing the stored instructions and configured to: form a candidate batching group for batching a first order and a second order of the plurality of orders and a candidate travel route for the candidate batching group, based on a first pick-up location and a first drop-off location of the first order and a second pick-up location and a second drop-off location of the second order; define a plurality of nodes each associated with the first pick-up location and the first drop-off location of the first order and the second pick-up location and the second drop-off location of the second order,and verify the candidate travel route before allocating a delivery service provider to the candidate travel route, wherein, to verify the candidate travel route, the processor is configured to: for each node of the plurality of nodes, define a previous node and a next node with respect to the node, based on the candidate travel route; define a forward region and a backward region with respect to the node, based on an angle relating to a previous edge connecting the node and the previous node and a next edge connecting the node and the next node; and determine whether to accept or reject the candidate travel route, based on whether the next node is in the forward region or the backward region

[0007] In some embodiments, the processor is further configured to: if it is determined that the next node is in the forward region, accept a part of the candidate travel route relating to the node.

[0008] In some embodiments, the processor is further configured to: if it is determined that the next node is in the backward region, determine if a distance between the node and the next node is greater than a threshold.

[0009] In some embodiments, the processor is further configured to: if it is determined that the distance between the node and the next node is equal to or less than the threshold, accept the part of the candidate travel route relating to the node.

[0010] In some embodiments, the processor is further configured to: if it is determined that the distance between the node and the next node is greater than the threshold, reject the candidate travel route.[00111 In some embodiments, the processor is further configured to: determine the threshold based on the angle and a minimum value of a distance between the node and the previous node and the distance between the node and the next node.

[0012] In some embodiments, the processor is further configured to: determine the threshold by multiplying a cosine value of 180 degrees minus the angle and the minimum value of thedistance between the node and the previous node and the distance between the node and the next node.

[0013] In some embodiments, the processor is further configured to: if all parts of the candidate travel route are accepted, accept the candidate travel route, and allocate the delivery service provider to the candidate travel route.

[0014] In some embodiments, the processor is further configured to: if the candidate travel route is rej ected, form a new candidate travel route for the candidate batching group, and verify the new candidate travel route before allocating the delivery service provider to the new candidate travel route.

[0015] In some embodiments, the processor is further configured to: if all available candidate travel routes for the candidate batching group is rejected, reject the candidate batching group, and form a new candidate batching group for batching the first order and a third order of the plurality of orders.

[0016] According to various embodiments, there is a method for facilitating batching orders for an on-demand service, the method comprising: receiving a plurality of orders for the on- demand service, wherein each of the plurality of orders relates to information about a pick-up location and a drop-off location for the on-demand service; forming a candidate batching group for batching a first order and a second order of the plurality of orders and a candidate travel route for the candidate batching group, based on a first pick-up location and a first drop-off location of the first order and a second pick-up location and a second drop-off location of the second order; defining a plurality of nodes each associated with the first pick-up location and the first drop-off location of the first order and the second pick-up location and the second drop-off location of the second order; and verifying the candidate travel route before allocating a delivery service provider to the candidate travel route, wherein the verifying the candidate travel route comprises: for each node of the plurality of nodes, defining a previous node and anext node with respect to the node, based on the candidate travel route; defining a forward region and a backward region with respect to the node, based on an angle relating to a previous edge connecting the node and the previous node and a next edge connecting the node and the next node; and determining whether to accept or reject the candidate travel route, based on whether the next node is in the forward region or the backward region.

[0017] In some embodiments, the verifying the candidate travel route further comprises: if it is determined that the next node is in the forward region, accepting a part of the candidate travel route relating to the node.

[0018] Tn some embodiments, the verifying the candidate travel route further comprises: if it is determined that the next node is in the backward region, determining if a distance between the node and the next node is greater than a threshold.

[0019] In some embodiments, the verifying the candidate travel route further comprises: if it is determined that the distance between the node and the next node is equal to or less than the threshold, accepting the part of the candidate travel route relating to the node.

[0020] In some embodiments, the verifying the candidate travel route further comprises: if it is determined that the distance between the node and the next node is greater than the threshold, rejecting the candidate travel route.

[0021] In some embodiments, the verifying the candidate travel route further comprises: determining the threshold based on the angle and a minimum value of a distance between the node and the previous node and the distance between the node and the next node.|0022| In some embodiments, the verifying the candidate travel route further comprises: determining the threshold by multiplying a cosine value of 180 degrees minus the angle and the minimum value of the distance between the node and the previous node and the distance between the node and the next node.

[0023] In some embodiments, the verifying the candidate travel route further comprises: if all parts of the candidate travel route are accepted, accepting the candidate travel route; and the method further comprises : allocating the delivery service provider to the candidate travel route.

[0024] In some embodiments, the method further comprises: if the candidate travel route is rejected, forming a new candidate travel route for the candidate batching group, and verifying the new candidate travel route before allocating the delivery service provider to the new candidate travel route.

[0025] In some embodiments, the method further comprises: if all available candidate travel routes for the candidate batching group is rejected, rejecting the candidate batching group, and forming a new candidate batching group for batching the first order and a third order of the plurality of orders.

[0026] According to various embodiments, a data processing apparatus configured to perform the method of any one of the above embodiments is provided.

[0027] According to various embodiments, a computer program element 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 is provided.

[0028] According to various embodiments, 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 the above embodiments is provided. The computer-readable medium may include a non-transitory computer-readable medium.BRIEF DESCRIPTION OF THE DRAWINGS

[0029] The invention will be better understood with reference to the detailed description when considered in conjunction with the non-limiting examples and the accompanying drawings, in which:- FIG. 1 is an exemplary diagram showing a travel route for batched orders according to a conventional technology.- FIGS. 2 and 3 illustrate infrastructures of a system including a server for facilitating batching orders for an on-demand service according to various embodiments.- FIG. 4 illustrates a block diagram of a server for facilitating batching orders for an on- demand service according to various embodiments.- FIG. 5 illustrates a flowchart for a method for facilitating batching orders for an on- demand service according to various embodiments.- FIG. 6 is an exemplary diagram showing defining a backward region and a forward region according to various embodiments.- FIGS. 7 and 8 are exemplary diagrams showing determining if a distance between a node and a previous node is greater than a threshold according to various embodiments.- FIG. 9 is an exemplary diagram showing verifying a candidate travel route according to various embodiments.- FIG. 10 is an exemplary diagram showing a potential impact for different thresholds according to various embodimentsDETAILED DESCRIPTION

[0030] The following detailed description refers to the accompanying drawings that show, by way of illustration, specific details and embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practicethe disclosure. Other embodiments may be utilized and structural, and logical changes may be made without departing from the scope of the disclosure. The various embodiments are not necessarily mutually exclusive, as some embodiments can be combined with one or more other embodiments to form new embodiments.

[0031] Embodiments described in the context of one of a server and a method are analogously valid for the other server and method. Similarly, embodiments described in the context of a server are analogously valid for a method, and vice-versa.

[0032] Features that are described in the context of an embodiment may correspondingly be applicable to the same or similar features in the other embodiments Features that are described in the context of an embodiment may correspondingly be applicable to the other embodiments, even if not explicitly described in these other embodiments. Furthermore, additions and / or combinations and / or alternatives as described for a feature in the context of an embodiment may correspondingly be applicable to the same or similar feature in the other embodiments.

[0033] In the context of various embodiments, the articles “a”, “an” and “the” as used with regard to a feature or element include a reference to one or more of the features or elements.

[0034] As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items.

[0035] Throughout the description, the term “module” may be understood as an application specific integrated circuit (ASIC), an electronic circuit, a combinational logic circuit, a field programmable gate array (FPGA), a processor which executes code, other suitable hardware components which provide the described functionality, or any combination thereof. The term of “module” may include a memory which stores code executed by the processor.

[0036] In the following, embodiments will be described in detail.

[0037] FIGS. 2 and 3 illustrate infrastructures of a system 200 including a server 100 for facilitating batching orders for an on-demand service according to various embodiments.

[0038] As shown in FIG. 2, the system 200 may include, but is not limited to, the server 100, a database system 140, a network 150, a plurality of first computing devices 160 each associated with a plurality of users 161 (who in some contexts herein may also be referred to as a “requester”, a “consumer”, a “customer” or a “Pax”), a plurality of second computing devices 170 (not shown) each associated with a plurality of delivery service providers 171 (who in some contexts herein may also be referred to as a “driver”, a “driver partner”, a “Dax”, a “delivery partner” or a “delivery agent”), and a plurality of third computing devices 180 (not shown) each associated with a plurality of item providers 181 (who in some contexts herein may also be referred to as a “merchant”, a “Mex”, a “food provider” or a “restaurant”) Tn some embodiments, the users 161 may include a consumer (who in some contexts herein may also be referred to as an “eater” or a “passenger”) for the on-demand service. For example, a user 161a may be the same as the consumer. As another example, the user 161a may be different from the consumer and use the on-demand service for and / or on behalf of the consumer who is a third party.

[0039] In some embodiments, the on-demand service may be a service allowing the user 161a to fulfil the user’s demand via an immediate access to items and / or services. The user 161a may request the on-demand service, such as a transport service (also referred to as an “e-hailing service”) or an item delivery service, using a user interface presented on a first computing device 160a. The user 161 a may make an order for the on-demand service using the first computing device 160a.|0040| In some embodiments, the user 161a may use an application, for example, a mobile application, provided by a server 100. For example, the server 100 may be controlled and / or managed by an on-demand service platform provider. The application may be installed in the first computing device 160a associated with the user 161a, to interact with the server 100 for the on-demand service.

[0041] In some embodiments, the network 150 may include, but is not limited to, a Local AreaNetwork (LAN), a Wide Area Network (WAN), a Global Area Network (GAN), or any combination thereof. The network 150 may provide a wireline communication, a wireless communication, or a combination of the wireline and wireless communication between the server 100 and the plurality of first computing devices 160, between the server 100 and the plurality of second computing devices 170, and between the server 100 and the plurality of third computing devices 180. As shown in FIG. 3, the network 150 may provide the wireline communication, the wireless communication, or the combination of the wireline and wireless communication between the first computing device 160a of the plurality of first computing devices 160 and a second computing device 170a of the plurality of second computing devices 170.

[0042] In some embodiments, the plurality of first computing devices 160 may be connectable to the server 100 via the network 150. In some embodiments, the plurality of first computing devices 160 may be arranged in data or signal communication with the server 100 via the network 150. In some embodiments, the plurality of first computing devices 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, the plurality of first computing devices 160 may be associated with the plurality of users 161 respectively. For example, the plurality of first computing devices 160 may belong to the plurality of users 161 respectively. For example, the first computing device 160a may belong to the user 161a who is the consumer. As another example, the first computing device 160a may belong to the user 161a requesting the delivery of the item to the consumer who is a recipient of the on-demand service.

[0043] In some embodiments, the first computing device 160a may include a location sensor. In some embodiments, the location sensor may communicate with at least one of a globalpositioning satellite (GPS) server, a network server, and a Wi-Fi server, to detect a location of the first computing device 160a. In some embodiments, the first computing device 160a may generate information about the location of the first computing device 160a.

[0044] In some embodiments, the server 100, for example, implemented by a server computer, may include a communication interface 110, a processor 120, and a memory 130 (as will be described with reference to FIG. 4).

[0045] In some embodiments, the server 100 may communicate with the plurality of first computing devices 160 via the network 150. In some embodiments, the user 161a may request the on-demand service, for example, the delivery service or the transport service, using a user interface presented on the first computing device 160a. In some embodiments, to request the on-demand service, the user 161a may make an order (also referred to as a “booking”) for the on-demand service. In some embodiments, the first computing device 160a may receive the order from the user 161 a for the on-demand service. The first computing device 160a may send the order to the server 100 via the network 150. In some embodiments, the order may relate to information about a pick-up location and a drop-off location for the on-demand service. In some embodiments, the order may include the information about the pick-up location and the drop-off location for the on-demand service. In some embodiments, the information may include the location of the first computing device 160a. In some embodiments, the location of the first computing device 160a may be considered as a location of the user 161 a. In some embodiments, the location of the user 161a may be considered as a drop-off location (that in some contexts herein may also be referred to as a “destination” or a “delivery location”) of the on-demand service (for example, the item delivery service). In some other embodiments, the location of the user 161a may be considered as a pick-up location (that in some contexts herein may also be referred to as a “starting point”) of the on-demand service (for example, the transport service). In some other embodiments, the first computing device 160a may sendinformation about an address of the user 161a, and the address of the user 161a may be considered as the pick-up location or the drop-off location of the on-demand service. In some embodiments, the information may include a destination that the user 161a would like to go as the drop-off location. In some embodiments, the information may include information about an item provider 181a that the user 161 selected, and include a location of the item provider 181a as the pick-up location (as will be described below).

[0046] In some embodiments, the system 200 may further include a database 141. In some embodiments, the database 141 may be a part of the database system 140 which 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.

[0047] In some embodiments, the server 100 may communicate with the plurality of second computing devices 170 via the network 150. In some embodiments, the plurality of second computing devices 170 may be arranged in data or signal communication with the server 100 via the network 150. In some embodiments, the plurality of second computing devices 170 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, the plurality of second computing devices 170 may be associated with the plurality of delivery service providers 171 respectively For example, the plurality of second computing devices 170 may belong to the plurality of delivery service providers 171 respectively.

[0048] In some embodiments, the server 100 may receive the order from the first computing device 160a. After the server 100 receives the order from the first computing device 160a, the server 100 may allocate (assign) the order to a suitable delivery service provider 171a. In some embodiments, the second computing device 170a associated with the delivery service provider171a may send information about a location of the second computing device 170a to the server 100 via the network 150. The location of the second computing device 170a may be considered as a location of the delivery service provider 171a. In some embodiments, the location of the delivery service provider 171a may be considered as a current location of the delivery service provider 171a, and may change while the delivery service provider 171a moves. In some embodiments, the server 100 may provide the second computing device 170a with a map relating to a travel route from the current location of the second computing device 170a (which may be considered as the location of the delivery service provider 171a) to a next location (for example, the pick-up location or the drop-off location) for providing the on-demand service.

[0049] In some embodiments, the server 100 may communicate with the plurality of third computing devices 180 via the network 150. In some embodiments, the plurality of third computing devices 180 may be arranged in data or signal communication with the server 100 via the network 150. In some embodiments, the plurality of third computing devices 180 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, the plurality of third computing devices 180 may be associated with the plurality of item providers 181 respectively. For example, the plurality of third computing devices 180 may belong to the plurality of item providers 181 respectively.

[0050] In some embodiments, the plurality of item providers 181 may include, but are not limited to, a food provider and a goods provider, that may manufacture and / or provide items, for example, foods or goods. For example, the food provider may include, but is not limited to, a restaurant and a cafe. As an example, the goods provider may include, but is not limited to, a store, a market, and a supermarket. In some embodiments, the server 100 may receive the order for the item delivery service with the information about the location of the user 161a, and then produce a list of items, associated with at least one item provider, that may be prepared anddelivered to the user 161a. In some embodiments, the server 100 may communicate with the plurality of third computing devices 180 to check the plurality of item providers’ 181 availability. In some embodiments, the server 100 may communicate with the plurality of third computing devices 180 to aggregate information including, but not limited to, a list of available items, an estimated time of preparation of each item, and an estimated price of each item, in order to produce the list of items. In some embodiments, the first computing device 160a may display the list of items with the aggregated information of the at least one of the plurality of item providers 181 on the user interface In some embodiments, after the user 161a makes selections on the user interface for the order for the item delivery service, for example, by selecting an item provider 181a and the item, the server 100 may communicate with a third computing device 180a associated with the selected item provider 181a to prepare the selected item. In some embodiments, the location of the first computing device 160a may be considered as a location of the user 161a. In some embodiments, the location of the user 161a may be considered as the drop-off location (that in some contexts herein may also be referred to as the “destination” or the “delivery location”) of the item delivery service. In some other embodiments, the first computing device 160a may send information about an address of the user 161a, and the address of the user 161a may be considered as the drop-off location of the item delivery service.

[0051] In some embodiments, the delivery service provider 171 a may take two or more orders which meet at least one criterion (also referred to as “batched orders”). In some embodiments, the server 100 may receive a plurality of orders from the plurality of computing devices 160. The server 100 may batch the two or more orders which meet at least one criterion. For example, if the two or more orders are received in a same time slot (for example, a predetermined time slot (e.g. 5 minutes)) and locations (for example, pick-up locations and / or drop-off locations) of the two or more orders are close to each other (for example, within apredetermined distance), the server 100 may batch the two or more orders, and assign the batched orders to one delivery service provider 171a. The delivery service provider 171a may take the batched orders at a time.

[0052] In some embodiments, for the item delivery service, the delivery service provider 171a may pick up a first item from a first pick-up location, for example, a location of a first item provider 181a, and pick up a second item from a second pick-up location, for example, a location of a second item provider 181b, before delivering the first item to a first drop-off location, for example, a location of a first user 161a. The delivery service provider 171a may then deliver the first item to the first drop-off location, for example, the location of the first user 161a, and deliver the second item to a second drop-off location, for example, a location of a second user 161b. In some embodiments, for the transport service, the delivery service provider 171a may pick up a first user 160a at a first pick-up location, for example, a location of the first user 161a, and pick up a second user 160b at a second pick-up location, for example, a location of the second user 161b, before dropping off the first user 160a at a first drop-off location, for example, a destination of the first user 161a. The delivery service provider 171a may then drop off the first user 161a at the first drop-off location, for example, the destination of the first user 161a, and drop off the second user 161b at a second drop-off location, for example, a destination of the second user 161b.

[0053] FIG 4 illustrates a block diagram of a server 100 for providing information for an on- demand service according to various embodiments.|0054| As shown in FIG. 4, the server 100, for example, implemented by a server computer, may include a communication interface 110, a processor 120, and a memory 130.

[0055] In some embodiments, the memory 130 (also referred to as a “database”) may store input data and / or output data temporarily or permanently. In some embodiments, the memory 130 may be configured to store instructions. In some embodiments, the memory 130 may storeprogram code which allows the server 100 to perform a method 300 (as will be described with reference to FIG. 5). In some embodiments, the program code may be embedded in a Software Development Kit (SDK). The memory 130 may include an internal memory of the server 100 and / or an external memory. The external memory may include, but is not limited to, an external storage medium, for example, a memory card, a flash drive, and a web storage.

[0056] In some embodiments, the communication interface 110 may allow a plurality of first computing devices 160 to communicate with the processor 120 of the server 100 via the network 150, as shown in FIGS. 2 and 3. As shown in FIGS. 2 and 3, each of the plurality of first computing devices 160 may belong to each of users 161 who want to make an order for the on-demand service. In some embodiments, the communication interface 110 may transmit signals to the plurality of first computing devices 160, and / or receive signals from the plurality of first computing devices 160, via the network 150. For example, as shown in FIGS. 2 and 3, a first computing device 160a may belong to a user 161a who wants to make an order for the on-demand service, and the communication interface 110 may transmit signals to the first computing device 160a, and / or receive signals from the first computing device 160a via the network 150.

[0057] In some embodiments, the communication interface 110 may allow a plurality of second computing devices 170 to communicate with the processor 120 of the server 100 via the network 150, as shown in FIGS. 2 and 3. As shown in FIGS. 2 and 3, each of the plurality of second computing devices 170 may belong to each of a plurality of delivery service providers 171 who may pick up an item from an item provider 181a at a pick-up location and deliver the item to the user 161 at a drop-off location and / or who may transport the user 161a from a pickup location to a drop-off location. In some embodiments, the communication interface 110 may transmit signals to the plurality of second computing devices 170, and / or receive signals from the plurality of second computing devices 170, via the network 150.

[0058] In some embodiments, the communication interface 110 may allow a plurality of third computing devices 180 to communicate with the processor 120 of the server 100 via the network 150, as shown in FIG. 2. As shown in FIG. 2, each of the plurality of third computing devices 180 may belong to each of a plurality of item providers 181 who may prepare an item, for example, food, for the order. In some embodiments, the communication interface 110 may transmit signals to the plurality of third computing devices 180, and / or receive signals from the plurality of third computing devices 180, via the network 150.

[0059] The processor 120 may include, but is not limited to, a microprocessor, an analogue 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 kind of implementation of the respective functions, which will be described below in further detail, may also be understood as the processor 120.

[0060] In some embodiments, the processor 120 may be connectable to the communication interface 110. In some embodiments, the processor 120 may be arranged in data or signal communication with the communication interface 110 to transmit / receive the signals.

[0061] In some embodiments, the communication interface 110 may receive a plurality of orders (also referred to as “a plurality of bookings”) for the on-demand service from the plurality of first computing devices 160 each associated with the plurality of users 161 (who in some contexts herein may also be referred to as “consumers 161” or “requesters 161”). In some embodiments, the processor 120 may receive the plurality of orders for the on-demand service from the communication interface 110. For example, the communication interface 110 may receive an order (also referred to as a “booking”) for the on-demand service from the first computing device 160a associated with the user 161a (who in some contexts herein may alsobe referred to as a “consumer 161a” or a “requester 161a”), and the processor 120 may receive the order for the on-demand service from the communication interface 110.

[0062] In some embodiments, the processor 120 may receive a request for a search for the item delivery service from the first computing device 160a. In some embodiments, the processor 120 may produce a list of items, associated with at least one item provider 181, that may be prepared and delivered to the user 161a. The processor 120 may then provide the list of items to the first computing device 160a, so that the user 161a may select an item provider 181a and an item for the item delivery service

[0063] In some embodiments, the user 161 a may select the item provider 181a and the item from the list of items. The first computing device 160a may generate information about the selected item provider 181a and the selected item, based on the user’ s 161 a input. The processor 120 may receive the information about the selected item provider 181a and the selected item from the first computing device 160a, via the communication interface 110. In some embodiments, the processor 120 may then provide the information about the selected item to the selected item provider 181a for preparing the selected item, via the communication interface 110.

[0064] In some embodiments, the processor 120 may select a delivery service provider 171a from one or more delivery service providers 171 based on a geographical location of the one or more delivery service providers 171. In some embodiments, the processor 120 may request the selected delivery service provider 171a to pick up the selected item at a geographical location of the selected item provider 181a (i.e. the pick-up location) and deliver the selected item to the user 161a (i.e. the drop off location).

[0065] In some embodiments, the processor 120 may receive a request for the transport service from the first computing device 160a. The first computing device 160a may generate information about a location of the first computing device 160a which may be considered as alocation of the user 161a (i.e. the pick-up location) and a location of a destination (i.e. the dropoff location), for example, based on the user’s 161a input. The processor 120 may receive the information about the pick-up location and the drop-off location from the first computing device 160a, via the communication interface 110. In some embodiments, the processor 120 may select a delivery service provider 171a from one or more delivery service providers 171 based on a geographical location of the one or more delivery service providers 171. In some embodiments, the processor 120 may request the selected delivery service provider 171a to pickup the user 161a at the pick-up location and drop off the user 161a at the drop-off location.

[0066] In some embodiments, the processor 120 may receive a plurality of orders from a plurality of first computing devices 160 each associated with a plurality of users 161, and the processor 120 may batch two or more orders which meet at least one criterion among the plurality of orders. For example, if the two or more orders are received in a same time slot (for example, a predetermined time slot (e.g. 5 minutes)) and locations (for example, pick-up locations and / or drop-off locations) of the two or more orders are close to each other (for example, within a predetermined distance), the processor 120 may batch the two or more orders, and assign the batched orders to the selected delivery service provider 171a. In some embodiments, for the item delivery service, the locations of the two or more orders may include the pick-up locations of the two or more orders (for example, locations of item providers 181 of the two or more orders) and / or the drop-off locations of the two or more orders (for example, locations of users 161 of the two or more orders). In some embodiments, for the transport service, the locations of the two or more orders may include the pick-up locations of the two or more orders (for example, locations of users 161 of the two or more orders) and / or the dropoff locations of the two or more orders (for example, destinations of the two or more orders).

[0067] In some embodiments, the processor 120 may determine a travel route of the selected delivery service provider 171a. For example, the processor 120 may determine the travel routeof the selected delivery service provider 171a based on the pick-up locations and the drop-off locations of the batched orders. In some embodiments, the processor 120 may provide the travel route of the selected delivery service provider 171a to a second computing device 170a associated with the selected delivery service provider 171a. In some embodiments, the processor 120 may provide the travel route of the selected delivery service provider 171a to first computing devices 160, for example, first computing devices 160a, 160b, each associated with the users 161, for example, a first user 161a and a second user 161b, who made each of the batched orders, for example, a first order and a second order

[0068] In some embodiments, the selected delivery service provider 171 a may take the batched orders, for example, the first order and the second order, at a time. In some embodiments, for the item delivery service, the delivery service provider 171a may pick up a first item from a first pick-up location, for example, a location of a first item provider 181a, and pickup a second item from a second pick-up location, for example, a location of a second item provider 181b, before delivering the first item to a first drop-off location, for example, a location of the first user 161a. The delivery service provider 171a may then deliver the first item to the first dropoff location, for example, the location of the first user 161a, and deliver the second item to a second drop-off location, for example, a location of the second user 161b. In some embodiments, for the transport service, the delivery service provider 171a may pick up the first user 160a at a first pick-up location, for example, a location of the first user 161 a, and pick up the second user 160b at a second pick-up location, for example, a location of the second user 161b, before dropping off the first user 160a at a first drop-off location, for example, a destination of the first user 161a. The delivery service provider 171a may then drop off the first user 161a at the first drop-off location, for example, the destination of the first user 161a, and drop off the second user 161b at a second drop-off location, for example, a destination of the second user 161b.

[0069] In some embodiments, in order to facilitate batching the orders for the on-demand service, the processor 120 may form a candidate batching group for batching the first order made by the first user 161a and the second order made by the second user 161b of the plurality of orders. In some embodiments, the processor 120 may form the candidate batching group to batch the first order and the second order of the plurality of orders, based on conventional technologies using pick-up locations and drop-off locations of the plurality of orders. For example, the processor 120 may form the candidate batching group to batch the first order and the second order of the plurality of orders, based on the conventional technologies using a first pick-up location Pl and a first drop-off location DI of the first order and a second pick-up location P2 and a second drop-off location D2 of the second order. In some embodiments, the processor 120 may form a candidate travel route for the candidate batching group, based on the conventional technologies using the first pick-up location P l and the first drop-off location D I of the first order and the second pick-up location P2 and the second drop-off location D2 of the second order. In some embodiments, the processor 120 may select the candidate batching group and the candidate travel route that may be determined to be the most accurate (or the most preferable) from a plurality of candidate batching groups and from a plurality of candidate travel routes, according to the conventional technologies.

[0070] In some embodiments, the processor 120 may define a plurality of nodes each associated with (for example, corresponding to) the first pick-up location Pl and the first dropoff location DI of the first order and the second pick-up location P2 and the second drop-off location D2 of the second order. In some embodiments, the processor 120 may provide a road network graph representing an actual road, for example, with a ratio of 1: 1. In some embodiments, the road network graph may include the plurality of nodes (also referred to as “a plurality of vertices”) representing pick-up locations and drop-off locations, and a plurality of edges (also referred to as “a plurality of arcs” or “a plurality of links”) representing a pluralityof road segments respectively. Each edge may connect two nodes. In the road network graph, a travel route (also referred to as a “route” or a “path”) may be a sequence of edges / nodes, for example, consecutive edges sharing an end node.

[0071] In some embodiments, the processor 120 may verify the candidate travel route before allocating a delivery service provider 171 a to the candidate travel route. In some embodiments, if the candidate travel route is verified to be approved, the processor 120 may allocate the delivery service provider 171a to the batched orders to travel based on the candidate travel route to provide the on-demand service to the first user 161a and the second user 161b In some embodiments, if the candidate travel route is verified to be rejected, the processor 120 may not allocate the delivery service provider 171a to the batched orders, and try to look for an alternative (new) travel route and / or an alternative (new) candidate batching group.

[0072] In some embodiments, in order to verify the candidate travel route, for each node of the plurality of nodes, the processor 120 may define a previous node and a next node with respect to each node, based on the candidate travel route. For example, for a certain node, the processor 120 may define a previous node and a next node with respect to the certain node, based on the candidate travel route. In some embodiments, referring to FIG. 1 , with respect to a certain node N2, a previous node may be a node N1 corresponding to a previous location (for example, a first pick-up location Pl) that the delivery service provider 171a would travel before a certain location (for example, a second pick-up location P2) corresponding to the certain node N2, according to the travel route, and the next node may be a node N3 corresponding to a next location (for example, a first drop-off location DI) that the delivery service provider 171a would travel after the certain location (for example, the second pick-up location P2) corresponding to the certain node N2, according to the travel route.

[0073] In some embodiments, in order to verify the candidate travel route, for each node of the plurality of nodes, the processor 120 may define a forward region and a backward region with Lrespect to each node, based on an angle relating to a next edge and a previous edge. In some embodiments, the angle may be an angle between the next edge and a reference edge relating to the previous edge. In some embodiments, the previous edge may be an edge connecting the node and the previous node, the reference edge may be an edge extending the previous edge to a forward direction, and the next edge may be an edge connecting the node and the next node. For example, for a certain node, the processor 120 may define a forward region and a backward region with respect to the certain node, based on an angle relating to a next edge and a previous edge, for example, an angle between the next edge and a reference edge relating to the previous edge As an example, the previous edge may be an edge connecting the certain node and the previous node, the reference edge may be an edge extending the previous edge to the forward direction (opposite to a backward direction, according to the candidate travel route), and the next edge may be an edge connecting the certain node and the next node.

[0074] In some embodiments, in order to verify the candidate travel route, for each node of the plurality of nodes, the processor 120 may determine whether to accept or reject the candidate travel route, based on whether the next node is in the forward region or the backward region.

[0075] In some embodiments, if the processor determines that the next node is in the backward region, the processor 120 may determine to reject the candidate travel route In some embodiments, if the processor 120 determines that the next node with respect to the certain node is in the backward region, the processor 120 may determine to check a distance of a backward travel distance to determine whether to reject the candidate travel route. In some embodiments, if the processor 120 determines that the next node with respect to the certain node is in the backward region, the processor 120 may determine if a distance between the certain node and the next node is greater than a threshold. In some embodiments, if the processor 120 determines that the distance between the node and the next node is greater than the threshold, the processor 120 may reject the candidate travel route. In some embodiments,if the processor 120 determines that the distance between the certain node and the next node is equal to or less than the threshold, the processor 120 may accept a part of the candidate travel route relating to the certain node, for example, the part of the candidate travel route which corresponds to the next edge connecting the certain node and the next node. In some embodiments, the processor 120 may repeat the above steps for all the remaining nodes of the plurality of nodes, to verify the candidate travel route.

[0076] In some embodiments, the processor 120 may determine the threshold based on the angle and a minimum value of a distance between the certain node and the previous node and the distance between the certain node and the next node In some embodiments, the processor 120 may determine the threshold by multiplying a cosine value of 180 degrees minus the angle (i.e. Cosine(180-X)) and the minimum value of the distance between the certain node and the previous node and the distance between the certain node and the next node.

[0077] In some embodiments, if the processor 120 determines that the next node is in the forward region, the processor 120 may determine to accept the candidate travel route. In some embodiments, if the processor 120 determines that the next node with respect to the certain node is in the forward region, the processor 120 may determine to accept a part of the candidate travel route relating to the certain node, for example, the part of the candidate travel route which corresponds to the next edge connecting the certain node and the next node. In some embodiments, the processor 120 may repeat the above steps for all the remaining nodes of the plurality of nodes, to verify the candidate travel route.100781 In some embodiments, if the processor 120 determines that, for all the remaining nodes, their next nodes are in the forward region and / or the distances between the remaining nodes and their next nodes are equal to or less than the threshold, the processor 120 may determine to accept the candidate travel route.

[0079] In some embodiments, if the processor 120 determines to accept all parts of the candidate travel route, the processor 120 may accept the candidate travel route, and allocate the delivery service provider 170a to the candidate travel route, to travel according to the candidate travel route in order to provide the on-demand service.

[0080] In some embodiments, if the processor 120 determines to reject the candidate travel route, the processor 120 may form a new candidate travel route for the candidate batching group, and verify the new candidate travel route before allocating the delivery service provider 170a to the new candidate travel route. In some embodiments, the processor 120 may verify the new candidate travel route based on the above steps.

[0081] In some embodiments, if the processor 120 determines to reject all available candidate travel routes for the candidate batching group, the processor 120 may reject the candidate batching group, and form a new candidate batching group for batching the first order and another order, for example, a third order, of the plurality of orders. In some embodiments, the processor 120 may form a new candidate travel route for the new candidate batching group, and verify the new candidate travel route before allocating the delivery service provider 170a to the new candidate travel route. In some embodiments, the processor 120 may verify the new candidate travel route based on the above steps

[0082] As described above, the various embodiments may directly control a distance that the delivery service provider 170a needs to travel backward. The various embodiments may improve the delivery service provider’s 170a and the user’s 160a experience by allowing a batching system and / or a batching engine that may generate batched travel routes for all business verticals, including food, mart, express, and transport, to avoid zig-zag routes.

[0083] FIG. 5 illustrates a flowchart for a method 300 for facilitating batching orders for an on-demand service according to various embodiments. According to various embodiments, the method 300 for facilitating batching the orders for the on-demand service may be provided.

[0084] In some embodiments, the method 300 may include a step 301 of receiving a plurality of orders for the on-demand service. In some embodiments, each of the plurality of orders may relate to information about a pick-up location and a drop-off location for the on-demand service. For example, each of the plurality of orders may include the information about the pick-up location and the drop-off location for the on-demand service.

[0085] In some embodiments, the method 300 may include a step 302 of forming a candidate batching group for batching a first order and a second order of the plurality of orders and a candidate travel route for the candidate batching group, based on a first pick-up location and a first drop-off location of the first order and a second pick-up location and a second drop-off location of the second order.

[0086] In some embodiments, the method 300 may include a step 303 of defining a plurality of nodes each associated with the first pick-up location and the first drop-off location of the first order and the second pick-up location and the second drop-off location of the second order.

[0087] In some embodiments, the method 300 may include a step 304 of verifying the candidate travel route before allocating a delivery service provider to the candidate travel route.

[0088] In some embodiments, the step 304 may include a step 305 of, for each node of the plurality of nodes, defining a previous node and a next node with respect to the node, based on the candidate travel route.

[0089] In some embodiments, the step 304 may include a step 306 of, for each node of the plurality of nodes, defining a forward region and a backward region with respect to the node, based on an angle relating to a previous edge connecting the node and the previous node and a next edge connecting the node and the next node.

[0090] In some embodiments, the step 304 may include a step 307 of, for each node of the plurality of nodes, determining whether to accept or reject the candidate travel route, based on whether the next node is in the forward region or the backward region.

[0091] As described above, compared to existing solutions, the various embodiments may be intuitive and straightforward in generating travel routes aligning with the delivery service provider’s 170a perception. The configuration may be measured by a distance which is intuitive to the user 160a.

[0092] FIG. 6 is an exemplary diagram showing defining a backward region and a forward region according to various embodiments.

[0093] Instead of setting weights on time and distance savings, the various embodiments may directly control a distance that a delivery service provider 170a needs to travel backward.

[0094] In some embodiments, as shown in FIG 6, for each of a plurality of nodes, for example, a certain node N2, a processor 120 of a server 100 may define a forward region and a backward region with respect to the certain node N2, based on an angle relating to a next edge E23 and a previous edge E12, for example, an angle between the next edge E23 and a reference edge Eref relating to the previous edge E12. As an example, the previous edge E12 may be an edge connecting the certain node N2 and a previous node Nl, the reference edge Eref may be an edge extending the previous edge E12 to a forward direction (opposite to abackward direction, according to a candidate travel route), and the next edge E23 may be an edge connecting the certain node N2 and a next node N3.

[0095] In some embodiments, as shown in FIG 6, at any given node of the plurality of nodes of the candidate travel route, for example, at the certain node N2, the processor 120 may quantify “forward” as an angle X between a direction from the certain node N2 to the next node N3 and a direction from the previous node Nl to the certain node N2 is equal to or less than 90 degree, where the previous node Nl corresponds to a visited location, the certain node N2 corresponds to a current location, and the next node N3 and other next nodes N4 and N5 correspond to next candidate locations of the delivery service provider 170a according to thecandidate travel route. In this regard, the processor 120 may determine that the next node N3 is in the forward direction.

[0096] In some embodiments, as shown in FIG. 6, at the certain node N2, the processor 120 may quantify “backward” as an angle Y between a direction from the certain node N2 to the next node N5 and a direction from the previous node N1 to the certain node N2 is greater than 90 degree, where the previous node N1 corresponds to a visited location, the certain node N2 corresponds to a current location, and the next node N3 and other next nodes N4 and N5 correspond to next candidate locations of the delivery service provider 170a according to the candidate travel route. In this regard, the processor 120 may determine that the next node N5 is in the backward direction.

[0097] In some embodiments, if the next node corresponding to the next location is in the forward region, there may be no limit on the distance that the delivery service provider 170a travels from the current location corresponding to the current node, for example, the certain node N2. If the next node corresponding to the next location is in the backward region, the processor 120 may limit the distance that the delivery service provider 170a travels from the current location corresponding to the current node, for example, the certain node N2. In some embodiments, the processor 120 may repeat the same computation at every node corresponding to every locations (i.e. pick-up locations and drop-off locations) in the candidate travel route.

[0098] FIGS. 7 and 8 are exemplary diagrams showing determining if a distance between a node and a previous node is greater than a threshold according to various embodiments.100991 In some embodiments, a processor 120 of a server 100 may define a threshold (also referred to as a “MaxBackwardLineDistance” or a “distance threshold”) to limit a distance (also referred to as a “StraightLineDistance”, a “straight-line distance”, a “projected straight- line distance”, a “backward line distance”, a “projected backward line distance” or a “projectedbackward straight-line distance”) that a delivery service provider 170a has to travel in a backward direction (i.e. opposite direction from its original course).

[0100] In some embodiments, as shown in FIGS. 7 and 8, the processor 120 may handle the step (the node) on a boundary of the backward region and the forward region. In some embodiments, the processor 120 may assume that the delivery service provider’s 170a tolerance on the travelled distance in the backward region drops as an angle increases. In some embodiments, the threshold may increase as the step (the node) moves from the backward region to the forward region. Therefore, the processor 120 may constrain the projected backward straight-line distance (the bold line in FIG. 8) in an original direction

[0101] In some embodiments, as shown in FIG. 8, the processor 120 may project a shorter edge onto a longer edge between the two adjacent edges. This may allow the delivery service provider 170a to make sharp turns within a small radius, otherwise, the processor 120 may not batch many orders.

[0102] For example, the processor 120 may not reject the candidate travel route, if the distance that the delivery service provider 170a moves backward is quite small, although the delivery service provider 170a moves backward after picking up orders. That is why the processor 120 computes the projected backward straight-line distance by projecting the shorter edge onto the longer edge. As another example, the processor 120 may reject the candidate travel route, if the delivery service provider 170a moves backward in a large angle and also travels backward quite far.100103 ] FIG. 9 is an exemplary diagram showing verifying a candidate travel route according to various embodiments.

[0104] In some embodiments, as shown in FIG. 9, at any given node of the plurality of nodes (Pl ->T,2-’-P3->D1 -*-D2-*D3) of the candidate travel route, for example, at a certain node N3corresponding to a current pick-up location P3, the processor 120 may perform the following steps:• Computing an angle X between two directed [P2—P3] and [P3—D1]• If the angle X < 90, moving to the next step (the next node)• If the angle X > 90, computing the projected backward straight-line distance as- Y = Cosine(180-X) * Min(StraightLineDistance(P2—P3), StraightLineDistance(P3-DI))- If Y > MaxBackwardLineDistance, rejecting such travel routeThe processor 120 may repeat the above steps for all steps (nodes) in the candidate travel route.

[0105] In some embodiments, the processor 120 may first form the candidate travel route with a specific sequence of steps (nodes) corresponding to the plurality of locations (pick-up locations and drop-off locations), apply the above method for each step (node) in the candidate travel route, and ensure that projected backward straight-line distances at all nodes are equal to or less than the threshold (i.e. the MaxBackwardLineDistance) If at least one of all nodes does not meet the above criteria, orders in the candidate batching group may not be batched The processor 120 may try to batch other orders in different sequence.|00106| In some embodiments, the processor 120 may compute the projected backward straight-line distance since it may help smoothen the constraint checking. In some embodiments, as shown in FIG. 9, with respect to the certain node N2 corresponding to a current pick-up location P2, the next node N3 corresponding to a next pick-up location P3 lies on the boundary of the backward region and the forward region. If the threshold (i.e. the MaxBackwardLineDistance) equals to 3km and without a projection (i.e. if the processor 120 does not multiply the distance with Cosine(180-X)), when the angle between two directed [Pl — P2] and [P2— P3] equals to 90.1 degree, the travel route may be rejected. However, thedelivery service provider’s 170a experience may not change much. As shown in FIG. 9, according to various embodiments, the projected backward straight-line distance between two directed [Pl ->P2] and [P2- P3] equals to 5 meter (3km Cosine(l 80-90.1 degree) = 5 meter). Therefore, according to the various embodiments, instead of using a raw backward line distance (for example, the raw backward line distance = 3km), the processor 120 may use the projection (i.e. the processor 120 multiplies the distance with Cosine(180-X)). Therefore, as shown in FIG. 9, according to the various embodiments, if the projected backward straight-line distance is only 5 meter, the candidate travel route may be accepted, since the delivery service provider 170a may just drive about 90 degree relative to the original course.

[0107] Conventionally, many bad cases contain steps (nodes) requiring the delivery service provider 170a to move backward. The various embodiments may define a new constraint to limit sharp turning angles with a long travel distance.

[0108] FIG. 10 is an exemplary diagram showing a potential impact for different thresholds according to various embodiments.

[0109] As shown in FIG. 10, technical advantages of the various embodiments may be the simplicity of setting a threshold (i.e. MaxBackwardLineDistance) without complex parameter turning.

[0110] According to various embodiments, a processor 120 of a server 100 may compute its value for any trip generated as one of trip metrics, and then categorise trips into different buckets according to their thresholds (i.e. MaxBackwardLineDistances). A table shown in FIG. 10 clearly shows a potential impact for different levels of the thresholds. In FIG. 10, “MaxBackwardLineDistance = (-Inf, 0]” means that the delivery service provider 170a is always moving forward in the trip according to the candidate travel route. Based on this information, an on-demand service platform provider may decide a proper threshold together with a domain knowledge.

[0111] While the disclosure has 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 detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. The scope of the invention is thus indicated by the appended claims and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced.

Claims

CLAIMS1. A server for facilitating batching orders for an on-demand service, the server comprising: a memory configured to store instructions; a communication interface configured to receive a plurality of orders for the on-demand service, wherein each of the plurality of orders relates to information about a pick-up location and a drop-off location for the on-demand service; and a processor for executing the stored instructions and configured to: form a candidate batching group for batching a first order and a second order of the plurality of orders and a candidate travel route for the candidate batching group, based on a first pick-up location and a first drop-off location of the first order and a second pick-up location and a second drop-off location of the second order; define a plurality of nodes each associated with the first pick-up location and the first drop-off location of the first order and the second pick-up location and the second drop-off location of the second order; and verify the candidate travel route before allocating a delivery service provider to the candidate travel route, wherein, to verify the candidate travel route, the processor is configured to: for each node of the plurality of nodes, define a previous node and a next node with respect to the node, based on the candidate travel route; define a forward region and a backward region with respect to the node, based on an angle relating to a previous edge connecting the node and the previous node and a next edge connecting the node and the next node; anddetermine whether to accept or reject the candidate travel route, based on whether the next node is in the forward region or the backward region.

2. The server according to claim 1, wherein the processor is further configured to: if it is determined that the next node is in the forward region, accept a part of the candidate travel route relating to the node.

3. The server according to claim 2, wherein the processor is further configured to: if it is determined that the next node is in the backward region, determine if a distance between the node and the next node is greater than a threshold.

4. The server according to claim 3, wherein the processor is further configured to: if it is determined that the distance between the node and the next node is equal to or less than the threshold, accept the part of the candidate travel route relating to the node.

5. The server according to claim 3 or claim 4, wherein the processor is further configured to: if it is determined that the distance between the node and the next node is greater than the threshold, reject the candidate travel route6. The server according to claim 5, wherein the processor is further configured to: determine the threshold based on the angle and a minimum value of a distance between the node and the previous node and the distance between the node and the next node.

7. The server according to claim 6, wherein the processor is further configured to: determine the threshold by multiplying a cosine value of 180 degrees minus the angle and theminimum value of the distance between the node and the previous node and the distance between the node and the next node.

8. The server according to any one of claims 1 to 7, wherein the processor is further configured to: if all parts of the candidate travel route are accepted, accept the candidate travel route, and allocate the delivery service provider to the candidate travel route.

9. The server according to any one of claims 1 to 8, wherein the processor is further configured to: if the candidate travel route is rejected, form a new candidate travel route for the candidate batching group, and verify the new candidate travel route before allocating the delivery service provider to the new candidate travel route.

10. The server according to any one of claims 1 to 9, wherein the processor is further configured to: if all available candidate travel routes for the candidate batching group is rejected, reject the candidate batching group, and form a new candidate batching group for batching the first order and a third order of the plurality of orders.

11. A method for facilitating batching orders for an on-demand service, the method comprising: receiving a plurality of orders for the on-demand service, wherein each of the plurality of orders relates to information about a pick-up location and a drop-off location for the on- demand service; forming a candidate batching group for batching a first order and a second order of the plurality of orders and a candidate travel route for the candidate batching group, based on afirst pick-up location and a first drop-off location of the first order and a second pick-up location and a second drop-off location of the second order; defining a plurality of nodes each associated with the first pick-up location and the first drop-off location of the first order and the second pick-up location and the second drop-off location of the second order, and verifying the candidate travel route before allocating a delivery service provider to the candidate travel route, wherein the verifying the candidate travel route comprises: for each node of the plurality of nodes, defining a previous node and a next node with respect to the node, based on the candidate travel route; defining a forward region and a backward region with respect to the node, based on an angle relating to a previous edge connecting the node and the previous node and a next edge connecting the node and the next node; and determining whether to accept or reject the candidate travel route, based on whether the next node is in the forward region or the backward region.

12. The method according to claim 11, wherein the verifying the candidate travel route further comprises: if it is determined that the next node is in the forward region, accepting a part of the candidate travel route relating to the node.

13. The method according to claim 12, wherein the verifying the candidate travel route further comprises: if it is determined that the next node is in the backward region, determining if a distance between the node and the next node is greater than a threshold.

14. The method according to claim 13, wherein the verifying the candidate travel route further comprises: if it is determined that the distance between the node and the next node is equal to or less than the threshold, accepting the part of the candidate travel route relating to the node.

15. The method according to claim 13 or claim 14, wherein the verifying the candidate travel route further comprises: if it is determined that the distance between the node and the next node is greater than the threshold, rejecting the candidate travel route.

16. The method according to claim 15, wherein the verifying the candidate travel route further comprises: determining the threshold based on the angle and a minimum value of a distance between the node and the previous node and the distance between the node and the next node.

17. The method according to claim 16, wherein the verifying the candidate travel route further comprises: determining the threshold by multiplying a cosine value of 180 degrees minus the angle and the minimum value of the distance between the node and the previous node and the distance between the node and the next node.

18. The method according to any one of claims 11 to 17, wherein the verifying the candidate travel route further comprises: if all parts of the candidate travel route are accepted, accepting the candidate travel route, and wherein the method further comprises: allocating the delivery service provider to the candidate travel route.

19. The method according to any one of claims l l to 18, further comprising: if the candidate travel route is rejected, forming a new candidate travel route for the candidate batching group, and verifying the new candidate travel route before allocating the delivery service provider to the new candidate travel route.

20. The method according to any one of claims 11 to 19, further comprising: if all available candidate travel routes for the candidate batching group is rejected, rejecting the candidate batching group, and forming a new candidate batching group for batching the first order and a third order of the plurality of orders.