Server and method for facilitating batching two or more orders for on-demand service
The server and method optimize on-demand service batching by using EMD metrics to align orders spatially and temporally, addressing inefficiencies in existing platforms and enhancing delivery efficiency through improved order alignment.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- GRABTAXI HOLDINGS PTE LTD
- Filing Date
- 2025-01-14
- Publication Date
- 2026-07-23
Smart Images

Figure SG2025050030_23072026_PF_FP_ABST
Abstract
Description
SERVER AND METHOD FOR FACILITATING BATCHING TWO OR MORE ORDERS FOR ON-DEMAND SERVICETECHNICAL FIELD
[0001] Various embodiments relate to a server and a method for facilitating batching two or more 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 driver (who in some contexts herein may also be referred to as a “delivery service provider”, a “delivery partner”, a “delivery agent” or a “Dax”) 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 eachother, such multiple orders may be batched. The on-demand service platform provider may suggest a travel route for the batched orders to the driver.
[0004] A demand density may play an important role in the batching performance, and higher demand densities may generally favour the batching. However, the demand density may be different from the number of incoming orders for the on-demand service, as the demand may need to be shaped in a targeted manner to bring a sizable impact on the batching outcome.
[0005] In the past few years, some improvements may have been made on the batching system, allowing for an increased throughput based on a fixed set of orders. In order to further push the boundary of delivery efficiency, shaping the demand to favour the batching may be another viable option to explore.
[0006] Therefore, there is a need to provide a server and a method for facilitating batching the orders, by measuring an approximation of the demand density.SUMMARY
[0007] According to various embodiments, there is a server for facilitating batching two or more orders for an on-demand service, the server comprising: a memory configured to store instructions; and a processor for executing the stored instructions and configured to: receive a first order and information about a first pick-up location, a first drop-off location, and a first creation time of the first order; and receive a plurality of orders and information about a second pick-up location, a second drop-off location, and a second creation time of each order of the plurality of orders, wherein the processor is further configured to: for each order of a first order set of the plurality of orders, compute a first distance between the first pick-up location and the second pick-up location, a second distance between the first drop-off location and the second drop-off location, and a creation time difference between the first creation time and the secondcreation time; compute a first distance value based on the first distance, the second distance and the creation time difference; and determine whether the order can be batched with the first order, based on the first distance value.
[0008] In some embodiments, the processor is further configured to: identify the first order set from the plurality of orders, based on the second pick-up location, the second drop-off location, and the second creation time of each order of the plurality of orders.
[0009] In some embodiments, the processor is further configured to: for each order of the plurality of orders, determine whether the second pick-up location is within a predetermined pick-up radius of the first pick-up location; determine whether the second drop-off location is within a predetermined drop-off radius of the first drop-off location; determine whether the creation time difference between the second creation time and the first creation time is within a predetermined creation time difference; and if it is determined that the second pick-up location is within the predetermined pick-up radius, the second drop-off location is within the predetermined drop-off radius, and the creation time difference is within the predetermined creation time difference, identify the order as the first order set.
[0010] In some embodiments, the processor is further configured to: for each order of the first order set, compute the first distance value based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, and the creation time difference divided by the predetermined creation time difference.
[0011] In some embodiments, the processor is further configured to: for each order of the first order set, compute a first distance score based on a logarithmic transformation of a sum of the first distance values of the first order set, to provide information about ability of batching the two or more orders in an area where the first order belongs.
[0012] In some embodiments, the processor is further configured to: receive information about a first estimated drop-off time of the first order and information about a second estimated drop-off time of each order of the plurality of orders, and wherein the processor is further configured to: for each order of a second order set of the plurality of orders, compute a third distance between the first pick-up location and the second drop-off location, a fourth distance between the first drop-off location and the second pick-up location, a first time difference between the first creation time and the second estimated drop-off time, and a second time difference between the first estimated drop-off time and the second creation time; compute a second distance value based on the first distance, the second distance, the third distance, the fourth distance, the creation time difference, the first time difference, and the second time difference; and determine whether the order can be batched with the first order, based on the second distance value.
[0013] In some embodiments, the processor is further configured to: identify the first order set as the second order set; and further identify the second order set from the plurality of orders based on the second estimated drop-off time of each order of the plurality of orders.
[0014] In some embodiments, the processor is further configured to: for each order of the plurality of orders which is not identified as the first order set, determine whether the second drop-off location is within the predetermined pick-up radius of the first pick-up location; determine whether the first time difference between the first creation time and the second estimated drop-off time is within a predetermined time window; and if it is determined that the second drop-off location is within the predetermined pick-up radius and the first time difference is within the predetermined time window, further identify the order as the second order set.
[0015] In some embodiments, the processor is further configured to: for each order of the plurality of orders which is not identified as the first order set, determine whether the second pick-up location is within the predetermined drop-off radius of the first drop-off location; determine whether the second time difference between the first estimated drop-off time and the second creation time is within the predetermined time window; and if it is determined that thesecond pick-up location is within the predetermined drop-off radius and the second time difference is within the predetermined time window, further identify the order as the second order set.
[0016] In some embodiments, the processor is further configured to: for each order of the second order set, compute the second distance value, based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, the creation time difference divided by the predetermined creation time difference, the third distance divided by the predetermined pick-up radius, the fourth distance divided by the predetermined drop-off radius, the first time difference divided by the predetermined time window, and the second time difference divided by the predetermined time window.
[0017] According to various embodiments, there is a method for facilitating batching two or more orders for an on-demand service, the method comprising: receiving a first order and information about a first pick-up location, a first drop-off location, and a first creation time of the first order; and receiving a plurality of orders and information about a second pick-up location, a second drop-off location, and a second creation time of each order of the plurality of orders, wherein the method further comprises: for each order of a first order set of the plurality of orders, computing a first distance between the first pick-up location and the second pick-up location, a second distance between the first drop-off location and the second drop-off location, and a creation time difference between the first creation time and the second creation time; computing a first distance value based on the first distance, the second distance and the creation time difference; and determining whether the order can be batched with the first order, based on the first distance value.
[0018] In some embodiments, the method further comprises: identifying the first order set from the plurality of orders, based on the second pick-up location, the second drop-off location, and the second creation time of each order of the plurality of orders.
[0019] In some embodiments, the method further comprises: for each order of the plurality of orders, determining whether the second pick-up location is within a predetermined pick-up radius of the first pick-up location; determining whether the second drop-off location is within a predetermined drop-off radius of the first drop-off location; determining whether the creation time difference between the second creation time and the first creation time is within a predetermined creation time difference; and if it is determined that the second pick-up location is within the predetermined pick-up radius, the second drop-off location is within the predetermined drop-off radius, and the creation time difference is within the predetermined creation time difference, identifying the order as the first order set.
[0020] In some embodiments, the method further comprises: for each order of the first order set, computing the first distance value based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, and the creation time difference divided by the predetermined creation time difference.
[0021] In some embodiments, the method further comprises: for each order of the first order set, computing a first distance score based on a logarithmic transformation of a sum of the first distance values of the first order set, to provide information about ability of batching the two or more orders in an area where the first order belongs.
[0022] In some embodiments, the method further comprises: receiving information about a first estimated drop-off time of the first order and information about a second estimated dropoff time of each order of the plurality of orders, and wherein the method further comprises: for each order of a second order set of the plurality of orders, computing a third distance between the first pick-up location and the second drop-off location, a fourth distance between the first drop-off location and the second pick-up location, a first time difference between the first creation time and the second estimated drop-off time, and a second time difference between the first estimated drop-off time and the second creation time; computing a second distancevalue based on the first distance, the second distance, the third distance, the fourth distance, the creation time difference, the first time difference, and the second time difference; and determining whether the order can be batched with the first order, based on the second distance value.
[0023] In some embodiments, the method further comprises: identifying the first order set as the second order set; and further identifying the second order set from the plurality of orders based on the second estimated drop-off time of each order of the plurality of orders.
[0024] In some embodiments, the method further comprises: for each order of the plurality of orders which is not identified as the first order set, determining whether the second drop-off location is within the predetermined pick-up radius of the first pick-up location; determining whether the first time difference between the first creation time and the second estimated dropoff time is within a predetermined time window; and if it is determined that the second dropoff location is within the predetermined pick-up radius and the first time difference is within the predetermined time window, further identifying the order as the second order set.
[0025] In some embodiments, the method further comprises: for each order of the plurality of orders which is not identified as the first order set, determining whether the second pick-up location is within the predetermined drop-off radius of the first drop-off location; determining whether the second time difference between the first estimated drop-off time and the second creation time is within the predetermined time window; and if it is determined that the second pick-up location is within the predetermined drop-off radius and the second time difference is within the predetermined time window, further identifying the order as the second order set.
[0026] In some embodiments, the method further comprises: for each order of the second order set, computing the second distance value, based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, the creation time difference divided by the predetermined creation time difference, thethird distance divided by the predetermined pick-up radius, the fourth distance divided by the predetermined drop-off radius, the first time difference divided by the predetermined time window, and the second time difference divided by the predetermined time window.
[0027] According to various embodiments, a data processing apparatus configured to perform the method of any one of the above embodiments is provided.
[0028] 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.
[0029] 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
[0030] 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:- FIGS. 1 and 2 illustrate infrastructures of a system including a server for facilitating batching two or more orders for an on-demand service according to various embodiments.- FIG. 3 illustrates a block diagram of a server for facilitating batching two or more orders for an on-demand service according to various embodiments.- FIG. 4 illustrates a flowchart for a method for facilitating batching two or more orders for an on-demand service according to various embodiments.FIG. 5 illustrates an exemplary diagram of ability of batching two orders.- FIG. 6 illustrates an exemplary diagram of an Earth Mover’s Distance (EMD) metric. - FIG. 7 illustrates an exemplary diagram of a 3-dimensional plot including two areas having roughly the same Revised Earth Mover’s Distance (Revised EMD) score. - FIG. 8 illustrates an exemplary diagram of batching two orders using a Revised Earth Mover’s Distance (Revised EMD) score.- FIG. 9 illustrates an exemplary diagram of batching two orders using an enhanced Reversed Earth Mover’s Distance (Reversed EMD) score with Daisy Chaining, without sequential limitations.- FIG. 10 illustrates an exemplary diagram of batching two orders using an enhanced Reversed Earth Mover’s Distance (Reversed EMD) score with Daisy Chaining, without sequential limitations.DETAILED DESCRIPTION
[0031] 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 practice the 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.
[0032] Embodiments described in the context of one of a server and a method are analogously valid for the other of the server and method. Similarly, embodiments described in the context of a server are analogously valid for a method, and vice-versa.
[0033] 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.
[0034] 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.
[0035] As used herein, the term “and / or” includes any and all combinations of one or more of the associated listed items.
[0036] 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.
[0037] In the following, embodiments will be described in detail.
[0038] FIGS. 1 and 2 illustrate infrastructures of a system 200 including a server 100 for facilitating batching two or more orders for an on-demand service according to various embodiments.
[0039] As shown in FIG. 1, the system 200 may include, but is not limited to, the server 100, a database system 140, a network 150, a first computing device 160 associated with a user 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 drivers 171 (who in some contexts herein may also be referred to as a “delivery service provider”, a “delivery partner”, a “delivery agent” or a “Dax”), and aplurality 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 “food provider”, a “restaurant” or a “Mex”). In some embodiments, the user 161 may include a consumer (who in some contexts herein may also be referred to as an “eater”) for the on-demand service. For example, the user 161 may be the same as the consumer. As another example, the user 161 may be different from the consumer and use the on-demand service for the consumer.roo4o] In some embodiments, the on-demand sendee may be a senice allowing the user 161 to fulfil the user’s demand via an immediate access to items and / or services. The user 161 may request the on-demand service, such as a transport service or an item delivery senice, using a user interface presented on the computing device 160. The user 161 may make an order for the on-demand senice.
[0041] In some embodiments, the user 161 may use an application (also referred to as an “App”), for example, a mobile application, provided by the 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 160 associated with the user 161, to interact with the server 100.
[0042] In some embodiments, the plurality of drivers 171 may use the application provided by the server 100. The application may be installed in the plurality of second computing devices 170 each associated with the plurality of drivers 171, to interact with the server 100.
[0043] 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 a wireline communication, a wireless communication, or a combination of the wireline and wireless communication between the server 100 and the first computing device 160, between the server 100 and the plurality ofsecond computing devices 170, and between the server 100 and the plurality of third computing devices 180. As shown in FIG. 2, 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 160 and a second computing device 170a of the plurality of second computing devices 170.
[0044] In some embodiments, the first computing device 160 may be connectable to the server 100 via the network 150. hi some embodiments, the first computing device 160 may be arranged in data or signal communication with the server 100 via the network 150. In some embodiments, the first 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, the first computing device 160 may be associated with the user 161. For example, the first computing device 160 may belong to the user 161 who is the consumer. As another example, the first computing device 160 may belong to the user 161 requesting the delivery of the item to the consumer who is a recipient of the on-demand service. Although not shown, it may be appreciated that the system 200 may further include a plurality of first computing devices each associated with, for example, belonging to, a plurality of users.
[0045] In some embodiments, the first computing device 160 may include a location sensor. In some embodiments, 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 a location of the first computing device 160. In some embodiments, the first computing device 160 may generate information about the location of the first computing device 160.
[0046] 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. 3).
[0047] In some embodiments, the server 100 may communicate with the first computing device 160 via the network 150. In some embodiments, the first computing device 160 may receive a request (hereinafter, referred to as an “order”) from the user 161 for the on-demand service. The first computing device 160 may send the order to the server 100 via the network 150. In some embodiments, the first computing device 160 may send the information about the location of the first computing device 160 to the server 100 via the network 150. The location of the first computing device 160 may be considered as a location of the user 161. In some embodiments, the location of the user 161 may be considered as a destination of the on-demand service. In some other embodiments, the first computing device 160 may send information about an address of the user 161, and the address of the user 161 may be considered as the destination of the on-demand service. In some other embodiments, the first computing device 160 may send information about an address of the recipient of the delivery, and the address of the recipient may be considered as the destination of the on-demand service.
[0048] 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.
[0049] 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. The plurality of second computing devices 170 may be associated with the plurality of drivers 171respectively. For example, the plurality of second computing devices 170 may belong to the plurality of drivers 171 respectively.
[0050] In some embodiments, the server 100 may receive the order from the first computing device 160. After the server 100 receives the order from the first computing device 160, the server 100 may allocate (assign) the order to a suitable driver 171a. In some embodiments, the second computing device 170a associated with the driver 171a 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 driver 171a. In some embodiments, the location of the driver 171a may be considered as a current location of the driver 171a, and may change while the driver 171a moves to the destination (en route to the destination). In some embodiments, the server 100 may provide the second computing device 170a with a map relating to a route from the current location of the second computing device 170a (which may be considered as the location of the driver 171a) to the destination for providing the on-demand service, en route to the destination. In some embodiments, the map may include an image object, for example, a pin, indicating the destination.
[0051] 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. 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.
[0052] In some embodiments, the plurality of item providers 181 may include, but arc 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 161, and then produce a list of items, associated with at least one item provider, that may be prepared and delivered to the user 161. 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 160 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 screen. In some embodiments, after the consumer 161a makes selections on the user interface screen 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 161. In some embodiments, the location of the user 161 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 160 may send information about an address of the user 161, and the address of the user 161 may be considered as the drop-off location of the item delivery service.
[0053] In some embodiments, the driver 171a 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 first 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 (also referred to as “pick-up points”) and / or drop-off locations (also referred to as “drop-off points”)) of the two or more orders are close to each other (for example, within a predetermined distance), the server 100 may batch the two or more orders, and assign the batched orders to one driver 171a. The driver 171 a may take the batched orders at a time.
[0054] In some embodiments, for the item delivery service, the driver 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 driver 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 a second user 161b. In some embodiments, for the transport service, the driver 171a may pick up a first user 161a at a first pick-up location, for example, a location of the first user 161a, and pick up a second user 161b at a second pickup location, for example, a location of the second user 161b, before dropping off the first user 161a at a first drop-off location, for example, a destination of the first user 161a. The driver 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.
[0055] FIG. 3 illustrates a block diagram of a server 100 for facilitating collecting information about an incident according to various embodiments.
[0056] As shown in FIG. 3, the server 100, for example, implemented by a server computer, may include a communication interface 110, a processor 120, and a memory 130.
[0057] 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, hr some embodiments, the memory 130 may store program code which allows the server 100 to perform a method 300 (as will be described with reference to FIG. 4). 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.
[0058] In some embodiments, the communication interface 110 may allow one or more computing devices, including a first computing device 160, to communicate with the processor 120 of the server 100 via a network 150, as shown in FIG. 2. In some embodiments, as shown in FIG. 1, the first computing device 160 may belong to a user 161 who wants to make an order for an on-demand service. In some embodiments, the communication interface 110 may transmit signals to the first computing device 160, and / or receive signals from the first computing device 160 via the network 150.
[0059] 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. 1 and 2. As shown in FIGS. 1 and 2, each of the plurality of second computing devices 170 may belong to each of a plurality of drivers 171 who may pick up an item from an item service provider 181a and deliver the item to the consumer (i.e. a destination) and / or who may transport the consumer to the destination. 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.
[0060] 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. 1. As shown in FIG. 1, each of the plurality of third computing devices 180 may belong to each of a plurality of item providers 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.
[0061] 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.
[0062] 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.
[0063] In some embodiments, the processor 120 may receive an order (also referred to as a “booking”) (hereinafter, referred to as a “first order”) for the on-demand sendee. In some embodiments, the processor 120 may receive information about a pick-up location (hereinafter, referred to as a “first pick-up location”), a drop-off location (hereinafter, referred to as a “first drop-off location”), and a creation time (hereinafter, referred to as a “first creation time”) of the first order.
[0064] In some embodiments, the processor 120 may receive a plurality of orders for the on-demand service. In some embodiments, the processor 120 may receive information about a pick-up location (hereinafter, referred to as a “second pick-up location”), a drop-off location (hereinafter, referred to as a “second drop-off location”), and a creation time (hereinafter, referred to as a “second creation time”) of each order of the plurality of orders.
[0065] In some embodiments, the processor 120 may identify a certain order set (hereinafter, referred to as a “first order set”) from the plurality of orders. For example, the first order set may include one or more orders from the plurality of orders. In some embodiments, the processor 120 may identify the one or more orders to be included in the first order set from the plurality of orders, based on the second pick-up location, the second drop-off location, and the second creation time of each order of the plurality of orders.
[0066] In some embodiments, for each order of the plurality of orders, the processor 120 may determine whether the second pick-up location is within a predetermined pick-up radius of the first pick-up location, determine whether the second drop-off location is within a predetermined drop-off radius of the first drop-off location, and determine whether the creation time difference between the second creation time and the first creation time is within a predetermined creation time difference. If it is determined that the second pick-up location is within the predetermined pick-up radius, the second drop-off location is within the predetermined drop-off radius, and the creation time difference is within the predetermined creation time difference, the processor 120 may identify the order as the first order set.
[0067] In some embodiments, for each order of the first order set, the processor 120 may compute a distance (hereinafter, referred to as a “first distance”) between the first pick-up location and the second pick-up location. In some embodiments, the processor 120 may compute a distance (hereinafter, referred to as a “second distance”) between the first drop-off location and the second drop-off location. In some embodiments, the processor 120 maycompute a time difference (hereinafter, referred to as a “creation time difference”) between the first creation time and the second creation time. In some embodiments, the processor 120 may compute a distance value (hereinafter, referred to as a “first distance value”) based on the first distance, the second distance and the creation time difference. In some embodiments, the processor 120 may determine whether the order can be batched with the first order, based on the first distance value.|006< S| In some embodiments, for each order of the first order set, the processor 120 may compute the first distance value based on the first distance divided by the predetermined pickup radius, the second distance divided by the predetermined drop-off radius, and the creation time difference divided by the predetermined creation time difference.
[0069] In some embodiments, according to a first version of EMD (i.e. Revised EMD), the processor 120 may compute the first distance value based on the following mathematical equation:RevisedEMD(n ∈ neighbour)Distance (PU(n), PU(O))= α × (1 −Distance (PU(n), PU(O))) + β × (1PU Radius X ) + β × (1 − Distance (DO(n), DO(O))DO Radius Y ) + (1 − α − β) × (1 − |Creation Time(n) − Creation Time(O)|15 mins where the O” refers to the first order, the “revised EMD” refers to the first distance value, the “neighbour” refers to the first order set, the “n” refers to each order belonging to the first order set, the “PU(O)” refers to the first pick-up location, the “PU(n)” refers to the second pick-up location, the “Distance(PU(n), PU(O))” refers to the first distance, the “PU Radius X” refers to the predetermined pick-up radius, the “DO(O)” refers to the first drop-off location, the “DO(n)” refers to the second drop-off location, the “Distance(DO(n), DO(O))” refers to the seconddistance, the “DO Radius Y” refers to the predetermined drop-off radius, the “Creation Time(O)” refers to the first creation time, the “Creation Time(n)” refers to the second creation time, the “(Creation time(n) - Creation time(O)|” refers to the creation time difference, and the “15 mins” is an example of the predetermined creation time difference.
[0070] In some embodiments, for each order of the first order set, the processor 120 may compute a distance score (hereinafter, referred to as a “first distance score”) based on a logarithmic transformation of a sum of the first distance values of the first order set, to provide information about ability of batching the two or more orders in an area where the first order belongs.
[0071] In some embodiments, according to the first version of EMD, the processor 120 may compute the first distance score based on the following mathematical equation:N=nRevised EMD Score(O~) loge( Revised EMD(n) + 1)where the “O” refers to the first order, the “Revised EMD Score(O)” refers to the first distance score, the “n” refers to each order belonging to the first order set, and the “Revised EMD(n)” refers to the first distance value for each order belonging to the first order set.
[0072] In some embodiments, according to a second version of EMD with Daisy Chaining (i.e. Reversed EMD) (hereinafter, also referred to as an “enhanced version of EMD”), the processor 120 may further receive information about an estimated drop-off time (hereinafter, referred to as a “first estimated drop-off time”) of the first order and information about an estimated dropoff time (hereinafter, referred to as a “second estimated drop-off time”) of each order of the plurality of orders.
[0073] In some embodiments, according to the second version of EMD with the Daisy Chaining, the processor 120 may identify a certain order set (hereinafter, referred to as a “second order set”) from the plurality of orders In some embodiments, the processor 120 mayidentify the first order set as the second order set, and further identify the second order set from the plurality of orders based on the second estimated drop-off time of each order of the plurality of orders. For example, the second order set may include one or more orders from the plurality of orders. In some embodiments, the processor 120 may identify the one or more orders to be included in the second order set from the plurality of orders, based on the second pick-up location, the second drop-off location, the second creation time, and the second estimated dropoff time of each order of the plurality of orders.10074] In some embodiments, according to the second version of EMD with the Daisy Chaining, for each order of the plurality of orders which is not identified as the first order set, the processor 120 may determine whether the second drop-off location is within the predetermined pick-up radius of the first pick-up location, and determine whether the first time difference between the first creation time and the second estimated drop-off time is within a predetermined time window. If it is determined that the second drop-off location is within the predetermined pick-up radius and the first time difference is within the predetermined time window, the processor 120 may further identify the order as the second order set.
[0075] In some embodiments, according to the second version of EMD with the Daisy Chaining, for each order of the plurality of orders which is not identified as the first order set, the processor 120 may determine whether the second pick-up location is within the predetermined drop-off radius of the first drop-off location, and determine whether the second time difference between the first estimated drop-off time and the second creation time is within the predetermined time window. If it is determined that the second pick-up location is within the predetermined drop-off radius and the second time difference is within the predetermined time window, the processor 120 may further identify the order as the second order set.
[0076] In some embodiments, according to the second version of EMD with the Daisy Chaining, for each order of the second order set, the processor 120 may compute a distance(hereinafter, referred to as a “third distance”) between the first pick-up location and the second drop-off location. In some embodiments, the processor 120 may compute a distance (hereinafter, referred to as a “fourth distance”) between the first drop-off location and the second pick-up location. In some embodiments, the processor 120 may compute a time difference (hereinafter, referred to as a “first time difference”) between the first creation time and the second estimated drop-off time, and a time difference (hereinafter, referred to as a “second time difference”) between the first estimated drop-off time and the second creation time. In some embodiments, the processor 120 may compute a distance value (hereinafter, referred to as a “second distance value”) based on the first distance, the second distance, the third distance, the fourth distance, the creation time difference, the first time difference, and the second time difference. In some embodiments, the processor 120 may determine whether the order can be batched with the first order, based on the second distance value.
[0077] In some embodiments, according to the second version of EMD with the Daisy Chaining, for each order of the second order set, the processor 120 may compute the second distance value, based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, the creation time difference divided by the predetermined creation time difference, the third distance divided by the predetermined pick-up radius, the fourth distance divided by the predetermined drop-off radius, the first time difference divided by the predetermined time window, and the second time difference divided by the predetermined time window.
[0078] In some embodiments, according to the second version of EMD with the Daisy Chaining, the processor 120 may compute the second distance value based on the following mathematical equation:ReversedEMD(n E neighbour)Distance (PU(n), PU(O')') = “x (1- PU Radius X Distance (DO(ri), DO(Oy) DO Radius Y )+ / x(1 \Creatiou Time(n) — CreationTime(0)\ *15 mins Distance (DO (ri), PU(Oy)t\T(n) — Creation Time(O)\ PU Radius Xxd Time Window Distance (PU(ri), DO(OY) + «" X (1 - „ ) + y" X (1DO Radius Y |T(0) — Creation Time(ri)\Time Window where the “O” refers to the first order, the “reversed EMD” refers to the second distance value, the “neighbour” refers to the second order set, the “n” refers to each order belonging to the second order set, the “PU(O)” refers to the first pick-up location, the “PU(n)” refers to the second pick-up location, the “Distance(PU(n), PU(O))” refers to the first distance, the “PU Radius X” refers to the predetermined pick-up radius, the “DO(O)” refers to the first drop-off location, the “DO(n)” refers to the second drop-off location, the “Distance(DO(n), DO(O))” refers to the second distance, the “DO Radius Y” refers to the predetermined drop-off radius, the “Creation Time(O)” refers to the first creation time, the “Creation Time(n)” refers to the second creation time, the “|Creation time(n) - Creation time(O)|” refers to the creation time difference, the “15 mins” is an example of the predetermined creation time difference, the “Distance(DO(n), PU(O))” refers to the third distance, the “T(n)” refers to the second estimated drop-off time, the “|T(n) - Creation time(O)|” refers to the first time difference, the “Time Window” refers to the predetermined time window, the “Distance(PU(n), DO(O))” refers to the fourth distance, and the “|T(O) - Creation time(n)|” refers to the second time difference.
[0079] In some embodiments, according to the second version of EMD with the Daisy Chaining, for each order of the first order set, the processor 120 may compute a distance score (hereinafter, referred to as a “second distance score”) based on a logarithmic transformation of a sum of the second distance values of the second order set, to provide information about ability of batching the two or more orders in an area where the first order belongs.
[0080] In some embodiments, according to the second version of EMD with the Daisy Chaining, the processor 120 may compute the second distance value based on the following mathematical equation:Reversed EMD Score(O) = loge( Reversed EMD(n) + 1)where the “O” refers to the first order, the “Reversed EMD Score(O)” refers to the second distance score, the “n” refers to each order belonging to the second order set, and the “Reversed EMD(n)” refers to the second distance value for each order belonging to the second order set.
[0081] FIG. 4 illustrates a flowchart for a method 300 for facilitating batching two or more orders for an on-demand service according to various embodiments. According to various embodiments, the method 300 for facilitating batching two or more orders for an on-demand service may be provided.
[0082] In some embodiments, the method 300 may include a step 301 of receiving a first order and information about a first pick-up location, a first drop-off location, and a first creation time of the first order.
[0083] In some embodiments, the method 300 may include a step 302 of receiving a plurality of orders and information about a second pick-up location, a second drop-off location, and a second creation time of each order of the plurality of orders.
[0084] In some embodiments, for each order of a first order set of the plurality of orders, the method 300 may include a step 303 of computing a first distance between the first pick-uplocation and the second pick-up location, a second distance between the first drop-off location and the second drop-off location, and a creation time difference between the first creation time and the second creation time.
[0085] In some embodiments, for each order of the first order set, the method 300 may include a step 304 of computing a first distance value based on the first distance, the second distance and the creation time difference.
[0086] In some embodiments, for each order of the first order set, the method 300 may include a step 305 of determining whether the order can be batched with the first order, based on the first distance value.
[0087] FIG. 5 illustrates an exemplary diagram of ability of batching two orders.
[0088] As shown in FIG. 5, in some embodiments, an order A may be batched with an order O (upfront batching), and the order O may be batched with the order A (in-transit batching). In some embodiments, an order B may be batched with the order O (upfront batching or in-transit batching). In some embodiments, the order B may be batched with the order O (in-transit batching).
[0089] In some embodiments, in the batching world, a case of two orders being batched together may be that two pick-up points and two drop-off points may be entirely overlapped, and both of the orders may be created at the same time. A server 100 may directly assign one driver to pick up the two orders at the same time at the same place, and deliver the orders to another same place, saving 50% of time compared to delivering the orders separately. In this case, time efficiency may be as follows: Time Efficiency = (Trip time if not batched) / (Trip time if batched) = 2.
[0090] Geographically, if the sum of the distances between the two pick-up points and two drop-off points is measured, the larger the sum is, the harder the orders are batched together, and the sparser the demand pattern is. Timewise, comparing the order creation time of twoorders, the larger the creation time difference is, the harder the orders will meet each other in the batching pool. Additionally, batching the orders may violate a predetermined rule, for example, a predetermined SLA (Service Legal Agreement).
[0091] The various embodiments introduce a Reverse Earth Mover’s Distance Score (as will be described with reference to FIGS. 9 and 10). This may address unsolved challenges of existing “demand density metrics” and bring the following additional attributes:• Batching configuration-unaware, enabling an apple-to-apple comparison among areas, cities, and countries. Helping to find an optimal performance that the various embodiments can achieve with Jupiter configurations optimisation.• Being able to measure the demand density at an area, a city, and a country level. • Easy to compute, serving reliability of daily or hourly updated metrics to help to monitor a market condition and contextualise the batching metrics movements in the Jupiter world.• Consistent and not threshold-based, with pre-defined universal parameters. No further tuning may be needed to capture market condition changes.• Considering a geographical distance at both pick-up points and drop-off points, as well as a time distance jointly, to capture the change of ability of batching the two or more orders due to both the geographical distance and the time distance among orders.
[0092] In some embodiments, the definition of the demand density may need to be separated from the exact batching configurations. For example, an optimal batching output may be a theoretical efficiency cap at a given demand density and a given user experience boundary, regardless of how it is achieved (in terms of either system capability or configuration setup). In addition, in Jupiter triaging, to determine if the low sOTE (System Overall Time Efficiency) is truly due to an issue in a batching automation or just a result of fluctuating marketplace, an optimal sOTE may need to be determined based on the given demand density (and other inputsignals) and the given user experience boundary. The sOTE may refer to network level time of a transit time if there is no batch, divided by time of a transit time if there is a batch. For example, if the sOTE is above 1, this may indicate how much % time the system saved from batching (how efficient the system is). Having a correlation between a batching throughput and the demand density / user experience may be a good starting point for a demand shape too, as a curve may provide clear efficiency gains at different density levels, without worrying about the batching configuration setup (which may also be easily changed manually or automatically). Putting it in another perspective, (batching) configuration-aware demand density may be useful to compare across scenarios where the configuration is exactly the same. For scenarios where batching setups are different, the configuration-aware demand density may be hard to interpret, as the difference may be either from configuration setup gaps, or true demand differences on the ground.
[0093] FIG. 6 illustrates an exemplary diagram of an Earth Mover’s Distance (EMD) metric.
[0094] As shown in FIG. 6, in some embodiments, each order and its nearby counterparts may be considered as a three-dimensional distribution, namely, “Pick-Up (PU)”, “Drop-Off (DO)”, and “Order Creation Time”. To measure ability of batching the two or more orders, an effort needed to move the order towards an “ideal” distribution may be evaluated (for example, one in which all orders for pick-ups and drop-offs perfectly coincide with those of a reference order). The bigger the effort is, the sparser the order is distributed.
[0095] Therefore, for every given order, the various embodiments may suggest employing the Earth Mover’s Distance (EMD) metric. This metric may aid in quantifying a requisite effort for this transformation.
[0096] FIG. 7 illustrates an exemplary diagram of a 3-dimensional plot including two areas having roughly the same Revised Earth Mover’s Distance (Revised EMD) score.
[0097] Goals of how the various embodiments want to make use of the Revised EMD may be summarised into 3 parts as follows:1) Benchmarking: To be used as part of defining an optimal batching output to benchmark across markets and identify potential of batching. This may be extended to benchmarking with competitors when possible (for example, Meituan analysis), to contextualise an efficiency throughput and a difference in marketplace inputs.2) Jupiter: To be used in measuring a batching performance, considering a fluctuating market condition from time to time. Especially in the Jupiter world, a demand density may help to isolate market movements when triaging the sOTE or being adopted in a Jupiter configuration tuning optimisation to help the model contextually converge. It may also help in providing more context during an alerting and triaging process. As shown in FIG. 7, an area A and an area B have roughly the same Revised EMD (for example, same demand density), but the area A’s batching performance is much better than the area B. This may indicate that configurations of the area A is not optimal and can be jupiterised. Here, “Jupiter” refers to a key initiative that automatically optimise an objective function by adjusting the configurations with Al models.3) Demand Shaping: To help to guide demand shaping efforts to improve efficiency and throughput (for example, TPTH (Trip per in-transit time) reflecting network level efficiency; and COPS (Completed Orders Per Session)).
[0098] In some embodiments, for each of the order (identified as an “order O”), a comprehensive calculation procedure for the Revised EMD is as follows:Step 1: Identify the order set {Neighbours} of the order O, whose pick-up point is within X meters radius of the order O’ s pick-up point (PU), and drop-off point is within Y meters radius of the order O’ s drop-off point (DO), and order creation time is 15 minutes before or after order creation time of the order O.Step 2: For each of the order in {Neighbours}, calculate the Revised EMD (for example, normalised by PU and DO Radius and creation time difference) as follows:RevisedEMD(n ∈ neighbour))Distance (PU(ri), PU(Oy)PU Radius X Distance (pO(ri), DO(O))) + (l — cr — / ?) X (1DO Radius Y \Creation Time(n) — Creation Time (O)\15 mins Within a given radius, the Revised EMD decreases as the neighbouring order moves further away from the origin (i.e. the order O). As an exceptional scenario, if the neighbouring order is precisely situated on a circumference of a circle determined by the radius, the Revised EMD may be reduced to zero.Step 3: Sum up the Revised EMD of all the orders in {Neighbours} and implement a logarithmic transformation as follows:
[0099] In some embodiments, the parameters (for example, the radius and the time window) may be first selected by an on-demand service platform provider (for example, based on a common sense). In some embodiments, based on a validation, the demand density may react more sensitively to the pick-up radius change, rather than the drop-off radius change, which may also be aligned with general understanding of batching.
[0100] In some embodiments, as shown above, a log transformation may be used in the Revised EMD formula. The log transformation may serve a purpose of narrowing a range of the Revised EMD metrics, making it easy to track and measure the change from time to time.
[0101] FIG. 8 illustrates an exemplary diagram of batching two orders using a Revised Earth Mover’s Distance (Revised EMD) score.
[0102] In an exemplary plot as shown in FIG. 8, a PU radius X, a DO radius Y, and a creation time difference are as follows:• PU Radius X = 1 km• DO Radius Y = 5 km• Creation time difference = ± 15 mins
[0103] A straight line distance between each other may be annotated in the plot as shown in FIG. 8. It is assumed that both orders A and B are within the time window selected (±15 mins). A difference of a creation time between the order B and the order O, and a difference of a creation time between the order A and the order O are 10 mins.
[0104] {Neighbours} may only include the order B, as only the order B’s drop-off point is within 5 km radius circle of the order O’s drop-off point, and the difference of the creation time between the order B and the order O is within ± 15 mins time window.
[0105] In the circumstances, a Revised EMD score of the order O may be calculated as follows:1 0.8km 1 3km 1 10min Revised EMD(O) = — x (1 — — - ) + - X (1 —5km^+3 ^15mir}= 0.33 X (0.2 + 0.4 + 0.67) = 0.42Revised EMD Score(O) = loge[0.42 + 1] = loge1.42
[0106] FIG. 9 illustrates an exemplary diagram of batching two orders using an enhanced Reversed Earth Mover’ s Distance (Reversed EMD) score with Daisy Chaining (i.e. enhanced EMD score with Daisy Chaining), without sequential limitations.
[0107] The term of “Daisy Chaining” may be used to describe a connection of multiple devices in a serial fashion. In the context of batching, the term of “Daisy Chaining” may referto batched jobs with multiple orders where pick-ups and drop-offs can happen in any order. A difference between the Daisy Chaining and conventional batching may be a sequence of stops, where in the conventional batching, all pick-ups may need to be done before any drop-offs.
[0108] Assuming that each letter (i.e. “A”, “B”, and “C”) represents one order, where the first appearance represents a pick-up point and the second appearance represents a drop-off point, permutations of the orders and ability of batching the two or more orders according to the conventional batching and the Daisy Chaining may be as follows:• ABCABC: Allowed under the conventional batching and the Daisy Chaining• ABBCAC: Not allowed under the conventional batching and allowed under the Daisy Chaining• ABABCC: Allowed under the conventional batching and the Daisy Chaining (in the form of B2BJ (Back-to-back jobs))
[0109] In some embodiments, according to the Daisy Chaining, for each of the order (identified as an “order O”), calculation procedure is as follows:Step 1: Identify the order set {Neighbours} of the order O, whose pick-up point is within X meters radius of the order O’s pick-up point (PU), and drop-off point is within Y meters radius of the order O’ s drop-off point (DO), and order creation time is 15 minutes before or after order creation time of the order O;or drop-off point is within X meters radius of the order O’s pick-up point (PU); and estimated drop-off time is 10 minutes before or 40 minutes after the order creation time of the order O; or pick-up point is within Y meters radius of the order O’s drop-off point (DO); and order creation time is 40 minutes before or 10 minutes after estimated drop-off time of the order O. Step 2: For each of the order in {Neighbours}, calculate a Reversed Earth Mover’s Distance (for example, normalised by a radius and a time window) as follows:ReversedEMD(n E neighbour)Distance (PU(n), PU(O')') = “x (1- PU Radius X Distance (DO(ri), DO(Oy) DO Radius Y )+ / x(1 \Creatiou Time(n) — CreationTime(0)\ *15 mins Distance (DO (ri), PU(Oy)t\T(n) — Creation Time(O)\ PU Radius Xxd Time Window Distance (PU(ri), DO(OY) + «" X (1 - „ ) + y" X (1DO Radius Y [T(0] — Creation Time(ri)\Time Window To simply the formula, “T” refers to timestamps (estimated drop-off time).• For the DOs nearby the order O’s PU, T(n) refers to the neighbour order’s estimated drop-off time, while T(0) refers to the order O’s order creation time.• For the PUs nearby the order 0’ s DO, T (n) refers to the neighbour order’ s order creation time, while T(0) refers to the order O’s estimated drop-off time.• Estimated drop-off time = order creation time + direct trip time.Within a given radius, the Reversed EMD decreases as the neighbouring order moves further away from the origin (i.e. the order O). As an exceptional scenario, if the neighbouring order is precisely situated on a circumference of a circle determined by the radius, the Reversed EMD may be reduced to zero.Step 3: Sum up the Reversed EMD of all the orders in {Neighbours} and implement a logarithmic transformation as follows:Reversed EMD Score(O) loge( Reversed EMD(n) + 1)
[0110] In some embodiments, with the introduction of the Daisy Chaining, the parameters (for example, the radius and the time window) may be changed, as both pick-up points and drop-off points may be considered within the pick-up radius.
[0111] FIG. 10 illustrates an exemplary diagram of batching two orders using an enhanced Reversed Earth Mover’s Distance (Reversed EMD) score with Daisy Chaining, without sequential limitations.
[0112] As shown in an exemplary plot of FIG. 10, a reference order O may refer to a short trip. With the pre-defined PU and DO radius, there may be considerable overlapping in search zones on either side. This overlap may lead to a situation where a neighbouring order, for example an order E, emerges within the area of overlap.
[0113] In some embodiments, those two orders may be batched in some ways, for example, • PU(O) - PU(E) - DO(O) - DO(E)• PU(O) - PU(E) - DO(E) - DO(O)• PU(O) - DO(O) - PU(E) - DO(E) (under the Daisy Chaining)• PU(E) - PU(O) - DO(E) - DO(O)• PU(E) - PU(O) - DO(O) - DO(E)• PU(E) - DO(E) - PU(O) - DO(O) (under the Daisy Chaining)
[0114] In some embodiments, an order E may be considered as neighbours multiple times, to include all the distances shown with the dotted lines. This may discriminate scenarios when • A first scenario: two long trips whose PUs / DOs are overlapped• A second scenario: two short trips whose PUs / DOs are overlapped
[0115] Under the second version of EMD (also referred to as an “enhanced version of EMD”) (for example, Reversed EMD with Daisy Chaining), a Reversed EMD score of the second scenario may be higher than a Reversed EMD score of the first scenario. It may resolve a bias of the short trips in the first version of Reversed EMD. In some embodiments, some cities in afirst country may have a relatively comparable Reversed EMD score as a big city in a second country, but trip efficiency (sOTE) of the latter may be high. This may be potentially due to the fact that the ratio of short trips of the big city of the second country may considerably be higher, so they can be batched more flexibly. However, under the second version of the Reversed EMD, the Reversed EMD score of the big city in the second country may be higher (for example, due to the short trips).rooii6] In some embodiments, when looking at two cities with similar Reversed EMD scores, it may be possible that the actual sOTE and batch formation rate differ a lot. This may be due to the different batching configurations or blacklist used in the cities, and may be exactly how the Reversed EMD may be used to surface such differences and opportunities.
[0117] 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 two or more orders for an on-demand service, the server comprising:a memory configured to store instructions; anda processor for executing the stored instructions and configured to:receive a first order and information about a first pick-up location, a first drop-off location, and a first creation time of the first order; andreceive a plurality of orders and information about a second pick-up location, a second drop-off location, and a second creation time of each order of the plurality of orders, wherein the processor is further configured to: for each order of a first order set of the plurality of orders,compute a first distance between the first pick-up location and the second pick-up location, a second distance between the first drop-off location and the second drop-off location, and a creation time difference between the first creation time and the second creation time;compute a first distance value based on the first distance, the second distance and the creation time difference; anddetermine whether the order can be batched with the first order, based on the first distance value.
2. The server according to claim 1, wherein the processor is further configured to:identify the first order set from the plurality of orders, based on the second pick-up location, the second drop-off location, and the second creation time of each order of the plurality of orders.
3. The server according to claim 2, wherein the processor is further configured to: for each order of the plurality of orders,determine whether the second pick-up location is within a predetermined pick-up radius of the first pick-up location;determine whether the second drop-off location is within a predetermined drop-off radius of the first drop-off location;determine whether the creation time difference between the second creation time and the first creation time is within a predetermined creation time difference; andif it is determined that the second pick-up location is within the predetermined pick-up radius, the second drop-off location is within the predetermined drop-off radius, and the creation time difference is within the predetermined creation time difference, identify the order as the first order set.
4. The server according to claim 3, wherein the processor is further configured to:for each order of the first order set, compute the first distance value based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, and the creation time difference divided by the predetermined creation time difference.
5. The server according to claim 4, wherein the processor is further configured to:for each order of the first order set, compute a first distance score based on a logarithmic transformation of a sum of the first distance values of the first order set, to provide information about ability of batching the two or more orders in an area where the first order belongs.
6. The server according to claim 5, wherein the processor is further configured to:receive information about a first estimated drop-off time of the first order and information about a second estimated drop-off time of each order of the plurality of orders, and wherein the processor is further configured to: for each order of a second order set of the plurality of orders,compute a third distance between the first pick-up location and the second drop-off location, a fourth distance between the first drop-off location and the second pick-up location, a first time difference between the first creation time and the second estimated drop-off time, and a second time difference between the first estimated drop-off time and the second creation time;compute a second distance value based on the first distance, the second distance, the third distance, the fourth distance, the creation time difference, the first time difference, and the second time difference; anddetermine whether the order can be batched with the first order, based on the second distance value.
7. The server according to claim 6, wherein the processor is further configured to:identify the first order set as the second order set; andfurther identify the second order set from the plurality of orders based on the second estimated drop-off time of each order of the plurality of orders.
8. The server according to claim 7, wherein the processor is further configured to: for each order of the plurality of orders which is not identified as the first order set,determine whether the second drop-off location is within the predetermined pick-up radius of the first pick-up location;determine whether the first time difference between the first creation time and the second estimated drop-off time is within a predetermined time window; andif it is determined that the second drop-off location is within the predetermined pick-up radius and the first time difference is within the predetermined time window, further identify the order as the second order set.
9. The server according to claim 8, wherein the processor is further configured to: for each order of the plurality of orders which is not identified as the first order set,determine whether the second pick-up location is within the predetermined drop-off radius of the first drop-off location;determine whether the second time difference between the first estimated drop-off time and the second creation time is within the predetermined time window; andif it is determined that the second pick-up location is within the predetermined drop-off radius and the second time difference is within the predetermined time window, further identify the order as the second order set.
10. The server according to claim 9, wherein the processor is further configured to:for each order of the second order set, compute the second distance value, based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, the creation time difference divided by the predetermined creation time difference, the third distance divided by the predetermined pick-up radius, the fourth distance divided by the predetermined drop-off radius, the first time difference divided by the predetermined time window, and the second time difference divided by the predetermined time window.
11. A method for facilitating batching two or more orders for an on-demand service, the method comprising:receiving a first order and information about a first pick-up location, a first drop-off location, and a first creation time of the first order; andreceiving a plurality of orders and information about a second pick-up location, a second drop-off location, and a second creation time of each order of the plurality of orders, wherein the method further comprises: for each order of a first order set of the plurality of orders,computing a first distance between the first pick-up location and the second pick-up location, a second distance between the first drop-off location and the second drop-off location, and a creation time difference between the first creation time and the second creation time;computing a first distance value based on the first distance, the second distance and the creation time difference; anddetermining whether the order can be batched with the first order, based on the first distance value.
12. The method according to claim 11, wherein the method further comprises:identifying the first order set from the plurality of orders, based on the second pick-up location, the second drop-off location, and the second creation time of each order of the plurality of orders.
13. The method according to claim 12, wherein the method further comprises: for each order of the plurality of orders,determining whether the second pick-up location is within a predetermined pick-up radius of the first pick-up location;determining whether the second drop-off location is within a predetermined drop-off radius of the first drop-off location;determining whether the creation time difference between the second creation time and the first creation time is within a predetermined creation time difference; andif it is determined that the second pick-up location is within the predetermined pick-up radius, the second drop-off location is within the predetermined drop-off radius, and the creation time difference is within the predetermined creation time difference, identifying the order as the first order set.
14. The method according to claim 13, wherein the method further comprises:for each order of the first order set, computing the first distance value based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, and the creation time difference divided by the predetermined creation time difference.
15. The method according to claim 14, wherein the method further comprises:for each order of the first order set, computing a first distance score based on a logarithmic transformation of a sum of the first distance values of the first order set, to provide information about ability of batching the two or more orders in an area where the first order belongs.
16. The method according to claim 15, wherein the method further comprises:receiving information about a first estimated drop-off time of the first order and information about a second estimated drop-off time of each order of the plurality of orders, andwherein the method further comprises: for each order of a second order set of the plurality of orders,computing a third distance between the first pick-up location and the second drop-off location, a fourth distance between the first drop-off location and the second pick-up location, a first time difference between the first creation time and the second estimated drop-off time, and a second time difference between the first estimated drop-off time and the second creation time;computing a second distance value based on the first distance, the second distance, the third distance, the fourth distance, the creation time difference, the first time difference, and the second time difference; anddetermining whether the order can be batched with the first order, based on the second distance value.
17. The method according to claim 16, wherein the method further comprises:identifying the first order set as the second order set; andfurther identifying the second order set from the plurality of orders based on the second estimated drop-off time of each order of the plurality of orders.
18. The method according to claim 17, wherein the method further comprises: for each order of the plurality of orders which is not identified as the first order set,determining whether the second drop-off location is within the predetermined pick-up radius of the first pick-up location;determining whether the first time difference between the first creation time and the second estimated drop-off time is within a predetermined time window; andif it is determined that the second drop-off location is within the predetermined pick-up radius and the first time difference is within the predetermined time window, further identifying the order as the second order set.
19. The method according to claim 18, wherein the method further comprises: for each order of the plurality of orders which is not identified as the first order set,determining whether the second pick-up location is within the predetermined drop-off radius of the first drop-off location;determining whether the second time difference between the first estimated drop-off time and the second creation time is within the predetermined time window; andif it is determined that the second pick-up location is within the predetermined drop-off radius and the second time difference is within the predetermined time window, further identifying the order as the second order set.
20. The method according to claim 1, wherein the method further comprises:for each order of the second order set, computing the second distance value, based on the first distance divided by the predetermined pick-up radius, the second distance divided by the predetermined drop-off radius, the creation time difference divided by the predetermined creation time difference, the third distance divided by the predetermined pick-up radius, the fourth distance divided by the predetermined drop-off radius, the first time difference divided by the predetermined time window, and the second time difference divided by the predetermined time window.