The present invention is directed to the control of storage systems in a warehouse environment for order fulfilment, and in particular to controls used to aid in selecting tote multiplicities for SKU velocity classifications.
To configure a storage system for a fulfillment facility, many different parameters need to be considered. One of these parameters is the bottleneck that occurs when multiple orders require the same inventory tote for fulfilling respective orders in different parts of the fulfilment facility. To avoid this, customers can increase the number of totes in the storage system that contain the same product/SKU using some rule (to decide the number of totes with the same SKU). To avoid having to separately assign a multiplicity to each individual SKU, a pool of SKUs could be divided into velocity classes, where each of the SKUs in a same class have the same number of totes (i.e., a SKU multiplicity) in the storage system. However, a brute force search in simulated outcomes over a range of multiplicities for each SKU velocity class (SVC) is restricted to a small number of classifications for reasons of computational tractability, where SKU velocity is a calculation that describes how fast a given SKU is moved or picked such as with respect to a storage location.
Embodiments of the present invention provide methods, systems, and non-transitory computer-readable medium for managing storage systems of a warehouse for order fulfillment. In particular, controls are used to aid in selecting product stock-keeping unit (“SKU”) velocity classifications for SKU multiplicities (quantity values for each product/SKU tote) based on current warehouse operational conditions, such that an optimal quantity of individual totes for each SKU is maintained in the storage systems. Exemplary embodiments include a method for optimizing SKU velocity classification (SVC) using a contextual bandit algorithm (or other machine learning techniques) to find an optimal level of multiplicities for each class depending on the state of the storage system. A storage system is included with inventory multiplicity and discrete inventory tote picking/retrieval capabilities. An inventory management system is also included and is responsible for storing and implementing the selected SVC combination. The SKU multiplicity control also includes a monitoring and processing platform responsible for collecting data from the warehouse and feeding it to the agent. The SKU multiplicity control also includes an exemplary contextual bandit agent solving the multiplicity problem by using a combinatorial contextual bandit algorithm treating the combination of multiplicities as the combinatorial solution, the warehouse fill rate as the context, and each SVC multiplicity as a multi-armed bandit. The algorithm consists of a training module (for initial training and retraining) and an inference module. An initial training loads historical facility data from a memory module and simulates the warehouse context to train the agent. Retraining is initialized from a periodic or condition-based trigger and real facility data is fed to the training module. The inference module utilizes the deployed model by fetching the current state of the system from a digital twin and applies the model to receive the optimal SVC multiplicity combination.
A fulfillment control system for a warehouse including a controller, a memory holding operational data, a current state storage holding live data for a current state of the warehouse, an inference module, and a training module. The controller controls fulfillment activities of the warehouse and issues multiplicity values for each SKU velocity class (SVC), such that each product is decanted into a selected quantity of totes for storage. The controller adaptively controls the SVC multiplicities and records operational data corresponding to the storage and fulfillment activities. The current state of the warehouse is defined by selected portions of the operational data. The inference module includes an SKU multiplicity control, e.g., an algorithm or other control process. The inference module issues a multiplicity value recommendation for each SVC to the controller when live data is received from the current state storage. The multiplicity value recommendation is defined by the SKU multiplicity control with respect to the live data. The training module retrains the SKU multiplicity control using machine learning. The training module performs the machine learning using the operational data and simulation to retrain and update the SKU multiplicity control and retrains the SKU multiplicity control based upon a plurality of priorities for optimal operation of the warehouse.
A method for controlling product storage and order fulfillment in a warehouse includes controlling fulfillment activities in the warehouse. Product decanting orders are issued to decanters. The product decanting orders comprise SKU multiplicity values for each SKU velocity class (SVC). The SKU multiplicity values for each SVC are adaptively controlled. Operational data is recorded that corresponds to the fulfillment activities in the warehouse. The operational data is held in a memory module. Live data is held in a current state data storage. The live data corresponds to a current state of the warehouse defined by selected portions of the operational data. A SKU multiplicity value recommendation is issued when a set of live data is received from the current state data storage. The SKU multiplicity value recommendation is defined by a SKU multiplicity control with respect to the set of live data. The SKU multiplicity control is retrained using machine learning techniques. The machine learning is performed using the operational data to retrain and update the SKU multiplicity control. The retraining is based upon a plurality of priorities for optimal operation of the warehouse.
In an aspect of the present invention, the training module is operable to retrain the SKU multiplicity control by providing the control with a plurality of SKU multiplicity values for each SVC for the SKU multiplicity control to coordinate and arrange the desired tote multiplicity value for each SKU in each SVC for product decanting to storage and fulfillment in a simulation. The SKU multiplicity value for each SVC is based upon operational data stored in the memory module. The training module may award numerical penalties and positive rewards based upon evaluated results of the corresponding products decanted into selected quantities of totes for storage and the completion of fulfillment activities. The penalties and rewards may be positive and negative weighted factors, such as y discount factors, for the evaluated results.
In another aspect of the present invention, the operational data is at least one of: operational data recorded during performance of operational tasks within the warehouse; order profiles and inventory snapshots from the warehouse; and simulated data generated from historical inputs meant to mimic warehouse operations.
In a further aspect of the present invention, the SKU multiplicity values for each SVC correspond to a historical time duration of decanting of corresponding products for storage and fulfillment activities completed during that time duration. In an exemplary embodiment the time duration may be an operational day that may comprise or encompass a shift or all shifts on a given day.
In another aspect of the present invention, the SKU multiplicity values for the SVCs correspond to a hypothetical time duration's quantity of corresponding products decanted into selected quantities of totes for storage and fulfillment activities completed during that time duration. The time duration may be an operational day.
In a further aspect of the present invention, the warehouse comprises at least one storage system configured for storing the totes containing the decanted products. Each of the at least one storage system is configured to provide access to the stored totes for order fulfillment activities after the decanting.
In an aspect of the present invention, the plurality of priorities for optimal operation of the warehouse comprises at least one of: maintaining the total quantity of totes in storage below a maximum value threshold, and balancing a storage fill rate against episode length. The storage fill rate and the episode length are opposing and result in opposing negative penalties.
In another aspect of the present invention, the controller is operable to direct the training module to retrain the SKU multiplicity control after a selected time interval or when a measured metric is determined to be outside of an operational window.
In a further aspect of the present invention, the SKU multiplicity values for tote multiplicities are for product decanting by decanters. The decanters are human decanters and/or robotic decanters.
A non-transitory computer-readable medium including one or more instructions which, if executed by a controller, cause the controller to perform operations including receiving operational data from a warehouse system, the operational data comprising historical data and real-time data, the warehouse system facilitates the decanting of corresponding product(s) in a selected quantity of totes for storage. A multiplicity artificial intelligence (AI) model issues SKU multiplicity values for each SKU velocity class (SVC) based on the operational data. The multiplicity AI model comprises at least one or more of a context bandit algorithm, a multi-armed bandit (MAB) algorithm, or a machine learning algorithm and is retrained by using the operational data to retrain and update an SKU multiplicity control that defines the SKU multiplicity value recommendation.
In an aspect of the disclosure, the controller updates the SKU multiplicity control and retrains the SKU multiplicity control based upon a plurality of priorities for optimal operation of the warehouse system.
The non-transitory computer-readable medium may further operate to retrain the SKU multiplicity control by providing the control with a plurality of SKU multiplicity values for each SVC for the SKU multiplicity control to coordinate and arrange the desired tote multiplicity value for each SKU.
The present invention thus provides methods, systems, and non-transitory computer-readable medium for managing storage systems of a warehouse for order fulfillment. In particular, controls (i.e., algorithms or other control processes) are used to aid in selecting multiplicities for SKU velocity classifications based on current warehouse operational conditions, such that an optimal quantity of individual totes for each SKU is maintained in the storage systems. Each SKU will be assigned to an SVC, allowing the algorithm/control to learn optimal multiplicities. An optimal quantity of individual totes helps to prevent bottlenecks that occur when there are multiple orders requiring the same inventory totes for fulfilling respective orders in different parts of the fulfilment facility. The optimal quantity of individual totes also considers the tote capacity of the storage system(s) and maintains the total quantity of totes below a maximum quantity threshold. These and other objects, advantages, purposes and features of the present invention will become apparent upon review of the following specification in conjunction with the drawings.
The present invention will now be described with reference to the accompanying figures, wherein numbered elements in the following written description correspond to like-numbered elements in the figures. The order fulfillment industry is moving towards software intensive and intelligent, autonomous solutions. These solutions must blend fixed and mobile automation with flexible workflows and real-time end-to-end visibility of warehouses providing order fulfillment services. AI-enabled decision-making supports these capabilities. These solutions enable new business models through standalone software services (SaaS) as well as integrated architectures. On top of all this is a fulfillment control and production monitoring system, which presents multiple opportunities through decision support enabled by a digital twin (providing real-time system context), data consolidation, analytics, and standalone SaaS. Alternatively, it can be an integrated solution enabling flexible fulfillment (e.g., multi-channel fulfillment). One factor in enabling the full potential of an exemplary fulfillment control and production monitoring system is the use of specific AI/RL applications.
Referring to
The problem is particularly acute for larger orders that will typically have many overlapping “hot” SKUs with other large orders, causing the processing of such orders to be more in serial than in parallel. A “hot” SKU is a SKU (or its represented product or item) having greater demand that is desired for multiple orders. Customers preemptively head off such SKU bottlenecks by decanting multiple inventory totes of hotter SKUs into their storage system, using an ad hoc rule of thumb for how many totes (of each SKU) to assign to each SVC. In the best-case scenario, a simulation driven by historical data would be used to verify the optimality of SVC multiplicity assignments using a brute force enumeration of multiplicity combinations. With a small number of SVCs and some foreknowledge of appropriate multiplicity ranges, this can produce better results than maximizing tote fill alone. However, in exemplary embodiments described herein, a machine learning (ML)-based approach to optimizing SKU multiplicities is used that can provide more granular multiplicity assignments than is practical using a brute force search. These embodiments also consider the effect of multiplicity on both system throughput as well as space utilization in the storage system, balancing these competing objectives while avoiding overfilling available inventory space in the system.
Accordingly, an exemplary SKU multiplicity control (e.g., the control or controller module 210 of
Context-based tote multiplicity artificial intelligence (AI) modeling and machine learning (to train the model) provides for the application of a contextual bandit algorithm, such as the multi-arm bandit algorithm (MAB), to find optimal product stock-keeping unit (“SKU”) velocity classifications (SVCs) for tote multiplicities. Machine learning to train the control treats the multiplicity choices for all SKU velocity classes as a combinational decision, with the state of the storage system as the context, and individual SVC multiplicity decisions used in training the algorithm via a learning mode such as machine learning, reinforcement learning (RL) to realize a model operable to determine an optimal SKU velocity classification for tote multiplicities based upon the relevant storage system's current state.
Referring back to
Referring to
A SKU multiplicity assessment 106 is performed to determine if the current levels of SKU multiplicity (for each SVC) is at or above the recommended SKU multiplicity. Stated another way, the SKU multiplicity assessment 106 determines whether the current level of SKU multiplicity in inventory plus the minimal number of additional decanted totes is sufficient, such as greater than or equal to the agent provided optimal multiplicity. If the current SKU multiplicity is at or above the recommended SKU multiplicity, then inventory totes are filled as efficiently as possible to fill as few additional totes as possible (note that the minimum quantity of totes for the same SKU has already been met). However, if the current level of SKU multiplicity is below the recommended SKU multiplicity, then additional empty storage totes 109 are filled such that the recommended SKU multiplicity is at least reached or exceeded. As noted herein, once the recommended SKU multiplicity has been reached for an SVC, the remaining SKU inventory is decanted into totes 109 as efficiently as possible to reach the minimum number of additional totes needed to store the incoming product/SKU 103 (e.g., a “default” decant logic for decanting SKUs into totes).
In one optional embodiment, the decant station 108 is configured to request and receive partially filled inventory totes 109 from storage 110 that include product/SKU quantities below the suggested maximum quantity (e.g., a tote retrieved from storage 110 could include only two (2) products/SKUs 103, but have a maximum recommended quantity of six (6)). Retrieving and filling the partially filled totes 109 to a recommended maximum quantity could be used to aid in reducing the total number of additional totes 109 above the recommended SKU multiplicity. However, such optional requesting and receiving of partially filled totes 109 (from storage 110) can be time consuming. Thus, as discussed herein, in another embodiment, decanted products/SKUs 103 are placed into empty totes 109 (no partially filled totes). Note that each product/SKU 103a-c has a particular partition. In one embodiment, the partition configuration is customer selectable. A further consideration includes how inventory tote partitions affect optimal multiplicity. It is possible that when a SKU shares a tote with other SKUs, that that particular SKU needs a higher multiplicity because each SKU partition in that tote contributes to the tote's overall retrieval rate (e.g., if four equally demanded SKUs are in a same tote in quarter partitions, that tote will be requested four times as often, on average, than one of the SKUs in a tote by itself).
The decanted items/products, once placed into their totes are moved to storage 110. Order fulfillment for received orders includes retrieving 112 the selected SKU totes. The monitoring and processing platform 116 has been monitoring the inventory management system's 104 decanting and fulfillment processes (e.g., receiving inventory snapshots and demand profiles or order pools for each day). Receiving historical operational data, the agent 114 may be retrained, allowing for the agent 114 to be updated to provide the optimal access of decanting and fulfillment activities to properly access the current level of SKU multiplicity. This process may also be utilized in more static inbound/outbound shifts where all decanting and multiplicity decisions are made during an inbound shift prior to an outbound shift. For example, a night shift in the fulfillment facility could be dedicated to decanting received product/items into totes, while a day shift in the fulfillment facility could be dedicated to order fulfillment.
An exemplary storage system 110 includes inventory multiplicity (e.g., multi-shuttle, automated storage and retrieval systems (ASRS), case flow rack(s) and case picking from pallet(s) embodiments) with discrete inventory tote picking/retrieval, and further includes (or adjacent to) a decanting system 108 for decanting received inventory items into empty totes (as well as optionally into partially filled inventory totes from the storage system 110. Storage system 110 embodiments do not have any restrictions on the number of totes for each product (e.g., for SKU multiplicities) other than dimensional and quantitative restrictions. Exemplary components or configurations include any sort of storage means so long as it allows for discrete decanting and retrieval; multiple SKU velocity classifications, defined as a classification and categorization of items at the SKU level depending on some measure of demand, e.g., average daily retrievals; and an inventory management system 104 embodiment responsible for storing and implementing the selected SVC multiplicity combination.
An exemplary monitoring and processing platform 116 includes a warehouse data management system for collecting and storing data generated by a warehouse execution system, and processing the collected information (partly using the machine learning algorithm, e.g., a contextual bandit agent). The monitoring and processing platform 116 provides a cloud-based centralized data interface for connected systems including on-premise and other cloud service offering, for receiving data and communication for remote systems as well as managing, configuring, and deploying on-premise agents. In one embodiment, an exemplary monitoring and processing platform 116 is a control system comprising multiple modules that are necessary to carry out the algorithm/control including a digital twin of the fulfilment center which can convey the real-time informational state of the warehouse to associated algorithms whenever predictive or prescriptive capabilities are required. The modules include a memory module for storing the operational data, an exemplary evaluation mechanism for determining when the model should be retrained, and a controller module for controlling the activities of the fulfilment center. The operational data includes data generated from operational tasks of the warehouse system. The exemplary monitoring and processing platform 116 provides a combination of quantitative historical and forecasted demand to the agent. The historical data is a surrogate if future forecasted data is not available. Forecasted data could consider unpredictable phenomena such as special promotions, new products, known upcoming orders, etc., further improving the accuracy of the agent.
A contextual bandit algorithm (e.g., the Agent 114), as an exemplary SKU multiplicity algorithm/control, is a machine learning model trained to solve the multiplicities question by, for example, treating the multiplicity choices for all SVCs as a combinatorial decision, the state of the storage system as the context, and the individual SVC multiplicity decisions as multi-armed bandits. The exemplary agent 114 dynamically tunes the multiplicities within each SVC depending on the contextual situation of the storage system. As part of its training, the agent (during training/retraining) is negatively rewarded for resulting storage fill rates as well as episode lengths. These metrics are competing objectives, so the agent's task is to learn (via machine learning) how to balance the two. For example, increasing SVC multiplicities by a certain amount may only provide marginal benefit in terms of episode length while still consuming rack space at a linear rate. The agent will eventually hone in on an optimal multiplicity threshold above which the benefits to throughput are outweighed by excessive space utilization.
As discussed herein, an exemplary agent 114 is trained by a training module 214 (providing both initial training and retraining) and an inference module 208. The training module 214 utilizes order processing data, specification(s) of the storage system, and inventory snapshots of the various times of each customer facility, and simulates the warehouse context to train the agent 114. The agent 114 is retrained if changes occur to, for example, overall volume rates in the facility or DMS reconfigurations. The agent 114 can potentially use supply chain data, short and long-term future demand (as described above) as well as adapt to seasonality. The lifecycle of the exemplary contextual bandit algorithm comprises training, inference, and a retraining trigger. The steps to exemplary methods for training, inference, and retraining are illustrated in
An exemplary method for training a SKU multiplicity model/agent begins in step 402 of
In step 408 of
One “episode” of the training method consists of populating inventory of a simulated storage system using a multiplicity policy and rolling out one or more days in simulation to determine the reward resulting from this policy. To initiate an episode, the method begins (in steps 402/404 of
Referring to
In step 428 of
Referring to
The rewards (from the reward module 218) are passed to the training module 214 for further episodes. In one embodiment, the training module 214 is configured to sequentially run through each possible SKU multiplicity for each SVC. In another embodiment, the training module 214 is configured to run in parallel a slate of SKU multiplicities for each SVC.
Once the agent/model has been trained or updated, the trained or updated agent/model is passed on to the agent 114. As illustrated in
Referring to
The controller, or controller module (which may also be referred to as a warehouse execution system (WES)), described with reference to the figures herein may generally comprise a processor configured to perform computations and control the functions of the system, including executing instructions included in computer code for the tools and programs capable of implementing methods for managing storage systems of a warehouse for order fulfillment, in accordance with some embodiments. The instructions of the computer code may be executed by the processor via a memory device or memory module. The computer code may include software or program instructions that may implement one or more algorithms for implementing one or more of the foregoing methods. The controller, the controller module, or the WES that executes the computer code can be any processor such as a digital signal processor (DSP), a general purpose core processor, a graphical processing unit (GPU), a computer processing unit (CPU), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a microprocessor, an AI/ML processing unit, a crypto-processor unit, a neural processing unit, a silicon-on-chip, a graphene-on-chip, a neural network-on-chip, a neuromorphic chip (NeuRRAM), a system on a chip (SoC), a system-in-package (SIP) configuration, either single-core or multi-core processor, or any suitable combination of components. A virtual processor can be formed as a portion of the controller, the controller module, or the WES.
The memory device or memory module may include input data. The input data includes any inputs required by the computer code. The output device displays output from the computer code. A memory device may be used as a computer usable storage medium (or program storage device) having a computer-readable program embodied therein and/or having other data stored therein, wherein the computer-readable program comprises the computer code. Generally, a computer program product (or, alternatively, an article of manufacture) of the system may comprise said computer usable storage medium (or said program storage device).
As will be appreciated by one skilled in the art, the disclosure may be a computer program product. Any of the components of the embodiments of the disclosure can be deployed, managed, serviced, etc. by a service provider that offers to deploy or integrate computing infrastructure with respect to embodiments of the inventive concepts. Thus, an embodiment of the disclosure discloses a process for supporting computer infrastructure, where the process includes providing at least one support service for at least one of integrating, hosting, maintaining and deploying computer-readable code (e.g., program code) in a computer system including one or more processor(s), wherein the processor(s) carry out instructions contained in the computer code causing the computer system for generating a technique described with respect to embodiments. In another embodiment, an exemplary process for supporting computer infrastructure includes integrating computer-readable program code into a computer system including a processor.
Aspects of the disclosures are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts or carry out combinations of special purpose hardware and computer instructions.
Thus, rather than relying on brute force to find an optimal level (and thus being restricted to a limited number of SVCs), exemplary embodiments provides for an improvement in storage utilization and throughput and a minimization of order completion time. The storage space utilization is minimized by preventing unnecessary multiplicity of inventory totes when throughput is not significantly boosted by higher multiplicity. The strategy is also dynamic and adapts to a current fill rate of the fulfillment system and categorizes SKUs in as many SVCs as needed. Such a solution can be unique to each customer facility and with no manual custom tailoring needed. The solution allows for the aversion of the SKU bottleneck problem by calculating optimal tote multiplicities and provides recommendations during the decant process.
Changes and modifications in the specifically described embodiments can be carried out without departing from the principles of the present invention which is intended to be limited only by the scope of the appended claims, as interpreted according to the principles of patent law including the doctrine of equivalents.
The present application claims the priority benefits of U.S. provisional application, Ser. No. 63/504,912, filed May 30, 2023, which is hereby incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63504912 | May 2023 | US |