DYNAMIC CONTROL PANEL INTERFACE MECHANICS FOR REAL-TIME DELIVERY OPERATION MANAGEMENT SYSTEM
20230040347 · 2023-02-09
Inventors
Cpc classification
G06Q10/047
PHYSICS
G06F3/04842
PHYSICS
G06F3/0488
PHYSICS
G06F3/0484
PHYSICS
International classification
Abstract
A real-time delivery operation management system, primarily for local or last mile delivery services to consumers. A management interface works in tandem with an instant delivery route-making algorithm to visualize the route plan for hired or contracted couriers in a dynamic interface, allowing depot managers to view or alter the delivery plan in real time. Visible route paths connect the depot, couriers, and their relevant orders for both assigned and offered routes. Orders can be selected and dragged and dropped to reconfigure routes and assignment of orders to couriers. Orders can be drag-and-dropped on either existing routes, couriers, or depots and thereby instantiate any of the underlying management operations.
Claims
1. A real-time delivery operation management system implemented on a computer system comprising a visual management interface that depicts product depots, couriers, pick-up locations, delivery locations, and courier route paths connecting one or more of the foregoing in real time overlaid on a map; a selection tool that allows a user to select delivery locations through the visual management interface to add or remove delivery orders associated with respective delivery locations from the courier route paths; an assignment management system that manages underlying courier assignment, order allocation and status, and real-time carrier routing information in response to user input through the selection tool; and a telecommunications connection that transmits the courier assignment and real-time courier routing information to couriers participating in the system.
2. The system of claim 1, wherein the selection tool allows a user to select one or more of the delivery locations on a first courier route path; and allows a user to visually transfer the selected delivery locations from the first courier route path to a second courier route path; and wherein the assignment management system reconfigures the second courier route path to include the selected delivery locations and reconfigures the first courier route path to remove the selected delivery locations.
3. The system of claim 1, wherein the selection tool allows a user to select one or more of the delivery locations that are not on any of the courier route paths; and allows a user to visually transfer the selected delivery locations from locations overlaid on map to the first courier route path; and wherein the assignment management system reconfigures the first courier route path to include the selected delivery locations.
4. The system of claim 1, wherein the visual management interface is configured to allow the selection tool to dynamically, visually drag one or more selected delivery locations depicted on the map onto one of the carrier route paths and alters the one of the carrier route paths to include the one or more selected delivery locations in a revised carrier route path visually presented on the map.
5. The system of claim 4, wherein when the at least one of the selected delivery locations is initially assigned to and part of another of the carrier route paths, the another of the carrier route paths is altered by the visual management interface to remove the at least one of the selected delivery locations when it is included in the revised carrier route path.
6. The system of claim 4, wherein the at least one of the selected delivery locations is initially unassigned to any courier route path.
7. The system of claim 2, wherein the visual management interface depicts a transfer route path between the first courier route path and the second courier route path; and the assignment management system directs via the telecommunications connection a first courier on the first courier route path and a second courier on the second courier route path to follow the transfer route path to meet and transfer goods associated with one or more of the selected delivery locations from the first courier to the second courier before the first courier resumes delivery along the first courier route path and the second courier resumes delivery along the second courier route path.
8. The system of claim 1, wherein the assignment management system is configured to allocate delivery orders between employee couriers and contract couriers using a weighting algorithm that prioritizes employee couriers.
9. The system of claim 8, wherein the assignment management system offers a particular courier route path to a contract courier over the telecommunications connection, but only assigns the particular courier route path to the contract courier upon receipt of an acceptance of the particular courier route path by the contract courier over the telecommunications network.
10. The system of claim 1, wherein the assignment management system is configured to iteratively place new delivery orders on current route paths assigned to couriers and new route paths to be assigned to couriers, calculate route costs of all possible routes, and assign and move delivery orders between current and new route paths to minimize route costs.
11. A method for real-time delivery operation management implemented on a computer system configured to perform the following operations: present a visual management interface that depicts product depots, couriers, pick-up locations, delivery locations, and courier route paths connecting one or more of the foregoing in real time overlaid on a map; provide a selection tool within the visual management interface that allows a user to select delivery locations to add or remove delivery orders associated with respective delivery locations from the courier route paths; manage underlying courier assignment, order allocation and status, and real-time carrier routing information in response to user input through the selection tool; and transmit the courier assignment and real-time courier routing information via a telecommunications network to couriers.
12. The method of claim 11, wherein the selection tool further allows a user to select one or more of the delivery locations on a first courier route path; and allows a user to visually transfer the selected delivery locations from the first courier route path to a second courier route path; and wherein the method further reconfigures the second courier route path to include the selected delivery locations and reconfigures the first courier route path to remove the selected delivery locations.
13. The method of claim 11, wherein the selection tool further allows a user to select one or more of the delivery locations that are not on any of the courier route paths; and allows a user to visually transfer the selected delivery locations from locations overlaid on map to the first courier route path; and wherein the method further reconfigures the first courier route path to include the selected delivery locations.
14. The method of claim 11, wherein the visual management interface allows the selection tool to dynamically, visually drag one or more selected delivery locations depicted on the map onto one of the carrier route paths and alters the one of the carrier route paths to include the one or more selected delivery locations in a revised carrier route path visually presented on the map.
15. The method of claim 14, wherein when the at least one of the selected delivery locations is initially assigned to and part of another of the carrier route paths, the method further comprises altering the another of the carrier route paths by the visual management interface to remove the at least one of the selected delivery locations when it is included in the revised carrier route path.
16. The method of claim 14, wherein the at least one of the selected delivery locations are initially unassigned to any courier route path.
17. The method of claim 12 further comprising depicting within the visual management interface a transfer route path between the first courier route path and the second courier route path; and directing via the telecommunications connection a first courier on the first courier route path and a second courier on the second courier route path to follow the transfer route path to meet and transfer goods associated with one or more of the selected delivery locations from the first courier to the second courier before the first courier resumes delivery along the first courier route path and the second courier resumes delivery along the second courier route path.
18. The method of claim 11 further comprising allocating delivery orders between employee couriers and contract couriers using a weighting algorithm that prioritizes employee couriers.
19. The method of claim 18 further comprising offering a particular courier route path to a contract courier over the telecommunications connection, but assigning the particular courier route path to the contract courier only upon receipt of an acceptance of the particular courier route path by the contract courier over the telecommunications network.
20. The method of claim 11 further comprising iteratively placing new delivery orders on current route paths assigned to couriers and new route paths to be assigned to couriers; calculating route costs of all possible routes; and assigning and moving delivery orders between current and new route paths to minimize route costs.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The disclosure will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements.
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
DETAILED DESCRIPTION
[0019] A real-time delivery operation management system, primarily for local or last mile delivery services to consumers, as disclosed herein may be implemented in a typical wide area telecommunication network leveraging internet cloud services, global positioning system (GPS) data, and mobile computing devices (e.g., smart phones). As shown in
[0020] The platform may include a courier management application with a graphical user interface (GUI) on a user computing device 106. The computing device may be a desktop computer, a laptop, a tablet computer, or even a smart phone. The interface may be accessed via typical devices such as a mouse and keypad. It may further be actuated by touch or a stylus on devices with touchscreen displays. In addition to the courier management application, a courier assignment and routing application is provided to all delivery couriers 110a/b/c participating in the delivery platform. Each of the delivery couriers 110a/b/c may access the platform via a personal computing device with GPOS location capability, typically a smart phone 112a/b/c with the ability to implement the courier assignment and routing application, provide telephone and text communication, and present street map with pickup and delivery locations.
[0021] Also on the network are businesses 108a/b/c that are selling goods to consumers (e.g., restaurants, grocery stores, and retail consumer goods stores) that want to offer delivery services to customers either over a platform that they control or through a third party manager operating a service on the platform. The businesses may themselves be fulfillment depots where purchased products are picked up for delivery. Alternatively, products sold by the businesses may be stored for pickup at one or more centralized warehouse depots. The businesses inventory and sales system may be tied in to the delivery system in order to easily populate orders and request delivery of the same. Alternatively, the businesses may directly enter data for each order into the system through an interface (e.g., an application on a computer, tablet, or smart phone, or through a web page interface) as they are received. The final parties to the platform are consumers 114a/b/c who purchase product from the businesses 108a/b/c and request delivery of the products. The businesses 108a/b/c may make the delivery arrangements for purchases or, in some instances, consumers may use an application interface to log their own delivery request via a third party manager on the platform and dispatch a courier to provide the delivery service.
[0022]
[0023] The smartphone 200 in
[0024]
[0025] Displayed on the control panel is a GPS map interface. Pickup (i.e., depot) locations that pertain to the operator using the platform for delivery management are marked on the map. Employed couriers which are online, contracted couriers which are online, and active order locations are also all displayed. Identification information can be made visible as shown in
[0026]
[0027] FIGS A-8B are a sequence of screenshots depicting another possible drag-and-drop feature provided by the management interface program. In
[0028] To effect a transfer of goods for delivery between two drivers, a transfer line (orange) appears as part of the left side courier route and includes a meeting point with the right side driver. As shown in
[0029] The mapping and routing operations are performed by the integration of heuristic or artificial intelligence (AI) neural networks that are programmed to address and solve mapping problems such as delivery of goods. These types of intelligence programs are leveraged by the instant courier management platform to provide mapping and routing functionality. An exemplary neural network model for addressing this problem which may be used to implement the present system is the paper by Voccia et al., “The Same-Day Delivery Problem for Online Purchases; Tippie College of Business, University of Iowa, Iowa City, Iowa, USA 52242 (Oct. 4, 2015), available at https://www.researchgate.net/publication/282542065_The_Same-Day_Delivery_Problem_for_Online_Purchases.
[0030] In a AI Neural Network route making model, the inputs are: [0031] 1. a network of orders connected with the time duration distances between them (a distance “multiplication table” format; see
The output is always in some form or another a list of orders in route drop-off order. (And optionally a list of indexes). The in between is just a hidden layer (a configuration of ‘neurons’ and ‘synapses’ with different adapted signals and no way to interpret how it works)
[0044] Alternatively, a heuristic route-making model may be employed. A route's ‘cost’ is computed by its total estimated time duration in minutes (factoring time spent at each stop, and whether or not they return to the depot post-delivery (employees do, contract workers don't)). For algorithms that take a target bundle size into account, a route's ‘penalty adjusted cost’ is calculated by original cost plus the difference between the route size and the target size multiplied by the avg. cost per order:
cost+((# of orders in route−target route size)*(cost/# of orders in route))
This simulates each order beyond the target size carrying double the time-weight of a normal average order.
[0045]
[0046] The underlying system functionality begins from the courier perspective in the processes (1000) of
[0047] When a courier goes online or a courier becomes available for delivery assignment, the delivery operation management system will first utilize an automatic assignment epoch algorithm (subroutine 1008) to sort all unassigned orders into time-efficient employee courier bundles (operation 1010). The automatic assignment epoch algorithm may make assignment bundles based upon criteria such as geographic proximity of delivery locations, traffic flow and patterns, types/sizes/weights of orders/packages, type of vehicle driven by the courier vis-a-vis the type of order, etc. Table 1 below is an example of pseudo code for an implementation of a manual assignment epoch (subroutine 1304).
TABLE-US-00001 TABLE 1 1.0 Automatic Assignment Epoch (automatically runs iteratively whenever new courier becomes available or when order appears in order database): 1.1. Determine how many employee couriers online & available (prioritized) 1.2. Determine how many contract couriers are online & available (will avoid these) 1.3. First for employees, then contractor (multiple times for each group for total # of vehicle types) 1.3.1. For every new order 1.3.2. Determine target route size 1.3.2.1. Total # unassigned orders / # couriers available; OR 1.3.2.2. Total # unassigned orders / maximum capacity per courier 1.3.2.3. Whichever one makes more routes is the one picked [Note: For contractors, the target route/bundle size is ALWAYS the courier max capacity (always 3bii). In contrast, employees may alternatively be assigned via 3bi to minimize time spent. This is to minimize the number of contract workers utilized.] 1.4. Order data received 1.4.1. Pickup location 1.4.2. Drop-off location 1.4.3. Delivery start -time 1.4.4. Delivery deadline 1.4.5. Weight capacity/volume 1.5. Mix & match routes (Goal is to place orders into efficient routes. Looks for efficient paths) 1.5.1. Equation for calculating route cost; compare to cost or other route 1.5.2. Move orders between routes to minimize route costs 1.6. Routing algorithm output: 1.6.1. Groups of orders in bundles and relate route 1.6.2. Determines and compares urgency score of bundles 1.6.2.1. Rank I - orders with drop-off time impossible to achieve 1.6.2.2. Rank II - orders not in I that cannot be picked up at ready time 1.6.2.3. Rank III - orders not in group Deadline 1.6.3. Most urgent routes assigned first and prioritized 1.6.3.1. Determine weight of assigning a certain courier to a certain route 1.6.3.2. Varies based on their availability relative to the orders, and distance from the pickup 1.6.3.3. Courier with highest score assigned route [Example: //Pairing route ii to courier i score = (routes.get(ii).size( )/(latestOrderDropOffTime - couriers.get(i).getEstimatedAvailabilityTime( ))) - (firstOrderSubject.getPickupTime( ) - latestOrderReadyTime)] [Note: Number of orders in route ii divided by (the latest order drop off time minus the time the courier next becomes available) minus pickup time of the route minus the latest order ready time, (should be positive) (calculates the delay penalty) Test this with every order and courier combo.] 1.6.4. Prioritize routes assigned to employee couriers 1.6.4.1. Contract worker must accept or reject; order not set until accepted 1.6.4.2. Consider vehicle type for job type-runs through each vehicle type for both employee pool and contract worker pool 1.6.4.2.1. Semi, trailer, pickup, van, car, motorbike, bicycle, pedestrian 1.6.4.2.2. Each routine contains a different courier vehicle capacity based on the vehicle type 1.6.4.2.3. Merchant can optionally prioritize vehicle types 1.6.4.2.4. Can also outsource delivery to other delivery services [Example: & run the 1-6 routine 16 times like so: EMPLOYEE 1. Semi, 2. trailer, 3. pickup, 4. van, 5. car, 6. motorbike, 7. bicycle, 8. pedestrian CONTRACT WORKER 9. Semi, 10. trailer, 11. pickup, 12. van, 13. car, 14. motorbike, 15. bicycle, 16. pedestrian (Unless priority order is reorganized by the Merchant)] [Note: For all automatic assignments, things like going over vehicle capacity & assigning inefficient orders will be avoided. However manual assignments will override this. Example 1: algorithm will not ‘stop' a Merchant from assigning 50 orders to one courier when the max capacity is set to 6. Example 2: algorithm will not ‘stop' a Merchant from scrambling the routes to make them less efficient. For all it knows, the Merchant knows their way around town better.] 1.7. Courier App 1.7.1. Route delivery locations identified and dropped as pins on map in order and map program plots route. 1.7.2. Real-time communication about transfers 1.7.3. For contract worker, every new order requires consent, route provisional.
[0048] Since contract couriers may potentially be working for multiple businesses concurrently, it is not guaranteed that they'll be stationed at any particular depot awaiting delivery (i.e., they may be roaming freely). Thus, contract couriers are more likely to be many different distances away from a particular merchant depot at any given time. This is likely in contrast to employee couriers who may work for only one business at a time and are always directed back to a home depot post-delivery where they await another assignment of an order bundle. Choosing the right contract courier for the route matters in terms of cost and timely delivery of an order. Furthermore, it is possible that a merchant could have hundreds of contracted couriers at any given time, with each contractor choosing whether or not to accept a delivery assignment and also choosing the time periods during which they work. This is again in contrast with employee couriers who the merchant directly controls and schedules when they work. Therefore, an additional weighting algorithm may be utilized to weigh the viability of assigning contractor couriers and to minimize costs of contractor assignments if made. Such an algorithm, which may be run after the routes are created, may determine the weight, and thereby the relative benefit, of assigning a certain courier to a certain route, which varies based on their availability relative to the orders, and distance from the pick up location.
[0049] Returning to
[0050] If no employee couriers are available and there are still unassigned orders, the remainder of the orders may then be removed from the employee bundle pool and re-sorted into time efficient contract courier bundles and a similar automatic assignment algorithm will be used to determine which available contract couriers the bundles shall be offered to. The automatic assignment algorithm for contractor assignments may be the same algorithm as used for the employee assignments, but may have different preference settings applicable to contractors that may affect assignment weighting (e.g., contractors with higher performance ratings receive preference). As indicated in
[0051] Note that it is possible for a manager of the system to intercede and actually remove orders from a bundle (operation 1020) before acceptance of the assignment by a contract courier or completion of the automatic assignment to an employee courier as well as retract orders from the assigned route of a contract worker. If a manager selects assigned orders on a plotted route and selects a retraction command through the interface (operation 1020), the order assignments will be instantly rescinded from their currently offered route and converted back into unassigned orders (operation 1022). (This possibility is indicated in
[0052] An overview of processes (1100) for management of the system and manual assignment of orders to couriers is presented in
[0053] Returning to
[0054] Returning to operation 1114, if the orders manually selected are already assigned to a courier, further determinations are made. First, the process considers whether the orders selected by the manager are already assigned to the courier or courier route that the orders were dropped on (operation 1118). Such a reassignment might be appropriate if the manager wants to change the delivery order of the orders assigned to the courier. If the orders are dropped onto the same courier or route in operation 1118, the process continues to attempt to change or swap the delivery order (subroutine 1120). For example, if selected orders (e.g., orders C and D) are assigned or offered and the manager drag-and-drops them directly onto to another portion of the same courier's route (i.e., the line connecting orders A and B), orders C and D are shifted to be delivered between orders A and B. The system may recalculate the best route in consideration of the changed delivery order and update the route map for both the courier and the manager. Alternatively, if the orders were dropped on the courier icon itself rather than a different part of the route, or the selected orders were dropped on the same portion of the route, the process will view this as a user error, the orders are unselected for action (operation 1122) and are no longer represented as selected in the manager GUI and the prior order in which the selected orders are to be delivered is maintained. This process 1100 then terminates and returns to monitor for further selection activity by the manager (input action 1102).
[0055] Returning to operation 1118, if the orders are instead dropped on a different courier or courier route than originally assigned, the process proceeds to further determination of whether the orders have already been picked-op by the courier from the depot (operation 1124). If not, the process transfers to the steps in
[0056] Returning to operation 1124, if the courier has already picked up the orders from the depot, the process 1100 makes a further determination of whether there has been a prior transfer of assignment of the orders between couriers (operation 1126). For example, the manager may have previously transferred an order from courier A to courier B and now the manager is attempting to transfer the order from courier B to courier C before carrier B makes a delivery. However, since the order has already been picked up from the depot by either courier A or courier B, the process needs to consider which courier has the order and how best to get the order to newly assigned courier C. This could involve a direct transfer between whoever has the order (courier A or courier B) to courier C at a meeting point, an indirect transfer (i.e., from courier A to courier B and then to courier C), or a drop off of the order at a depot by courier A or courier B to be picked up by courier C. If there was not a prior transfer between other carriers, then the process will move to the steps in
[0057]
[0058] If the courier reaches the depot, the courier will pick up the orders in the assigned bundle (operation 1208) and will then be directed via the map interface on the courier mobile application to the first delivery location on the route plotted for delivery of the orders in the bundle (operation 1210). Note that this is another period during which actions of a manager transferring orders between couriers may occur. If such a transfer requirement is implemented by a manager, the process directing the courier may shift as indicated to
[0059] If the courier still has assigned orders to deliver, the process 1200 next determines whether the courier needs to pick up an order assigned in a transfer (operation 1216). If the courier does not need to pick up a transfer order from another courier, the courier is free to continue to the next delivery location (operation 1210). If the courier has been assigned a transfer and needs to pick it up, the process changes the status of the courier to “in-transit” for transfer order pickup and alters the courier's map to identify the transfer location (operation 1218). As indicated in the process flow of
[0060] As indicated, this is another opportunity for the process to implement retraction or transfer of orders by a system manager, in which case the courier direction is transferred to the process of
[0061]
[0062] If no employee couriers are available and there are still unassigned selected orders, the remainder of the orders will be will then be removed from their employee bundles and re-sorted into time efficient contract courier bundles and a separate algorithm may be used to determine which available contract courier the bundles shall be offered to. If no contract couriers are available, and there are still orders in selection, and an optional integration setting is turned on, the program will then gather employees with already assigned routes, yet who have yet to pick up their orders at the depot, and it will integrate them into those assigned routes with the goal minimizing the increase in route cost for each employee courier within this category. If no employee couriers fit this category, the same actions will be performed with assigned contract couriers in their pre-pickup state only the integration orders will be offered, not assigned. If no contract couriers fit this category, or the integration setting is deactivated, no actions will be performed. Table 2 below is an example of pseudo code for an implementation of a manual assignment epoch (subroutine 1304).
TABLE-US-00002 TABLE 2 2.0 Manual Assignment Epoch: 2.1. Locate all available employees and assign bundles to them (to max capacity). 2.1.1. Determines target route size 2.1.1.1. Total # subject orders / # couriers available; OR 2.1.1.2. Total # subject orders / maximum capacity per courier 2.1.1.3. Whichever one makes more routes is the one picked 2.1.2. Create routes (create empty lists: # of routes = Total # subject orders / target route size) 2.1.3. (Run a mini-algorithm to get things started) For each route: 2.1.3.1. Go through every subject order, see which one starts the route off with the smallest route cost, add that order to the route, remove it from the subject order pool. 2.1.4. For each order in the subject pool: 2.1.4.1. Try adding this order to every possible position of every route, 2.1.4.2. Remove choices where: 2.1.4.2.1. The order increases the route size past the target route size AND increases average cost per order. 2.1.4.2.2. The order increases the route size past 4/3rds (133.33%) of the target route size. 2.1.4.3. See which available position increases the route cost the least (using the penalty adjusted cost). 2.1.4.4. Add the order to this position of this route. 2.1.5. (Remove-reinsertion optimization algorithm) For every order in every route: 2.1.5.1. Remove order from its route 2.1.5.2. Rerun 2.1.4. with order (reinsert it into the available route/position with the lowest increase in route cost). 2.1.6. Rank all routes by urgency (group each order 1-3 and compare group average of routes) 2.1.6.1. Rank I- orders with drop-off time impossible to achieve 2.1.6.2. Rank II - orders not in I that cannot be picked up at ready time 2.1.6.3. Rank III - orders not in group Deadline 2.1.7. Assign most urgent routes, discard the rest (to spill over into the next pool) [Note: An AI routing module can be substituted for 2.2.2-2.1.6 with the command “BUILD_NEW_ROUTE” by plugging in the appropriate fields.] 2.2. Locate all employees that haven’t yet picked up their orders and assign integration bundles to them (to max capacity). [Note: This command comes with a set of pre-existing routes, the routes that were previously assigned to the subject couriers.] 2.2.1. Target route size is automatically set to be = remaining subject orders / vehicle capacity. 2.2.2. For each order in the subject pool. 2.2.2.1. Try adding this order to every possible position of every route, 2.2.2.2. Remove choices where: 2.2.2.2.1. The order increases the route size past the target route size AND increases avg. cost per order. 2.2.2.2.2. The order increases the route size past 4/3rds (133.33%) of the target route size. 2.2.2.3. See which available position increases the route cost the least (using the penalty adjusted cost). 2.2.2.4. Add the order to this position of this route. [Note: No remove-reinsertion needed; routes are already assigned.) [Note: An AI routing module can be substituted for 2.2.2 with the command ″INTEGRATE_ORDERS″ by plugging in the appropriate fields.) 2.3. Locate contract workers that haven’t yet picked up their orders and offer integration bundles to them (to max capacity). [Note: This command comes with a set of pre-existing routes, the routes that were previously assigned to the subject couriers (OR their offered integration route with priority if they have one to factor for previously offered orders. In this case, the integration process is just 2.5 instead of 2.4).] 2.3.1. Target route size is automatically set to be = remaining subject orders / vehicle capacity. 2.3.2. For each order in the subject pool: 2.3.2.1. Try adding this order to every possible position of every route, 2.3.2.2. Remove choices where: 2.3.2.2.1. The order increases the route size past the target route size AND increases avg. cost per order. 2.3.2.2.2. The order increases the route size past 4/3rds (133.33%) of the target route size. 2.3.2.3. See which available position increases the route cost the least (using the penalty adjusted cost). 2.3.2.4. Add the order to this position of this route. 2.3.3. Offer new integration routes to subject couriers. [Note: No remove-reinsertion needed.] [Note: An AI routing module can be substituted for 2,3.2 with the command “INTEGRATE_ORDERS” by plugging in in the appropriate fields (Assigned routes or Offered Integration Routes for pre-assigned route input). 2.4. Locate contract workers that are available and offer bundles to them (to max capacity until no orders are left or no more available contract worker couriers). 2.4.1. Target route size is automatically set to be = remaining subject orders / vehicle capacity. (Minimize contract workers used) 2.4.2. Create routes (create empty lists: # of routes = Total # subject orders / target route size) 2.4.3. (Run mini-algorithm to get things started) For each route 2.4.3.1. Go through every subject order, see which one starts the route off with the smallest route cost, add that order to the route, remove it from the subject order pool. 2.4.4. For each order in the subject pool: 2.4.4.1. Try adding this order to every possible position of every route, 2.4.4.2. Remove choices where: 2.4.4.2.1. The order increases the route size past the target route size AND increases avg. cost per order. 2.4.4.2.2. The order increases the route size past 4/3rds (133.33%) of the target route size. 2.4.4.3. See which available position increases the route cost the least (using the penalty adjusted cost). 2.4.4.4. Add the order to this position of this route. 2.4.5. (Remove-reinsertion optimization algorithm) For every order in every route: 2.4.5.1. Remove order from its route 2.4.5.2. Rerun 2.4.4 with order (reinsert it into the available route/position with the lowest increase in route cost). 2.4.6. Rank all routes by urgency (group each order 1 -3 and compare group average of routes) 2.4.6.1. Rank I - orders with drop-off time impossible to achieve 2.4.6.2. Rank II - orders not in I that cannot be picked up at ready time 2.4.6.3. Rank III - orders not in group Deadline 2.4.7. Assign most urgent routes, discard the rest (to spill over into the next pool). 2.4.8. Utilize contract worker assignment algorithm to determine which contract workers get picked for the chosen routes. (Note: The AI can substitute 2-6 with the command ″BUILD_NEW_ROUTE″ by plugging in the appropriate fields.] 2.5. The rest of the orders are discarded (and left unassigned).
[0063] Returning to
TABLE-US-00003 TABLE 3 3.0 Automatic Transfer Epoch: 3.1. Locate all available employees and assign transfer bundles to them (to max capacity) 3.1.1. Target route size is automatically set to be = remaining subject orders / max vehicle capacity. (Minimize employees used) 3.1.2. If there’s just one of these couriers: orders are assigned as a regular transfer pickup (calls Fig. 16 (operation 1608)) 3.1.2.1. Otherwise, determines the number of routes: 3.1.2.2. (Rounded up) # of orders being transferred / target route size 3.1.2.3. # of available employees 3.1.3. The smallest number of these two is chosen for the number of routes. 3.1.4. (It essentially runs a version of 3.1.1 except where the assigned routes are assigned transfer routes and the pickup location is the transfer location (transfer index is 0 (immediately)) 3.1.5. Build & assign these transfer routes 3.1.6. Retract these orders from the assigned route of the transferring courier [Note: The AI can substitute 3.1.4 with the command “TRANSFER_ORDERS” by plugging in the appropriate fields (empty pickup courier routes for the pre- existing route inputs)] 3.2. Locate all employees that haven’t yet picked up their orders and assign transfer bundles to them (retracting their previous assigned bundle) (to max capacity) 3.2.1. With the remaining subject transfer orders: retract all un-picked up orders of all couriers in this group 3.2.2. Run 3.7.1 with those who now have no assigned orders. 3.2.3. Run 3.7.3 for the other couriers that still have picked-up assigned orders, (which won’t be retracted) (rare path: requires some orders picked up, and some not) 3.3. Locate all employees that are currently delivering orders and assign transfer bundles to them (to max capacity) 3.3.1. Target route size is automatically set to be = remaining subject orders / max vehicle capacity 3.3.2. For every remaining order being transferred: 3.3.2.1. Try adding the order to every possible position of every pre- route, 3.3.2.2. Remove choices where: 3.3.2.2.1. The order increases the route size past the target route size AND increases avg. cost per order. 3.3.2.2.2. The order increases the route size past 4/3rds (133.33%) of the target route size. 3.3.2.3. See which available position increases the route cost the least (using the penalty adjusted cost). 3.3.2.4. Add the order to this position of this route. 3.3.3. Remove transferred orders from the pickup routes (but keep them paired to those routes) 3.3.4. Call a transfer pickup (calls Fig. 16 (operation 1608)) with each pickup courier and their paired transfer orders (if they have any), so that an efficient route & transfer index may be assigned with them. [Note: The AI can substitute 3.3.2-3.3.4 with the command “TRANSFER_ORDERS” by plugging in the appropriate fields (pickup courier pre-existing assigned routes for the pre-existing route inputs)] 3.4. Locate all available contractors and assign transfer bundles to them (to max capacity) 3.4.1. Target route size is automatically set to be = remaining subject orders / max vehicle capacity. (Minimize employees used) 3.4.2. If there’s just one of these contract couriers: orders are assigned as a regular transfer pickup (calls Fig. 16 (operation 1608)) 3.4.2.1. Otherwise, determines the number of routes: 3.4.2.2. (Rounded up) # of orders being transferred / target route size 3.4.2.3. # of available contractors 3.4.3. The smallest number of these two is chosen for the number of routes. 3.4.4. (It essentially runs a version of 3.1.1 except where the assigned routes are assigned transfer routes and the pickup location is the transfer location (transfer index is 0 (immediately)) 3.4.5. Build & assign these transfer routes 3.4.6. Retract these orders from the assigned route of the transferring contract courier [Note: The AI can substitute 3.1.4 with the command “TRANSFER_ORDERS” by plugging in the appropriate fields (empty pickup courier routes for the pre- existing route inputs)] 3.5. Locate all contractors that haven’t yet picked up their orders and assign transfer bundles to them (retracting their previous assigned bundle) (to max capacity) 3.5.1. With the remaining subject transfer orders: retract all un-picked up orders of all contractor couriers in this group 3.5.2. Run 3.7.1 with those who now have no assigned orders. 3.5.3. Run 3.7.3 for the other contractor couriers that still have picked-up assigned orders, (which won’t be retracted) (rare path: requires some orders picked up, and some not) 3.6. Locate all contractors that are currently delivering orders and assign transfer bundles to them (to max capacity) 3.6.1. Target route size is automatically set to be = remaining subject orders / max vehicle capacity 3.6.2. For every remaining order being transferred: 3.6.2.1. Try adding the order to every possible position of every pre- route, 3.6.2.2. Remove choices where: 3.6.2.2.1. The order increases the route size past the target route size AND increases avg. cost per order. 3.6.2.2.2. The order increases the route size past 4/3rds (133.33%) of the target route size. 3.6.2.3. See which available position increases the route cost the least (using the penalty adjusted cost). 3.6.2.4. Add the order to this position of this route. 3.6.3. Remove transferred orders from the pickup routes (but keep them paired to those routes) 3.6.4. Call a transfer pickup (calls Fig. 16 (operation 1608)) with each pickup contractor courier and their paired transfer orders (if they have any), so that an efficient route & transfer index may be assigned with them. [Note: The AI can substitute 3.3.2-3.3.4 with the command “TRANSFER_ORDERS” by plugging in the appropriate fields (pickup courier pre-existing assigned routes for the pre-existing route inputs)]
[0064] The automatic transfer epoch algorithm will try to minimize how many additional couriers are involved in a transfer, so the goal is to maximize the capacity of all additional couriers involved and make sure that every courier group is filled with orders, while still having transfer orders left over, before moving on. In this sense, additional transfer orders “spill over” into the next group like a waterfall fountain. In response to a transfer order, the automatic transfer epoch algorithm calls either regular route-making algorithms or integration route-making algorithms depending on the circumstances.
[0065] The following is an example priority list for automatic transfer epoch route-making routines (for the courier that is assigned a transfer):
[0066] First Priority—employee couriers that are online and available (runs 1 routine per vehicle type in priority order). [0067] a. The assigned transfer orders will now become their entire bundle.
[0068] Second Priority—employee couriers that are online and have not yet picked up their assigned orders (runs 1 routine per vehicle type in priority order). [0069] a. Their current assigned orders will be retracted. The assigned transfer orders will now become their entire bundle.
[0070] Third Priority—employee couriers that are online and are in the middle of delivering orders (runs 1 routine per vehicle type in priority order). [0071] a. The transfer orders will be integrated efficiently into their pre-existing routes.
[0072] For the contract couriers, the priority order is different, favoring contract workers already currently fulfilling a contract above resting ones. For example, since contracting a new contract courier could activate a minimum wage guarantee, it is better to ask as contract courier that's already accepted a delivery. Thus, the priority order continues with respect to contract couriers as follows:
[0073] Fourth Priority—contract couriers that are online and have not yet picked up their assigned orders (runs 1 routine per vehicle type in priority order). [0074] a. Upon acceptance, their current assigned orders will be retracted. The assigned transfer orders will now become their entire bundle.
[0075] Fifth Priority—contract couriers that are online and are in the middle of delivering orders (runs 1 routine per vehicle type in priority order). [0076] a. The transfer orders will be integrated efficiently into their pre-existing routes.
[0077] Fifth Priority—contract couriers that are online and available (runs 1 routine per vehicle type in priority order). [0078] a. Contract couriers being offered bundles at the same time will also fall into this category. The transfer offer will override their current offer in this case.
[0079] Returning to
[0080]
[0081] Returning to operation 1402, if instead the orders selected for retraction are, in fact, already assigned to a courier, the process 1400 further determines whether or not the selected orders are in the process of being transferred from the present courier to a third courier (operation 1406). If the order is not being transferred from a bundle previously assigned to another carrier, the status of any order selected for retraction will immediately be changed to unassigned and available for allocation in a new bundle (operation 1412). Orders that are retracted are further removed from a courier's assigned route (operation 1414). The process returns the courier to
[0082] Returning to operation 1406, if it is determined that selected orders had, in fact, previously been assigned for transfer to a third courier, the process 1400 instantly rescinds the selected orders for purposes of that transfer (operation 1408), and integrates the orders back into the route of the original courier that was to transfer the order (operation 1410). As noted in the diagram of
[0083]
[0084] If a determination is made that the offered orders selected for retraction are not part of an integration bundle (operation 1502), the process 1500 may make a further determination as to whether the offered orders selected for retraction are orders offered in a transfer integration bundle (operation 1510), which integrates orders retracted from another courier into the assigned route. If so, the retraction command from the manager will instantly rescind the selected orders from the currently offered route and will integrate the rescinded orders back into the route of the original courier from whom the order was being transferred (operation 1512). The orders disappear from the route offered to the contract courier (operation 1514). The process then determines whether the offer to the courier still includes new orders for delivery due to the integration algorithm (operation 1516). If so, the process moves to
[0085] If a determination is made that the offered orders selected for retraction are not part of a transfer integration bundle (operation 1510), the process 1500 may make a further determination as to whether the offered orders selected for retraction are orders offered in a transfer update bundle (operation 1518), which integrates new transfer orders into an existing transferred route. If so, the retraction command from the manager will instantly rescind the selected orders from the currently offered route and will integrate the rescinded orders back into the route of the original courier from whom the order was being transferred (operation 1520). The orders disappear from the route offered to the contract courier (operation 1522). The process then determines whether the offer to the courier still includes new orders for delivery due to the integration algorithm (operation 1524). If so, the process moves to
[0086] If a determination is made that the offered orders selected for retraction are not part of a transfer update bundle (operation 1518), the process 1500 may make a further determination as to whether the offered orders selected for retraction are orders offered in a transfer pickup bundle (operation 1526), which integrates transferred orders and a new pickup from a depot into an assigned route. If so, the retraction command from the manager will instantly rescind the selected orders from the currently offered route and will integrate the rescinded orders back into the route of the original courier from whom the order was being transferred (operation 1528). The orders disappear from the route offered to the contract courier (operation 1530). The process then determines whether the offer to the courier still includes new orders for delivery due to the integration algorithm (operation 1532). If so, the process moves to
[0087]
[0088] In the case of employed couriers, the pickup courier and the original courier are directed to travel to a point within the pickup courier's route deemed most convenient by a separate routing algorithm. An example of such routing is presented in
[0089] In the case of a manger dragging-and-dropping orders from an original courier directly onto a second courier that is a contractor, an immediate transfer pickup is offered to the contract courier and a provisional transfer route is created. If accepted, the pickup courier and the original courier are directed to travel to a point within the pickup courier's route deemed most convenient by a separate routing algorithm. Transferred orders are integrated into the pickup courier's provisional post-pickup route with the goal minimizing the increase in the pickup courier's provisional route cost. The subject orders are immediately removed from the route of the courier transferring the orders, to be returned if the provisional route is rejected by the pickup courier. This action is also performed when selected unassigned orders are dropped directly onto a portion of the pickup courier's route (i.e., the line connecting orders A and B). In this case, only the selected orders shall be provisionally inserted specifically between orders A and B in a way that minimizes increase in the provisional route cost given this constraint. If after accepting the transfer order, the pickup courier cancels the pickup, the orders selected for transfer are reinserted into the route of the original courier. As noted in
[0090] Table 4 below is an example of pseudo code for an implementation of a transfer pickup assignment (subroutine 1306) that may for the basis for either an employee courier or contract courier order transfer operation.
TABLE-US-00004 TABLE 4 4.0 Immediate Transfer Pickup: [Note: For this algorithm, both a ‘Transferring Courier’ and a ‘Pickup Courier’ have already been chosen. Vehicle Capacity is ignored. Not only do all transfer orders need to be inserted into the pickup courier’s route, an efficient pickup point needs to be established in the pickup courier’s route with all transfer order drop offs only being inserted into the route after this moment.] 4.1. All orders for a pickup courier that haven’t been picked up are retracted, (i.e. “If you haven’t picked up your assigned orders yet, don’t bother”) 4.2. If the pickup courier has previously been offered an integration, transfer integration, or just a regular route, that has not been accepted, the offer is retracted. 4.3. For every possible transfer index of the pickup courier’s route (route size +1): [Note: The transfer Index is a number located between two drop-off points in a route. Before heading to the drop-off point at this index, the pickup courier must immediately head to the location of the transferring courier to pick up transfer orders, before continuing to drop off the orders in their route. (Transfer index of 0 means “immediately”, transfer index of 1 means “after 1 drop-off”)] 4.3.1. Two lists are created: ‘Pre-pickup route’ and ‘Post-pickup route’ 4.3.2. For every order in the pickup couriers route: 4.3.2.1. If its index < the current index 4.3.2.1.1. Add it to the Pre-pickup route 4.3.2.2. Else 4.3.2.2.1. Add it to the Post-pickup route 4.3.3. For every order that is being transferred: 4.3.3.1. Try adding this order to every possible position of this route, 4.3.3.2. See which available position increases the route cost the least (using the regular route cost (no penalty adjustment)). 4.3.3.3. Add the order to this position of this route. 4.4. See which transfer route (transfer index and post-pickup route combo) has the lowest score (using the regular route cost (no penalty adjustment)). 4.5. Build this transfer route 4.5.1. Assign it if the pickup courier is an employee (assigned transfer route) 4.5.2. Offer it if the pickup courier is a contract worker (offered transfer route) 4.6. Retract these orders from the assigned route of the transferring courier [Note: The AI can substitute 4.2-4.4 with the command “TRANSFER_ORDERS” by plugging in the appropriate fields (pickup courier pre-existing assigned routes for the pre-existing route inputs)]
[0091] Returning to
[0092] However, if the second transfer pickup assignment or request to a pickup courier is for orders held by the same original courier, and the couriers have not intercepted each other yet for a transfer of goods, the addition of transfer orders from the original courier to the pickup courier makes sense. In the context of management of couriers, orders, and routes through the order management GUI, if the selected orders are currently assigned, and the client drag-and-drops directly onto a contracted courier (to whom the original courier currently assigned the selected orders for delivery is also provisionally transferring), the selected orders are added to the pre-existing transfer offer and are thus integrated into the pickup courier's provisional post-pickup route with the goal of minimizing an increase in the pickup courier's provisional route cost. The subject orders are immediately removed from the route of the original courier transferring the orders, to be returned if the provisional route is rejected or the pickup is canceled by the pickup courier. This action is also performed when selected unassigned orders are dropped directly onto a portion of the pickup courier's route (i.e., the line connecting orders A and B). However, the selected orders shall instead be provisionally inserted specifically between orders A and B in a way that minimizes increase in the provisional route cost given this new constraint.
[0093] An algorithm similar to the one presented in Table 4 can serve as the basis for a process integrating a second transfer pickup order into a prior transfer pickup order from the same original courier (operation 1608). The algorithm of Table 4 can be run a second time with all proposed transfer orders (old and new) and the pickup courier's revised route after processing the first pickup transfer request, and replaces the previous transfer pickup offer with a new one. Once the system has either created a new transfer pickup assignment and route (operation 1604) or integrated two transfer orders into a single pickup bundle from an original courier with a revised route for the pickup carrier (operation 1608), the courier is presented with the transfer pickup bundle for delivery and a revised route on the courier's mobile device (operation 1610).
[0094] The process 1600 next determines whether the pickup courier is an employee or a contractor (operation 1612). If the pickup courier is an employee, the process for the employee courier immediately reverts to the standard bundle assignment and delivery process of
[0095]
[0096] A first access point to this process 1700 comes from
[0097] Returning to the decision of operation 1702, if the contract courier has a presently pending offer, but no actual assigned order bundles, a slightly different algorithm is used to integrate additional selected orders into the proposed delivery contract (operation 1706). For example, in the context of management of couriers, orders, and routes through the order management GUI, the process is performed in response to a manager drag-and-drop of selected unassigned orders directly onto a contracted courier that is not available, but has offered delivery orders that have not yet been accepted. An offer to deliver a proposed bundle is created with the selected orders integrated into the proposed route of the prior delivery bundle offer in a way that minimizes the increase in route cost. The new bundle is offered to the courier as a proposed update to their current bundle offer. This action is also performed when selected unassigned orders are dropped via the GUI directly onto a specific portion of the proposed route of the original bundle offer (i.e., the line connecting orders A and B). In this case, only the selected orders shall be provisionally inserted specifically between orders A and B in a way that minimizes increase in the provisional route cost given this constraint. Note that this is a contract worker exclusive action. It is invoked when the courier is already offered an integration route, and the merchant then wants to add more orders to it before the courier has accepted. This new offer replaces the previous offer, thereby updating the terms of an offered integration bundle.
[0098] This integration bundle offer creation process 1706 may be implemented in the AI model using an action ‘INTEGRATE_ORDERS’, and the inputs are the offered integration route plus a list of unassigned orders. Alternatively, implementation in a heuristic model may include testing each integration order in every position of the built route, and its position is chosen to be where there is the minimum increase in route cost. The new offered integration route offer immediately replaces the previous offered integration route and continues to await the response of the subject contract worker courier. Once the system has either created a new integration assignment and route (operation 1704) or integrated new unassigned orders into an existing offered integration bundle with a revised route for the carrier (operation 1706), the courier is presented with the integration bundle for delivery and a revised route on the courier's mobile device (operation 1708).
[0099] The process 1700 next determines whether the courier is an employee or a contractor (operation 1710). If the courier is an employee, the process for the employee courier immediately reverts to the standard bundle assignment and delivery process of
[0100]
[0101] The process is slightly modified for contract couriers as opposed to employee couriers. If the selected orders are currently assigned to a first courier and have not been picked up from their depot, and further if the selected orders are drag-and-dropped directly onto a second contract courier who either has no orders or has yet to pick up their assigned orders, a provisional transfer-integration bundle is created. The selected orders are integrated into the second courier's provisional route in such a way as to minimize increase in the pickup courier's provisional route cost. The subject orders are immediately removed from the route of the original courier transferring the orders, to be returned if the provisional route is rejected or the pickup is canceled by the second courier.
[0102] A first access point to this process 1800 comes from
[0103] This transfer integration bundle creation process 1804 may be implemented in a similar manner to the process described with respect to operation 1704 in
[0104] Returning to
[0105] If the transfer orders offered for integration are from the same courier, then a slightly different algorithm is used to integrate additional transferred integration bundles into the proposed delivery contract (operation 1808). As above, this transfer integration bundle creation process 1804 may be implemented in a similar manner to the process described with respect to operation 1704 in
[0106] The new transfer integration bundle route offer immediately replaces the previous offered transfer integration bundle route and continues to await the response of the subject contract worker courier. Once the system has either created a new transfer integration assignment and route (operation 1806) or integrated new transfer orders into an existing offered integration transfer bundle with a revised route for the carrier (operation 1808), the courier is presented with the transfer integration bundle for delivery and a revised route on the courier's mobile device (operation 1810).
[0107] The process 1800 next determines whether the courier is an employee or a contractor (operation 1812). If the courier is an employee, the process for the employee courier immediately reverts to the standard bundle assignment and delivery process of
[0108]
[0109] The process is slightly modified for contract couriers as opposed to employee couriers. If the selected orders are currently assigned, and the manager drag-and-drops them directly onto a contracted courier (to whom the courier currently delivering the selected orders is also currently transferring), a new provisional transfer update bundle is created which adds the selected orders to the pre-existing assigned transfer and are thus integrated into the pickup courier's provisional post-pickup route with the goal of minimizing an increase in the pickup courier's provisional route cost. The subject orders are immediately removed from the route of the original courier transferring the orders, to be returned if the provisional route is rejected or the pickup is canceled by the second pickup courier. This action is also performed when selected unassigned orders are dropped directly onto a portion of the pickup courier's route (i.e. the line connecting orders A and B). However, the selected orders shall be provisionally inserted specifically between orders A and B in a way that minimizes increase in route cost given this constraint.
[0110] A first access point to this process 1900 comes from
[0111] Returning to
[0112] If the transfer update orders offered for integration are from the same courier, then a slightly different algorithm is used to integrate additional transferred integration bundles into the proposed delivery contract (operation 1808). As above, this transfer integration bundle creation process 1804 may be implemented in a similar manner to the process described with respect to operation 1704 in
[0113] The new transfer update bundle route offer immediately replaces the previous offered transfer update bundle route and continues to await the response of the subject contract worker courier. Once the system has either created a new transfer update assignment and route (operation 1906) or integrated transfer update orders into an existing offered transfer update bundle with a revised route for the carrier (operation 1908), the courier is presented with the transfer update bundle for acceptance and delivery and a revised route on the courier's mobile device (operation 1910). Note that a rejection of this offer by the contract pickup courier only excludes all offered transfer update orders, not the transfer orders that have already been accepted and assigned.
[0114] The process 1900 next determines whether the courier is an employee or a contractor (operation 1912). If the courier is an employee, the process for the employee courier immediately reverts to the standard bundle assignment and delivery process of
[0115] As previously described, a system manager may decide that there is benefit to having one courier take orders from another courier that has already picked the orders up from a depot (e.g., quicker delivery, one courier has a better vehicle for completing delivery due to inclement weather, etc.).
[0116] If there is no change in directive, when the pickup courier arrives, the couriers physically transfer the orders and indicate within the application platform that the exchange is completed (operation 2008). The process continues with a determination whether the transferring courier still has transfer directions to transfer orders to other pickup carriers (operation 2010). This determination is also used in the event that a transfer order was canceled and orders were returned to the carrier in
[0117] An exemplary mobile device 2100 for use within the network implementing the real-time delivery operation management system is depicted in
[0118] One or more application programs 2106 may be loaded into the memory 2104 for execution by the processor 2102 in conjunction with the operating system 2106. Exemplary applications may include electronic mail programs, scheduling programs, personal information management programs, word processing programs, spreadsheet programs, Internet browser programs, music file management programs, and photograph and video file management programs. The memory 2104 may further include a mobile mapping application 2110, which executes on the processor 2102 and interfaces with the Global Positioning System (GPS) or other geolocation chip 2130. The memory 2104 may also include a delivery operation management application 2111 according to the description herein for use by a courier or to receive and execute delivery requests and also by a delivery assignment manager if managing the system on a mobile device. The delivery operation management application 2111 may interface with the mobile mapping application 2110 and geolocation chip 2130 in order to effect the routing operations described herein.
[0119] The mobile device 2100 also has a power supply 2112, which may be implemented using one or more batteries. The power supply 2112 may also be from an external AC source through the use of a power cord or a powered data transfer cable connected with the mobile device 2100 that overrides or recharges the batteries. The power supply 2112 is connected to most, if not all, of the components of the mobile device 2100 in order for each of the components to operate.
[0120] In one embodiment, the mobile device 2100 may include communications capabilities, for example, the mobile device 2100 operates as a wireless telephone. A wireless device 2100 with telephone capabilities generally includes an antenna 2116, a transmitter 2118, and a receiver 2120 for interfacing with a wireless telephony network. Additionally, the mobile device 2100 may include a microphone 2134 and loudspeaker 2136 in order for a user to telephonically communicate. The loudspeaker 2136 may also be in the form of a wired or wireless output port for connection with a wired or wireless earphone or headphone.
[0121] The mobile device 2100 may connect with numerous other networks, for example, a wireless LAN (Wi-Fi) network, a wired LAN or WAN, Bluetooth, near field communication, GPRS, UMTS, LTE, 4G, 5G, or any other network via one or more communication interfaces 2122. The antenna 2116 or multiple antennae may be used for different communication purposes, for example, radio frequency identification (RFID), microwave transmissions and receptions, Wi-Fi transmissions and receptions, GPS transmissions and receptions, and Bluetooth transmissions and receptions, etc.
[0122] The mobile device 2100 further generally includes some type of user interface. As shown in
[0123] The mobile device 2100 may also include one or more cameras 2128. In some implementations, cameras 2128 are provide on both the front and back faces of the mobile device 2128. Each camera 2128 may include one or more lenses, charge coupled devices, LED flashes or light sources, a shutter switch (either physical or presented in the GUI of the display 2126), and other camera hardware integrated with a software program for controlling the camera 2128 and storing images in the memory 2104.
[0124] In the embodiment depicted in
[0125]
[0126] The processing device 2200 may further include additional devices for memory storage or retrieval. These devices may be removable storage devices 2208 or non-removable storage devices 2210, for example, memory cards, magnetic disk drives, magnetic tape drives, and optical drives for memory storage and retrieval on magnetic and optical media. Storage media may include volatile and nonvolatile media, both removable and non-removable, and may be provided in any of a number of configurations, for example, RAM, ROM, EEPROM, flash memory, CD-ROM, DVD, or other optical storage medium, magnetic cassettes, magnetic tape, magnetic disk, or other magnetic storage device, or any other memory technology or medium that can be used to store data and can be accessed by the processing unit 2202. Additional instructions, e.g., in the form of software, that interact with the base operating system to create a special purpose processing device 2200, in this implementation, instructions for implementation of processes of the delivery management system, for example, as described with respect to
[0127] The processing device 2200 may also have one or more communication interfaces 2212 that allow the processing device 2200 to communicate with other devices. The communication interface 2212 may be connected with a network. The network may be a local area network (LAN), a wide area network (WAN), a telephony network, a cable network, an optical network, the Internet, a direct wired connection, a wireless network, e.g., radio frequency, infrared, microwave, or acoustic, or other networks enabling the transfer of data between devices. Data is generally transmitted to and from the communication interface 2212 over the network via a modulated data signal, e.g., a carrier wave or other transport medium. A modulated data signal is an electromagnetic signal with characteristics that can be set or changed in such a manner as to encode data within the signal.
[0128] The processing device 2200 may further have a variety of input devices 2214 and output devices 2216. Exemplary input devices 2214 may include a keyboard, a mouse, a tablet, and/or a touch screen device. Exemplary output devices 2216 may include a video display, audio speakers, and/or a printer. Such input devices 2214 and output devices 2216 may be integrated with the processing device 2200 or they may be connected to the processing device 2200 via wires or wirelessly, e.g., via IEEE 802.11 or Bluetooth protocol. These integrated or peripheral input and output devices are generally well known and are not further discussed herein. Other functions, for example, handling network communication transactions, may be performed by the operating system in the nonvolatile memory 2204 of the processing device 2200.
[0129] The technology described herein may be implemented as logical operations and/or modules in one or more systems. The logical operations may be implemented as a sequence of processor-implemented steps executing in one or more computer systems and as interconnected machine or circuit modules within one or more computer systems. Likewise, the descriptions of various component modules may be provided in terms of operations executed or effected by the modules. The resulting implementation is a matter of choice, dependent on the performance requirements of the underlying system implementing the described technology. Accordingly, the logical operations making up the embodiments of the technology described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations may be performed in any order, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.
[0130] In some implementations, articles of manufacture are provided as computer program products that cause the instantiation of operations on a computer system to implement the procedural operations. One implementation of a computer program product provides a non-transitory computer program storage medium readable by a computer system and encoding a computer program. It should further be understood that the described technology may be employed in special purpose devices independent of a personal computer.
[0131] The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention as defined in the claims. Although various embodiments of the claimed invention have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, other embodiments using different combinations of elements and structures disclosed herein are contemplated, as other iterations can be determined through ordinary skill based upon the teachings of the present disclosure. It is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative only of particular embodiments and not limiting. Changes in detail or structure may be made without departing from the basic elements of the invention as defined in the following claims.