GROUPING OF ADDRESSES BASED ON SEMANTIC CONNECTIONS AND VIEWPOINTS FOR ROUTE OPTIMIZATION
In some embodiments, a computer-based, pickup and delivery system is configured to perform a pickup/delivery route optimization and dispatch optimized route information to client applications. The optimization may include optimizing the routes for servicing multiple delivery and/or pickup stops. The optimization may also include optimizing the route navigation along the routes from one location to another. The optimized navigation may include generating a destination mapping throughout, for example, an apartment complex or a business park, and determining conveniently located parking to be used to park delivery vehicles, conveniently located staircases, conveniently located elevators, access codes to the secured gates and lockboxes, and the like.
One technical field of the present disclosure relates to computer-implemented vehicle routing methods including the grouping of physical addresses based on semantic connections between the addresses. Another technical field relates to optimizing routes that include the addresses that are grouped based on various criteria including the semantic connections.
BACKGROUNDThe approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
Businesses providing delivery services by vehicle are rapidly growing and evolving. Reliable services are in a high demand, especially when the dependability, accuracy and timeliness are particularly important. The reliable services may include fulfilling the requests for the same-day-deliveries or time-sensitive-deliveries. To meet the customers' expectations, drivers of the delivery service companies are expected to make, for example, within-an-hour-deliveries of medications regardless of how difficult it is to find the delivery destinations.
To meet the increasing expectations of the customers, delivery service companies usually rely on global positioning system (GPS) based technologies and GPS-based navigation systems. The systems often rely on satellite maps and geographic maps that are generally available to the public.
However, sometimes the maps lack the required accuracy and details. For example, some maps may not be updated in real time, may not reflect temporary road closures, or may not capture information about the construction zones or traffic congestions. Furthermore, they may fail to provide accurate navigation instructions within dense physical structures such as apartment complexes, business parks, or residential subdivisions.
SUMMARYThe claims may serve as a summary of the invention.
In the drawings:
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. It will be apparent, however, that embodiments may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present disclosure. Embodiments are disclosed in sections according to the following outline:
1. GENERAL OVERVIEW
2. ROUTE-OPTIMIZED PICKUP AND DELIVERY SYSTEM
-
- 2.1. COMPUTER GROUPING AND OPTIMIZATION SYSTEM
- 2.1.1. SEMANTIC GROUPING UNIT
- 2.1.1.1. SEMANTIC WAYPOINTS
- 2.1.1.2. SEMANTIC GROUPING
- 2.1.2. ROUTE OPTIMIZER
- 2.1.3. INTERFACES
- 2.1.4. USER DEVICES
- 2.1.1. SEMANTIC GROUPING UNIT
- 2.2. EXAMPLE GRAPHICAL USER INTERFACES
- 2.2.1. EXAMPLE DASHBOARDS
- 2.2.2. EXAMPLE MAPS
- 2.2.3. EXAMPLE ROUTE DETAIL VIEWS
- 2.3. SETTINGS, PERSONALIZATION AND SUPPORT
- 2.3.1. PROFILE SETTINGS
- 2.3.2. NAVIGATION SETTINGS
- 2.3.3. SUPPORT SETTINGS
- 2.4. EXAMPLE MAPS
- 2.4.1. GEOGRAPHICAL MAPS
- 2.4.2. SATELLITE MAPS
- 2.5. POINT-TO-POINT DELIVERY
- 2.1. COMPUTER GROUPING AND OPTIMIZATION SYSTEM
3. ROUTE GROUPING AND OPTIMIZATION
-
- 3.1. OPTIMIZING A ROUTE
- 3.1.1. DRAWN BOUNDARIES
- 3.1.2. ROUTE GENERATION BASED ON STORED SCHEMA
- 3.2. EXAMPLE OPTIMIZED ROUTES
- 3.3. EXAMPLE INFORMATION ABOUT A STOP
- 3.3.1. STOP DETAILS
- 3.3.2. MULTIPLE STOPS DETAILS
- 3.4. EXAMPLE ROUTE INFORMATION
- 3.5. NAVIGATION INSTRUCTIONS
- 3.6. DELIVERY/PICKUP STATUS INFORMATION
- 3.6.1. STATUS CHECKBOXES
- 3.6.2. PARKING/ENTRANCE/STAIRCASE INFORMATION
- 3.7. ROUTE NAVIGATION SUPERIMPOSED ON A MAP
- 3.7.1. NAVIGATION SUPERIMPOSED ON A MAP
- 3.7.2. APARTMENT INFORMATION SUPERIMPOSED ON A MAP
- 3.1. OPTIMIZING A ROUTE
4. EXAMPLE ROUTE OPTIMIZATION FLOW CHART
-
- 4.1. INITIALIZATION
- 4.2. ROUTE OPTIMIZATION
- 4.3. ROUTE DETAIL DETERMINATION
5. EXAMPLE ADDRESS GROUPING BASED ON SEMANTIC CONNECTIONS
-
- 5.1. INITIALIZATION
- 5.2. ADDRESS GROUPING
- 5.3. ROUTE DETAIL DETERMINATION
- 5.4. SEMANTIC GROUPING FLOW
6. NOTE ENTERING CAPABILITIES
7. IMPROVEMENTS PROVIDED BY CERTAIN EMBODIMENTS
8. HARDWARE OVERVIEW
1. General Overview
In some embodiments, a computer-implemented method is configured to provide detail instructions for performing point-to-point deliveries. The system is also configured to optimize routes for servicing multiple delivery stops and/or multiple pickup stops and optimize the navigation from between the stops along the routes. To enable route optimization, the system may perform mapping of the delivery destinations, grouping of the destination addresses based on the mapping, and identify parking that is conveniently located to park delivery vehicles, conveniently located staircases, conveniently located elevators, access codes to the secured gates, and the like
In some embodiments, a computer-based pickup and delivery system is configured to perform a pickup/delivery route optimization and to dispatch the optimized route information to client applications. The optimization may include optimizing routes for servicing multiple delivery and/or pickup stops. The optimization may also include optimizing route navigation along the routes from one location to another. The optimized navigation may include generating a destination mapping throughout a dense physical structure such as an apartment complex or a business park, and determining convenient locations to park delivery vehicles, conveniently located staircases, conveniently located elevators, access codes to the secured gates, lockboxes, and the like.
The optimized pickup and delivery system may be configured to facilitate pickups and deliveries of various items and goods. For example, the system may facilitate food delivery, goods delivery, parcel and packages pickup and delivery, documents pickup and delivery, medication delivery, and the like. The pickup and delivery system may be integrated with the shipping and/or delivery computerized systems hosted by commercial delivery service providers such as FedEx, DHL, UPS, TNT, and others.
The optimization and mapping functionalities may be based on digitally stored detailed data describing the layouts of the subdivisions, the apartment complexes, and the like. While other systems rely on publicly available maps, such as GPS and satellite maps, the present disclosure relies on detail maps comprising digitally stored map data at a level of detail beyond the level of detail of publicly available conventional GPS data or satellite maps.
Detail maps may be created based on, for example, data collected during individual inspections of the properties and information received from local management, proprietors and residents. Therefore, the detail maps used herein allow grouping location destinations based on adjacency to each other, which may not necessarily correspond to the similarity of the corresponding physical addresses of the destinations. Hence, while some pickup/delivery addresses may be on different streets, the present disclosure allows grouping the addresses into one route because the addresses may be semantically connected even though they are not on the same street. Furthermore, while some pickup/delivery destination addresses may be on the same street, the approach presented herein may allow determining, based on the semantic connections between the addresses, that the most convenient access to the corresponding destinations is from an adjacent street.
Embodiments may include real-time analytics capabilities. These capabilities may include performing real-time analytics of the optimized routes that include multiple pickup or delivery stops. For example, an embodiment may allow determining how to group the stops into the routes so that the groupings are optimized based on multiple constraints, such as an overall delivery time, a length of the route, a traffic constraint, and the like.
A route optimization may include determining a list of pickup or delivery destination scheduled for a particular day. The route optimization may also include determining semantic connections between the addresses included in the list, grouping the addresses based on the semantic connections between the addresses, and determining the routes corresponding to the groupings. The routes may be optimized based on certain constraints, such as a travel time, a travelled distance, both the travel time and the travelled distance, and other constraints. This may result in improving the efficiency in providing the delivery or pickup services. For example, this may include providing services to more destinations than using traditional approaches within the same time period. This may also include reducing a total count of routes and the count of drivers that need to be dispatched to provide the services than the count of drivers that need to be dispatched using other approaches within the same time period. Furthermore, this may include reducing a count of miles driven by the drivers per day.
In some embodiments, a method groups addresses of pickup/delivery destinations to optimize the service routes using semantic connections between the delivery/pickup addresses and locations. Implementing the grouping provides many improvements over other approaches. For example, it allows the vehicle drivers to increase a count of delivery/pickup stops because the routes are optimized and include addresses that are semantically connected. Since the routes are optimized and the addresses are grouped based on the semantic connections between the addresses, the drivers traverse routes that are shorter and that include as many semantically connected locations as possible.
A route optimization may include optimizing various aspects of the pickup/delivery service. This may include optimizing a point-by-point delivery, balancing workloads between routes, reducing the time needed to locate a pickup/deliver destination, such as a particular apartment or suite, reducing the time needed to locate conveniently located parking spots for making the deliveries/pickups, reducing the time needed to locate conveniently located staircases, elevators, and the like. This may also include allowing modifications to the pickup/delivery addresses within routes, making notes about the pickup/delivery destinations, making notes about the routes, and the like. This may also include providing information about security codes necessary to enter secure premises such as apartment complexes, business complexes, and the like.
In some embodiments, a pickup and delivery system is configured to generate and display a user interface for interacting with the system. The user interface may be implemented as a graphical user interface or any other type of interface generated by a client application executing on a user computer device. The user interface may be configured to provide access to a server application executing on a server and implementing a centralized route optimization application. The user interface may receive, from the route optimization application, details about one or more optimized routes, and display the route details on a display of the user computing device. The user interface may also provide interactivity capabilities for providing requests, reviewing and modifying the routes, providing and recording notes and feedback about the destinations along the routes, and providing and recording notes and feedback about the routes and the pickup/delivery services.
2. Route-Optimized Pickup and Delivery System
2.1. Computer Grouping and Optimization System
In
Computer system 11 shown in
Computer system 11 may be configured to facilitate pickups and deliveries of various items and goods. For example, computer system 11 may be configured may facilitate food delivery, goods delivery, parcel and packages pickup and delivery, documents pickup and delivery, medication delivery, and the like. The pickups and deliveries may be arranged as a same-day delivery, a next-day delivery, a third-day delivery, and the like.
Computer system 11 may include one or more storage devices for storing drivers' profiles 16. Drivers' profiles 16 may include information about the drivers' names, drivers' contact information, routes assigned to the drivers, and the like.
Computer system 11 may also include one or more storage devices for storing maps 18. Maps 18 may include geographical maps, satellite maps, detail maps of apartment complexes, detail maps of business parks, detail maps of subdivisions, and the like.
2.1.1. Semantic Grouping Unit
In an embodiment, each of the semantic grouping units 20 and route optimizer 22 comprise one or more sets of stored sequences of program instructions that are configured or programmed to execute the functions that are further described in sections herein corresponding to each functional element. Semantic grouping unit 20 may be configured to determine how to group destination addresses into groups even if the addresses are not on the same street. This may also include determining, based on the maps generated from information collected during the individual inspections of the apartment complexes and/or business parks, the groups of the properties, the convenient access to the properties, and the like. For example, semantic grouping unit 20 may determine that, although some delivery addresses are on different streets, the corresponding properties may be grouped into one route because they are semantically connected with each other. According to another example, semantic grouping unit 20 may determine that, although some delivery addresses are on the same street, the most convenient access to the corresponding properties is from an adjacent street.
Semantic grouping unit 20 may be configured to group addresses into semantically-connected groups for facilitating, for example, point-to-point delivery. To group the destination addresses into semantically connected groups, semantic grouping unit 20 may retrieve data from storage devices storing, for example, semantic viewpoints 21. Semantic viewpoint data refer herein to objects that have certain attributes or properties that may be used to determine whether or how the addresses are semantically connected. Examples of viewpoints may include parking spots, parking garages, elevators, escalators, staircases, floor numbers, lockbox access codes, and the like. The viewpoints may be mapped onto physical locations of the objects such as physical parking spots, parking garages, elevators, and others; all located in the vicinity of the destination addresses. Based on, for example, the proximity between the physical locations of the objects corresponding to the viewpoints and the destination addresses, weights may be assigned to the viewpoints' objects. Once the weights are assigned to the viewpoints, the destination addresses may be grouped based on the assigned weights. Details of the semantic grouping are provided later.
Since fulfilling the pickup/delivery requests timely and efficiently is an important aspect of the delivery service business, semantic grouping unit 20 may collaborate with route optimizer 22 to perform the semantic grouping of the delivery/pickup addresses, map each grouping onto a route, and optimize the routes to ensure that the scheduled delivery/pickup services are provided efficiently and in timely fashion.
2.1.1.1. Semantic Waypoints
Existing navigation systems primarily use the road data and traffic data to determine navigation instructions to locations. Typical navigation instructions may include a plurality of waypoints, mostly expressed as turn-by-turn directions.
One of the limitations of the turn-by-turn directions is that when they are followed in a high density complex and in the last hundred yards or so, the instructions are seldom helpful in reaching the final destination. This is primarily because it is not the roads or turns that a person needs to know to reach the final destination, but other waypoints that are not necessarily expressed as turns. Some of these waypoints may include society gates, entrances, doormen locations, stairways, elevators, parking, backyard, balcony, playgrounds, swimming pools, package rooms and the like. These waypoints are referred to herein as semantic waypoints.
In some embodiments, each of the semantic waypoints has an associated payload, also referred to herein as additional information associated with the waypoint. A payload for a waypoint specifies one or more characteristics specific to the waypoint. For example, some of the waypoints may include payloads that indicate a time window characteristic that indicates different types of handling of the waypoint that depend on the time of day, such as business hours, holidays, etc. Other payloads may indicate the type of activities such as food delivery, delivery of control substance, large package delivery, etc. Other payloads may indicate a type of person that is authorized to perform the delivery, such as a person needs to be certified delivery personnel.
In some embodiments, the payloads have associated modes. For example, a package delivery to a waypoint may be performed by a car, or by a robot, or by a person, or by a drone, etc. The waypoints are navigated not so much in terms of turn-by-turn directions, but in terms such as gate codes, floor numbers, and payment information (for example, in parking).
2.1.1.2. Semantic Grouping
In some embodiments, an approach allows grouping stops that a delivery driver has to make. The approach includes not only the grouping based on physical proximity of the addresses and the street address but also other parameters. In a real-life scenario, many of the high density areas like apartment complexes have neither the same street address across all buildings and/or units, nor necessarily the physical proximity that would qualify the stops to be grouped together.
In some embodiments, an approach uses accurate geospatial data for high density addresses, and the data is linked together through entities that bind them together through a variety of factors based on the type of a job. Determination whether the addresses are tied together may be performed based on a physical proximity, parcel boundaries, locations of leasing offices, locations of mailrooms and/or locations of package lockers. This information may be used to determine whether or not the addresses have a common linking factor outside of the commonly known street address or physical proximity.
Then, a variety of factors may be used to decide how the stops should be grouped or displayed. In some embodiments, the factors include the type of service being performed or the goods being delivered (for example, a 911 call vs. a plumber going for a job vs. a package delivery vs. a food delivery vs. a grocery delivery, etc.
Another factor is a “handoff”, which is used to indicate whether a customer needs to meet the entity performing the service (“tasker”) outside the building or inside the building. A tasker could be a person or a machine such as a robot or a drone.
Other factor is a current location of the tasker. Additional factors include the availability of a central place to perform the service (for example, existence of a leasing office or a mailroom or a package room for deliveries). The availability of a central place is further contingent on the type of service, hour of day, and day of week. The availability also includes the availability of elevators and staircases, which helps determine the kind of equipment or the quantity of goods that the tasker can carry, and therefore helps determining whether or not the tasker can perform multiple stops.
2.1.2. Route Optimizer
Route optimizer 22 may also be configured to perform a destination mapping. The mapping may be performed based on the in-depth knowledge of the property layouts and details. In some embodiments, route optimizer 22 relies on detail maps of the properties. The detail maps may be based on information provided by the properties' proprietors, information collected during individual inspections of the properties, and information provided by the properties' management and residents.
Route optimizer 22 may be configured to optimize routes for servicing multiple delivery stops and/or multiple pickup stops and to optimize the navigation directions from one stop to anther along the routes. Route optimizer 22 may determine the navigation directions for a point-to-point delivery, based on maps stored in storage devices 18 and information about semantic viewpoints stored in storage devices 21.
To enable the route optimization, route optimizer 22 may perform a multiple destination mapping throughout a route and identify convenient locations to park delivery vehicles, conveniently located staircases, conveniently located elevators, and the like. The route optimization may also include providing access codes for lockboxes and access codes for entrances to the secured gates, and the like.
Route optimizer 22 may also provide real-time analytics functionalities. The functionalities may include performing real-time analytics of the route optimization for multiple pickup stops and/or delivery stops. This may include determining the routes that are optimized based on multiple constraints. The constraints may include a time constraint, a distance constraint, a traffic constraint, and the like.
2.1.3. Interfaces
Computer system 11 may be configured to interact with one or more components described above, as well as with user devices 140A-140D operated by, for example, drivers who provide delivery/pickup services to customers. To facilitate the interactions, computer system 11 may use one or more communications buses 24 and one or more communications interfaces 26. Communications buses 24 may be implemented using any type of computer-based technology, and so may communications interfaces 26.
Communications interface 26 may be configured to facilitate communications between components of computer system 11 and user devices 140A-140D. In some embodiments, computer system 11 may be configured to interact directly with users of user devices 140A-140D. In other embodiments, computer system 11 may be configured to interact with users of user devices 140A-140D via computer network 130, as shown in
Computer network 130 may be implemented as any type of communications network, including a local area network (LAN), wide area network (WAN), a wireless network, a secure virtual LAN (vLAN), a secure virtual WAN (vWAN), and the like.
2.1.4. User Devices
User devices 140A-140D may include mobile and stationary devices that users of a route-optimized pickup and delivery system may use to provide services to customers. Some of the users may be managers of the route-optimized pickup and delivery system and may use devices 140A-140D to configure and manage computer system 11, to dispatch the route information to drivers responsible for providing the pickup/delivery services, and to monitor and manage the drivers and the service operations. Some of the users may be the drivers who may use devices 140A-140D to contact the managers, request instructions from the managers, download the route information to devices 140A-140D, use the downloaded information to provide the delivery/pickup services to customers, and provide feedback about the pickups and deliveries.
User devices 140A-140D may include any type of communications devices configured to facilitate communications between users of user devices 140A-140D and computer system 11. In the example depicted in
2.2. Example Graphical User Interfaces
In some embodiments, a pickup and delivery system is configured to generate and display a user interface that is configured to facilitate interactions with the system. The user interface may be generated by executing a client application residing on, for example, a portable computing device and communicating with a server application executing on a server or in a cloud. Access to the client applications may be secured and only the users who have been granted access credentials may access the client applications.
The user interface may be implemented as a graphical user interface or any other type of interface. It may be displayed on displays of any type of computing device, including smartphones, tablets, personal assistants, laptops, personal computers, servers, and the like. The user interface may be configured to provide access to a server application executing on a server and implementing, for example, a centralized route optimization application. The user interface may receive, from the route optimization application, details about the optimized routes. The user interface may also display the details on a display of the computing device.
The user interface may also provide interactivity capabilities. For example, the user interface may provide interactive elements configured to request and receive data, display the data on the user interface, request and obtain route details from a server application executing on a server, display the obtained route details in the user interface, and the like.
The user interface may also be configured with interactive elements that allow reviewing and modifying the routes, providing and recording notes and feedback about the destinations along the routes, and providing and recording notes and feedback about the routes and pickup/delivery services.
The depicted example shows three displays 102, 104 and 106, each of which may be driven by different computer systems. Display 102 may be generated and displayed by a personal computer, display 104 may be generated and displayed by a portable device such as a smartphone, and display 106 may be generated and displayed by another portable device such as a tablet.
2.2.1. Example Dashboards
In
Dashboard display 102 may be available to managers, dispatchers or other individuals who may be responsible for managing or overseeing the pickup/delivery service operations. For each route, dashboard display 102 may provide a count of stops, a name of the pickup/delivery driver, and other route related information. The dashboard display may also show a map indicating a geographical location for the route and locations of the individual stops. The stops may be shown on the map using color-coded indicators and stops belonging to the same route may be color-coded using the same color.
Dashboard 102 may also include a “Driver Stats” panel comprising information about the drivers providing the pickup/delivery services. The information may be displayed in many different formats. One of them is a table that includes statistical information about the drivers. The table may include the names of the drivers and for each driver, an identifier, a count of delivery stops, a count of pickup stops, a count of exceptions, a count of miles travelled, and a count of stops per hour. In an embodiment, the tabs and Driver Stats panel may be displayed near or adjacent to a digital map.
2.2.2. Example Maps
Referring again to
2.2.3. Example Route Detail Views
Display 106 may show a detail view of a route and the stops along the route. Display 106 may be generated and displayed, for example, on a mobile device used by a driver who has been assigned handling the pickups/deliveries along the route. Display 106 may show, for example, the stops that the driver has already visited and the order which the driver needs to follow to complete the route. The stops may be numbered and shown as aligned along the route path.
Display 106 may also show individual addresses of the stops and interactive elements that can be used to provide and retrieve information. For example, for a particular stop, display 106 may display an address of the stop, a name of the customer who requested a delivery/pickup, and additional information about the stop.
Examples of interactive elements shown in
Display 106 may also include an interactive element that the driver may select to indicate that the stop does not belong to the route assigned to the driver. Furthermore, display 106 may include an interactive element that the driver may select to request additional information such as location information about a nearest parking structure, location information about a nearest staircase, and/or an access code to a building or a lockbox. Display 106 may also include an interactive element that the driver may select to request directions to a stop and/or additional instructions for picking/delivering items from/to the stop. Additional examples of display 106 and the routes are provided later.
2.3. Settings, Personalization and Support
2.3.1. Profile Settings
The customization examples depicted in
2.3.2. Navigation Settings
2.3.3. Support Settings
Example support functionalities depicted in
Support information may include an interactive element configured to facilitate drafting and sending an email to the support team. The support information may also include an interactive element configured to use a hyperlink to access a website or a webpage containing information about the delivery/pickup service. The support information may further include an interactive element configured to use a hyperlink to access a website or a webpage containing frequently asked questions (FAQ) and answers to the questions. Other support functionalities may also be provided.
2.4. Example Maps
An example pickup and delivery system application configured to optimize pickup/delivery routes may provide various types of maps.
2.4.1. Geographical Maps
A map example depicted in
The display depicted in
2.4.2. Satellite Maps
The example map depicted in
2.5. Point-to-Point Delivery
Display 702 may also include interactive elements configured to provide additional information for performing delivery to the apartment 7305. When selected by a driver, the interactive elements allow requesting the specific delivery information. The interactive elements may include a parking-interactive element, an entrance-access-code-interactive element, a staircase and floor interactive element, and the like. Hence, if the parking-interactive element is selected, then display 702 is updated and information about a nearest parking is provided. If the entrance-access-code-interactive element is selected, then display 702 is updated and information about an access code to enter a secured gate leading to the apartment 702 is provided. If the staircase-interactive element is selected, then display 702 is updated and directions to the nearest staircase leading to the apartment 7305 is displayed.
Furthermore, the navigation elements may include an interactive element for adding a note related to a stop of a point-to-point delivery. The note may be provided by a driver who attempts to make a delivery at the stop address, instructions for making the delivery at the address, reporting message from the driver to the system coordinator or a manager, and the like.
3. Route Grouping and Optimization
In some embodiments, a pickup and delivery system groups the addresses of pickup and/or delivery destinations to optimize the service routes. The route optimization may be performed using various criteria, including, for example, semantic connections between the delivery/pickup addresses and locations. Implementing the grouping provides many improvements over the known approaches. For example, it allows the service drivers to increase a count of delivery/pickup stops because the routes are optimized and include addresses that have semantic connections between them. Since the routes are optimized and the addresses are grouped based on the semantic connections between the addresses, the drivers traverse, for example, the routes that are as short as possible and that include as many semantically connected locations as possible.
A route optimization may include determining a list of pickup/delivery stops, determining semantic connections between the addresses of the stops, grouping the addresses based on the semantic connections between the addresses, and determining the routes that are optimized based on certain constraints. Examples of the constraints may include a travel time, a travelled distance, both the travel time and the travelled distance, and others. The route optimization may result in increasing a count of destinations serviced within an hour, reducing a total count of routes being dispatched and/or reducing a count of miles driven per day.
A route optimization may include optimizing various aspect of the delivery/pickup service. This may include optimizing a stop-by-stop service, balancing workloads between the routes, reducing the time needed to locate a delivery/pickup destination (such as a particular apartment or suite), reducing the time needed to locate convenient parking spots for making a delivery/pickup, reducing the time needed to locate convenient staircases, elevators, and the like. This may also include allowing to modify delivery/pickup addresses within the routes, making notes and attaching the notes to the delivery/pickup destinations, making notes and attaching the notes to the routes, and the like. This may also include providing information about security codes necessary to enter secured premises such as apartment complexes, business complexes, and the like.
In an embodiment, a method comprises receiving data identifying a plurality of destinations; determining, based on information relating to the plurality of destinations, that a first destination of the plurality of destinations and a second destination of the plurality of destinations should be grouped and, in response, generating data defining a multiple-stop destination comprising the first destination, the second destination, and a first semantic waypoint; causing display, on a graphical user interface of a client computing device, of a map comprising an identifier of a third destination of the plurality of destinations and an identifier of the multiple-stop destination; and receiving, through the graphical user interface, a selection of the multiple-stop destination and, in response, causing display on the map of an identifier of the first destination, the second destination, and the first semantic waypoint.
3.1. Optimizing a Route
3.1.1. Drawn Boundaries
The example graphical user interface may further include several interactive elements that are configured to optimize a delivery/pickup route. In the example depicted in
3.1.2. Route Generation Based on Stored Schema
In an embodiment, the pickup and delivery system stores a data schema which includes information for a plurality of destinations. The data schema may identify, for each destination of the plurality of destinations, a location of the destination and one or more semantic waypoints for the destination. The destinations may include discrete locations, such as houses or business, and/or destinations within a location, such as different apartment units in an apartment building.
The semantic waypoints may include one or more parking locations, building entrances, unit location, stair or elevator locations, and/or drop-off locations. A single destination may include semantic waypoints for a plurality of parking locations, building entrances, and/or stair or elevator locations. The data identifying the drop-off locations may comprise location information for the drop-off locations, semantic waypoints for the drop-off locations, such as building entrances and/or parking locations, and/or limiting data for the drop-off locations. The limiting data may comprise data identifying times of day when the drop-off location is accepting packages or not accepting packages, days of the week and/or year when the drop-off location is accepting packages or not accepting packages, and/or types of packages that can be accepted or cannot be accepted at the drop-off locations. For example, if the drop-off location is a mail room, the limiting information may indicate that food and beverage deliveries cannot be dropped off at the drop-off location.
The data schema may be used to identify locations on a delivery route to optimize through grouping.
At step 1502, data identifying a plurality of destinations is received. For example, the pickup and delivery system may receive data defining a delivery route for a particular driver. The delivery route may comprise a list of delivery destinations and one or more items to be delivered to each of the delivery destinations. The delivery route may be uploaded to the pickup and delivery system from an external source and/or created through selection of a plurality of destinations through a graphical user interface provided by the pickup and delivery system.
At step 1504, the pickup and delivery system determines that a first destination and a second destination of the plurality of destinations should be grouped. In an embodiment, the pickup and delivery system groups destinations based on physical location. For example, the pickup and delivery system may group destinations such that all multiple-stop destinations are within a threshold distance, such as 100 meters, of each other. Additionally, or alternatively, the pickup and delivery system may group destinations based on distances from the destinations and a central location, such as an available parking location.
In an embodiment, the pickup and delivery system groups destinations that are associated with a same semantic waypoint. For example, the pickup and delivery system may identify, in the data schema, a particular semantic waypoint, such as a parking location, that is shared amongst a plurality of destinations. The pickup and delivery system may determine that the plurality of locations should be grouped based on the semantic waypoint being shared amongst the plurality of destinations. The pickup and delivery system may be configured to optimize groupings to reduce a number of total destinations. For example, if six destinations could be grouped, based on shared semantic waypoints, as two groups of three or one group of four and two groups of one, the pickup and delivery system may be configured to generate the groupings as the two groups of three to minimize the number of total destinations.
In an embodiment, the pickup and delivery system additionally applies a particular delivery criterion based on the limiting data for the semantic waypoints to determine if the semantic waypoints may be used to group destinations. The particular delivery criterion may For example, two destinations may share a drop-off location and would thus usually be grouped based on the drop-off location. The pickup and delivery system may apply the limiting data to determine if the drop-off location would be a valid semantic waypoint for the delivery. For example, the pickup and delivery system may determine that the delivery is occurring on a time or day when the drop-off location is not accepting deliveries or that an item being delivered to one or more of the locations is not a type of item that can be delivered to the drop-off location, such as prepared food or beverages. In response to determining that the semantic waypoint is not valid for the delivery, the pickup and delivery system may remove the shared semantic waypoint as a basis for grouping the destinations. The destinations may still be grouped based on other semantic waypoints and/or distance, but the drop-off location may no longer be a basis for the grouping.
The limiting information may additionally be used to determine whether a semantic waypoint should be displayed for a plurality of destinations. For example, if two grouped locations share a drop-off location, the pickup and delivery system may determine if the particular delivery criterion relating to the limiting data is satisfied and only display the semantic waypoint for the plurality of destinations if the particular criterion is satisfied. Thus, a drop-off location may not be displayed if the delivery is on a time or day when the drop-off location is not accepting deliveries or if the delivery is of a type that cannot be delivered to the drop-off location.
At step 1506, the pickup and delivery system generates data defining a multiple-stop destination comprising the first destination, the second destination, and a semantic waypoint. For example, the pickup and delivery system may store data identifying the grouped location as including the first destination, the second destination, and at least the semantic waypoint. The multiple-stop destination may additionally include additional destinations and/or semantic waypoints.
At step 1508, the pickup and delivery system causes display of a map comprising an identifier of a third destination and an identifier of the multiple-stop destination. The map may visually distinguish between individual destinations and multiple-stop destinations, such as through different icons, different colored icons, differently sized icons, or other visual distinctions.
Multiple-stop destination information 1608 may be displayed in response to a selection of a multiple-stop destination. The multiple-stop destination information 1608 identifies an address for navigation. Stop information 1610 identifies a number of destinations that are grouped into the multiple-stop destination and a number of total items to be delivered. Destination controls 1612 in
Referring again to
At step 1512, the pickup and delivery system causes display of an identifier of the first destination, the second destination, and the first semantic waypoint. For instance, in response to the selection of the multiple-stop destination, the system may display a zoomed map of the multiple-stop destination with individual identifiers for each location in the multiple-stop destination and an identifier of the shared semantic waypoint.
3.2. Example Optimized Routes
In the example depicted in
For each stop, several types of information may be provided. The information for a stop may include an address and detail contact information for the stop, a SID, and a count of the packages to be delivered to or picked up from the stop. Multiple-stops 1202 include stop information 1206 which identifies a number of stops and a number of items to be delivered in the multiple-stop. In contrast, the individual stops 1204 include an identifier corresponding to the delivery and a number of items to be delivered as part of the delivery. Individual stops 1204 may additionally include a call option. The call option 1210 in
3.3. Example Information about a Stop
3.3.1. Stop Details
As shown in
The stop information may also include a customer name or a business name of the entity that placed a delivery/pickup order. The stop information may also include a telephone number of the customer, a customer's email address, and other information allowing a driver to contact the customer. The stop information may also include a service identifier (SID) of the order placed by the customer and a count of packages to be delivered to or picked up from the stop destination.
3.3.2. Multiple Stops Details
In the depicted example, the multiple-stop includes at least four individual stops: a stop at an apartment 1106, a stop at an apartment 1214, a stop at an apartment 7305, and a stop at an apartment 7310. For each of the individual stops, the graphical user interface provides a name of the customer and several interactive elements allowing a driver to indicate whether the scheduled delivery or the scheduled pickup was successful. Additional examples of multiple-stops are described later.
In some embodiments, the multiple-stop information may be superimposed with a map. The map may be displayed as adjacent to the information about the multiple stops, as an underlay background, or as a separate display generated once a driver requests the display of such a map.
A display 1700 may include information about multiple stops, information about a SID for each of the stops, information about a count of packages to be delivered at or picked up from the individual stops, and several interactive elements, including those described in the preceding figures. In addition, display 1700 may include a navigation window that may allow searching the routes using various criteria, such as a route status, a route completion indicator, and the like. The navigation window may also allow switching from the multiple-stop information to a map depicting the stops of the selected route.
Display 1700 in
Multiple-stop controls 1706 comprise selectable graphical user elements that relate to the multiple stop. For instance, the first option, when selected, may cause the system to mark the multiple-stop and/or all of the individual stops in the multiple-stop as completed, the second option, when selected, may cause the system to mark the multiple-stop and/or all of the individual stops in the multiple-stop as incomplete, the third option, when selected, may cause the system to display additional information relating to the multiple-stop and/or display an option for inputting additional information about the multiple-stop, and the fourth control, when selected, may cause the system to display a navigation interface for navigating to the address of the multiple-stop. In an embodiment, the first and second options are configured to override individual selections made below, such that an individual stop that is marked as incomplete will be marked as completed when the first option is selected. In alternative embodiments, the system may be configured to only apply the selection of the first or second option of the multiple-stop controls to individual stops that were not already marked through input.
Individual stop data 1708 may include information relating to individual deliveries, such as an apartment number, a person to whom the delivery is being made, and/or an option for calling the person corresponding to the delivery. Individual stop identifier 1704 comprises an identifier corresponding to an individual delivery and/or a number of items to be delivered at the individual stop. Individual stop controls 1710 comprise selectable graphical user elements that relate to the individual stop. For instance, the first option, when selected, may cause the system to mark the individual stop as completed and the second option, when selected, may cause the system to mark the individual stop as incomplete.
3.4. Multiple-Stop Details
In some embodiments, display 1400 may be configured with audio controls 1402 configured to record and playback messages. The messages may include pre-recorded service instructions or direction instructions for a route or a stop. The messages may also include messages recorded by a driver as the driver attempts to deliver/pick up a package at a stop. The audio controls may also include a volume-scroll-element, a pause-element, a play-element and the like.
3.5. Navigation Instructions
The lower portion of display 1800 may include stop details 1802. Examples of stop details 1802 were described in
Referring again to
In some embodiments, navigation information may include information about access codes that a driver may need to access, for example, the apartment complex in which a stop is located. If a building is in an apartment complex that has its own security gate, then to access the building, the driver needs to obtain the access code that is valid for that building. To access that code, the driver may select, from the graphical user interface displayed on the driver's portable device, an interactive element that is labelled with, for example, a keypad icon. Once that element is selected, the graphical user interface may display the access code, which the driver may use to access the building.
In some embodiments, a driver may request resetting an access code and/or requesting that a new access code be provided. Additionally, if for some reason, the provided access code does not work for accessing the building, then the driver may contact, for example, a leasing office of the apartment complex and ask for help or to let the driver access the building without providing a valid access code.
Navigation information shown in display 1800 may also include information about a location of a staircase that is conveniently located and accessible to a driver who needs to deliver a package to the stop. In some implementation, upon selecting an interactive element labelled, for example, with an arrow icon, a driver may receive written or spoken instructions about the convenient location of the staircase. The instructions may provide a guidance for reaching the staircase from a current location of the driver.
Additional navigation information not depicted in display 1800 may also be included. For example, the additional navigation information may include information about the best time to reach a customer residing at the stop location, information about a backup contact person, and the like.
3.6. Delivery/Pickup Status Information
3.6.1. Status Checkboxes
In the example shown in
Also, in the depicted example, graphical user interface 1900 shows an incomplete-delivery 1904 that the driver has not been successful in delivering or picking up a package at the second stop, i.e., at the apartment 1214. This is reflected by showing the incomplete-delivery checkbox is checked, and marking that checkbox, a corresponding SID and a portion of the route circle with another color, such as a red color. Furthermore, the graphical user interface may display the time at which the delivery or the pickup at the stop was attempted.
In the depicted example, graphical user interface 1900 may also show indications of the stops that the driver needs to make to complete the route. This is reflected by showing that neither a complete-delivery checkbox nor an incomplete-delivery checkbox is checked and marking a corresponding SID and a corresponding portion of the route circle with other color, such as a gray color.
3.6.2. Parking/Entrance/Staircase Information
Referring again to
In some embodiments, the navigation elements also include semantic waypoint options 2004. Semantic waypoint options 2004 in
3.7. Route Navigation Superimposed on a Map
3.7.1. Navigation Superimposed on a Map
Referring to
3.7.2. Apartment Information Superimposed on a Map
In some embodiments, display 1002 may be updated by selecting a different route. For example, a driver may select an interactive search element and type in, or select from a list, a different route. Then, the driver may request an update of display 1002 to show the information pertaining to the newly selected different route.
Display 1102 may also include other navigation interactive elements. The examples of the navigation elements are described above.
4. Example Route Optimization Flow Chart
4.1. Initialization
In step 2502, a list of addresses of stop destinations is received. The list may be generated based on the orders received for deliveries and pickups that are to be serviced on a particular day and in a particular city or town. The list may include addresses of individual residences, business establishments, apartment units, condominium units, and the like.
In step 2504, a list of associations between weight values and waypoints is received. A weight point may be any type of characteristics that may be identified for a delivery/pickup stop. The waypoints may include, for example, an elevation characteristic of the elevation of the stop location, a parking location characteristic associated with the stop location, a lobby location characteristic associated with the stop location, an accessibility characteristics associated with the stop location, an escalator characteristic associated with the stop location, a staircase characteristic associated with the stop location, and the like.
The weights associated with the waypoints may be represented using, for example, float numbers from a float number range. The weight values may vary and may depend on the spatial relationship between the locations and the importance of the characteristic of the locations. For example, for a particular viewpoint, such as a particular parking location, the addresses located closer to the parking location may have higher weights than the addresses located further away from the parking location. The weights may be selected in such a way that they would allow grouping the stops to find, for example, a shortest path that connects the stops along the path.
In step 2506, a mapping between the addresses included in the list of addresses and geographical locations of the corresponding addresses is received. The mapping may be generated based on various maps, including satellite maps, geographical maps, detail maps, and the like. The geographical locations may be expressed using values of a latitude and longitude coordinate system and used to determine positions or locations of the stops in relation to the Earth's surface. Also, in this step, for each address, based on the corresponding latitude and longitude values, a set of characteristics is determined.
4.2. Route Optimization
In step 2508, for each address from the list of addresses, and for each characteristic determined for the address location, a weight is selected from the set of associations between the weight values and waypoints. The process of assigning the weights to the waypoints corresponding to the characteristics of the address locations is repeated for each characteristic of an address, and then for each address from the list of addresses. Once all waypoints of all address locations have assigned weights, then step 2512 is performed. Otherwise, the step 2508 is repeated and the test is repeated in step 2510.
In step 2512, based on the weights assigned to the waypoints, one or more shortest-path routes are determined for the addresses. For example, based on the weights assigned to the waypoints, the addresses from the list of addresses are grouped into groups based on their semantic connections (described later), and for each group of the addresses, a route including the addresses from the group may be determined. Specifically, if a list of addresses includes three addresses and all addresses are included in the same group (e.g., the addresses are in the same building), but the addresses are on different “elevations” (e.g., a first address is on a second floor, a second address is on a first floor and a third address is on a third floor), then an optimized route might include all three addresses in the following order: the second address stop, the first address stop and the third address stop.
4.3. Route Detail Determination
In step 2514, for each route, or each portion of the route, if the route is not cohesive, a convenient parking location is determined. Furthermore, for each route, or a portion of the route, a conveniently located staircase and/or a conveniently located escalator are determined. Moreover, for each route, or a portion of the route, an access code to the building or a lockbox is obtained, and additional access information is obtained.
5. Example Address Grouping Based on Semantic Connections
Address grouping based on semantic connections may be performed by applying one or more classes of semantic characteristics. For example, the addresses in a list of addresses may be grouped using semantic-based clustering. Other approaches may include grouping by a geo-location and a proximity of the addresses to each other. Other approaches may include grouping by a street address, an apartment complex address, a business park address, and the like.
Semantic-based clustering aims to group the stop addresses into a set of address clusters. The semantic-based clustering may be based on the cognitive science and graph theory. In some implementations, the semantic-based clustering applies a computational cognitive model of semantic association for semantic associations and using the model to develop a vector-based model for semantic learning and semantic grouping modeling. These may be used to develop cognitive graphs that utilize, for example, a weight value-to-waypoints association. Then, based on the graph representing the semantic connections and dependencies between the addresses, the addresses may be grouped into semantically-related groups. For example, two addresses that may be on different streets may be semantically connected because they both belong to the same apartment complex. According to another example, two addresses that are on the same street may belong to different semantic groups because the street is closed between the two addresses.
5.1. Initialization
In step 2602 a list of addresses of stop destinations is received. The list may be generated based on the orders received for deliveries/pickups that are to be serviced on a particular day and in a particular city or town. The list may include addresses of individual residences, business establishments, apartment units, condominium units, and the like.
In step 2604, a list of semantic criteria for grouping is received. Semantic criteria may comprise identifiers of calls to programmed tests, methods, functions or routines that evaluate whether items are similar in meaning even if objective data identifying the items are different. The semantic criteria may include criteria that may be correlated to waypoints, described above. A weight point may be any type of characteristics that may be associated with a delivery/pickup stop. The selection of the semantic criteria may depend on the semantic-based grouping algorithm that is selected for the implementation. For example, if a semantic grouping by clustering is selected, then the semantic criteria may include: belonging to the same apartment complex, belonging to the same subdivision, belonging to the same management company, being managed by the same leasing office, being owned by the same owner, having the same postal code, having the same access to a lockbox or a security gate, and the like.
In step 2606, a mapping between the addresses included in the list of addresses and geographical locations of the corresponding addresses is received. The geographical locations may be expressed using values of a latitude and longitude coordinate system used to determine a position or a location of stops in relation to the Earth's surface.
5.2. Address Grouping
In step 2608, the selected semantic criteria are used to divide the addresses of the list of addresses into semantically related groups. For example, each address of the list of addresses may be assigned a set of weights, each weight corresponding to a semantic criterion of the semantic criteria. Hence, if one of the selected criteria is ‘belonging to a first apartment complex’ and all apartment addresses from the list belong to either the first apartment complex or a second apartment complex, then the addresses of the apartments that belong to the first apartment complex will have relatively high weights assigned to them, while the addresses of the apartments that do not belong the first apartment complex will have relatively low weights assigned to them.
In step 2610, those addresses that have relatively high weights assigned to them may be grouped into one group and assigned to the same route. Determining whether a particular address has a relatively high weight may include comparing a cumulative weight of all weights assigned to the waypoints identified for the particular address with a cutoff weight, which may be determined ahead of time. The addresses that have their corresponding cumulative weights exceeding the cutoff weight may be included in a first group.
The addresses that have been already grouped may be removed from the list of addresses to avoid regrouping of the same addresses again in the next iteration. The resulting list of addresses is referred to herein as a modified list.
Then, the process of assigning the weights may be repeated for the modified list with respect to a second criterion, such as ‘belonging to the second apartment complex.’ Those addresses, from the modified list, that have their corresponding cumulative weights exceeding a cutoff weight may be included in a second group.
By repeating that process for all criteria, all the addresses in the list of addresses may be grouped into groups. If some groups overlap with each other, then the process may be repeated using more strict cutoff values for the weight values in determining whether an address satisfies or not a criterion.
In step 2612, a test is performed to determine whether the modified list of addresses includes any addresses, i.e., whether the modified list of addresses includes the addresses that have not been grouped yet. If all addresses have been grouped, then step 2614 is performed. Otherwise, the grouping is repeated for the modified list of addresses in step 2610. Once the grouping of the addresses is completed, each group of the addresses is assigned its own route.
For each route, a route optimization may be performed to, for example, determine an order of the addresses in which the addresses need to be included in the route to satisfy certain optimization criteria. The optimization criteria may include a shortest path criterion, a shortest time criterion, and the like.
For example, if a route includes four addresses that are semantically connected and thus belong to the same group, then a list of the four addresses may be provided as an input to a route optimization application executing, for example, the flow depicted in
5.3. Route Detail Determination
In step 2614, for each route, or each portion of the route a convenient parking location is determined. Furthermore, for each route, or a portion of the route, a conveniently located staircase and/or conveniently located escalator are determined. Moreover, for each route, or a portion of the route, an access code to the building or a lockbox is obtained, and additional access information is obtained.
5.4. Semantic Grouping Flow
In some embodiments, the plurality of waypoint parameter values is associated with a plurality of waypoint parameter categories and the plurality of waypoint parameter categories comprises: a geographical location category, a society gate category, an entrance category, a doormen category, a stairways category, an elevator category, a parking category, a backyard category, a balcony category, a playground category, a swimming pool category, and a package room category.
In step 2654, parameter values associated with a service provider are received. A particular provider parameter values, of the one or more provider parameter values, includes a provider geographical location. The one or more provider parameter values is associated with one or more provider parameter tags. The one or more provider parameter tags comprise: a geographical location tag, a society gate tag, an entrance tag, a doormen tag, a stairway tag, an elevator tag, a parking tag, a backyard tag, a balcony tag, a playground tag, a swimming pool tag, and a package room tag.
In step 2656, destination parameter values for a destination are received and package parameter values for a package are received. The one or more package parameter values are associated with one or more package parameter categories. The one or more package parameter categories comprise: a food category, a medicine category, a signature-required item category. The one or more destination parameter values is associated with one or more destination parameter categories.
In step 2658, a plurality of weights for the plurality of waypoints is determined. The weights may be assigned to the waypoints based on the waypoint parameter categories such as: a geographical location category, a society gate category, an entrance category, a doormen category, a stairways category, an elevator category, a parking category, a backyard category, a balcony category, a playground category, a swimming pool category, and a package room category.
In step 2660, a plurality of paths starting from a provider location to a destination location is determined, and a sum of weights of the waypoints for each path is computed. The one or more paths may be determined by executing an optimization algorithm using one or more constraints and applied to at least the plurality of waypoints and the plurality of weights for the plurality of waypoints. The one or more constraints include one or more of: a shortest time, a shortest distance, a specific time of day, a specific day of week, or a specific delivery type. A particular cumulative weight for the particular path is computed by adding one or more weights associated with one or more waypoints included in the particular path.
In step 2662, from the plurality of paths, a particular path with a smallest cumulative weight is selected. If such a path cannot be selected, then step 2660 is repeated to adjust the weights and recompute the sum of weights for the waypoints.
In step 2664, for the particular path having the smallest cumulative weight, the corresponding waypoints included in the particular path are mapped onto a particular route. The particular route starts from the provider geographical location and ends at the destination geographical location and indicates a service route for delivering the package to the destination. The particular route is the route that a delivery service tasker would follow to deliver the package.
6. Note Entering Capabilities
The capabilities to enter and save custom notes in GUIs that are precise and can present relevant information for repeated deliveries had not been implemented until now. In some embodiments, the presented approach allows a driver, who makes a delivery to a particular destination, enter waypoint notes (pertaining to, for example, an elevator, an entrance gate code, etc.) and have the notes associated with the destination and/or the destination address. The entered information may be made available to the driver automatically each time a delivery is scheduled to the same destination and/or the address in the future. All the previously provided notes may be then displayed using a GUI on a map view.
7. Improvements Provided by Certain Embodiments
In some embodiments, a computer-based, pickup and delivery system is configured to perform a pickup/delivery route optimization and dispatch optimized route information to client applications. The optimization may include optimizing the routes for servicing multiple delivery and/or pickup stops. The optimization may also include optimizing the route navigation along the routes from one location to another. The optimized navigation may include generating a destination mapping throughout, for example, an apartment complex or a business park, and determining convenient locations to park, conveniently located staircases, conveniently located elevators, access codes to the secured gates, lockboxes, and the like.
In some embodiments, a pickup and delivery system groups addresses of pickup/delivery destinations to optimize the service routes using semantic connections between the delivery/pickup addresses and locations. Implementing the grouping provides many improvements over the known approaches. For example, it allows the service drivers to increase a count of delivery/pickup stops within an hour because the routes are optimized and include addresses that are semantically connected. Since the routes are optimized and the addresses are grouped based on the semantic connections between the addresses, the drivers traverse, for example, the routes that are as short as possible and that include as many semantically connected locations as possible.
The route optimization may include optimizing various aspect of the pickup/delivery service. This may include optimizing a stop-by-stop service, balancing workloads between routes, reducing the time needed to locate a pickup/deliver destination (such as a particular apartment or a suite), reducing the time needed to locate conveniently located parking spots for making a pickup/delivery, reducing the time needed to locate conveniently located staircases, elevators, and the like. This may also include allowing to modify pickup/delivery addresses within routes, making notes about the pickup/delivery destinations, making notes about the routes, and the like. This may also include providing information about security codes necessary to enter secured premises such as apartment complexes, business complexes, and the like.
In some embodiments, a pickup and delivery system is configured to generate and display a user interface for interacting with the system. The user interface may be implemented as a graphical user interface or any other type of interface. The user interface may provide improved interactivity capabilities for providing requests, reviewing and modifying the routes, providing and recording notes and feedback about the destinations along the routes, and providing and recording notes and feedback about the routes and the pickup/delivery services.
8. Hardware Overview
According to one embodiment, the techniques described herein are implemented by one or more special-purpose computing devices. The special-purpose computing devices may be hard-wired to perform the techniques, or may include digital electronic devices such as one or more application-specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs) that are persistently programmed to perform the techniques, or may include one or more general purpose hardware processors programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. Such special-purpose computing devices may also combine custom hard-wired logic, ASICs, or FPGAs with custom programming to accomplish the techniques. The special-purpose computing devices may be desktop computer systems, portable computer systems, handheld devices, networking devices or any other device that incorporates hard-wired and/or program logic to implement the techniques.
For example,
Computer system 3100 also includes a main memory 3106, such as a random access memory (RAM) or other dynamic storage device, coupled to bus 3102 for storing information and instructions to be executed by processor 3104. Main memory 3106 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 3104. Such instructions, when stored in non-transitory storage media accessible to processor 3104, render computer system 3100 into a special-purpose machine that is customized to perform the operations specified in the instructions.
Computer system 3100 further includes a read only memory (ROM) 3108 or other static storage device coupled to bus 3102 for storing static information and instructions for processor 3104. A storage device 3110, such as a magnetic disk, optical disk, or solid-state drive is provided and coupled to bus 3102 for storing information and instructions.
Computer system 3100 may be coupled via bus 3102 to a display 3112, such as a cathode ray tube (CRT), for displaying information to a computer user. An input device 3114, including alphanumeric and other keys, is coupled to bus 3102 for communicating information and command selections to processor 3104. Another type of user input device is cursor control 3116, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 3104 and for controlling cursor movement on display 3112. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
Computer system 3100 may implement the techniques described herein using customized hard-wired logic, one or more ASICs or FPGAs, firmware and/or program logic which in combination with the computer system causes or programs computer system 3100 to be a special-purpose machine. According to one embodiment, the techniques herein are performed by computer system 3100 in response to processor 3104 executing one or more sequences of one or more instructions contained in main memory 3106. Such instructions may be read into main memory 3106 from another storage medium, such as storage device 3110. Execution of the sequences of instructions contained in main memory 3106 causes processor 3104 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
The term “storage media” as used herein refers to any non-transitory media that store data and/or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and/or volatile media. Non-volatile media includes, for example, optical disks, magnetic disks, or solid-state drives, such as storage device 3110. Volatile media includes dynamic memory, such as main memory 3106. Common forms of storage media include, for example, a floppy disk, a flexible disk, hard disk, solid-state drive, magnetic tape, or any other magnetic data storage medium, a CD-ROM, any other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip or cartridge.
Storage media is distinct from but may be used in conjunction with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 3102. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications.
Various forms of media may be involved in carrying one or more sequences of one or more instructions to processor 3104 for execution. For example, the instructions may initially be carried on a magnetic disk or solid-state drive of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 3100 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infra-red detector can receive the data carried in the infra-red signal and appropriate circuitry can place the data on bus 3102. Bus 3102 carries the data to main memory 3106, from which processor 3104 retrieves and executes the instructions. The instructions received by main memory 3106 may optionally be stored on storage device 3110 either before or after execution by processor 3104.
Computer system 3100 also includes a communication interface 3118 coupled to bus 3102. Communication interface 3118 provides a two-way data communication coupling to a network link 3120 that is connected to a local network 3122. For example, communication interface 3118 may be an integrated-services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 3118 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 3118 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 3120 typically provides data communication through one or more networks to other data devices. For example, network link 3120 may provide a connection through local network 3122 to a host computer 3124 or to data equipment operated by an Internet Service Provider (ISP) 3126. ISP 3126 in turn provides data communication services through the worldwide package data communication network now commonly referred to as the “Internet” 3128. Local network 3122 and Internet 3128 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 3120 and through communication interface 3118, which carry the digital data to and from computer system 3100, are example forms of transmission media.
Computer system 3100 can send messages and receive data, including program code, through the network(s), network link 3120 and communication interface 3118. In the Internet example, a server 3130 might transmit a requested code for an application program through Internet 3128, ISP 3126, local network 3122 and communication interface 3118.
The received code may be executed by processor 3104 as it is received, and/or stored in storage device 3110, or other non-volatile storage for later execution.
In the foregoing specification, embodiments of the approach have been described with reference to numerous specific details that may vary from implementation to implementation. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the approach, and what is intended by the applicants to be the scope of the approach, is the literal and equivalent scope of the set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.
Claims
1. A computer-implemented method comprising:
- obtaining a plurality of waypoints, each waypoint of the plurality of waypoints comprising one or more waypoint parameter values selected from a plurality of waypoint parameter values, one of which includes waypoint geographical location information of the waypoint; each waypoint corresponding to an object located in a physical region;
- obtaining one or more provider parameter values associated with a service provider; wherein a particular provider parameter values, of the one or more provider parameter values, includes a provider geographical location;
- obtaining one or more destination parameter values associated with a destination; wherein a particular destination parameter values, of the one or more provider parameter values, includes a destination geographical location;
- obtaining one or more package parameter values associated with a package;
- based on, at least in part, the plurality of waypoint parameter values, the one or more provider parameter values, the one or more destination parameter values and the one or more package parameter values, determining a plurality of weights for the plurality of waypoints;
- based on, at least in part, the plurality of weights for the plurality of waypoints, determining one or more paths, each path starting at the provider geographical location and ending at the destination geographical location, each path having one or more waypoints selected from the plurality of waypoints and each path having an associated cumulative weight, from one or more cumulative weights, computed as a sum of weights associated with the one or more waypoints included in the path;
- based on one or more cumulative weights, associated with the one or more paths, selecting a particular path, from the one or more paths, that has a smallest cumulative weight from the one or more cumulative weights;
- based on the particular path, mapping the one or more waypoints included in the particular path onto a particular route starting from the provider geographical location and ending at the destination geographical location.
2. The method of claim 1, wherein the plurality of waypoint parameter values is associated with a plurality of waypoint parameter categories; wherein the plurality of waypoint parameter categories comprises: a geographical location category, a society gate category, an entrance category, a doormen category, a stairways category, an elevator category, a parking category, a backyard category, a balcony category, a playground category, a swimming pool category, and a package room category.
3. The method of claim 1, wherein the one or more provider parameter values is associated with one or more provider parameter tags; wherein the one or more provider parameter tags comprise: a geographical location tag, a society gate tag, an entrance tag, a doormen tag, a stairway tag, an elevator tag, a parking tag, a backyard tag, a balcony tag, a playground tag, a swimming pool tag, and a package room tag.
4. The method of claim 1, wherein the one or more package parameter values is associated with one or more package parameter categories; wherein the one or more package parameter categories comprise: a food category, a medicine category, a signature-required item category.
5. The method of claim 1, wherein the one or more destination parameter values is associated with one or more destination parameter categories.
6. The method of claim 1, wherein the one or more paths are determined by executing an optimization algorithm using one or more constraints and applied to at least the plurality of waypoints and the plurality of weights for the plurality of waypoints;
- wherein the one or more constraints include one or more of: a shortest time, a shortest distance, a specific time of day, a specific day of week, or a specific delivery type;
- wherein a particular cumulative weight for the particular path is computed by adding one or more weights associated with one or more waypoints included in the particular path.
7. The method of claim 1, wherein the particular route starting from the provider geographical location and ending at the destination geographical location indicates a service route for delivering the package to the destination.
8. A computer-readable storage medium storing one or more computer instructions which, when executed by one or more processors, cause the one or more processors to perform:
- obtaining a plurality of waypoints, each waypoint of the plurality of waypoints comprising one or more waypoint parameter values selected from a plurality of waypoint parameter values, one of which includes waypoint geographical location information of the waypoint; each waypoint corresponding to an object located in a physical region;
- obtaining one or more provider parameter values associated with a service provider; wherein a particular provider parameter values, of the one or more provider parameter values, includes a provider geographical location;
- obtaining one or more destination parameter values associated with a destination; wherein a particular destination parameter values, of the one or more provider parameter values, includes a destination geographical location;
- obtaining one or more package parameter values associated with a package;
- based on, at least in part, the plurality of waypoint parameter values, the one or more provider parameter values, the one or more destination parameter values and the one or more package parameter values, determining a plurality of weights for the plurality of waypoints;
- based on, at least in part, the plurality of weights for the plurality of waypoints, determining one or more paths, each path starting at the provider geographical location and ending at the destination geographical location, each path having one or more waypoints selected from the plurality of waypoints and each path having an associated cumulative weight, from one or more cumulative weights, computed as a sum of weights associated with the one or more waypoints included in the path;
- based on one or more cumulative weights, associated with the one or more paths, selecting a particular path, from the one or more paths, that has a smallest cumulative weight from the one or more cumulative weights;
- based on the particular path, mapping the one or more waypoints included in the particular path onto a particular route starting from the provider geographical location and ending at the destination geographical location.
9. The computer-readable storage medium of claim 8, wherein the plurality of waypoint parameter values is associated with a plurality of waypoint parameter categories; wherein the plurality of waypoint parameter categories comprises: a geographical location category, a society gate category, an entrance category, a doormen category, a stairways category, an elevator category, a parking category, a backyard category, a balcony category, a playground category, a swimming pool category, and a package room category.
10. The computer-readable storage medium of claim 8, wherein the one or more provider parameter values is associated with one or more provider parameter tags; wherein the one or more provider parameter tags comprise: a geographical location tag, a society gate tag, an entrance tag, a doormen tag, a stairway tag, an elevator tag, a parking tag, a backyard tag, a balcony tag, a playground tag, a swimming pool tag, and a package room tag.
11. The computer-readable storage medium of claim 8, wherein the one or more package parameter values is associated with one or more package parameter categories; wherein the one or more package parameter categories comprise: a food category, a medicine category, a signature-required item category.
12. The computer-readable storage medium of claim 8, wherein the one or more destination parameter values is associated with one or more destination parameter categories.
13. The computer-readable storage medium of claim 8, wherein the one or more paths are determined by executing an optimization algorithm using one or more constraints and applied to at least the plurality of waypoints and the plurality of weights for the plurality of waypoints;
- wherein the one or more constraints include one or more of: a shortest time, a shortest distance, a specific time of day, a specific day of week, or a specific delivery type;
- wherein a particular cumulative weight for the particular path is computed by adding one or more weights associated with one or more waypoints included in the particular path.
14. The computer-readable storage medium of claim 8, wherein the particular route starting from the provider geographical location and ending at the destination geographical location indicates a service route for delivering the package to the destination.
15. A system comprising:
- one or more processors;
- a memory storing instructions which, when executed by the one or more processors, causes performance of:
- obtaining a plurality of waypoints, each waypoint of the plurality of waypoints comprising one or more waypoint parameter values selected from a plurality of waypoint parameter values, one of which includes waypoint geographical location information of the waypoint; each waypoint corresponding to an object located in a physical region;
- obtaining one or more provider parameter values associated with a service provider; wherein a particular provider parameter values, of the one or more provider parameter values, includes a provider geographical location;
- obtaining one or more destination parameter values associated with a destination; wherein a particular destination parameter values, of the one or more provider parameter values, includes a destination geographical location;
- obtaining one or more package parameter values associated with a package;
- based on, at least in part, the plurality of waypoint parameter values, the one or more provider parameter values, the one or more destination parameter values and the one or more package parameter values, determining a plurality of weights for the plurality of waypoints;
- based on, at least in part, the plurality of weights for the plurality of waypoints, determining one or more paths, each path starting at the provider geographical location and ending at the destination geographical location, each path having one or more waypoints selected from the plurality of waypoints and each path having an associated cumulative weight, from one or more cumulative weights, computed as a sum of weights associated with the one or more waypoints included in the path;
- based on one or more cumulative weights, associated with the one or more paths, selecting a particular path, from the one or more paths, that has a smallest cumulative weight from the one or more cumulative weights;
- based on the particular path, mapping the one or more waypoints included in the particular path onto a particular route starting from the provider geographical location and ending at the destination geographical location.
16. The system of claim 15, wherein the plurality of waypoint parameter values is associated with a plurality of waypoint parameter categories; wherein the plurality of waypoint parameter categories comprises: a geographical location category, a society gate category, an entrance category, a doormen category, a stairways category, an elevator category, a parking category, a backyard category, a balcony category, a playground category, a swimming pool category, and a package room category.
17. The system of claim 15, wherein the one or more provider parameter values is associated with one or more provider parameter tags; wherein the one or more provider parameter tags comprise: a geographical location tag, a society gate tag, an entrance tag, a doormen tag, a stairway tag, an elevator tag, a parking tag, a backyard tag, a balcony tag, a playground tag, a swimming pool tag, and a package room tag.
18. The system of claim 15, wherein the one or more package parameter values is associated with one or more package parameter categories; wherein the one or more package parameter categories comprise: a food category, a medicine category, a signature-required item category.
19. The system of claim 15, wherein the one or more destination parameter values is associated with one or more destination parameter categories.
20. The system of claim 15, wherein the one or more paths are determined by executing an optimization algorithm using one or more constraints and applied to at least the plurality of waypoints and the plurality of weights for the plurality of waypoints;
- wherein the one or more constraints include one or more of: a shortest time, a shortest distance, a specific time of day, a specific day of week, or a specific delivery type;
- wherein a particular cumulative weight for the particular path is computed by adding one or more weights associated with one or more waypoints included in the particular path.
Type: Application
Filed: Sep 16, 2020
Publication Date: Jan 6, 2022
Inventors: NITIN GUPTA (Cupertino, CA), AKASH AGARWAL (San Jose, CA)
Application Number: 17/022,473