Systems and Methods for Determining Pack Allocations
Systems and methods are provided for determining a distribution of each of a plurality of inner packs to a plurality of stores. Mismatch cost data and product demand data are received for the plurality of stores. A first inner pack quantity for distribution is determined based on the product demand data. A supply difference amount is determined, where the supply difference amount is a difference between the first inner pack quantity and the number of first inner packs available for distribution. A determination is made that adjusting the first inner pack quantity for the particular store based on the supply difference amount would have less effect on mismatch costs than other stores, and the first inner pack quantity is adjusted for the particular store based on the supply difference.
Latest SAS Institute Inc. Patents:
- Standard error for deep learning model outcome estimator
- Systems and methods for enhanced speaker diarization
- Architecture for execution of computer programs inside data systems
- Systems and methods for dynamic allocation of compute resources via a machine learning-informed feedback sequence
- Data access layer for translating between a data structure used by a first software program and a proxy table used by a second software program
This application is a continuation of and claims priority to U.S. application Ser. No. 12/987,495, filed Jan. 10, 2011, entitled “Systems and Methods for Determining Pack Allocations,” the entire contents of which are incorporated herein by reference for all purposes. This application is related by subject matter to U.S. application Ser. No. 12/987,489, filed Jan. 10, 2011, entitled “Systems and Methods for Determining Pack Allocations”; and to U.S. application Ser. No. 12/987,495, filed Jan. 10, 2011, entitled “Systems and Methods for Determining Pack Allocations.”
TECHNICAL FIELDThe present disclosure relates generally computer-implemented product analysis systems and more particularly to computer-implemented systems for determining pack allocations for distribution.
BACKGROUNDRetailers confront many issues when deciding what products to provide to stores. The issues can become even more daunting when the decision process additionally has to consider which types of a specific product a distributor should supply. For example, clothing products come in several different sizes. Determining what sizes in addition to what specific clothes to provide becomes problematic especially given the vast array of clothing options available to a retailer.
among their various stores by looking at the product allocation decisions of the previous year, and then, they will make slight adjustments based on relatively simple analytics and/or intuition given the previous year's sales and performance. Retailers may also try to address this problem by analyzing revenue goals that have been set at a company level. They then decide how to best reach these goals—that is, they typically determine, among other things, how much of each product they should order (and sell) to meet these goals. Such approaches can lead to product assortments that are not aligned with consumer demands.
SUMMARYIn accordance with the teachings provided herein, systems and methods are provided for a computer-implemented method for determining a plurality of pack configurations to make available for distribution to a plurality of stores, where a pack configuration contains a particular number of units of each of a plurality of variations of a product. The systems and methods may include receiving an allowable pack size constraint, where a pack size is a sum of each of the plurality of variations in a pack, and receiving a maximum pack configuration constraint, where the maximum pack configuration constraint identifies the maximum pack configurations allowed in the plurality of pack configurations. Mismatch cost data may be received, where mismatch overdelivery costs are attributed to a store for each unit of a variation of the product delivered to the store above a demand level and mismatch underdelivery costs are attributed to the store for each unit of the variation of the product delivered to the store below the demand level. Product demand data for the plurality of stores may also be received, where the product demand data for the store identifies a demand for each of the variations of the product at the store. A first pack for the store may be determined, where the first pack contains a particular number of different variations of the product, and where the first pack meets the allowable pack size constraint and minimizes mismatch costs for the store. A second pack for the store may be determined based on the demand data for the store and the first pack for the store, where a store pack configuration set comprises the first pack and the second pack. The stores may be clustered based on similarity of store pack configuration sets, wherein each cluster includes a single cluster pack configuration set. A total pack configuration amount as a total of all packs in the cluster pack configuration sets may be determined, and store clusters may be combined based on similarity of cluster pack configuration sets until the total pack configuration amount meets the maximum pack configuration constraint.
As another example, a computer-implemented method for determining a quantity of each of a plurality of inner pack configurations to purchase for a plurality of stores is provided, where the plurality of stores are associated with a distribution center, where an inner pack configuration contains a particular number of units of different variations of a product, and where an outer pack contains a particular number of inner packs. An identification of available inner pack configurations may be received along with a particular number of each inner pack configuration contained in an outer pack. Mismatch cost data may be received, where mismatch overdelivery costs are attributed to a store for each unit of a variation of the product delivered to the store above a demand level and mismatch underdelivery costs are attributed to the store for each unit of the variation of the product delivered to the store below the demand level. Product demand data for the plurality of stores may be received, where the product demand data for the store identifies a demand profile detailing demand for each of the variations of the product at the store. A first inner pack configuration may be identified from the available inner pack configurations for a store, where the first inner pack configuration best matches the demand profile for the store. A quantity of the first inner pack configuration may be added to a purchase order for the store until a mismatch cost associated with the store increases. A determination may be made as to whether adding a second inner pack configuration to the purchase order would reduce the mismatch cost for the store. When adding the second inner pack configuration would reduce the mismatch cost, a quantity of the second inner pack configuration may be added to the purchase order for the store until the mismatch cost associated with the store increases. Quantities of the first inner pack configuration across purchase orders of the stores associated with the distribution center may be summed to generate a first total to be included in the purchase order. A determination may be made as to which of adding or subtracting inner pack configurations to the purchase order would affect total mismatch costs least, and inner pack configurations may be added or subtracted to the purchase order so that an adjusted first total is a multiple of the particular number of inner packs that the outer pack contains, where adding or subtracting is based on the determining which of adding or subtracting would affect the total mismatch cost least.
As a further example, a computer-implemented method for determining a distribution of each of a plurality of inner packs to a plurality of stores is provided, where an inner pack contains a particular number of units of each of a plurality of variations of a product, and where an outer pack contains a particular number of inner packs. Mismatch cost data may be received, where mismatch overdelivery costs are attributed to a store for each unit of a variation of the product delivered to the store above a demand level and mismatch underdelivery costs are attributed to the store for each unit of the variation of the product delivered to the store below the demand level. Product demand data may be received for the plurality of stores, where the product demand data for the store identifies a demand profile detailing demand for each of the variations of the product at the store. A first inner pack quantity for distribution may be determined based on the product demand data. A supply difference amount may be determined, where the supply difference amount is a difference between the first inner pack quantity and the number of first inner packs available for distribution. A determination may be made that adjusting the first inner pack quantity for the particular store based on the supply difference amount would have less effect on mismatch costs than other stores, and the first inner pack quantity may be adjusted for the particular store based on the supply difference.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the invention will become apparent from the description, the drawings, and the claims.
The user may interact with the pack management engine to perform a number of operations related to distribution of different varieties of products to retailers. For example, a clothing company may have a number of associated retail locations to which to distribute products. In addition to a variety of styles, clothing also comes in a variety of sizes, such as small, medium, large, extra-large, etc. Merchandise is shipped from a vendor to a fashion retailer in a limited set of fixed pack configurations. For example, a shirt that sells in sizes small, medium, and large might be available in packs of: 2 smalls, 3 mediums, and 1 large; and 1 small, 3 mediums, and 1 large. Sometimes these pack configurations are determined by the vendor. However, some retailers may be able to dictate the configurations they would like to the vendor. The pack management engine 104 may be utilized to determine optimum or near optimum pack configurations for a retailer.
The pack management engine 104 may also be utilized in making product ordering decisions. Having knowledge of the pack configurations available and the demand for different varieties (e.g., sizes) of a product, the pack management engine 104 can provide recommendations for the number of each pack configuration to order for all of the stores or a group of the stores. For example, retailers may forecast the demand for a style or style-color of a product that they intend to sell. A store level size level demand forecast may be generated at each store. For example, the company-wide demand for the product may be distributed across all of the stores for the retailer, and a size profile may be applied to the demand at each store. Store level demand may be determined by other means as well, including forecasting size level demand for each store individually. Given the limited pack configurations available, it is often not possible to meet the forecasted store demand exactly. Thus, some variations of a product may be under-stocked and some may be over-stocked. The pack management engine 104 may be utilized to determine how many of each pack configuration should be ordered from a vendor in order to supply product to best meet forecasted store demand.
The pack management engine 104 may also be utilized in making product distribution decisions. Product ordered from a vendor is often delivered to distribution centers, where each distribution center is associated with a plurality of stores. Numbers of different pack configurations are ordered from the vendor and shipped to each distribution center based on the forecasted demand for the stores associated with each distribution center. Upon receipt of the packs, a decision may be made as to how many of each pack should be distributed to each store. These numbers may differ from the numbers used in deciding how many of each pack configuration to order from the vendor. The variation may be caused by a number of factors including updated demand forecasts and a difference in the number of packs delivered to the distribution center by the vendor from the number ordered. The pack management engine may analyze the product delivered to the distribution center and determine a distribution plan for the product to stores that minimizes aggregate mismatch costs across all stores.
The users 102 can interact with the pack management engine 104 in a number of ways, such as over one or more networks 108. For example, server(s) 106 accessible through the network(s) 108 can host the pack management engine 104. One or more data stores 110 can store data used by the pack management engine 104 as well as any intermediate or final data generated by the pack management engine 104. The one or more data stores 110 may contain many different types of data associated with the process including product demand data 112, distribution center to store mappings 114, as well as other data. The pack management engine 104 can be an integrated web-based reporting and analysis tool that provides users flexibility and functionality for performing pack management operations. It should be understood that the pack management engine 104 could also be provided on a stand-alone computer. It should also be understood that the pack management engine 104 may be utilized with hardware implementations of software such as field programmable gate arrays.
At 210, the pack management engine may be used to determine how to distribute pack configurations to individual stores. The assignment of pack configurations for distribution at 210 to stores may differ from the determined number of pack configurations to order for a store at 204 for a variety of reasons such as changes in forecasted demand or differences between amounts ordered at 206 and delivered at 208. At 212, pack configurations are distributed to stores according to the determination at 210.
A pack purchase engine 318 may determine a number of each pack configuration to order for a distribution center based on the stores associated with the distribution center. Such associations 320 may be received by the pack purchase engine 318, and purchase orders 306 may be determined based on the store level demand 312 of associated stores, mismatch costs 314, and constraints 316. Example constraints 316 may include minimum and maximum numbers of each product that can be held at a store or minimum or maximum numbers of products that must be ordered from the vendor (e.g. to meet a budget constraint).
A pack distribution engine 322 may determine a number of each pack configuration to distribute to stores associated with a distribution center. The pack distribution engine may consider store level demand 312 for associated stores, mismatch costs 314, constraints 316, as well as a number of each pack configuration 324 delivered to a distribution center.
At 420, stores are clustered to reduce the number of pack configurations under consideration. Clustered stores have a common cluster pack configuration set. Stores having similar characteristics—including demand profiles and Distribution Centers—are selected to have their clusters combined. When clusters are combined, the set of pack configurations is reduced in the combined cluster. Subsequent clustering may combine stores by determining cluster pack configuration sets that result in low mismatch costs for the stores within that cluster. As shown at 422, clusters and stores may continue to be merged until a maximum pack configuration constraint is met. Such a constraint may dictate that a total of 4 pack combinations may be permitted. Thus, clusters may be combined until the number of unique pack configurations across all clusters is equal to or less than 4.
At 502, an ideal pack is constructed for each allowable inner pack size at each store. The retailer, in conjunction with the vendor, may determine the allowable inner pack sizes (e.g., 6 units, 12 units). An ideal, first candidate pack may be constructed by determining the variations of the product to include in the pack. This selection may not include all variations and may be necessary if there are several varieties of the product for a store (e.g., shoe sizes). For the selected variations of the product, a determination may be made as to the percentages of each variation desired for the store based on the forecasted demand at the store. The percentages are multiplied by the pack size, and the ceiling and floor of each of those multiplied values may be considered. The floor or ceiling may be rounded based on the mismatch cost that would be generated for that variation when using that pack. The rounding may be done in decreasing order for the forecasted demand for a variation. That is, variations with a higher demand forecasts are rounded first to minimize mismatch cost for the most important variations. When finished rounding, if the total number of units in the candidate pack does not meet a required pack size constraint, then certain rounding decisions are reversed until the pack size constraint is met.
For example, consider a pack size requirement with a unit count of 6 and a $1 cost for over or under-supplying any size. The forecasted demand for each size is given and totals 50 units. With a forecasted demand for a store of 50 units and a pack of 6 units, either 8 or 9 of the 6-unit pack would be needed to fill the demand. The pack configuration engine considers ordering 8 of the 6-unit pack.
Because medium is the size with the largest forecasted demand, the pack configuration engine tries to minimize mismatch for the medium variation first and will prefer to round up to the ceiling of 3 units to achieve a mismatch cost of $1 rather than $7. The pack configuration engine is indifferent to rounding larges up or down, as the mismatch cost is $4 in either case. If the pack configuration engine decides to round up, then the total number of variations in the candidate pack thus far is 5 (3 mediums and 2 larges). For smalls, the pack configuration engine prefers to round up as well but this would result in a pack size of 7 units so the pack configuration engine may reverse the rounding decision and round down. This results in a pack having 1 small, 3 medium and 2 large and a total mismatch cost of $12.
The pack configuration engine also considers ordering 9 of the 6-unit pack.
Because medium is the size with the largest forecasted demand, the pack configuration engine tries to minimize mismatch for the medium variation first and will prefer to round up to the ceiling of 3 units to achieve a mismatch of $4 rather than $5. For larges, the pack configuration engine prefers to round larges down to the floor of 1 unit. For smalls, the pack configuration engine prefers to round up to 2 units. This results in a pack with 2 small, 3 medium and 1 large and a total mismatch cost of $10.
The first pack results in a total mismatch cost of $12, and the second pack results in a mismatch cost of $10, so the pack configuration engine prefers the second pack. Thus, the pack configuration identifies the “ideal” pack for this store as the pack configuration of 2 small, 3 medium and 1 large.
The process of selecting a first candidate pack may be repeated for various subsets of sizes and for each allowable pack unit count. Constraints may be applied or incorporated into the decision making process. For example, pack configurations that do not include all sizes may be penalized by considering the mismatch cost of not furnishing any units of the missing size (e.g., the penalty may be doubled if there is an order quantity constraint on the size and weighted by the percentage of missing sizes divided by the total number of pack recommendations allowed). In this manner, the pack configuration engine may construct a first candidate pack for each store for each allowable pack unit count.
At 504, for each “ideal” first candidate pack, a second-best complementary pack is constructed. This second pack is a pack that complements the ideal pack and provides diversity in the set of candidate packs. The second pack may be constructed in a similar fashion as the ideal pack with the store's desired size quantities adjusted to reflect some assumed quantity of the ideal pack. The second pack may be selected as the pack configuration that has the smallest mismatch cost given some assumed quantity of the ideal first pack.
The determined first candidate pack configuration contained 2 small, 3 medium and 1 large. To select a second, complementary pack, the quantity of the first pack that can be ordered without exceeding the forecasted demand for any variation is determined. In the present example, 7 first packs can be ordered before the forecasted demand for mediums (23) is exceeded. The remaining demand for the store after purchase of 7 first packs is as follows.
Here, the adjusted needs reflect the fact that the ideal, first candidate pack does not have enough larges compared to the other sizes. The pack configuration engine selects a second, complementary pack that contains 1 small, 1 medium and 4 larges. This complementary, second pack enables near matching of the store level forecasted demand while meeting the pack size constraint of 6 units per pack.
Additional candidate packs may be constructed that include only one size. These “bulk” packs are often used by retailers to better meet the specific quantities of each size at each store, and they may be considered as candidates.
At 506, each store is assigned to a cluster. At this point, each store has a set of candidate packs (e.g., first ideal candidate packs, second complementary packs, bulk packs) that form a store pack configuration set. Stores with identical store pack configuration sets are assigned to the same cluster. To reduce the total number of candidate packs to the relatively small number of packs that the maximum pack configuration constraint allows, clusters may be combined and their packs reduced to form cluster pack configuration sets.
The method of clustering stores to reduce packs may take advantage of the fact that there are generally a small, discrete number of distinct size demand distributions. A retailer may use a size profile to forecast the size level demand at each store, but this profile, if not at the corporate level, is typically at a much higher level than store. Therefore, many stores have the same percentage demand for each size, and many stores will prefer similar packs. The pack configuration engine attempts to combine stores that are the most similar. The merged cluster will often have a diverse set of candidate packs to choose from, and only the best packs will be kept.
At 508, 510, clusters are merged to select a number of pack configurations that meet the maximum pack configuration constraint. At 508, a determination of whether the maximum pack configuration constraint has been met is made, and if not, at 510, two clusters are merged, and the determination at 508 is repeated.
Cluster Distance Metric=(100*Size Profile Difference)+(50*Sales Difference)+(100*DC Difference)
where Size Profile Difference=SUM((pct—
When two clusters have been identified at 602 for merging at 604, the packs in the two clusters are reduced by solving a simplified purchase order problem at 606. Such a problem may be performed using a stepwise selection, incrementally adding one pack at a time.
For each candidate pack in the merged cluster, at 608, the pack configuration engine determines the total mismatch cost for all stores in the cluster if that is the only pack configuration used. These costs may be saved and reused across steps and across evaluations, offering sometimes significant efficiency improvements. That determined cost is weighted higher if a constraint is violated by the pack configuration (e.g., the pack does not include a required variation). The single pack with the lowest mismatch cost is retained as the first best pack for the cluster and is kept. If the maximum pack configuration constraint permits more than one pack to be selected 610, then the pack configuration engine solves the ordering problem again at 612 with each remaining pack plus the first best pack for the process. This process 608, 610, 612 is repeated, adding one pack configuration at a time, until the maximum pack configuration constraint would be violated or another criterion is met. For example, other criteria could include keeping pack configurations according to the following.
Min((Maximum Pack Configuration Constraint/Number of Clusters Remaining)+2, Maximum Pack Configuration Constraint)
All unused pack configurations are discarded for the cluster, although discarded pack configurations may still be candidate packs in another cluster. Certain packs may be retained as “user packs,” which are pack configurations that may be usable no matter which custom pack configurations are generated. These user packs may be received as input from the user and may be used regardless of the maximum number of allowable pack configurations. Clusters are combined until the pack configuration engine has reduced the total number of distinct candidate packs in all clusters to meet the maximum pack configuration constraint. Because the same packs may be re-evaluated multiple times each time the cluster is involved in a merge, the pack configuration engine may retain the resulting cost from each pack or set of packs in the cluster and avoid re-computing the mismatch cost each time a merge is performed.
Following is a numerical example for selecting pack configurations. This example contains 4 stores and 5 variations of a product (sizes). The stores' planned quantities are distributed among 2 different size profiles seen below with the exception that one store, #322, does not stock size XL. The two size profiles are as follows:
The total product demand is forecast for each store, and the individual variety demands for each size at each store are calculated by multiplying the total product demand for the store by the values in the size profiles.
Performing the processes described above, selecting a first, ideal pack, and second complementary packs, results in the following store pack configuration sets.
Store 311:1-2-2-2-1
1-2-0-2-1
Store 312:1-2-2-2-1
0-2-3-2-1
1-2-0-2-1
1-1-1-2-1
0-1-3-1-1
Store 321:1-2-4-1-0
1-2-2-1-0
Store 322:1-2-4-1-0
1-3-4-0-0
0-2-3-1-0
1-2-3-0-0
1-2-2-1-0
This process offers ten unique candidate packs from which to choose. Because the above described process utilizes more than simple rounding of forecasted demands, a rich set of candidate packs is generated.
Clusters are merged to generate a final two packs as a cluster pack configuration set.
The following table depicts the mismatch costs associated with the selected candidate packs.
The selected candidate packs result in a mismatch cost of 15.26.
In addition to generating pack configurations for vendors to use in providing product, a pack management engine may provide purchase order recommendations by determining a quantity of each of a plurality of inner pack configurations to purchase for a plurality of stores. Each store may be associated with a distribution center, such that purchase decisions are made at the distribution center level for the stores associated with that distribution center. Product is delivered to the distribution center, which distributes the delivered product to the associated stores according to store level demand. A purchase order of inner pack configurations for a distribution center may be determined by the pack management engine based on a sum of inner pack configurations that would near-optimally satisfy the demand of associated stores. Purchase order generation may be subject to one or more constraints. For example, the distribution center may be subject to a constraint to purchase units of the product by whole outer packs. Thus, allotments to individual stores may need to be adjusted to meet this and other constraints.
Additional operations that a pack purchase engine 802 may perform include enforcing order quantity constraints 818 and fixing broken constraints 820. Order quantity constraints could include minimums or maximums on different variations of the product that must be ordered for each store, minimums or maximums on different types of inner pack configurations that must be ordered for each store, minimums or maximums on total purchase order size at the total company level, as well as others. Constraints may also be fixed in a manner that does not violate other constraints and has a least effect on mismatch costs. If an adjustment is made at the distribution center level, orders for individual stores may be updated to match those adjustments. Determinations of which stores to update may be done by determining which stores would result in a least negative effect on overall mismatch costs. Alternatively, the updates may be done randomly, pseudo-randomly, in a round-robin fashion, or otherwise so that particular stores are not burdened by constraint fixing updates on a disproportionate basis.
From the starting solution, the pack purchase engine attempts to add an inner pack to the purchase order for the store at 904. If any available pack configuration can be added to the store purchase order that will not violate a constraint (e.g., a store level constraint on pack types, a store level constraint on order quantity of the product) and reduces mismatch cost at the store 906, a single inner pack of that inner pack configuration is added to the store purchase order. Inner packs may be added to the store purchase order until no improvement is found Inner packs may also be added to fulfill minimum order constraints, such as a store level minimum purchase quantity or a store level pack configuration type minimum purchase constraint. Such additions may be implemented even if mismatch costs would rise.
At 908, the pack purchase engine attempts to remove an inner pack from a store purchase order to improve mismatch costs for the store. If removing any inner pack can be done without violating any store level constraints and such removal improves mismatch costs or fixes a constraint, the inner pack is removed 910. If a pack is removed, then the pack purchase engine may again attempt to add an available inner pack configuration to improve mismatch costs. Packs are removed at 908, 910 until no further improvement is found. Packs may also be removed to meet constraints such as store order maximums and store pack configuration maximums. Such removals may be implemented even if mismatch costs would rise.
At 912, 914, the pack purchase engine attempts to replace packs within each store with other available pack configurations to improve mismatch costs without violating constraints. In some instances, these replacements may not be one-for-one (e.g., remove two of a first inner pack configuration and replace with one of a second inner pack configuration, remove one of a first inner pack configuration and replace with three of a second inner pack configuration). If mismatch costs improve after the replacement, then the replacement in the store purchase order is made. Each pack that is currently in the purchase order may be evaluated against each available pack configuration. The exchange step 912 can also be performed to fix constraints in cases where the addition of an inner pack violates a constraint and the removal of an inner pack also violates a constraint. By exchanging inner packs, the pack purchase engine may be able to find a solution that satisfies all constraints. If an exchange is made that improves costs or fixes a constraint, the process begins again from the adding step. The process completes when no cost improvement can be made or when a maximum iteration counter is exceeded.
At 916, 918, and 920, the pack purchase engine attempts to repair constraints, such as constraints at the distribution center level. For example, orders for a distribution center may be required to be at the whole outer pack level, despite the sum of store inner pack purchase orders not totaling a whole number of outer packs. As another example, across all stores, a constraint may be imposed that no more than X and no less than Y units of a product or variation of a product may be ordered. Other example constraints include store level constraints on the minimum or maximum of each type of pack configuration that may be received and a minimum and maximum number of product or variations of a product that the store is able to stock and display at one time.
To address the whole outer pack constraint, the pack purchase engine may round the inner pack quantities within each distribution center so that whole outer packs are ordered. For example, if 50 inner packs are desired among the stores at a distribution center but the outer pack consists of 6 inner packs, then the pack purchase engine determines whether to order 8 outer packs, which result in 48 inner packs, two fewer than the preferred number, or 9 outer packs, which result in 54 inner packs, four more than the preferred number of 50. The pack purchase engine rounds in the direction that incurs the smaller additional mismatch cost across all stores unless such rounding would break order quantity or pack type constraints. Suppose the “cheaper” solution is to round down. Because two stores will be shorted a desired inner pack, the pack purchase engine will determine which two stores to short. For example, the pack purchase engine may remove or add inner packs one at a time from the store that would incur the smallest mismatch cost, favoring stores for which the change will fix a constraint on either pack types or order quantity and avoiding any store for which the change will break a constraint.
The pack purchase engine may also attempt to enforce any constraints on the order quantity that must be satisfied across all stores at 918. For example, if a budgetary constraint requires that a retailer purchase no more than 10,000 units across all stores, then the purchase order may be adjusted to ensure that this condition is met. When the condition is not met by the initial solution, it may be time consuming to adjust the pack order quantities to meet the constraint and still maintain the quality of the initial solution. The pack purchase engine may determine which packs affect the unmet constraint (some packs may not contain the same products) and evaluate the cost change generated by adding or removing one inner pack of each of those affected packs at each store. This cost may be weighted based on any constraints violated or corrected as follows:
Weighted Costpack i,store j=Costpack i,store j(Costpack i,store j*1000*flag indicating constraint violationstore j)−(Costpack i,store j*store flag indicating constraint correctionstore j)
The pack order engine may rank the stores by increasing value of the weighted cost and make multiple pack changes before re-calculating the cost of each pack change at each store. In this way, the pack adjustments can be made more efficiently.
The pack purchase engine may also attempt to repair any constraints that may have become broken by the previous changes at 920. The pack purchase engine may impose a priority on each constraint based on the stated needs of retailers. For example, total company order quantity constraints may take precedence over pack type constraints at each store which may take precedence over order quantity constraints within each store. As the pack purchase engine attempts to repair a constraint, the pack purchase engine attempts to do so without violating any other constraints. If repairing a lower-priority constraint will break a higher-priority constraint, then the repair is made only if some other pack exists that can repair the higher-priority constraint.
The following example illustrates a purchase order problem for a product with 4 sizes (S-M-L-XL). In this example, there are three pack configurations available:
Note that all packs include 8 units. In the example, packs may not be opened (there is only one inner pack in the outer pack) and the cost of shipping an outer pack to a store is $0.02. This example includes 214 stores with the store size quantities being distributed among one of the following profiles:
The stores conform to the above profiles as follows.
Multiplying a forecasted demand for each store by the associated demand profile for the store generates the following planned quantities for each store (only 6 stores shown).
The planned order quantities for each store are not very large compared to the pack sizes. In general, each store needs approximately 4 or 5 packs to meet its needs. In this example, each store has a minimum order quantity of 24 units (3 packs) but no order maximum. There are no other constraints such as pack type constraints or total company order quantity constraints.
The pack purchase engine solves for each store's ideal order and then attempts to enforce constraints across stores. In this case, there are no cross-store constraints to meet, such as a total company order minimum or maximum constraint. The pack purchase engine generates the following result (only 6 stores shown).
This result has the following quantities and mismatch amounts per store (only 6 stores shown). In this example, the mismatch costs vary for each size and store but in general, over-stocking was preferred to under-stocking and so the cost of being over was slightly lower than the cost of being under.
A pack management engine may also be used for decision making after purchase orders are provided to a vendor and the vendor confirms units of the product to be delivered. At that point, a retailer may be able to direct units of the product to different distribution centers for subsequent distribution to stores using a pack distribution engine. Once units of the product are delivered to a distribution center, the pack distribution engine may also be utilized to determine how to distribute the delivered units of the product to stores associated with the distribution center.
A retailer may also have an opportunity to direct units of the product manufactured by a vendor to different distribution centers when the vendor identifies how many units that the vendor will provide. Purchase orders for units of the product may have identified to which distribution center the units of the product should be sent. However, in a number of situations, distributing according to the purchase order may be suboptimal. For example, demand for the product may have changed in the period of time between sending the purchase order to the vendor and completion of manufacture of the product. Additionally, amounts of the product delivered by the vendor may differ from amounts identified in the purchase order. The vendor may over or undersupply the units of the product ordered or alter the pack configurations, and the retailer may need to adjust accordingly. If the units of the product have not yet been delivered to the distribution centers, a pack distribution engine 1002 may perform distribution center splitting (DC Splitting) to determine the distribution of units of the product provided by the vendor to different distribution centers 1004, as shown at 1022. The pack distribution engine 1002 may further determine a store pack distribution plan 1006, as shown at 1024, based on the distribution center splitting determination at 1022.
The pack distribution engine may begin with a single-pack solution and incrementally improve the solution by examining other pack configurations and trading packs to improve the outcome for each store. After each store's initial pack configuration quantities have been determined, those quantities may be adjusted to account for other business constraints. At 1102, a pack distribution engine determines the single best pack at a store. The single best pack is determined by calculating how many inner packs of each available pack configuration could be provided before the need for any variation of the product is exceeded based on the demand levels of that store, assuming only a single pack configuration is used. The pack distribution engine determines the single pack configuration with the lowest mismatch cost at the sub-demand exceeding quantity as the best pack for that store. Each store may have a different best pack.
From the starting solution, the pack distribution engine attempts to add an inner pack to the initial pack configuration quantities for the store at 1104. If any available pack configuration can be added to the initial pack configuration quantity that will not violate a constraint (e.g., a store level constraint on pack types, a store level constraint on order quantity of the product) and reduces mismatch cost at the store 1106, then a single inner pack of that inner pack configuration is added to the initial pack configuration quantity. Inner packs may be added to the store initial pack configuration quantity until no improvement is found. Inner packs may also be added to fulfill minimum order constraints, such as a store level minimum quantity or a store level pack configuration minimum constraint. Such additions may be implemented even if mismatch costs would rise.
At 1108, the pack distribution engine attempts to remove an inner pack from a store initial pack configuration quantity order to improve mismatch costs for the store. If removing any inner pack can be done without violating any store level constraints and such removal improves mismatch costs, the inner pack is removed 1110. If a pack is removed, then the pack distribution engine may again attempt to add an available inner pack configuration to improve mismatch costs. Packs are removed at 1108, 1110 until no further improvement is found. Packs may also be removed to meet constraints such as store order maximums and store pack configuration maximums. Such removals may be implemented even if mismatch costs would rise.
At 1112, 1114, the pack distribution engine attempts to replace packs within each store with other available pack configurations to improve mismatch costs without violating constraints. In some instances, these replacements may not be one-for-one (e.g., remove two of a first inner pack configuration and replace with one of a second inner pack configuration, remove one of a first inner pack configuration and replace with three of a second inner pack configuration). If mismatch costs improve after the replacement, then the replacement in the initial pack configuration quantity is made. Each pack that is currently in the initial pack configuration quantity may be evaluated against each available pack configuration. The exchange step 1112 can also be performed to fix constraints in cases where the addition of an inner pack violates a constraint and the removal of an inner pack also violates a constraint. By exchanging inner packs, the pack distribution engine may be able to find a solution that satisfies all constraints. If an exchange is made that improves costs or fixes a constraint, the process begins again from the adding step. The process completes when no cost improvement can be made or when a maximum iteration counter is exceeded.
Having initial plans for distribution of units of product to stores, the pack distribution engine generates a distribution center pack distribution plan if units of the product have not yet been delivered to distribution centers, or the pack distribution engine generates a store pack distribution plan if the units of the product have already been delivered to the distribution centers. To generate a store pack distribution plan at 1115, the pack distribution engine adjusts the pack quantities at each store within each distribution center to reflect the quantity of each pack configuration available at the distribution center.
Generation of a distribution center pack distribution plan is illustrated at 1116, 1118, 1120. The pack distribution engine solution adjusts the pack quantities at each store to reflect the available quantity at the vendor at 1116 and also may ensure that packs that are to be delivered to distribution centers are “whole” 1118. That is, all inner packs among the stores associated with a single distribution center must add up to whole outer packs within the distribution center. The pack distribution engine adds or removes inner packs one at a time from the store that would incur the smallest mismatch cost at 1116. The pack distribution engine may favor stores for which the change will fix a constraint on either pack types or allocation quantity, and the pack distribution engine may avoid any store for which the change will break a constraint. The pack distribution engine may implement a fair-sharing of burden, such that no one store will have to accommodate all the excess or shortage in any allocation even if that is the “cheapest” solution.
At 1118, after the vendor quantity of packs is met, packs may be shifted among the stores of different distribution centers to accommodate the rounding to whole outer packs. The pack distribution engine may select a single donor store from a candidate distribution center at which the packs are not “whole”. The donor store selected is the store that incurs the smallest mismatch cost (or receives a benefit) when the pack is removed. A receiver store is selected from the remaining distribution centers at which this pack is not whole. The receiver store is the store at the remaining distribution centers that incurs the least cost (or receives a benefit) from accepting the pack. When selecting donor and receiver stores, preference is given to those stores for which a business constraint will be fixed by the change and stores for which a constraint will be broken are avoided. This is repeated until all packs are “whole” at all distribution centers.
Shifting inner pack configurations among stores may become processing inefficient when the amount of product provided by a vendor is vastly different from the amount of product expected. As noted above, a pack distribution engine may evaluate stores and adjust distribution plans a single pack at a time.
With reference to
The following example illustrates a distribution plan generation for a product with 4 sizes (S-M-L-XL). In this example, there are four packs available:
Each outer pack has 5 inner packs, so all packs contain 10 units which may be broken apart and shipped in pairs. The cost of handling an outer pack or an inner pack is $1.00. While it may seem counter-intuitive for the cost to be the same for handling either an outer or an inner, it is just an indication of the preference for shipping full outer packs. In this example, there are 958 stores, and the store size quantities are distributed among one of the following profiles.
Stores are associated with the demand profiles as follows.
The quantities are determined by taking a forecasted demand for a style/color and multiplying the forecasted demand by each size's profile percentage. The following table depicts the planned quantities for a subset of the stores.
Note that a negative demand is valid and indicates that the store is already over-stocked for a particular size. When there are excess units to allocate, it may be preferable to give an additional unit to a store that has no demand (a demand of 0 units) rather than a store with negative demand.
The store planned quantities are small compared to the pack sizes. The problem essentially breaks down into the decision of whether to send each size, in increments of 2 units, to a store or not. There are no constraints (e.g., pack type constraints or display quantity constraints within each store) in the example aside from the constraint on the quantity of each pack available for allocation. There are 11 distribution centers in the example, and the pack quantities are known at the vendor, meaning packs have not yet shipped to each distribution center. Thus, this is a DC-Split allocation. The following table depicts the amount of product available for delivery from the vendor.
The total number of units demanded at each store, by size, is as follows. These totals do not include negative demand.
The pack distribution engine determines the adjustments that must be made to compensate for the difference between the expected quantities and the available quantities from the vendor.
After meeting the constraints at the vendor in terms of packs available to allocate, inner packs may be exchanged among distribution centers to make each pack whole at each distribution center. The pack distribution engine generates the following solution for a DC-Split operation (only 5 distribution centers shown).
A disk controller 1360 interfaces with one or more optional disk drives to the system bus 1352. These disk drives may be external or internal floppy disk drives such as 1362, external or internal CD-ROM, CD-R, CD-RW or DVD drives such as 1364, or external or internal hard drives 1366. As indicated previously, these various disk drives and disk controllers are optional devices.
Each of the element managers, real-time data buffer, conveyors, file input processor, database index shared access memory loader, reference data buffer and data managers may include a software application stored in one or more of the disk drives connected to the disk controller 1360, the ROM 1356 and/or the RAM 1358. Preferably, the processor 1354 may access each component as required.
A display interface 1368 may permit information from the bus 1352 to be displayed on a display 1370 in audio, graphic, or alphanumeric format. Communication with external devices may optionally occur using various communication ports 1372.
In addition to the standard computer-type components, the hardware may also include data input devices, such as a keyboard 1373, or other input device 1374, such as a microphone, remote control, pointer, mouse and/or joystick.
While examples have been used to disclose the invention, including the best mode, and also to enable any person skilled in the art to make and use the invention, the patentable scope of the invention is defined by claims, and may include other examples that occur to those of ordinary skill in the art. Accordingly the examples disclosed herein are to be considered non-limiting.
It is further noted that the systems and methods may be implemented on various types of computer architectures, such as for example on a single general purpose computer or workstation, or on a networked system, or in a client-server configuration, or in an application service provider configuration. For example, the methods and systems described herein may be implemented on many different types of processing devices by program code comprising program instructions that are executable by the device processing subsystem. The software program instructions may include source code, object code, machine code, or any other stored data that is operable to cause a processing system to perform the methods and operations described herein. Other implementations may also be used, however, such as firmware or even appropriately designed hardware configured to carry out the methods and systems described herein.
In multiple computer or processor systems, data signals may be conveyed via networks (e.g., local area network, wide area network, internet, combinations thereof, etc.), fiber optic medium, carrier waves, wireless networks, etc. for communication among multiple computers or computing devices. Data signal(s) can carry any or all of the data disclosed herein that is provided to or from a device.
The systems' and methods' data (e.g., associations, mappings, data input, data output, intermediate data results, final data results, etc.) may be stored and implemented in one or more different types of computer-implemented data stores, such as different types of storage devices and programming constructs (e.g., RAM, ROM, Flash memory, flat files, databases, programming data structures, programming variables, IF-THEN (or similar type) statement constructs, etc.). It is noted that data structures describe formats for use in organizing and storing data in databases, programs, memory, or other computer-readable media for use by a computer program.
The systems and methods may be provided on many different types of computer-readable media including computer storage mechanisms (e.g., CD-ROM, diskette, RAM, flash memory, computer's hard drive, etc.) that contain instructions (e.g., software) for use in execution by a processor to perform the methods' operations and implement the systems described herein.
The computer components, software modules, functions, data stores and data structures described herein may be connected directly or indirectly to each other in order to allow the flow of data needed for their operations. It is also noted that a module or processor includes but is not limited to a unit of code that performs a software operation, and can be implemented for example as a subroutine unit of code, or as a software function unit of code, or as an object (as in an object-oriented paradigm), or as an applet, or in a computer script language, or as another type of computer code. The software components and/or functionality may be located on a single computer or distributed across multiple computers depending upon the situation at hand. It should be understood that as used in the description herein and throughout the claims that follow, the meaning of “a,” “an,” and “the” includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of “in” includes “in” and “on” unless the context clearly dictates otherwise. Finally, as used in the description herein and throughout the claims that follow, the meanings of “and” and “or” include both the conjunctive and disjunctive and may be used interchangeably unless the context expressly dictates otherwise; the phrase “exclusive or” may be used to indicate situation where only the disjunctive meaning may apply.
Claims
1.-30. (canceled)
31. A computer-program product comprising a non-transitory machine-readable storage medium storing instructions configured to cause a data processing apparatus to perform operations including: c D; c D,
- accessing information including: a value (a) representing an amount of a first variety of a product demanded at a store; a value (b) representing an amount of a second variety of the product demanded at the store; a value (c) representing a net amount of the product demanded at the store; a value (D) representing a pack capacity constraint, the pack capacity constraint specifying a quantity of the product held in individual packs during shipment of the product; and mismatch cost data representing anticipated costs of oversupplying and anticipated costs of undersupplying units of both the first variety and the second variety of the product;
- calculating anticipated cumulative mismatch costs associated with: shipping an oversupplying quantity of packs in distributing the product to the store, wherein the oversupplying quantity is a ceiling of
- and shipping an undersupplying quantity of packs in distributing the product to the store, wherein the undersupplying quantity is a floor of
- wherein calculating the anticipated cumulative mismatch costs includes: using a heuristic algorithm in defining a first candidate pack configuration associated with shipping the oversupplying quantity of packs and in defining a second candidate pack configuration associated with shipping the undersupplying quantity of packs, wherein the first and second candidate pack configurations specify distinct assortments of the first and second variety of the product within individual packs; and
- planning a shipment to include either: a first shipping arrangement involving the oversupplying quantity of packs filled in accordance with the first candidate pack configuration; or a second shipping arrangement involving the undersupplying quantity of packs filled in accordance with the second candidate pack configuration.
32. The computer-program product of claim 31, wherein using the heuristic algorithm in defining the first candidate pack configuration includes: aD c and a floor of aD c are the two candidate numbers.
- using a mismatch cost minimization heuristic in determining a quantity of the first variety and in determining a quantity of the second variety, wherein determining the quantity of the first variety includes selecting from amongst two candidate numbers, based on the costs of oversupplying and undersupplying units of the first variety of the product, wherein a ceiling of
33. The computer-program product of claim 32, wherein planning the shipment includes selecting either the first or second shipping arrangement based on the anticipated cumulative mismatch costs.
34. The computer-program product of claim 33, wherein, in selecting either the first or second shipping arrangement, the first shipping arrangement is selected, and wherein planning the shipment further includes: and wherein planning the shipment is done such that the complementary pack is used in the shipment.
- calculating a largest integer (x) for which: a product (z) of x and the quantity of the first variety is less than a; and a product (y) of x and the quantity of the second variety is less than b;
- determining a difference (p) between a and z;
- determining a difference (q) between b and y;
- defining a complementary pack configuration including a number (m) of the first variety of the product, and a number (n) of the second variety of the product, wherein defining includes determining m based on p, and determining n based on q,
35. The method of claim 32, wherein the mismatch cost minimization heuristic includes a rule followed in selecting from amongst the two candidate numbers.
36. The computer-program product of claim 32, wherein selecting from amongst the two candidate numbers is further based on a first hypothetical number of mismatch units of the first variety, wherein the first hypothetical number of mismatch units is an absolute difference between c and:
- a product of one of the two candidate numbers and the oversupplying quantity.
37. The computer-program product of claim 36, wherein selecting from amongst the two candidate numbers is further based on a second hypothetical number of mismatch units of the first variety, wherein the second hypothetical number of mismatch units is an absolute differences between c and:
- a product of another of the two candidate numbers and the oversupplying quantity.
38. The computer-program product of claim 32, wherein the quantity of the second variety is a number selected, from amongst two other candidate numbers, based on the costs of oversupplying and costs of undersupplying units of the second variety of the product, wherein a ceiling of bD c and a floor of bD c are the two candidate numbers.
39. The computer-program product of claim 32, wherein the quantity of the first variety of the product demanded at the store is greater than the quantity of the second variety of the product demanded at the store, and wherein using the greedy algorithm in defining the first candidate pack configuration further includes determining the quantity of the first variety before determining the quantity of the second variety.
40. The computer-program product of claim 32, wherein using the heuristic algorithm in defining the second candidate pack configuration includes: aD c.
- using the mismatch cost minimization heuristic in determining another quantity of the first variety and in determining another quantity of the second variety, wherein the another quantity of the first variety is a number selected from amongst two candidate numbers, based on the costs of oversupplying and the costs of undersupplying units of the first variety of the product, wherein the two candidate numbers include a ceiling and a floor of
41. A computer-implemented method, comprising: c D; c D,
- accessing information on a computing device, the information including: a value (a) representing an amount of a first variety of a product demanded at a store; a value (b) representing an amount of a second variety of the product demanded at the store; a value (c) representing a net amount of the product demanded at the store; a value (D) representing a pack capacity constraint, the pack capacity constraint specifying a quantity of the product held in individual packs during shipment of the product; and mismatch cost data representing anticipated costs of oversupplying and anticipated costs of undersupplying units of both the first variety and the second variety of the product;
- calculating anticipated cumulative mismatch costs associated with: shipping an oversupplying quantity of packs in distributing the product to the store, wherein the oversupplying quantity is a ceiling of
- and shipping an undersupplying quantity of packs in distributing the product to the store, wherein the undersupplying quantity is a floor of
- wherein calculating the anticipated cumulative mismatch costs includes: using a heuristic algorithm in defining a first candidate pack configuration associated with shipping the oversupplying quantity of packs and in defining a second candidate pack configuration associated with shipping the undersupplying quantity of packs, wherein the first and second candidate pack configurations specify distinct assortments of the first and second variety of the product within individual packs; and
- planning a shipment to include either: a first shipping arrangement involving the oversupplying quantity of packs filled in accordance with the first candidate pack configuration; or a second shipping arrangement involving the undersupplying quantity of packs filled in accordance with the second candidate pack configuration.
42. The method of claim 41, wherein using the heuristic algorithm in defining the first candidate pack configuration includes: aD c and a floor of aD c are the two candidate numbers.
- using a mismatch cost minimization heuristic in determining a quantity of the first variety and in determining a quantity of the second variety, wherein determining the quantity of the first variety includes selecting from amongst two candidate numbers, based on the costs of oversupplying and undersupplying units of the first variety of the product, wherein a ceiling of
43. The method of claim 42, wherein planning the shipment includes selecting either the first or second shipping arrangement based on the anticipated cumulative mismatch costs.
44. The method of claim 43, wherein, in selecting either the first or second shipping arrangement, the first shipping arrangement is selected, and wherein planning the shipment further includes: and wherein planning the shipment is done such that the complementary pack is used in the shipment.
- calculating a largest integer (x) for which: a product (z) of x and the quantity of the first variety is less than a; and a product (y) of x and the quantity of the second variety is less than b;
- determining a difference (p) between a and z;
- determining a difference (q) between b and y;
- defining a complementary pack configuration including a number (m) of the first variety of the product, and a number (n) of the second variety of the product, wherein defining includes determining m based on p, and determining n based on q,
45. The method of claim 42, wherein the mismatch cost minimization heuristic includes a rule followed in selecting from amongst the two candidate numbers.
46. The method of claim 42, wherein selecting from amongst the two candidate numbers is further based on a first hypothetical number of mismatch units of the first variety, wherein the first hypothetical number of mismatch units is an absolute difference between:
- c; and
- a product of one of the two candidate numbers and the oversupplying quantity.
47. The method of claim 46, wherein selecting from amongst the two candidate numbers is further based on a second hypothetical number of mismatch units of the first variety, wherein the second hypothetical number of mismatch units is an absolute differences between:
- c; and
- a product of another of the two candidate numbers and the oversupplying quantity.
48. The method of claim 42, wherein the quantity of the second variety is a number selected, from amongst two other candidate numbers, based on the costs of oversupplying and costs of undersupplying units of the second variety of the product, wherein a ceiling of bD c and a floor of bD c are the two candidate numbers.
49. The method of claim 42, wherein the quantity of the first variety of the product demanded at the store is greater than the quantity of the second variety of the product demanded at the store, and wherein using the greedy algorithm in defining the first candidate pack configuration further includes determining the quantity of the first variety before determining the quantity of the second variety.
50. The method of claim 42, wherein using the heuristic algorithm in defining the second candidate pack configuration includes: aD c.
- using the mismatch cost minimization heuristic in determining another quantity of the first variety and in determining another quantity of the second variety, wherein the another quantity of the first variety is a number selected from amongst two candidate numbers, based on the costs of oversupplying and the costs of undersupplying units of the first variety of the product, wherein the two candidate numbers include a ceiling and a floor of
51. A system, comprising: c D; c D,
- a processor configured to perform operations including:
- accessing information including: a value (a) representing an amount of a first variety of a product demanded at a store; a value (b) representing an amount of a second variety of the product demanded at the store; a value (c) representing a net amount of the product demanded at the store; a value (D) representing a pack capacity constraint, the pack capacity constraint specifying a quantity of the product held in individual packs during shipment of the product; and mismatch cost data representing anticipated costs of oversupplying and anticipated costs of undersupplying units of both the first variety and the second variety of the product;
- calculating anticipated cumulative mismatch costs associated with: shipping an oversupplying quantity of packs in distributing the product to the store, wherein the oversupplying quantity is a ceiling of
- and shipping an undersupplying quantity of packs in distributing the product to the store, wherein the undersupplying quantity is a floor of
- wherein calculating the anticipated cumulative mismatch costs includes: using a heuristic algorithm in defining a first candidate pack configuration associated with shipping the oversupplying quantity of packs and in defining a second candidate pack configuration associated with shipping the undersupplying quantity of packs, wherein the first and second candidate pack configurations specify distinct assortments of the first and second variety of the product within individual packs; and
- planning a shipment to include either: a first shipping arrangement involving the oversupplying quantity of packs filled in accordance with the first candidate pack configuration; or a second shipping arrangement involving the undersupplying quantity of packs filled in accordance with the second candidate pack configuration.
52. The system of claim 51, wherein using the heuristic algorithm in defining the first candidate pack configuration includes: aD c and a floor of aD c are the two candidate numbers.
- using a mismatch cost minimization heuristic in determining a quantity of the first variety and in determining a quantity of the second variety, wherein determining the quantity of the first variety includes selecting from amongst two candidate numbers, based on the costs of oversupplying and undersupplying units of the first variety of the product, wherein a ceiling of
53. The system of claim 52, wherein planning the shipment includes selecting either the first or second shipping arrangement based on the anticipated cumulative mismatch costs.
54. The system of claim 53, wherein, in selecting either the first or second shipping arrangement, the first shipping arrangement is selected, and wherein planning the shipment further includes: and wherein planning the shipment is done such that the complementary pack is used in the shipment.
- calculating a largest integer (x) for which: a product (z) of x and the quantity of the first variety is less than a; and a product (y) of x and the quantity of the second variety is less than b;
- determining a difference (p) between a and z;
- determining a difference (q) between b and y;
- defining a complementary pack configuration including a number (m) of the first variety of the product, and a number (n) of the second variety of the product, wherein defining includes determining m based on p, and determining n based on q,
55. The system of claim 52, wherein the mismatch cost minimization heuristic includes a rule followed in selecting from amongst the two candidate numbers.
56. The system of claim 52, wherein selecting from amongst the two candidate numbers is further based on a first hypothetical number of mismatch units of the first variety, wherein the first hypothetical number of mismatch units is an absolute difference between:
- c; and
- a product of one of the two candidate numbers and the oversupplying quantity.
57. The system of claim 56, wherein selecting from amongst the two candidate numbers is further based on a second hypothetical number of mismatch units of the first variety, wherein the second hypothetical number of mismatch units is an absolute differences between:
- c; and
- a product of another of the two candidate numbers and the oversupplying quantity.
58. The system of claim 52, wherein the quantity of the second variety is a number selected, from amongst two other candidate numbers, based on the costs of oversupplying and costs of undersupplying units of the second variety of the product, wherein a ceiling of bD c and a floor of bD c are the two candidate numbers.
59. The system of claim 52, wherein the quantity of the first variety of the product demanded at the store is greater than the quantity of the second variety of the product demanded at the store, and wherein using the greedy algorithm in defining the first candidate pack configuration further includes determining the quantity of the first variety before determining the quantity of the second variety.
60. The system of claim 52, wherein using the heuristic algorithm in defining the second candidate pack configuration includes: aD c.
- using the mismatch cost minimization heuristic in determining another quantity of the first variety and in determining another quantity of the second variety, wherein the another quantity of the first variety is a number selected from amongst two candidate numbers, based on the costs of oversupplying and the costs of undersupplying units of the first variety of the product, wherein the two candidate numbers include a ceiling and a floor of
Type: Application
Filed: Jan 30, 2014
Publication Date: Aug 7, 2014
Applicant: SAS Institute Inc. (Cary, NC)
Inventors: Teresa DePaola McMains (Sudbury, MA), Thomas Burkhardt (Cary, NC), Robert William Pratt (Raleigh, NC)
Application Number: 14/168,798
International Classification: G06Q 10/06 (20060101);