-
Notifications
You must be signed in to change notification settings - Fork 67
Order and inventory configuration
One of the most important properties among potential RMFS users is their different order profiles. While typical e-commerce orders consist of just a few lines in average (maybe even barely more than one line per order, consider your typical online-order), retail orders meant to replenish own shops in average consist of many lines with high quantities each (may easily be hundreds). Although, the latter may call for different automation solutions due to the volume and the shear physical size (large cases), it may still be interesting to handle a fraction of the inventory with an RMFS (e.g.: low frequency/low physical volume items) or all of it, if the physical size allows it. Furthermore, there are even more areas where an RMFS may be an interesting goods-to-person automation choice, e.g., material supply for production, spare-parts distribution, pharmaceuticals producers, etc.
Hence, it is important to analyze the specific situation of an RMFS user (or user group). In order to vary the most popular attributes of inventory and orders, RAWSim-O allows generating profiles for these.
The configuration (#SKUs, frequency distribution, etc.) can be chosen via the UI under Orders -> Simple item generation (see screenshot). The profile/configuration can be saved via the button. The config-file (.xgenc) must be located where RAWSim-O can find it during execution (same folder, Resources sub-folder, etc.) and must be set in the settings configuration (via the UI: Instances -> Setting configuration -> Inventory configuration -> SimpleItemConfiguration -> GeneratorConfigFile). Please use unique names to ensure that the right configuration is chosen by RAWSim-O.
Wording: Item-description is the RAWSim-O internal synonym for what typically is called SKU (stock keeping unit), i.e., the item-description distinguishes different distinct types of items that are stored in the RMFS. For example, a red t-shirt in size L, a yellow t-shirt in size S and a white coffee mug with a specific print. Furthermore, item-bundles are a number of items of one item-description. Hopefully, the following picture conveys an intuition for this:
The generator uses weights (can be understood as relative product frequencies) to later on determine the probability when choosing SKUs for each line of an order. An extension of this are product relations (co-weights) explained below.
Find a brief overview of the settings below:
- ItemDescriptionCount: The overall number of SKUs that will be generated.
- DefaultWeight: A probability that will be used, if no specific probability is given for a SKU.
- ProbWeightDistributionType: The distribution type to use for generating random SKU weights/frequencies. The distribution shape can be modified by the parameters given below (use the ones matching the distribution type).
- ProbabilityWeightConstant: The constant weight when using a constant distribution for the weights.
- ProbabilityWeightUniformMin/Max: The minimal and maximal weight when drawing random weights from a uniform distribution.
- ProbabilityWeightNormalMu/Sigma: The mu and sigma parameters when drawing random weights from a normal distribution.
- ProbabilityWeightExpLambda: The lambda parameter when drawing random weights from an exponential distribution.
- ProbabilityWeightGammaK/Theta: The k and theta parameters when drawing random weights from a gamma distribution.
- ProbabilityWeightLB/UB: The lower and upper bound to which range the distribution is truncated when generating SKU weights.
- WeightDistributionType: The distribution type to use for generating random physical item "weights" for the SKUs. The physical item weight determines how much capacity of a pod one unit of a given SKU uses (to somewhat reflect volume/weight). The distribution shape can be modified by the parameters given below (use the ones matching the distribution type).
- ItemWeightMu/Sigma: The mu and sigma parameters when drawing random physical item weights from a normal distribution.
- ItemWeightLB/UB: The lower and upper bound to which range the distribution is truncated when generating SKU physical item weights.
- SupplyBundleSize: Indicates whether the bundle size is fixed per SKU and drawn from the distribution described by the parameters below (true), or randomly chosen per generated bundle according to the parameters set in the settings configuration (false).
- BundleSizeDistributionType: The distribution type to use for generating random bundle-size information per SKU. The distribution shape can be modified by the parameters given below (use the ones matching the distribution type).
- BundleSizeMu/Sigma: The mu and sigma parameters when drawing random bundle-sizes from a normal distribution.
- BundleSizeLB/UB: The lower and upper bound to which range the distribution is truncated when choosing the bundle size.
If gnuplot (gnuplot link) is available, the files exported alongside the config file (.xgenc) can be used to generate plots providing an overview of the profile. Simply execute the gnuplot script (.gp) with gnuplot. Find an overview of the files in the screenshot below. Furthermore, there are some sample plots provided below.
Number of SKUs grouped by frequency:
Frequency profile of the SKUs:
Cumulative frequency profile of the SKUs:
Probabilities of the individual SKUs (based on their main weight):
Physical size (weight/volume) distribution of the SKUs:
Replenishment quantity distribution of the SKUs:
Disclaimer: Co-weight settings are experimental and hard to configure realistically. These should only be used, if required / relations are important to the experiment. Please leave these settings at their defaults, if not required.
There are also some more experimental settings that aim to emulate relations between products to be reflected. I.e., if a customer buys a camera, it is likely that a fitting camera bag is part of the same order. The generator aims to emulate these features by randomly distributing the SKUs in 2-dimensional space and basing their "co-weights" on their distances to each other. For each order RAWSim-O selects the first SKU on their actual probability and each following one on the co-probabilities depending on its predecessor line (if co-weights are given for the SKU; otherwise the main probability is used). Obviously, a large amount of these "co-weights" need to be generated, if all relations shall be considered (#SKUs X #SKUs). Therefore, it is possible to only supply these for a subset. Certainly, this is not the best way for integrating item relations, as quantifying and understanding their relations is not straightforward.
Find a brief overview of these settings below:
- ProbToUseCoWeight: The probability to use the co-weight (if given) over the main weight of the respective SKU. If 1 is set, the co-weight will always be used for all of the lines generated except for the first.
- DefaultCoWeight: The default weight that is used, if no specific co-weight information is given for the respective SKU.
- GivenCoWeights: The amount of explicit co-weights to generate compared to all SKUs. E.g., if 0.1 is set, 10% of the SKUs will get explicit co-weight/SKU relation information to all other SKUs.