Optimal reallocation of inventory under capacity violations
A method of reallocating inventory in a fulfillment network is disclosed herein. The fulfillment network can include a plurality of distribution centers. An allocation plan can be created in a one of a variety of different manners, where the allocation plan involves allocating an item to one or more distribution centers in the fulfillment network. Thereafter, the allocation plan can be analyzed for feasibility. If the allocation plan is not feasible, each distribution center in the allocation plan can be analyzed to determine if using the distribution center is feasible. If the distribution center cannot be used, another distribution in the same cluster of distribution centers is examined for feasibility. This process is repeated for each distribution center in the allocation plan. Once an alternative allocation plan has been developed in this manner, items can be allocated. Existing inventory can be taken into account in the allocation plan.
Latest WALMART APOLLO, LLC Patents:
- SYSTEM AND METHODS FOR DEPLOYING A DISTRIBUTED ARCHITECTURE SYSTEM
- SYSTEMS AND METHODS FOR CONTEXTUAL TARGETING OPTIMIZATION
- SYSTEM AND METHOD FOR MACHINE LEARNING-BASED DELIVERY TAGGING
- Methods and systems for identifying and remediating poor user experiences on computing devices
- Systems and methods of product recognition through multi-model image processing
This disclosure relate's generally to product distribution systems, and relates more particularly to managing inventory across a fulfillment network of distribution centers.
BACKGROUNDOnline retail has become mainstream, which has allowed customers to order an increasing number of products online and receive direct shipments of the items they order. These products are shipped from warehouses known as distribution centers. Although an online retailer may market and sell many distinct items, known as stock keeping units (SKUs), each distribution center generally has a limited capacity and, thus, can carry only a limited number of SKUs. As such, stocking every SKU at every distribution center is generally unfeasible. In general, SKUs are placed in distribution centers in an attempt to minimize outbound shipping costs, guarantee service levels, and prevent the overloading of any one distribution center. While there is usually a plan for the distribution of SKUs to distribution centers, it would be desirable to have a method and system of coping with changes to a distribution network.
To facilitate further description of the embodiments, the following drawings are provided in which:
For simplicity and clarity of illustration, the drawing figures illustrate the general manner of construction, and descriptions and details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the present disclosure. Additionally, elements in the drawing figures are not necessarily drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of embodiments of the present disclosure. The same reference numerals in different figures denote the same elements.
The terms “first,” “second,” “third,” “fourth,” and the like in the description and in the claims, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments described herein are, for example, capable of operation in sequences other than those illustrated or otherwise described herein. Furthermore, the terms “include,” and “have,” and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, device, or apparatus that comprises a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such process, method, system, article, device, or apparatus.
The terms “left,” “right,” “front,” “back,” “top,” “bottom,” “over,” “under,” and the like in the description and in the claims, if any, are used for descriptive purposes and not necessarily for describing permanent relative positions. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the apparatus, methods, and/or articles of manufacture described herein are, for example, capable of operation in other orientations than those illustrated or otherwise described herein.
The terms “couple,” “coupled,” “couples,” “coupling,” and the like should be broadly understood and refer to connecting two or more elements mechanically and/or otherwise. Two or more electrical elements may be electrically coupled together, but not be mechanically or otherwise coupled together. Coupling may be for any length of time, e.g., permanent or semi-permanent or only for an instant. “Electrical coupling” and the like should be broadly understood and include electrical coupling of all types. The absence of the word “removably,” “removable,” and the like near the word “coupled,” and the like does not mean that the coupling, etc. in question is or is not removable.
As defined herein, two or more elements are “integral” if they are comprised of the same piece of material. As defined herein, two or more elements are “non-integral” if each is comprised of a different piece of material.
As defined herein, “approximately” can, in some embodiments, mean within plus or minus ten percent of the stated value. In other embodiments, “approximately” can mean within plus or minus five percent of the stated value. In further embodiments, “approximately” can mean within plus or minus three percent of the stated value. In yet other embodiments, “approximately” can mean within plus or minus one percent of the stated value.
DESCRIPTION OF EXAMPLES OF EMBODIMENTSVarious embodiments include a method. The method can include receiving an allocation plan for an item in a fulfillment network, the fulfillment network comprising a plurality of clusters of distribution centers, each cluster of distribution centers comprising one or more distribution centers; determining if the allocation plan is feasible; if the allocation plan is feasible, allocating the item based on the allocation plan; if the allocation plan is not feasible, determining an alternative allocation plan; and after determining the alternative allocation plan, allocating the item to one or more of the distribution centers based on the alternative allocation plan.
A number of embodiments can include a system. The system can comprise one or more processing modules; and one or more non-transitory memory storage modules storing computing instructions configured to run on the one or more processing modules. The computing instructions can be configured to perform the acts of: receiving an allocation plan for an item in a fulfillment network, the fulfillment network comprising a plurality of clusters of distribution centers, each cluster of distribution centers comprising one or more distribution centers; determining if the allocation plan is feasible; if the allocation plan is feasible, allocating the item based on the allocation plan; if the allocation plan is not feasible, determining an alternative allocation plan; and after determining the alternative allocation plan, allocating the item to one or more of the distribution centers based on the alternative allocation plan.
Various embodiments include a method. The method can comprise: receiving an allocation plan for an item in a fulfillment network, the fulfillment network comprising a plurality of distribution centers, each cluster of distribution centers comprising one or more distribution centers, the allocation plan comprising placing one or more copies of each item into a first distribution center and one or more copies of each item into a second distribution center; determining an existing inventory at the first distribution center and an existing inventory at the second distribution center; adjusting the allocation plan based on the existing inventory at the first distribution center and an existing inventory at the second distribution center; and allocating the item based on the adjusted allocation plan.
Turning to the drawings,
Continuing with
As used herein, “processor” and/or “processing module” means any type of computational circuit, such as but not limited to a microprocessor, a microcontroller, a controller, a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a graphics processor, a digital signal processor, or any other type of processor or processing circuit capable of performing the desired functions. In some examples, the one or more processors of the various embodiments disclosed herein can comprise CPU 210.
In the depicted embodiment of
In some embodiments, network adapter 220 can comprise and/or be implemented as a WNIC (wireless network interface controller) card (not shown) plugged or coupled to an expansion port (not shown) in computer system 100 (
Although many other components of computer system 100 (
When computer system 100 in
Although computer system 100 is illustrated as a desktop computer in
Turning ahead in the drawings,
In a number of embodiments, online retail system 300 can include a fulfillment network 360. In various embodiments, fulfillment network 360 can include one or more distribution centers, such as distribution centers (also known as fulfillment centers) 361, 362, 363, 364, and 365. In various embodiments, there can be 10, 15, 20, 30, 40, 50, or another suitable number of distribution centers. In some embodiments, online retail system 300 can include an order system 310 and/or an inventory system 320. Inventory system 320 and/or order system 310 can each be a computer system, such as computer system 100 (
In many embodiments, inventory system 320 can be in data communication with order system 310. In certain embodiments, inventory system 320 and order system 310 can be separate systems. In other embodiments, inventory system 320 and order system 310 can be a single system. In various embodiments, order system 310 can be in data communication through Internet 330 with user computers (e.g., 340, 341). User computers 340-341 can be desktop computers, laptop computers, smart phones, tablet devices, and/or other endpoint devices, which can allow customers (e.g., 350-351) to access order system 310 through Internet 330. In various embodiments, order system 310 can host one or more websites, such as through one or more web servers. For example, order system 310 can host an eCommerce website that can allow customers (e.g., 350, 351) to browse and/or search for products, to add products to an electronic shopping cart, and/or to purchase products by completing an online order, in addition to other suitable activities. In other embodiments, order system 310 can utilize mobile apps that allow customers (e.g., 350, 351) to browse and/or search for products, to add products to an electronic shopping cart, and/or to purchase products by completing an online order, in addition to other suitable activities. A combination of mobile apps and websites also can be used.
In various embodiments, an online order for an item submitted by a customer (e.g., 350, 351) can result in a shipment to the customer (e.g., 350, 351) from one of the distribution centers (e.g., 361-365), such as the distribution center that has the item stocked in its inventory and that is located the closest to the delivery address of the customer (e.g., 350, 351) that submitted the online order. In several embodiments, one or more of the distribution centers (e.g., 361-365) can each have a limited capacity and can carry some of the SKUs, but not all of the SKUs, that are available for sale through order system 310. As such, stocking every SKU at every distribution center (e.g., 361-365) can be unfeasible, and the SKUs can instead be stocked strategically in a process sometimes called mirroring. Mirroring is discussed in more detail in U.S. patent application Ser. No. 14/466,751, filed Aug. 22, 2014, the contents of which are incorporated herein by this reference.
In mirroring, the distribution centers can be “mirrored” to stock the inventory of each SKU as close as possible to specific customer locations, subject to constraints, such as limited capacity of the distribution centers (e.g., 361-365). In some embodiments, various factors can determine the cost of shipping a SKU, such as demand volume, shipping cost sensitivity, weight, geo-demand distribution, the number of distribution centers (e.g., 361-365), and/or the capacity of the distribution centers (e.g., 361-365). For example, if a SKU has low sales volume (a “low-velocity” SKU) or very regional demand spread, it might not necessarily warrant a high mirroring because the additional fulfillment cost and time can be small. By contrast, a SKU having high sales volume (a “high-velocity” SKU) with wide geo-demand spread can be stocked at more distribution centers (e.g., 361-365) in order to deliver the ordered inventory of the SKU within a predetermined time, to lower shipping costs, and/or to meet other service-level targets. In many embodiments, inventory system 320 can determine how many distribution centers (e.g., 361-365) at which to mirror each distinct item (e.g., SKU).
In some embodiments, shipping from the distribution centers (e.g., 361-365) to customers (e.g., 350, 351) can be based on a shipping zone system. The shipping zone system can be a representation of shipping distance. For example, a package shipped within the same state can be a 2-zone shipment, whereas a cross-continental shipping can be an 8-zone shipment. In many embodiments, a rate card is a price list of shipping offered by a carrier. The shipping zone distance can represented by zone distance (l). In a number of embodiments, a rate card can state a unit shipping cost for a given combination of zone distance (l) and a weight (w) of the shipped item. The rate card can be a table function c(l, w) that returns the unit shipping cost based on the zone distance and weight of the SKU.
In many embodiments, determination of an inventory mirroring plan by inventory system 320 can be based on one or more assumptions. For example, fulfillment network 360 can be well established, and the number and locations of the distribution centers (e.g., 361-365) can have good geographic coverage such that mirroring decisions can be meaningful. As another example, the inventory holding cost can be insignificant compared to shipping cost.
In many embodiments, order system 310 can make available for sale a set of distinct items (e.g., SKUs), each of which can be represented by distinct item (i). In some embodiments, the set of distinct items can be each SKU in the catalog of items sold through order system 310. In a number of embodiments, the set of distinct items can be a subset of the catalog, such as general merchandise items, which can exclude such items as clothes, jewelry, tissue paper, etc. In a number of embodiments, an overall approach can be to solve for optimal inventory mirroring as a knapsack-type problem. The distinct items can be analogous to the items to be put into a bag, which can be analogous to the overall capacity of the distribution centers (e.g., 361-365) in fulfillment network 360, which can have a finite capacity. There can be a cost (or value) associated with each distinct item (i) for each mirroring factor, which can represent the number of the distribution center (e.g., 361-365) in fulfillment network 360 to stock with distinct item (i). The objective can be to minimize the total cost, while staying within the total capacity of fulfillment network 360. Hence, the “value” of mirroring a distinct item (i) in a selected number of distribution centers (e.g., 361-365) can be the negative of the expected resulting optimal shipping cost for fulfilling the overall demand of the distinct item (i), assuming cost is represented as a negative value. A challenging component of this framework can be to determine the costs. Computing the exact optimal fulfillment cost associated with a given distinct item (i) and mirroring factor combination can be intractable and/or impossible when there are a very large number of distinct items (i) and/or a large number of distribution centers (e.g., 361-365), and so certain approximations can be used.
In some embodiments, each location can be represented by a demand zone (z), which can collectively comprise a set of demand zones that cover a geographical area, such as the contiguous United States. For example, each demand zone (z) can represent each distinct three-digit ZIP code (e.g., the first three digits of the five-digit ZIP code) in the contiguous United States. In other embodiments, the three-digit ZIP codes can be clustered into a smaller number of demand zones, such as 125 demand zones, as described in U.S. patent application Ser. No. 14/466,239, filed Aug. 22, 2014, the contents of which are hereby incorporated by reference in its entirety.
In a number of embodiments, a total demand for a distinct item (i) across fulfillments network 360 can be represented by di. In various embodiments, geo-demand distribution can be data that specifies the geographical spread of customer demand for each distinct item (i). Specifically, each distinct item (i) can be associated with a distribution vector whose elements can represent the percentage of demand for a particular geographical location. In various embodiments, the demand distribution can be based on the demand from the previous year, or in other words, time-static. The time-static geo-demand distribution for distinct item (i) at demand zone (z) can be denoted by βi,z. In a number of embodiments, Σzβi,z=1. In several embodiments, this demand distribution data can be estimated by a number of machine learning and/or statistical methods, such as a Bayesian approach described in U.S. patent application Ser. No. 14/466,239, filed Aug. 22, 2014. With the estimation of the time-static geo-demand distributions (βi,z), in several embodiments of a location-specific demand (di,z), di,z=diβi,z.
In many embodiments, to minimize the cost of shipping the distinct items (i), with the distinct items (i) being mirrored across a various number of distribution centers (e.g., 361-365), inventory system 320 can select a number of distribution centers (e.g., 361-365) from fulfillment network 360 for each of distinct item (i) that will minimize the cost of shipping. For example, a first distinct item can be mirrored at 5 distribution centers, a second distinct item can be mirrored at 10 distribution centers, etc. The selection of the number of distribution centers for each of the distinct items (i) can be combinatorial in nature and can be computationally intractable. To remove this intractability, inventory system 320 can cluster the distribution centers (e.g., 361-365) into distribution center clusters for each of the possible mirroring selections. For example, inventory system 320 can determine a 1-cluster profile, a 2-cluster profile, a 3-cluster profile, and so forth, to a predetermined maximum number of clusters (K). For example, in some embodiments, the predetermined maximum number of clusters (K) can be 10, 15, 20, or another suitable number. For example, in some embodiments, the clustering can reduce the number of warehouses from 33 down to a maximum of 12 clusters. Each of the clusters can have one or more distribution centers. For a number of clusters (k), the k-cluster profile can be a segmentation of the distribution centers (e.g., 361-365) into k distribution center clusters. The distribution center clustering approximation can work generally well if the geo-demand spread of a distinct item (i) is not particularly skewed.
In many embodiments, inventory system 320 can use a conventional k-medoid clustering algorithm to cluster the distribution centers (e.g., 361-365) into k distribution center clusters. The k-medoid clustering algorithm can be more robust than a k-means clustering algorithm. An additional advantage of using the k-medoid can be that the center of each distribution center cluster can be an actual distribution center (e.g., 361-365). In a number of embodiments, the features for clustering in the k-medoid clustering algorithm can be the zone distance (l) from the distribution center (e.g., 361-365) to each demand zone (z). In a number of embodiments, inventory system 320 can determine and maintain k-cluster profile for up to K clusters. In many embodiments, each k-cluster profile can represent a clustering of the distribution centers (e.g., 361-365) into k distribution center clusters. In several embodiments, for each demand zone (z), inventory system 320 can determine a closest distribution center cluster in each k-cluster profile, which can be represented by p(k)(z). In many embodiments, inventory system 320 can determine the distance from demand zone (z) to the closest distribution center cluster by computing by an average zone distance (l(k)(z)) from demand zone (z) to the distribution centers (e.g., 361-365) in the closest distribution center cluster (p(k)(z)).
In several embodiments, part of developing a good inventory mirroring plan can be determining the value of stocking a distinct item (i) at a particular number of distribution center clusters. In a number of embodiments, for each distinct item (i) and for each possible number of k distribution center clusters, inventory system 320 can determine a total shipping cost c1(k) of fulfilling the demand over all of the demand zones. Solving exactly the number of distribution centers at which to mirror a distinct item (i) in order to minimize the total shipping cost given the time-static geo-demand distributions (βi,z) of each distinct item (i) at each demand zone (z) can be nondeterministic polynomial-tithe NP-hard in general, which can be intractable, even assuming distribution centers with extra capacity and a time-static geo-demand distribution. As such, inventory system 320 can approximate the total shipping cost ci (k) using the k distribution center clusters. For tractably computing an approximate total shipping cost for mirroring a distinct item (i) in k distribution center clusters, inventory system 320 can first greedily assign the demand at each demand zone (z) to the closest distribution center cluster, as described above. For example,
In several embodiments, inventory system 320 (
In many embodiments, inventory system 320 (
In many embodiments, inventory system 320 (
As described above, inventory system 320 (
In a number of embodiments, low-velocity items may occasionally be assigned a higher-than-expected mirroring factor due to their high weight, which can correspond to high cost sensitivity. In some embodiments, inventory system 320 (
In many embodiments, an integer programming formulation that includes the constraints described above can be formally stated as follows:
In many embodiments, inventory system 320 (
In some instances, one or more distribution centers (e.g., 361-365 (
In some embodiments, such as when the number of distinct items (i) in the set of distinct items is very large, the linear integer programming problems described above can be solved more quickly by implement a bucketing strategy for consolidating the distinct items (i). In a number of embodiments, inventory system 320 (
where J is a size of the set of buckets; |Bb| is a size of bucket b; and xb(k) is a binary representation of whether the number of clusters (k) is the solution value of the number of clusters (k) for bucket (b).
In many embodiments, inventory system 320 (
In many embodiments, the optimization solver never does not need to branch as it does for a general mixed-integer programming problem. In other words, the linear programming solution to integer programing formulations (1), (2), and/or (3) with the binary constraints ignored nonetheless have binary integer solutions. In several embodiments, the minimum extreme point where the optimal solution of the linear programming problems lies can be at an integer grid point, which can be a highly desirable feature because the complexity of the method can be practically equivalent to that of a linear programming problem. In a number of embodiments, the optimization problem can be solved in less than 30 seconds.
The above description is one of several methods by which SKUs can be allocated to one or more distribution centers using a mirroring algorithm. Other methods can also be used. The result of such an algorithm is a clustering of distribution centers, where the clustering can be different for each SKU. The allocation plan allocates each SKU to a number of different distribution centers, one distribution center in each cluster. Each cluster can contain one or more distribution centers.
However, such an allocation plan might not be adaptable to changes. For example, an unexpected increase or decrease in demand or the inability of one or more distribution centers to cope with the number of orders being processed can lead to the allocation plan not being feasible.
For example, there may be a situation in which a particular SKU is to be allocated to five specific distribution centers (in other words, the SKU has a mirroring of 5). However, before the order is placed and the orders are allocated to the selected distribution centers, one or more of the specific distribution centers no longer has the capacity to store the SKU. In the past, such a situation can result in the failure of the order. It can be desirable to have a method or system that can allow a retailer to reallocate SKUs to different distribution centers based on a number of different factors.
Turning ahead in the drawings,
Method 500 can be executed for each SKU in a set of SKUs. At block 502, an allocation plan P and a network state S are received. At block 504, it is determined if allocation plan P is feasible or not, based on the network state S. The determination of the feasibility of an allocation plan can involve a variety of different steps. For example, allocation plan P might involve the shipment and storage of goods at a number of different distribution centers f. An allocation plan might be considered infeasible if any one of the distribution centers lacks capacity to store or distribute the SKU in question. There can be a variety of different reasons for a distribution center to be unable to store or distribute a SKU. For example, a distribution center might lack capacity to store additional items. When the forecast is made, a distribution center may have had room to store the SKU. However, by the time the order is placed, the distribution center may have reached or exceeded capacity. In another example, a distribution center might be unable to receive the SKU due to manpower issues, weather issues, or other unplanned events. For example, a snow storm or a hurricane might make a distribution center unable to receive or process new orders.
Thus, block 504 can involve examining network state S to determine the status of each distribution center in allocation plan P. For a SKU that is to be allocated to five different distribution centers, if any one or more of the distribution centers is unable to store or distribute the SKU in question, for any reason, allocation plan P might be considered infeasible.
If allocation plan P is feasible, then the given SKU is ordered and allocated according to allocation plan P (block 506). Otherwise, an alternative allocation plan P* is developed (block 508). The development of alternative allocation plan P* is detailed below.
Turning ahead in the drawings,
In some embodiments, method 600 can be executed after block 508 (
If the chosen distribution center does not have available capacity, then the other distribution centers in the same cluster are examined to find a distribution center with available capacity. Once a second distribution center is found that has available capacity, it replaces the first distribution center in the allocation plan (block 606): This process is iterated until a distribution center with available capacity is found or until all the distribution centers in a cluster have been analyzed. If all the distribution centers in a cluster have been analyzed and none of them have enough capacity for the allocation, the distribution centers are removed from the allocation plan. At this point, the allocation plan P can be considered a failure with respect to the SKU in question.
Once the above is completed for every distribution center in the original allocation plan, the result can be an alternative allocation plan that possibly features different distribution centers from the original allocation plan (block 608). Thereafter, orders can be placed and allocated according to the alternative allocation plan, in a similar manner as described above. If the allocation plan was a failure, the lack of a working allocation plan can be noted. There are a variety of different actions that can take place if an allocation plan fails. In many instances, the infeasibility of a particular distribution center is temporary. Merely executing method 500 at a later time can result in an allocation plan that works. In other instances, a new allocation plan can be developed using one of a variety of different mirroring techniques.
Turning ahead in the figures,
In a number of embodiments, system 700 can include receiving module 702. In certain embodiments, receiving module 702 can perform block 502 (
In a number of embodiments, system 700 can include feasibility determination module 704. In certain embodiments, feasibility determination module 704 can perform block 504 (
In a number of embodiments, system 700 can include ordering module 706. In certain embodiments, ordering module 706 can perform block 506 (
In a number of embodiments, system 700 can include alternative allocation plan determination module 708. In certain embodiments, alternative allocation plan determination module 708 can perform block 508 (
In a number of embodiments, alternative allocation plan determination module 708 can include list receiving module 712. In certain embodiments, list receiving module 712 can perform block 602 (
In a number of embodiments, alternative allocation plan determination module 708 can include capacity determination module 714. In certain embodiments, capacity determination module 714 can perform block 604 (
In a number of embodiments, alternative allocation plan determination module 708 can include distribution center finding module 716. In certain embodiments, distribution center finding module 716 can perform block 606 (
Another embodiment can be arranged to smartly allocate SKUs to distribution centers, taking existing inventory to account. To take a simple example, there might be a situation where a SKU to be distributed to various distribution centers. An allocation of inventory might determine that the SKU should be distributed to two different distribution centers, DC1 and DC2, at a 40%/60% split, with 40% of the SKUs being sent to DC1 and 60% of the SKUs being sent to DC2.
If there is a shipment of 170 units to be sent to DC1 and DC2, systems of the prior art might send 68 units to DC1 and 102 units to DC2 because that is a 40/60 split between the two distribution centers. However, prior to shipping the 170 units, there might be a pre-existing amount of 30 units at DC1 and 0 units at DC2. The result would thus be 98 units at DC1 and 102 units at DC2, which is not the optimum distribution of the SKU to DC1 and DC2. This can result in greater than forecast shipping costs and shipping times.
Embodiments described herein can take into account the existing inventory when allocating the new units. Instead of merely dividing the new order of 170 units to DC1 and DC2, an embodiment, can determine the total stock on hand including the new order. Thereafter, the SKU and be allocated to DC1 and DC2 based on the new total.
In the above example, instead of determining the split between DC1 and DC2 using the 170 unit order, the 170 unit order is added to the 30 units on hand to come up with 200 total units. Then the 200 total units are divided between DC1 and DC2 according to the optimum split of 40/60.
Here, the 40/60 split of 200 units means a total of 80 units at DC1 and 120 units at DC2. The stock on hand is subtracted from these totals to determine the proper allocation. 80 total units at DC1−30 stock on hand equals 50 units to be allocated to DC1, with the remaining 120 units being allocated to DC2.
In some embodiments, the allocation can be divided into various shipments. For example, it might be determined that the 200 units are the projected demand for a quarter. Therefore, the allocations can be divided into smaller shipments, such as monthly shipments, weekly shipments, or shipments at a different schedule.
Simulations of the above-described embodiments have shown a significant improvement for a retail business. For example, an order failure rate (the inability to place an order due to constraints present at a distribution center) goes down from 18% to 8% using embodiments described above. The ability to meet demand goes up from 89% to 91%.
Although determining an inventory allocation plan has been described with reference to specific embodiments, it will be understood by those skilled in the art that various changes may be made without departing from the spirit or scope of the disclosure. Accordingly, the disclosure of embodiments is intended to be illustrative of the scope of the disclosure and is not intended to be limiting. It is intended that the scope of the disclosure shall be limited only to the extent required by the appended claims. For example, to one of ordinary skill in the art, it will be readily apparent that any element of
All elements claimed in any particular claim are essential to the embodiment claimed in that particular claim. Consequently, replacement of one or more claimed elements constitutes reconstruction and not repair. Additionally, benefits, other advantages, and solutions to problems have been described with regard to specific embodiments. The benefits, advantages, solutions to problems, and any element or elements that may cause any benefit, advantage, or solution to occur or become more pronounced, however, are not to be construed as critical, required, or essential features or elements of any or all of the claims, unless such benefits, advantages, solutions, or elements are stated in such claim.
Moreover, embodiments and limitations disclosed herein are not dedicated to the public under the doctrine of dedication if the embodiments and/or limitations: (1) are not expressly claimed in the claims; and (2) are or are potentially equivalents of express elements and/or limitations in the claims under the doctrine of equivalents.
Claims
1. A system having improved processing time comprising:
- one or more processors; and
- one or more non-transitory memory storage devices storing computing instructions configured to run on the one or more processors and perform acts of: receiving an allocation plan for an item in a fulfillment network, the fulfillment network comprising a plurality of clusters of distribution centers, wherein: each cluster of distribution centers of the plurality of clusters of distribution centers comprises one or more distribution centers; the plurality of clusters contribute to the improved processing time; and the allocation plan is created by estimating demand for the item and utilizing mirroring techniques based on: (1) the demand, as estimated and as collected in real time and from multiple sources; (2) a weight of the item; and (3) a selling velocity of the item; storing the allocation plan in the one or more non-transitory memory storage devices; determining: when the allocation plan is feasible; and when the allocation plan is not feasible; when the allocation plan is determined to be feasible, automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the allocation plan; and when the allocation plan is determined to be not feasible: determining an alternative allocation plan; storing the alternative allocation plan in the one or more non-transitory memory storage devices; and after determining the alternative allocation plan, automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the alternative allocation plan.
2. The system of claim 1, wherein determining the alternative allocation plan comprises:
- receiving a list of distribution centers that are part of the allocation plan;
- for each distribution center in the list of distribution centers, determining at least one of: when a distribution center in the list of distribution centers is feasible; or when the distribution center in the list of distribution centers is not feasible; and
- for each distribution center in the list of distribution centers when the distribution center in the list of distribution centers is not feasible: determining a cluster in which the distribution center in the list of distribution centers is located; determining an alternative distribution center in the list of distribution centers that is located in within the cluster; determining when the alternative distribution center in the list of distribution centers is feasible; and when the alternative distribution center in the list of distribution centers is feasible, replacing the distribution center in the list of distribution centers in the cluster with the alternative distribution center in the list of distribution centers.
3. The system of claim 2, wherein determining when the alternative distribution center in the list of distribution centers is feasible comprises:
- analyzing a status of the alternative distribution center in the list of distribution centers to determine a total capacity and a used capacity;
- comparing the used capacity of the alternative distribution center in the list of distribution centers to the total capacity of the alternative distribution center in the list of distribution centers to determine an available capacity; and
- determining when the available capacity of the alternative distribution center in the list of distribution centers is sufficient for an allocation under the alternative allocation plan to the alternative distribution center in the list of distribution centers.
4. The system of claim 3, wherein:
- analyzing the status of the alternative distribution center in the list of distribution centers further comprises adjusting the total capacity for unplanned events.
5. The system of claim 4, wherein:
- the unplanned events include weather-related events and manpower-related events.
6. The system of claim 2, wherein determining when the allocation plan is not feasible comprises:
- notating a failure of the allocation plan when there is no distribution center within the cluster of distribution centers that is feasible.
7. The system of claim 1, wherein:
- the fulfillment network is utilized by a retailer to distribute goods to consumers; and
- the allocation plan is arranged to distribute the goods through the fulfillment network to result in a distribution of lower shipping costs to consumers.
8. A method being implemented via execution of computing instructions configured to run at one or more processors and configured to be stored at non-transitory computer-readable media, the method having improved processing time and comprising:
- receiving an allocation plan for an item in a fulfillment network, the fulfillment network comprising a plurality of clusters of distribution centers, wherein: each cluster of distribution centers of the plurality of clusters of distribution centers comprises one or more distribution centers; the plurality of clusters contribute to the improved processing time; the allocation plan is created by estimating demand for the item and utilizing mirroring techniques based on: (1) the demand, as estimated and as collected in real time and from multiple sources; (2) a weight of the item; and (3) a selling velocity of the item;
- storing the allocation plan in the non-transitory computer-readable media;
- determining: when the allocation plan is feasible; and when the allocation plan is not feasible;
- when the allocation plan is determined to be feasible, automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the allocation plan; and
- when the allocation plan is determined to be not feasible:
- determining an alternative allocation plan;
- storing the alternative allocation plan in the non-transitory computer-readable media; and
- after determining the alternative allocation plan, automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the alternative allocation plan.
9. The method of claim 8, wherein determining the alternative allocation plan comprises:
- receiving a list of distribution centers that are part of the allocation plan;
- for each distribution center in the list of distribution centers, determining at least one of: when a distribution center in the list of distribution centers is feasible; or when the distribution center in the list of distribution centers is not feasible; and
- for each distribution center in the list of distribution centers, when the distribution center in the list of distribution centers is not feasible: determining a cluster in which the distribution center in the list of distribution centers is located; determining an alternative distribution center in the list of distribution centers that is located in within the cluster; determining when the alternative distribution center in the list of distribution centers is feasible; and when the alternative distribution center in the list of distribution centers is feasible, replacing the distribution center in the list of distribution centers in the cluster with the alternative distribution center in the list of distribution centers.
10. The method of claim 9, wherein determining when the alternative distribution center in the list of distribution centers is feasible comprises:
- analyzing a status of the alternative distribution center in the list of distribution centers to determine a total capacity and a used capacity;
- comparing the used capacity of the alternative distribution center in the list of distribution centers to the total capacity of the alternative distribution center in the list of distribution centers to determine an available capacity; and
- determining when the available capacity of the alternative distribution center in the list of distribution centers is sufficient for an allocation under the alternative allocation plan to the alternative distribution center in the list of distribution centers.
11. The method of claim 10, wherein:
- analyzing the status of the alternative distribution center in the list of distribution centers further comprises adjusting the total capacity for unplanned events.
12. The method of claim 11, wherein:
- the unplanned events include weather-related events and manpower-related events.
13. The method of claim 9 further comprising:
- notating a failure of the allocation plan when there is no distribution center within the cluster of distribution centers that is feasible.
14. The method of claim 8, wherein:
- the fulfillment network is utilized by a retailer to distribute goods to consumers; and
- the allocation plan is arranged to distribute the goods through the fulfillment network to result in a distribution of lower shipping costs to consumers.
15. A method being implemented via execution of computing instructions configured to run at one or more processors and configured to be stored at non-transitory computer-readable media, the method having improved processing time and comprising:
- receiving an allocation plan for an item in a fulfillment network, the fulfillment network comprising a plurality of clusters of distribution centers, wherein: each cluster of distribution centers of the plurality of clusters of distribution centers comprises one or more distribution centers; the plurality of clusters contribute to the improved processing time; the allocation plan is created by estimating demand for the item and utilizing mirroring techniques based on: (1) the demand, as estimated and as collected in real time and from multiple sources; (2) a weight of the item; and (3) a selling velocity of the item; and the allocation plan comprises placing one or more copies of each item into a first distribution center and one or more copies of each item into a second distribution center;
- storing the allocation plan in the non-transitory computer readable media;
- determining an existing inventory at the first distribution center and an existing inventory at the second distribution center;
- adjusting the allocation plan based on the existing inventory at the first distribution center and the existing inventory at the second distribution center;
- storing the allocation plan, as adjusted, in the non-transitory computer readable media; and
- automatically shipping the item to the one or more distribution centers of the plurality of clusters of distributions centers based on the allocation plan, as adjusted.
16. The method of claim 15, wherein adjusting the allocation plan comprises:
- extracting a planned allocation for the first distribution center from the allocation plan;
- extracting a planned allocation for the second distribution center from the allocation plan;
- adding the planned allocation for the first distribution center, the planned allocation for the second distribution center, the existing inventory at the first distribution center, and the existing inventory at the second distribution center to result in a total; and
- dividing the total between the first distribution center and the second distribution center based on the allocation plan to result in an adjusted allocation plan.
17. The method of claim 15, wherein adjusting the allocation plan further comprises:
- dividing the allocation plan into two or more allocations of a subset of the allocation plan, as adjusted.
18. The method of claim 15, wherein:
- the fulfillment network is utilized by a retailer to distribute goods to consumers; and
- the allocation plan is arranged to distribute the goods through the fulfillment network to result in a distribution of lower shipping costs to consumers.
19. The system of claim 1, wherein the allocation plan comprises:
- estimating a location specific demand for an item (i) at a demand zone (z) using an equation comprising: di,z=diβi,z
- wherein di,z is the location specific demand, di is a total demand, and βi,z is a time-static geo-demand distribution.
20. The system of claim 1, wherein:
- automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the allocation plan comprises allowing the item to be shipped from a first distribution center to a second distribution center different than the first distribution center; and
- automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the alternative allocation plan comprises allowing the item to be shipped from the first distribution center to the second distribution center.
21. The method of claim 8, wherein the allocation plan comprises:
- estimating a location specific demand for an item (i) at a demand zone (z) using an equation comprising: di,z=diβi,z
- wherein di,z is the location specific demand, di is a total demand, and βi,z is a time-static geo-demand distribution.
22. The method of claim 8, wherein:
- automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the allocation plan comprises allowing the item to be shipped from a first distribution center to a second distribution center different than the first distribution center; and
- automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the alternative allocation plan comprises allowing the item to be shipped from the first distribution center to the second distribution center.
23. The method of claim 15, wherein the allocation plan comprises:
- estimating a location specific demand for an item (i) at a demand zone (z) using an equation comprising: di,z=diβi,z
- wherein di,z is the location specific demand, di is a total demand, and βi,z is a time-static geo-demand distribution.
24. The method of claim 15, wherein automatically shipping the item to the one or more distribution centers of the plurality of clusters of distribution centers based on the adjusted allocation plan comprises allowing the item to be shipped from a first distribution center to a second distribution center different than the first distribution center.
7139637 | November 21, 2006 | Waddington |
8386639 | February 26, 2013 | Galvin |
8666791 | March 4, 2014 | Fedele |
20030055750 | March 20, 2003 | Menninger |
20110264485 | October 27, 2011 | Notani |
20120150700 | June 14, 2012 | Babar |
- Jayaraman Vaidyanathan and Ross Anthony, 2003, A simulated annealing methodology to distribution network design and management, European Journal of Operational Research 144, pp. 629-645.
- Melo M.T., Nickel S., Saldanaha-da-Gama F, 2009, Facility location and supply chain management—a review, European Journal of Operational Research, vol. 196, pp. 401-412.
Type: Grant
Filed: Nov 23, 2015
Date of Patent: Nov 26, 2019
Patent Publication Number: 20170147964
Assignee: WALMART APOLLO, LLC (Bentonville, AR)
Inventors: Rishabh Kothari (San Francisco, CA), Arash Asadi-Shahmirzadi (San Bruno, CA), Vvs Varaprasad Nagalla (San Bruno, CA), Zhiwei Qin (San Jose, CA)
Primary Examiner: Matthew S Gart
Assistant Examiner: Stephen S Swartz
Application Number: 14/949,563
International Classification: G06Q 10/08 (20120101); G06Q 30/02 (20120101);