IP Library › Granted Patent US 12,443,911
Granted Patent B2
US 12,443,911 · App. 16/670,433 · Granted Oct 14, 2025

Apparatus and methods for determining delivery routes and times based on generated machine learning models

Inventors: Mingang Fu (Palo Alto, CA); Amritayan Nayak (Fremont, CA); Li Ji (Fremont, CA)
Assignee: Walmart Apollo, LLC
G06Q10/08355G06F16/29G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,443,911
App. No.
16/670,433
Granted
Oct 14, 2025
Kind
B2
Abstract

This application relates to apparatus and methods for generating and implementing a machine learning model in electronic delivery systems to determine delivery routes and times. In some examples, a computing device generates a machine learning model comprising a plurality of indexed binary trees. Each indexed binary tree determines either a first value, or a second value, based on comparing an input to a condition value. The machine learning model can generate prediction values based on the determined values of all indexed binary trees. The machine learning model is trained with historical data. Once trained, the machine learning model's performance is evaluated. Based on the evaluation, the machine learning model may be further refined. Once the machine learning model's performance satisfies requirements, the computing device employs the machine learning model to determine vehicle delivery routes and estimated delivery times.

Claims (70)

1. A system comprising:

a non-transitory memory having instructions stored thereon and a processor configured to read the instructions to:

obtain historical order data identifying a plurality of previous orders;

train a machine learning model using an iterative training process, wherein the iterative training process calculates an error between an estimated and an actual output, the error calculated including at least a mean absolute percentage error (MAPE) algorithm, a weighted MAPE algorithm, or a symmetric MAPE algorithm, configured to determine a first plurality of features in the historical order data, wherein the machine learning model includes a plurality of indexed binary trees with the determined first plurality of features, wherein each indexed binary tree is configured to receive an input and generate one of a first output or a second output, wherein the plurality of indexed binary trees are arranged in one or more decision trees configured to generate a final output value, and wherein training the plurality of indexed binary trees comprises determining a comparison value for each indexed binary tree, wherein at least one indexed binary tree includes a missing value node identifier identifying a next node of a corresponding decision tree when a feature value to be compared to the comparison value is missing, and wherein each indexed binary tree in the plurality of indexed binary trees is generated by converting a trained booster of an XGBoost model into the indexed binary tree;

optimize the trained machine learning model with a training loss term and a regularization term;

implement a feature extractor configured to extract a feature set, wherein the feature set is defined by the input expected by the plurality of indexed binary trees;

receive first data identifying a plurality of orders for delivery;

determine a second plurality of features based on the first data, wherein the second plurality of features is extracted by the feature extractor and corresponds to the feature set;

determine the final output for each decision tree based on providing the second plurality of features to the plurality of indexed binary trees and compare the final output with a threshold number determined by the trained machine learning model; and

determine an estimated delivery time for each of the plurality of orders based on the determined final output for the one or more decision trees; and

transmit a plurality of route assignments based on the determined estimated delivery time for each of the plurality of orders to a plurality of devices configured to receive at least one of the plurality of route assignments.

2. The system of claim 1 , wherein the processor is further configured to:

receive second data identifying an origin address and a destination address for delivery of an order;

determine the second plurality of features based on the second data;

determine one of the first output and the second output for each indexed binary tree based on providing the second plurality of features to the plurality of indexed binary trees; and

determine a vehicle route for delivery of the order based on the determined final outputs for the one or more decision trees.

3. The system of claim 1 , wherein determining the estimated delivery time comprises summing the determined final output for the one or more decision trees.

4. The system of claim 1 , wherein the first plurality of features comprises an origin data, destination data previous delivery data, loading time data, and order data for each of the plurality of previous orders.

5. The system of claim 1 , wherein determining the estimated delivery time for each of the plurality of orders comprises:

determining a loading time of each of the plurality of orders at a storage facility;

determining a travel time from the storage facility to a delivery address of each of the plurality of orders; and

determining the estimated delivery time based on the loading time and the travel time.

6. The system of claim 5 , wherein the processor is further configured to transmit the estimated delivery time to a second computing device.

7. The system of claim 5 , wherein the processor is further configured to:

generate a scoring metric based on the estimated delivery time and an actual delivery time for each of the plurality of orders; and

determine whether a performance requirement is satisfied based on the generated scoring metric.

8. The system of claim 1 , wherein the iterative training process determines the error between forecast delivery window times and actual delivery times, and wherein at least one booster of the XGBoost model is modified based on the error.

9. The system of claim 1 , wherein the processor is further configured to:

receive real-time location data of at least one of the plurality of devices; and

update an order status of at least one of the plurality of orders included in one of the plurality of route assignments provided to the at least one of the plurality of devices in response to a change in the real-time location data of the at least one of the plurality of devices.

10. A method comprising:

obtaining historical order data identifying a plurality of previous orders;

training a machine learning model using an iterative training process, wherein the iterative training process calculates an error between an estimated and an actual output, the error calculated including at least a mean absolute percentage error (MAPE) algorithm, a weighted MAPE algorithm, or a symmetric MAPE algorithm, configured to determine a first plurality of features in the historical order data, wherein the machine learning model includes a plurality of indexed binary trees with the determined first plurality of features, wherein each indexed binary tree is configured to receive an input and generate one of a first output or a second output, wherein the plurality of indexed binary trees are arranged in one or more decision trees configured to generate a final output value, wherein training the plurality of indexed binary trees comprises determining a comparison value for each indexed binary tree, wherein at least one indexed binary tree includes a missing value node identifier identifying a next node of a corresponding decision tree when a feature value to be compared to the comparison value is missing, and wherein each indexed binary tree in the plurality of indexed binary trees is generated by converting a trained booster of an XGBoost model into the indexed binary tree;

optimizing the trained machine learning model with a training loss term and a regularization term;

implementing a feature extractor configured to extract a feature set, wherein the feature set is defined by the input expected by the plurality of indexed binary trees;

receiving first data identifying a plurality of orders for delivery; determining a second plurality of features based on the first data, wherein the second plurality of features is extracted by the feature extractor and corresponds to the feature set;

determining final outputs for each decision tree based on providing the second plurality of features to the plurality of indexed binary trees and compare the final output with a threshold number determined by the trained machine learning model;

determining an estimated delivery time for each of the plurality of orders based on the determined final outputs for the one or more decision trees; and

transmitting a plurality of route assignments based on the determined estimated delivery time for each of the plurality of orders to a plurality of devices configured to receive at least one of the plurality of route assignments.

11. The method of claim 10 , further comprising:

receiving second data identifying an origin address and a destination address for delivery of an order;

determining the second plurality of features based on the second data;

determining one of the first output and the second output for each binary tree based on providing the second plurality of features to the plurality of binary trees; and

determining a vehicle route for delivery of the order based on the determined final outputs for the one or more decision trees.

12. The method of claim 10 , wherein the first plurality of features comprises an origin data, destination data previous delivery data, loading time data, and order data for each of the plurality of previous orders.

13. The method of claim 10 , wherein determining the estimated delivery time for each of the plurality of orders comprises:

determining a loading time of each of the plurality of orders at a storage facility;

determining a travel time from the storage facility to a delivery address of each of the plurality of orders; and

determining the estimated delivery time based on the loading time and the travel time.

14. The method of claim 13 , wherein determining the estimated delivery time comprises summing the determined ones of the first output and the second output for the plurality of binary trees.

15. The method of claim 13 , further comprising:

generating a scoring metric based on the estimated delivery time and an actual delivery time for each of the plurality of orders; and

determining whether a performance requirement is satisfied based on the generated scoring metric.

16. The method of claim 10 , wherein the iterative training process determines the error between forecast delivery window times and actual delivery times, and wherein at least one booster of the XGBoost model is modified based on the error.

17. A non-transitory computer readable medium having instructions stored thereon, wherein the instructions, when executed by at least one processor, cause a device to perform operations comprising:

obtaining historical order data identifying a plurality of previous orders;

training a machine learning model using an iterative training process, wherein the iterative training process calculates an error between an estimated and an actual output, the error calculated including at least a mean absolute percentage error (MAPE) algorithm, a weighted MAPE algorithm, or a symmetric MAPE algorithm, configured to determine a first plurality of features in the historical order data, wherein the machine learning model includes a plurality of indexed binary trees with the determined first plurality of features, wherein each indexed binary tree is configured to receive an input and generate one of a first output or a second output, wherein the plurality of indexed binary trees are arranged in one or more decision trees configured to generate a final output value, wherein training the plurality of indexed binary trees comprises determining a comparison value for each indexed binary tree, wherein at least one indexed binary tree includes a missing value node identifier identifying a next node of a corresponding decision tree when a feature value to be compared to the comparison value is missing, and wherein each indexed binary tree in the plurality of indexed binary trees is generated by converting a trained booster of an XGBoost model into the indexed binary tree;

optimizing the trained machine learning model with a training loss term and a regularization term;

implementing a feature extractor configured to extract a feature set, wherein the feature set is defined by the input expected by the plurality of indexed binary trees;

receiving first data identifying a plurality of orders for delivery;

determining a second plurality of features based on the first data, wherein the second plurality of features is extracted by the feature extractor and corresponds to the feature set;

determining final outputs for each decision tree based on providing the second plurality of features to the plurality of indexed binary trees and compare the final output with a threshold number determined by the trained machine learning model;

determining an estimated delivery time for each of the plurality of orders based on the determined final outputs for the one or more decision trees; and

transmitting a plurality of route assignments based on the determined estimated delivery time for each of the plurality of orders to a plurality of devices configured to receive at least one of the plurality of route assignments.

18. The non-transitory computer readable medium of claim 17 , wherein the first plurality of features comprises an origin data, destination data previous delivery data, loading time data, and order data for each of the plurality of previous orders.

19. The non-transitory computer readable medium of claim 17 , wherein determining the estimated delivery time for each of the plurality of orders comprises:

determining a loading time of each of the plurality of orders at a storage facility;

determining a travel time from the storage facility to a delivery address of each of the plurality of orders; and

determining the estimated delivery time based on the loading time and the travel time.

20. The non-transitory computer readable medium of claim 17 , wherein the iterative training process determines the error between forecast delivery window times and actual delivery times, and wherein at least one booster of the XGBoost model is modified based on the error.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2019
From: FU, MINGANG; NAYAK, AMRITAYAN; JI, LI
To: WALMART APOLLO, LLC
Reel/Frame 050882/0921 →
Continuity (1)
Related Publication 20210133677A1 · May 6, 2021
References Cited (42)
US 7191142B1 · Sandell et al. · 2007 [cited by applicant]
US 7225983B2 · Park et al. · 2007 [cited by applicant]
US 7243074B1 · Pennisi, Jr. · 2007 [cited by applicant]
US 7313530B2 · Smith et al. · 2007 [cited by applicant]
US 7457761B2 · Smith et al. · 2008 [cited by applicant]
US 8599683B2 · Nakanishi · 2013 [cited by examiner]
US 8857709B2 · Hancock et al. · 2014 [cited by applicant]
US 10437435B2 · Ladden et al. · 2019 [cited by applicant]
US 10452236B2 · Ladden et al. · 2019 [cited by applicant]
US 10460332B1 · Kujat · 2019 [cited by examiner]
US 10535034B2 · Zhang et al. · 2020 [cited by applicant]
US 20040220957A1 · McDonough · 2004 [cited by examiner]
US 20050137933A1 · Holsen · 2005 [cited by examiner]
US 20050137993A1 · Poon · 2005 [cited by examiner]
US 20070016467A1 · John · 2007 [cited by examiner]
US 20140324871A1 · Ray · 2014 [cited by examiner]
US 20140330741A1 · Bialynicka-Birula · 2014 [cited by examiner]
US 20150317327A1 · He · 2015 [cited by examiner]
US 20160156595A1 · Wu · 2016 [cited by examiner]
US 20160171434A1 · Ladden et al. · 2016 [cited by applicant]
US 20160171436A1 · Ladden et al. · 2016 [cited by applicant]
US 20160171437A1 · Ladden et al. · 2016 [cited by applicant]
US 20160171438A1 · Ladden et al. · 2016 [cited by applicant]
US 20170372232A1 · Maughan · 2017 [cited by examiner]
US 20180357736A1 · Sun · 2018 [cited by examiner]
US 20190303197A1 · Li · 2019 [cited by examiner]
US 20190361905A1 · Rogynskyy · 2019 [cited by examiner]
US 20200012917A1 · Pham · 2020 [cited by examiner]
US 20200160225A1 · Sun · 2020 [cited by examiner]
US 20200342398A1 · Aggarwal · 2020 [cited by examiner]
US 20200342517A1 · Rajkhowa · 2020 [cited by examiner]
CN 110392899A · 2019 [cited by examiner]
WO WO2018205776A1 · 2018 [cited by examiner]
Servos, Nikolaos, et al. “Travel time prediction in a multimodal freight transport relation using machine learning algorithms.” Logistics 4.1 (2019): 1. (Year: 2019). [cited by examiner]
“XGBoost Tutorials”, XGBoost. https://xgboost.readthedocs.io/en/latest/tutorials/model.html. [cited by applicant]
“Decision Tree”, GeeksforGeeks, a Computer Science Portal for Geeks. https://www.geeksforgeeks.org/decision-tree/. [cited by applicant]
“Decision Trees”, Carnegie Mellon University. https://www.cs.cmu.edu/˜bhiksha/courses/10-601/decisiontrees/. [cited by applicant]
Chen, “Introduction to Boosted Trees”, University of Washington, 2014. https://homes.cs.washington.edu/˜tqchen/pdf/BoostedTree.pdf. [cited by applicant]
Guazelli, “What is PMML?”, IMB, 2010. https://www.ibm.com/developerworks/library/ba-ind-PMML1/index.html. [cited by applicant]
“JVM Package”, XGBoost. https://xgboost.readthedocs.io/en/latest/jvm/java_intro.html. [cited by applicant]
“CLI”. GitHub. https://github.com/BayesWitnesses/m2cgen#cli. [cited by applicant]
“How do you take a machine learning model to production”, Quora. https://www.quora.com/How-do-you-take-a-machine-learning-model-to-production. [cited by applicant]