PickupSimulo–Prototype of Intelligent Software to Support Warehouse Managers Decisions for Product Allocation Problem

Featured Application: The results of the proposed research could be a useful tool in the selection of products classiﬁcation while planning products allocation in a warehouse. Proposed model, as a developed software, can support the decision and decrease the risk of the inappropriate choice of product location planning. Based on the proposed research and the application of the proposed model Pickup Simulo, we can expect the reduction in the total warehouse costs to be between 10 and 16 per cent. The research results are, therefore, of signiﬁcant importance for warehouse management. Abstract: In this paper, a new model supporting decisions about product allocation in an order-picking shelf warehouse is presented. Industry 4.0 pays attention to inciting the processes, self-analysis and self-optimization of the short response time to market changes, and the maximum use of related data. Methods for solving the product allocation problem (PAP) are not enough to meet the requirements of Industry 4.0. The authors present a new approach for solving PAP. The novelty introduced in the model is based on correlated data—products parameters, clients’ orders and warehouse layout. The proposed model contains elements of intelligence. The model, after product classiﬁcation and allocation, analyzes its e ﬀ ectiveness by a simulation of the order-picking process. The application of artiﬁcial neural networks (ANN) as a part of the computing model enables the analysis of large data sets in a short time. The presented study has proved the proposed model, both for practical and scientiﬁc purposes. Relying on the research results, the total warehouse cost could be reduced by 10 to 16 per cent. With the use of the proposed model, it is possible to predict the e ﬀ ect of future actions before their execution. The model can be implemented in most conventional warehouses to raise the throughput performance of the order-picking process.


Introduction
Modern e-commerce allows companies to compete not only on a local but also on a global scale [1]. From the perspective of the global market, it is not important where the product comes from, but how much time and resources it takes for a shipment delivery to reach a target customer. The costs of material handling and final transportation are often a significant part of the total cost of a product, especially for products of relatively small value [2].
In the 21st century, a new ideology, Industry 4.0, was formed. With the growth of technology, the large base of data and customer expectations forced the companies to be more effective.

Literature Review
The product allocation problem has been analyzed in many research papers in the research community. The interesting solution was proposed by Ahmed et al. [17]. The authors present a new approach to the evaluation of the supplier of products and the allocating of the optimal order quantity from each supplier concerning the ecology and resilience of the transport chain. The obtained weights from the analytical hierarchy process (AHP) and the technique for order of preference by similarity to ideal solution (TOPSIS) were integrated. This integration enables the development of a multi-objective model used as an order allocation planner. The "ε-constraint" model was used to solve the multi-objective optimization problem [18]. The "ε-constraint" algorithm aims to optimize one objective function while considering all other objective functions as constraints. For solving similar problems, the CPLEX software can be used. Ballesteros-Riveros et al. [19] focus on the research on the problem of allocation to the proper area by the criterion of time horizon in a food company. The algorithm identifies the operation area and the corresponding spaces that are required for the allocation of products [19]. Xiaocheng Li et al. [20] propose a novel shipping mechanism "Predictive Shipping", which utilizes demand prediction to arrange a ship before orders are placed. They have formulated and solved a large-scale products allocation problem across warehouses [20]. Zapata-Cortes Julian Andres et al. [21] present a mathematical model for solving the product allocation problem based on the genetic algorithm (GA) [21]. The authors calculate the distances for product order-picking to minimize the routing distances. In 2013, a research team from Italy [22] proposed a mathematical model for the multi-level product allocation problem with compatibility constraints. The goal of this research was to reduce, as much as possible, the delivery times, the inventories and the total logistic costs, and to guarantee, at the same time, higher service levels. Researchers used the mathematical modeling sensitivity analysis, then iterated local search-based heuristic was used to reduce the computing time. Two years later, a similar team compared the heuristics for solving the product allocation problem in the multi-level warehouse. This authors present a rollout-based heuristic whose performances are evaluated on the basis of a detailed computational phase, including also a real case study and comparing it with iterated local search-based heuristic and cluster-based heuristic [23].
Many research studies focus on the allocation of a product in the supply chain network. For example, Soleimaninanadegany Amin et al. [24] use a GA for distribution centers, considering processing cost, demand, capacity and related constraints [24]. In 2003, Gengui et al. [25] proposed using the genetic algorithm to allocate a set of customers to multiple warehouses. The proposed solution procedure utilizes a genetic algorithm that is designed to find Pareto optimal solutions for this problem in a short period. Shan Zhu et al. [26] proposed the method for the optimization of product category allocation in multiple warehouses to minimize the splitting of online supermarket customer orders. Multi-item customer orders often need to be split into multiple shipments because the ordered items may be stored in different warehouses. The method developed by the authors used a heuristic clustering algorithm to optimize the product category allocation among multiple warehouses based on the distribution of multi-item orders to minimize the total number of order splits.
According to a literature review, there is a lack of models to support the product classification and allocation problem in modern warehouses. The available literature and market solutions allow for simulating the order-picking process and efficiency analysis. Neither of them, however, allow the easy planning of product allocation in warehouses. Therefore, a new model for product allocation in a shelf order-picking warehouse has been proposed in our research study.
This paper is organized as follows. The paper begins in Section 1 with an introduction to the problem domain, while the literature review on product classification is presented in Section 2. Section 3 concerns a model for the classification of products and the efficiency analysis of order-picking. Section 4 presents the implementation of the described model in the framework of the simulation method. In Section 5 the performance of the products classification and allocation model is evaluated based on the case study. Section 6 includes the main conclusions and discussions.

General Assumptions
The following assumptions regarding the type of warehouse have been considered for the development of the proposed model for product allocation: • The warehouse structure is described in a matrix form. This allows for calculating the distances between individual points in a warehouse, including warehouse parameters such as rack width (W) and rack length (L), the width of a picking aisle between storage racks, and the number of picking and cross-warehouse aisles; • The warehouse does not employ "goods-to-man" order-picking systems, e.g., S/R (Storage/Retrieval) machines and conveyors in the product storage area. All orders are completed by the order-pickers using forklifts and order-picking trucks in the storage area. The beginning and conclusion of the order-picking process take place in the packaging area of the warehouse; • The order-picking process can be supported by any warehouse management system (WMS) and automatic identification tools (terminals); • The warehouse can store products with significant weight and volume differences; • It is permissible to have a separate storage area in the warehouse for goods with different characteristics; • The velocity profile is based on the normal distribution and the average velocity configuration (v const).

The Model Description
The developed model uses as the input data sales data (clients order-picking lists), stored products properties, and the warehouse layout. The input data are analyzed to find the correlation between products. Standard product classification methods (ABC analysis, XYZ analysis, Index COI), along with the authors' method for determining a relationship between products (frequency of occurrence in the clients' orders), are used.
The proposed model is presented in Figure 1 as a block diagram.
The results of the products classification are then compared with the products' parameters and the demand for the product by statistical analysis. Next, the best classification method and the most important classification criterion are used further for the automatic preparation of teaching data sets for the artificial neural network. After teaching the ANN, the simulations of product classification and allocation are executed. Furthermore, the performance analysis is accomplished, and the ANN structure is modified. The simulations, performance analysis and ANN structure modification are repeated in a sequence until the stop condition is reached (the improvement of the results is low, or the simulation time is too long). On reaching this condition, the model gives a value of the products classification and the product allocation layout. The results of the products classification are then compared with the products' parameters and the demand for the product by statistical analysis. Next, the best classification method and the most important classification criterion are used further for the automatic preparation of teaching data sets for the artificial neural network. After teaching the ANN, the simulations of product classification The developed model has the features of artificial intelligence. It searches for correlations between the output and the results of the "classical" analysis, which are used for establishing a set of "learning data and targets" for the learning process of ANN. According to the results obtained from artificial neural networks (ANN), the model performs the simulation automatically, evaluates the efficiency of the obtained solution, and corrects the structure of the ANN. Work done by the analyst has been minimized, e.g., the introduction of parameters describing the structure of the warehouse and the selection of classification criteria (relevant for the particular warehouse).
The main differences between the proposed model and models used in the literature so far are shown in Table 1. The ability to adapt to changes in demand, assortment (with parameters) and storage conditions Yes-automatic for each of them For demand, and just for the basic data of assortment [13][14][15] Analyzing the quality of the result Yes-automatic analysis of results is based on simulation No, just by additional works 1

Input data
List of products with parameters, products demand, warehouse structure, the velocity of forklifts, picking lists List of products with basic parameters, products demand 2 Output data Product classification, location of products in the warehouse Product classification 2 1 -the distance is not calculated for the classification method but for studies related to picking. 2 -studies related to the ABC, XYZ, COI, EIQ models.
The comparison of the proposed method to the other method presented in the research paper is in Table 2.

Sub-Modules of the Presented Model
In continuation, the sub-modules of the proposed model will be presented and discussed.

Warehouse Structure Generation Module
The proposed model can be implemented in most general warehouses, i.e., those with a storage rack system for storing products on pallets. The parameters for the storage compartments have to have the same dimension due to a matrix-parametric description of the warehouse structure. Multiplying the storage compartments both in the horizontal and the vertical direction gives a storage rack with columns and tiers.
In this particular model, it is necessary to define additional parameters for the dimensions of the storage racks and picking aisles, as well as locations where the picking aisles between the storage racks are situated. The warehouse structure is described by a transition matrix, the so-called incident matrix. Therefore, the structure of the warehouse storage area can be written in the form of a W transition matrix.
For example, for a warehouse with eight (8) storage racks, four (4) picking aisles and one (1) cross-warehouse aisle in the middle, the warehouse structure in the form of a matrix may be presented as follows: The W sample matrix includes four picking aisles along the storage rack and one cross-warehouse aisle. The packing area always has the location coordinates r (0,1). This location lies outside the W matrix so that it cannot be switched with the location in the storage area. This solution is quite common in small and medium-sized warehouses. In addition to the warehouse layout reflecting the product storage area, it is also important to consider the number of storage tiers. They can be represented with a vector showing the access (travel) time to each tier in the storage rack. This (travel) time depends on the transport means (forklift truck) used to store/retrieve the products to/from the warehouse. The W matrix, together with the parameters describing the warehouse structure, fully reflects its actual parameters. Based on the matrix W, a matrix D is created representing the access (travel) times from the packing location r (0,1) to each single (selected) tier (storage compartment) of the storage rack.
The matrix D contains values with access times for pallets' places in racks, and a "0" value for the locations of aisles. For example, for 12 matrix rows (8 of them are representing racks rows), 12 racks in each, and one cross-warehouse aisle, the D matrix for the first level of storage will be as follows: Relying on the determined matrix D, it is possible to order individual pallets according to their importance by sorting them according to access times. The racks with the shortest access time will be able to store major goods. The lifting time is defined by the type of forklift. This time is determined by the vector. The value in the vector represents the time of picking products from the exact tier of the storage rack. The example of this vector for a high-level order-picker forklift is t(p) = [0; 58; 116; 174; 232; 290; 348; 406].

ANN Input Data Choosing Module
The input data module allows the analysis of a statistical relationship between input data and order-picking times. In the case of expressive dependencies, this module determines (see Table 3) the weights, adjusting the results of product classification for each model. For each pair (input parameter and product classification method), the module checks the value of the coefficient p, which, for all possible pairs, is less than 0.05 (it is a statistical linear correlation between the values in the pair at the 5% significance level). The correlation coefficient is next calculated on a scale from −1 (strong inversely proportional correlation) to +1 (strong directly proportional correlation). The graphs showing the relationships for individual pairs are shown in Figure 2. The correlation coefficients are shown in Table 3.

ANN Target Selection Module
Weight coefficients (w) are based on the calculation of the average categories (k), returned as results from the different product classification (n) methods (4): For the selected case study, the module has obtained the following weighting factors (5): The final category (kmain) employed in the learning process of ANN is described in expression (6):

ANN Learning Module
The developed system allows integration with the MatLab software to model ANN. MatLab provides many algorithms for ANN training. Applying different learning algorithms results in different outcomes [27], some of which are used in this publication. As a function of the objective, minimization of the mean square error (MSE) was assumed. The consequential floating-point results were mathematically rounded off to the integers corresponding to the class of product affiliation.

ANN Target Selection Module
Weight coefficients (w) are based on the calculation of the average categories (k), returned as results from the different product classification (n) methods (4): For the selected case study, the module has obtained the following weighting factors (5): The final category (k main ) employed in the learning process of ANN is described in expression (6):

ANN Learning Module
The developed system allows integration with the MatLab software to model ANN. MatLab provides many algorithms for ANN training. Applying different learning algorithms results in different outcomes [27], some of which are used in this publication. As a function of the objective, minimization of the mean square error (MSE) was assumed. The consequential floating-point results were mathematically rounded off to the integers corresponding to the class of product affiliation. Afterwards, statistical analyses were performed to determine which of the methods allows one to designate a category of products that would allow for shorter order-picking times. Among the available learning algorithms, the most popular ones were used, e.g., [28]: • Trainoss-One step secant backpropagation; • Traingd-Gradient descent backpropagation; • Trains-Sequential order incremental training with learning functions; • Trainlm-Levenberg-Marquardt backpropagation.
To select the best learning algorithm, the simulations for the same model with different learning algorithms were done. The learning algorithms were compared by the quality of the simulation result. The criterion for selecting this algorithm was the minimization of the order-picking time. The achieved results are presented in Figure 3.
Appl. Sci. 2020, 10, x FOR PEER REVIEW 11 of 29 Afterwards, statistical analyses were performed to determine which of the methods allows one to designate a category of products that would allow for shorter order-picking times. Among the available learning algorithms, the most popular ones were used, e.g., [28]: • Trainoss-One step secant backpropagation; • Traingd-Gradient descent backpropagation; • Trains-Sequential order incremental training with learning functions; • Trainlm-Levenberg-Marquardt backpropagation.
To select the best learning algorithm, the simulations for the same model with different learning algorithms were done. The learning algorithms were compared by the quality of the simulation result. The criterion for selecting this algorithm was the minimization of the order-picking time. The achieved results are presented in Figure 3. As can be seen in Figure 3, the most different results, with comparison to others, are obtained after applying the trains learning function-a sequential method of modifying weights with a learning function. By making a preliminary review of statistical data, it can be concluded that the trainlm function can achieve the best result since it has the lowest average value and median, while maintaining the smallest standard deviation, scope and maximum duration of order-picking (Table  4). For a selected case study, the following relationship of training data sets was made: • 70% of the collection-training data; • 15% of the collection-validation data; • 15% of the collection-testing data.
During data preparation, the following Matlab functions were applied: Mapminmax, Removeconstantrows.
The Mapminmax function is used to normalize the input data, which also reduces the necessary calculation time. Before training, the inputs and targets are scaled so that they always fall within a specified range. The function mapminmax scales inputs and targets so that they fall in the range [−1,1]. As can be seen in Figure 3, the most different results, with comparison to others, are obtained after applying the trains learning function-a sequential method of modifying weights with a learning function. By making a preliminary review of statistical data, it can be concluded that the trainlm function can achieve the best result since it has the lowest average value and median, while maintaining the smallest standard deviation, scope and maximum duration of order-picking (Table 4). For a selected case study, the following relationship of training data sets was made: • 70% of the collection-training data; • 15% of the collection-validation data; • 15% of the collection-testing data.
During data preparation, the following Matlab functions were applied: Mapminmax, Removeconstantrows.
The Mapminmax function is used to normalize the input data, which also reduces the necessary calculation time. Before training, the inputs and targets are scaled so that they always fall within a specified range. The function mapminmax scales inputs and targets so that they fall in the range [−1,1].
The original network inputs and targets are given in the matrices p and t. The normalized inputs and targets pn and tn contain the settings; in this case, the minimum and maximum values of the original inputs and targets. After the network has been trained, the ps settings should be used to transform any future inputs that are applied to the network. They effectively become a part of the network, just like the network weights and biases.
If mapminmax is used to scale the targets, then the output of the network will be trained to produce outputs in the range [−1,1]. To convert these outputs back into the same units that were used for the original targets, the settings ts have been used.
The network output corresponds to the normalized targets tn. The unnormalized network output is in the same units as the original targets t.
If mapminmax is used to preprocess the training set data, then whenever the trained network is used with new inputs they should be preprocessed with the minimums and maximums that were computed for the training set stored in the settings ps. The code (12)(13)(14) applies a new set of inputs to the already-trained network.
For most ANNs in the MatLab software, including feedforwardnet, the described steps are done automatically, so there is only one need to use the sim command.
It is assumed that (X) has only finite real values, and that the elements of each row are not all equal. If x_max = x_min or if either x_max or x_min is non-finite, then y = x, and no change occurs.
The Removeconstantrows function is responsible for removing inputs consisting of equal values (16). Any NaN (Not a Number) values in the input matrix are treated as missing data and are not considered as unique values. So, for example, removeconstantrows removes the first row of the matrix.

ANN Simulation Module
The ANN structure has been selected based on the method of successive approximation. The different structures (different number of layers and number of neurons in it) were examined and the next structure was determined, based on the results from the simulation. Then results from both simulations were compared to propose another structure. The selection of the network structure was made by assessing the mean square error (MSE).
For the network training the following parameters were assumed: 1. Epochs: 1000; 2.
The model finds the optimal structure of the network-self-learning. This self-learning is done by a change of the neuron's weight in the ANN, and it simulates the performance of order-picking. If the quality of the model after changing the structure is better, this structure is chosen. After this, the change in the weight of ANN and the performance analysis is done again. This loop is done until the stop condition is achieved (number of loops). The final structure of the ANN was chosen for the network of high quality-the results from the simulation are similar to the real data. The best results have been obtained by a multilayer unidirectional feedforward type network consisting of three hidden layers. A simplified diagram of the applied neural network is shown in Figure 4. Figure 5 shows an example of a graph of a mean square error that occurred during the process of learning for a selected network structure and for an exemplary structure that was not considered optimal.
Appl. Sci. 2020, 10, x FOR PEER REVIEW 13 of 29  Feedforward networks are characterized by the specific direction of signal flow-it is for the specified input to output on which the network provides an established solution. Feedforward networks are both the most commonly used and most useful. In the first hidden layer, 10 neurons were used, in the second, 20, and in the third, 5. In all hidden layers, the tangential activation function was applied. The input data used were the number of units sold per year, the product's popularity, its weight, and the volume.
For the selected network structure, a histogram of network learning errors has been generated and shown in Figure 6. The developed ANN structure gives high-quality results-similar to the target values ( Figure 6, on left). It can be noticed that the output values from the training ANN are similar to the target value. This proves that the developed model enables us to achieve very similar results to the real ones.  Feedforward networks are characterized by the specific direction of signal flow-it is for the specified input to output on which the network provides an established solution. Feedforward networks are both the most commonly used and most useful. In the first hidden layer, 10 neurons were used, in the second, 20, and in the third, 5. In all hidden layers, the tangential activation function was applied. The input data used were the number of units sold per year, the product's popularity, its weight, and the volume.
For the selected network structure, a histogram of network learning errors has been generated and shown in Figure 6. The developed ANN structure gives high-quality results-similar to the target values ( Figure 6, on left). It can be noticed that the output values from the training ANN are similar to the target value. This proves that the developed model enables us to achieve very similar results to the real ones. Feedforward networks are characterized by the specific direction of signal flow-it is for the specified input to output on which the network provides an established solution. Feedforward networks are both the most commonly used and most useful. In the first hidden layer, 10 neurons were used, in the second, 20, and in the third, 5. In all hidden layers, the tangential activation function was applied. The input data used were the number of units sold per year, the product's popularity, its weight, and the volume.
For the selected network structure, a histogram of network learning errors has been generated and shown in Figure 6.  Feedforward networks are characterized by the specific direction of signal flow-it is for the specified input to output on which the network provides an established solution. Feedforward networks are both the most commonly used and most useful. In the first hidden layer, 10 neurons were used, in the second, 20, and in the third, 5. In all hidden layers, the tangential activation function was applied. The input data used were the number of units sold per year, the product's popularity, its weight, and the volume.
For the selected network structure, a histogram of network learning errors has been generated and shown in Figure 6. The developed ANN structure gives high-quality results-similar to the target values ( Figure 6, on left). It can be noticed that the output values from the training ANN are similar to the target value. This proves that the developed model enables us to achieve very similar results to the real ones. The developed ANN structure gives high-quality results-similar to the target values ( Figure 6, on left). It can be noticed that the output values from the training ANN are similar to the target value. This proves that the developed model enables us to achieve very similar results to the real ones.

Product Classification and Allocation Module
Another module is the classification and simulation one, consisting of three steps: product classification, placement planning and order-picking simulation. In the product classification step, the user can select one of the classification methods, such as the association search algorithm, ABC analysis combined with XYZ analysis, or solo ABC analysis, as well as a model linking them to the COI Index and the author's algorithm for the relationships search. For the last two methods, a user should also specify the criterion of analysis-product popularity, number of units sold, weight or volume. In the simulation settings, a user only has to select the product classification model used together with the criterion and then specify the number of pick lists to be included in the simulation. Other simulation settings are defined in the program's initial settings-the ANN structure generation module and core system settings-so a user does not need to re-enter them. Once the selection is confirmed, the program simulates successively calculating the time to go to the rack and retrieve a specified number of items from it. The result of the simulation is the order-picking time, the penalty resulting from the need to change the order of products on the pick-up truck (additional time) and the total order-picking time with the penalty. In addition, the program provides statistical picking data, from the average stock level through the total number of items in the order, and warehouseman movement speed up to a number of items in the list, as well as total weight and volume.
ABC analysis is the most commonly used analysis to classify products. Classic ABC analysis allows for dividing items into three groups with a percentage share of A-80%, B-15%, C-5%. Variations of this analysis can be found. They isolate more groups in a properly adjusted percentage share. ABC analysis is a one-criterion analysis so it is not possible to take several input parameters simultaneously into account. However, it is possible to do several analyses, taking another as a criterion feature, and then to synthesize the results by taking the appropriate weight for each criterion (analysis result) [29]. The mentioned analysis is most often performed according to the criteria [30][31][32]: − sales value or gain from sales; − the frequency of picking; − delivery size; − weight and volume.
ABC analysis is often compared with the Pareto-Lorenz classification, whereby class A, consisting of 20% of all items, generates 80% of the total value of the set.
XYZ analysis allows for supplementing the ABC analysis with an additional criterion by making a classification within already isolated groups. The criterion most commonly used in XYZ analysis is the regularity of consumption based on historical sales data. Unlike ABC analysis, where the popularity of the product or the number of units sold is analyzed, the XYZ analysis allows independent evaluation based on an individual factor for each product. The basic assumptions are the same for both of the aforementioned analyses, e.g., the period used for the calculation must be common to all products and the compliance of the period and measuring units must be ensured. XYZ analysis is performed in the following steps: Step 1-A compilation of data from equal periods. However, the greater the number of periods, the better the results will be; Step 2-A calculation of the average number of units sold (7) for each product: Step 3-A calculation of standard deviation (8): Step 4-A calculation of the coefficient of variation (9) for each product: Step 5-Sorting out the product list in ascending order by the value of the coefficient of variation V i ; Step 6-Defining limit values for each group. Usually, the values of the share are Step 7-Allocation of products to groups: X ∈ (0; 0.2]; Y ∈ (0.2; 0.4]; Z ∈ (0.4; 1]. As a result of the analysis, the products are divided into XYZ groups, and it is assumed that [12]: • The X group consists of products that are used regularly. It should have the monitoring system which is synchronized with the demand. It is not required to create large stocks of goods; • The Y group is characterized by considerable variability, which makes it difficult to see and use certain patterns, such as seasonality. It is necessary to develop an appropriate level of stockholding; • The Z group consists of occasional products. It is necessary to choose between creating a stock that will be stored for a long period and on-demand supplies that will require the incurrence of higher expenses.
The developed system allows for combining the results provided by XYZ analysis with ABC analysis.
The COI Index (cube-per-order index) allows classifying products in the simplest way [13]. This model provides bi-criterion analysis, and the criteria are product size and the demand. The size of the product can be defined by its volume or weight, while the demand by the number of products picked (popularity) or the average demand. The COI Index is calculated as follows (10): By applying the calculated COI Index to distribute products so that the items with the lowest factor are as close to the packaging/delivery area as possible, the path travelled by the largest/heaviest products is shortened. Making a number of goods conditional on the demand allows for striking a balance between these two criteria [30].
The additional advantage of this model is that frequent changes in the order of products on the trolley are avoided, while completing the products within a large weight range and planning the picking process of several orders in one pass from the farthest point to the release zone. Such changes are necessary if there is a risk of damaging the lighter product with the heavier one. Employing the COI Index model indirectly reduces the time required for the product to be transferred, and as a result, reduces the duration of the complete picking. It is possible to use the classic ABC model by double-taking it-once with the weight criterion, and again with the demand for the product criterion. The next step is to determine the weighting factors to compile the results of both analyses. However, with a large assortment, the use of the COI Index will be a much faster method.
The COI Index is particularly useful for the free allocation storage method. In most cases, it has an informational and decision-making function and contributes to the reduction of picking time without the need for complex calculations or analyses. The literature on the subject provides information on the use of the COI Indexes to divide products into ABC groups [33]. For this reason, the COI Index model happens to be wrongly associated with ABC analysis.
The search algorithm for relationships between products. One of the authors' developed models is the algorithm for determining correlations between products. This is automatic. The application generates a list of pickups according to the configuration settings of the simulation. Consequently, using the author's algorithm, it calculates the number of product appearances in pairs on the pick lists and writes them to the matrix. The last step is to generate a set of potential pick lists with different product appearances.
When classifying products, the relationships between them, e.g., the frequency of occurrence on the picking lists, can be used as a criterion for allocation. In such a case, the placement of products is based on the list of products sorted by the greatest number of appearances on the picking lists. Such a solution is not entirely correct as it does not reflect the relationships between the individual products, focusing only on the frequency of their sales. Every link should be contained in the matrix of relationships to take into account the relationships between products. The main problem is the arrangement of products, such that the products that more frequently occurred together on the lists were allocated close to each other. To solve this, a model has been developed to organize the products according to the previously mentioned matrix of relationships.
The methodology for sorting products on the picking lists according to the links between them can be presented in the following steps: Step 1-Creating the matrix A, the matrix of frequencies occurring on the picking lists (11) Step 2-Counting the sum s u (12) of rows of the matrix A Step 3-Entering the sum s u to matrix S (13) S = id prod1 id prod2 · · · id prody s u1 s u2 · · · s uy (13) Step 4-Determination of the identifier (ident) for the element of the highest value in matrix S. If several elements have the same maximum value, then all identifiers must be read; Step 5-Rewriting element values from matrix A to the new matrix B for predetermined identifiers (ident); Step 6-Assigning the identifier to vector W that stores IDs for products arranged by several links in decreasing order; Step 7-Reading product IDs for identifiers idx and idy of the element of the highest value in matrix B; Step 8-If several elements have the same maximum value, then IDs should be read for the value which corresponds to the element of the highest value in matrix S; Step 9-Verification of whether idx or idy are in vector W; If they are not, both values idx and idy must be added to the vector W before the next step. It they are, proceed to the next step; Step 10-Replacing the current value in matrix B with a value 0 for the maximum selected in step 7; Step 11-Adding values from matrix A to the B element of the identifier (ident) that was the last one added. Checking the condition (14), If it is fulfilled, then the algorithm can be terminated. If it is not fulfilled, then proceed to the next step; Step 12-Verification of whether the number of values in vector W is equal to the number of analyzed products.
If it is, then the algorithm can be terminated.
If it is not, go back to step 7. The product allocation in the warehouse was based on the designation of the location characterized by the shortest access time from the packaging zone described by the formula (15).

Efficiency Analysis Module
The assessment of the storage processes' efficiency can be performed in terms of different criteria, including (a) the duration of picking, (b) the route of picking, and (c) resource consumption (human labor, costs, transport). The developed system as a criterion of efficiency adopts the duration of order-picking.
To evaluate the effectiveness of the picking process that results from the applied model of product distribution in the warehouse, it is important to apply a model that allows high precision so as to reflect the processes occurring in a real warehouse.
According to the picking lists, a picking route was planned using a model applied in the majority of medium-sized companies that have their warehouses, i.e., determining the order-picking route based on the closest point to the current location of a warehouse employee. This model also contemplates the need to intervene in the order of products on a picking table in the event of the risk that a smaller product can be crushed by a larger one-sensitivity to stacking.
The model can be implemented in most of the conventional warehouses, i.e., those where the products are stored in rows in the storage area. There can be many parameters of the racks; however, all the racks must be the same, which is important because of a matrix-parametric description of warehouse structure. The number of storage levels is irrelevant; the warehouse may have several levels of storage (Lorenc and Lerher, 2019). Incidence matrix was used to describe the structure. Accordingly, the structure of the warehouse storage surface can be expressed as an incidence matrix W (16).
For the precision of further considerations, the following notation is used r xy ≡ r(x,y). The W matrix along with the parameters describing the structure of the warehouse fully reflects its real dimensions. Based on the W matrix, a D matrix was constructed that mirrors access time from packaging area r(0,1) to each rack located in the storage area.
Before completing the values in matrix D it is necessary to fill in the W matrix. The movement time from the packaging area to the first product on the picking list has been described by formula (17).
t(x, y, p) = t lp (D lr (y)·(x − c l (x)) + d cr ·c l (x)) +t lp (D wr (y)·(y − c w (y)) + d cr ·c w (y)) + t a + t(p) For further calculations, in the paper, the time of lifting and lowering forks t(p) on a given storage level was assumed based on the technical data of a standard high storage forklift truck.
Besides, this requires a time correction t p if the rack is facing the packaging zone, because it will not be necessary to travel an extra distance equal to the width of the corridor between the rows. Therefore, the correction takes the forms of equation (18).
After completing the entire D matrix with the access times to a given spot, it is important to exclude the values with access times to spots that are not storage spots (are aisles). Racks with the shortest access time will be used to store key goods.
To analyze the total picking time, it is important to determine each time the movement time around the warehouse for each item on the picking list. Due to a large number of combinations, it is impossible to generate a matrix containing these times. In such a case it would be necessary to generate as many matrices as there are coordinates defining the location of a product.
The subsequent part of the algorithm for defining picking time can be described in the following steps.
Step 1-In the first step of calculating picking time, an absolute value is calculated, from a difference between the initial starting point and the ending one (19) for racks and rows.
x temp = x pocz − x konc y temp = y pocz − y konc (19) Step 2-In the second step, it is verified whether the racks are in the same row, and whether or not it is the row coming out directly from the packaging area-the starting point. y temp 0 or y temp 2 (20) Step 3-If the condition of step 2 was fulfilled, then in the calculation of the time it is important to take two curves into account, l luk = 2. Besides, as in the contemplated warehouse, where two-row racks with constant access provided are used (every third row is a corridor between the racks), it is necessary to contemplate several longitudinal corridors (21) l korwz = y temp 3 (21) In this case, the length of a road across is described by formula (22).
Step 4-The analyzed warehouse has one transversal corridor; therefore, before calculating the road along the warehouse, it is important to verify whether the two points are in the same or different sections of the warehouse, meaning they are separated by a corridor (23).
Step 5-If the condition in step 4 is satisfied, then the road along the warehouse (d rwzd ) should be calculated from the formula (24). dr wzd = D lr (y)·d cr x pocz − x konc − 1 (24) Step 6-If the condition in step 4 is not satisfied, then it is important to verify in which part of the warehouse (before or after the transversal corridor) both considered points are located (25).
Step 7-If the condition in step 6 is satisfied, then both points are located in the first area of the warehouse, so if D lr ·d cr x pocz + x konc < D lr ·d cr l reg − x pocz − x konc (26) then dr wzd = D lr · d cr x pocz + x konc (27) otherwise dr wzd = D lr ·d cr l reg − x pocz − x konc (28) Step 8-If the condition in step 6 is not fulfilled then both points are located in a second zone of the warehouse, so if D lr ·d cr x pocz + x konc − l reg < D lr ·d cr 2l reg − x pocz − x konc (29) then dr wzd = D lr ·d cr x pocz + x konc − l reg (30) otherwise dr wzd = D lr ·d cr 2l reg − x pocz − x konc (31) Step 9-If the condition in step 2 was not satisfied then the calculation of time should not take curves into account, l luk = 0, nor the length of the road in the transverse corridor dr poprz = 0. Therefore, the length of the road in the longitudinal corridor depends on whether both points are located in this part of the warehouse, or if they are separated by a corridor (32). So, if otherwise dr wzd = D lr ·x konc (34) Step 10-Based on the calculated picking route, it is important to calculate its duration based on formula (35). t m = t lp dr wzd + dr poprz + t a ·l luk + t p (35)

Implementation of the Presented Model as Simulation Software
The proposed model was used as a base algorithm for implementation in the authors' own software called Pickup Simulo. The system was coded in PHP language and MySQL relational databases, and has been tested for code integrity and standards compliance. Besides, each of the developed algorithms were tested on examples, which were then manually calculated to detect logical and algorithmic errors. These types of errors would not be impossible to detect with only code validation. After a thorough examination of many different cases, errors in the application were excluded. Thus, the impact of the application on simulation results was excluded, which was extremely important from a research point of view. The design of algorithms and coding took ten months. Another four were dedicated to the validation of the application and the improvement of the identified errors.
Thanks to the proposed model it is possible to use large batches of data, clearly display the results and easily modify input parameters. The developed application allows its integration with MatLab.
The developed system based on the presented model enables the following: − presentation of the warehouse structure in a mathematical form; − description of parameters of products stored in the warehouse; − classification of products using the methods ABC, XYZ analysis and COI Index, and such criteria as product popularity, number of items sold, weight or volume; − simulation of the allocation of products in the warehouse; − creating a sample order-picking list; − simulation of the order-picking process.
The application allows the performing of any number of simulations so that you can get a large set of results. In addition, the information provided is a good set of research data, which consist of the following: − order-picking lists associated with product parameters (weight, volume, popularity, number of shelf units occupied); − recording the distribution of products in the warehouse; − accessing time for each product in the storage rack; − order-picking time; − statistical information for each order-picking, such as the order of products taken, the total volume and weight of products, the number of assortment items on the picking list and the number of pieces taken.
The first application module is a data preparation module that allows configuring the shelves, in terms of rack dimensions (Figure 7), as well as the warehouse structure ( Figure 8). After entering data in the system, one can proceed to the next step of creating the warehouse structure. This part of the module is automated, based on the warehouse configuration. The program itself creates a matrix (W) corresponding to the storage locations (shelves) and corridors. In this step, the access times for the individual storage areas in the warehouse are calculated. statistical information for each order-picking, such as the order of products taken, the total volume and weight of products, the number of assortment items on the picking list and the number of pieces taken.
The first application module is a data preparation module that allows configuring the shelves, in terms of rack dimensions (Figure 7), as well as the warehouse structure ( Figure 8). After entering data in the system, one can proceed to the next step of creating the warehouse structure. This part of the module is automated, based on the warehouse configuration. The program itself creates a matrix (W) corresponding to the storage locations (shelves) and corridors. In this step, the access times for the individual storage areas in the warehouse are calculated.     The next module is the classification and simulation module, consisting of three stages-the classification of products, the planning of their allocation in the warehouse and the simulation of order-picking.
At the stage of product classification, one of the classification methods should be selected from the following: − the association search algorithm; − ABC analysis combined with XYZ analysis; − ABC analysis, modification of ABC analysis with dynamic boundary-setting combined with COI Index.
For the last two methods, an analysis criterion should be specified-product popularity, number of items sold, as well as weight or volume. In the case of the association search algorithm and XYZ analysis, the criteria are determined automatically. Moreover, for the ABC analysis, it is possible to additionally take the COI Index into account.
The last option of this module is to simulate the order-picking. The first step is to set the simulation parameters. After confirming the selection, the program performs a simulation, successively calculating the time of going to the rack and picking a certain number of products from it. The order of product picking is determined on an ongoing basis by designating the storage place of the product on the picking list that is closest to the current warehouse position. The result of the simulation is the order list picking time. The third module of the application is the module of data exchange between the described system and MatLab. The program prepares the data needed for the artificial neural network teaching process, i.e., product properties (mass, volume, number of items sold, number of connections between the product and others), and the desired product classes calculated in a manner relying on weights. The prepared data are saved in the form of a csv file, which is then loaded into MatLab. After performing calculations in Toolbox Neural Network and saving the result table to a csv file, it is possible to load the results of product classification into the developed program by using artificial neural networks.
The application allows the performing of any number of simulations, thanks to which it is possible to obtain a large set of results. Moreover, the obtained information constitutes a good set of research data, which consist of: − order-picking lists related to product parameters (weight, volume, popularity, number of occupied racks); − plan for the allocation of products in the warehouse; − access time from the packing; − dispatch area to a product on the rack; − order-picking time; − statistical information for each picking, such as the order of picked products, the total volume and weight of products, the number of assortment items on the picking list and the number of picked items.
The above data are sufficient to perform the simulations needed to achieve the planned research objectives.

Case Study
The proposed model implemented in the software Pickup Simulo was used to perform simulations for five warehouses of different size (2188, 7149, 12.491, 17.225 and 22.021 m 2 ). The parameters of the warehouses are presented in Table 5. For the variants presented in Table 5, products classification was done. On this basis, products allocation in the storage area was planned. The next stage of the research was the simulation of the products picking process following the model discussed above. Each simulation was performed for 1000 picking lists. In the example presented in this publication, 120 picking lists (6 lists per day for one month) had been used to teach the ANN. The picking lists were reflecting the most typical cases, and constituted representative data for the analyzed company. Subsequent picking lists were generated based on such data. To determine the size of the test sample it was checked whether the simulation results would be different depending on the number of picking lists used. Simulations were performed every 100 cases in the range from 100 to 3000. Statistical analysis evidenced that above 1000 picking lists, their increase did not affect the simulation result. Consequently, the size of the research sample for the model was set at 1000 picking lists for every simulation process.
The average time of order-picking referred to the model and classification criteria applied, as well as the warehouse size, as shown in Figure 9.
simulation results would be different depending on the number of picking lists used. Simulations were performed every 100 cases in the range from 100 to 3000. Statistical analysis evidenced that above 1000 picking lists, their increase did not affect the simulation result. Consequently, the size of the research sample for the model was set at 1000 picking lists for every simulation process.
The average time of order-picking referred to the model and classification criteria applied, as well as the warehouse size, as shown in Figure 9.
On the basis of the above functions the mean function was derived: This function, in turn, was a basis for the forecast of picking time increase. The results of this forecast for each classification model and product allocation are tabulated in Table 6. The difference between the results (presented in percentage in Table 7 and Figure 10) and the forecast was calculated. The difference between the results (presented in percentage in Table 7 and Figure 10) and the forecast was calculated.  The most favorable results were obtained for the ABC analysis according to the popularity criterion. For this variant, detailed statistical analyses are presented, and the results are shown in Figure 11. The most favorable results were obtained for the ABC analysis according to the popularity criterion. For this variant, detailed statistical analyses are presented, and the results are shown in Figure 11. For all the methods, statistical tests were done to determine whether the results for particular warehouse sizes differ from one another. The most favorable results were obtained for the ABC classification according to product popularity. The results were further analyzed statistically. Table  8 shows various statistics for each of the five columns of data.  For all the methods, statistical tests were done to determine whether the results for particular warehouse sizes differ from one another. The most favorable results were obtained for the ABC classification according to product popularity. The results were further analyzed statistically. Table 8 shows various statistics for each of the five columns of data. The ANOVA (Table 9) analysis divides the difference between the data into two parts: the between-group part and the within-group part. The F-ratio, which in this case equals 48.68, is the ratio of the between-group estimate to the within-group estimate. Since the p-value of the F-test is less than 0.05, there is a statistically significant difference between the means of the five variables at the 5% significance level. A multiple range test by Tukey HSD for the 95% confidence interval was done. Table 10 applies a multiple comparison procedure to determine which means are significantly different from which others. The bottom half of the output shows the estimated difference between each pair of means. Four homogenous groups are identified using columns of Xs. Within each column, the levels containing Xs form a group of means within which there are no statistically significant differences. The model currently being used to discriminate among the means is Tukey's honestly significant difference (HSD) procedure. With this method, there is a 5% risk of calling one or more pairs significantly different when their actual difference equals 0.
Based on the analyses performed, it was found that there is a statistical dependence of the picking time on the warehouse area. The results of the research presented can provide a solid basis to assist in choosing a product classification method for planning the distribution of products in a warehouse.
Based on the simulations for a small warehouse, i.e., allowing the storage of a maximum of 2700 pallet units, it was found that the largest difference between the median values occurs for the COI Index compared to the results obtained from the ABC analysis (2.56%) and the classical analysis (3.05). Therefore, it was found that for warehouses of the considered size, the selection of the product classification criterion is irrelevant-just a few per cent. The organization of the product storage system is also irrelevant-the allocation of storage areas or the free storage space method improves efficiency by only 2.5%. Therefore, for warehouses of a similar size, it is not possible to significantly improve the efficiency of its operation as a result of the application of product classification. In this case, it is more rational to reduce the costs of warehouse operation by reducing the storage area.
On the other hand, when conducting simulations for medium and large warehouses (Variant IV and V), it was found that the best results were obtained when the products were distributed in the warehouse based on ABC analysis (weight) and the analysis of ABC and COI (weight).
The worst results were obtained using the ABC analysis combined with the COI Index according to the popularity of products-the median value of the picking time was 1797 s, and the range of results was 8610 s. It can therefore be concluded that large warehouses and products with low susceptibility to damming loads are best suited to methods where the decisive criteria are the volumes and weights of products, such as the COI Index.
On the other hand, the use of the presented method allows the warehouse to operate more efficiently, by approximately 16.8%. This is a result more than twice as good as that which can be achieved with the use of classical classification methods, regardless of the adopted criterion. Due to the lower labor consumption and relatively high speed of computing, this method can be successfully used in warehouses, where the quantitative share of individual products and the assortment often change. Both the method of searching for links and the use of artificial neural networks can be successfully implemented for practical applications.
The developed method has a comprehensive approach, i.e., it allows taking into account the relationships between products, based on the orders. The analyses have proven that there is a statistical dependence of picking time on warehouse area size ( Figure 12). The simulations indicate that the picking time decreases for warehouse sizes larger than 10.000 m 2 . For small warehouses, the product choosing method for allocation plays a secondary role.

Conclusions
In the proposed research, a new model was developed and implemented as a software called Pickup Simulo, which was presented along with a discrete event simulation analysis. The model is quite complex, and not only does it contain methods of ANN, but it also enables the classification of products by ABC analysis according to the selected criteria, the definition of COI and, finally, product allocation planning. Based on the results of our case study, a decrease from 10 to 16% of the total order-picking time can be expected by using our model. Implementation of the presented model enables us to find the optimal location for products, so the distance covered in product picking is reduced. This results in the increased efficiency of order-picking.
The research results are, therefore, of significant importance for warehouse managers. They can thus be used in companies which use standard warehouse systems with storage racks. Moreover, the discussed model could be used for the evaluation of potential solutions before their practical implementation in a warehouse, which will, consequently, result in reducing the risk of implementing an ineffective solution. The cost of the order-picking process is approximated at 30 to 50% of all warehouse costs. Because of this, product layout planning plays an important role in operational decisions. The model can support that decision, and reduce the risk of a bad decision in product location planning. At present, the proposed model Pickup Simulo is being used in selected companies. Based on the results of the proposed research, the authors' model and its implementation in the software called Pickup Simulo could be helpful in the selection of a product classification model when planning product allocation in a new warehouse.
In future works, the authors want to upgrade the proposed model of Pickup Simulo with the possibility of simulating different warehouse systems.

Conclusions
In the proposed research, a new model was developed and implemented as a software called Pickup Simulo, which was presented along with a discrete event simulation analysis. The model is quite complex, and not only does it contain methods of ANN, but it also enables the classification of products by ABC analysis according to the selected criteria, the definition of COI and, finally, product allocation planning. Based on the results of our case study, a decrease from 10 to 16% of the total order-picking time can be expected by using our model. Implementation of the presented model enables us to find the optimal location for products, so the distance covered in product picking is reduced. This results in the increased efficiency of order-picking.
The research results are, therefore, of significant importance for warehouse managers. They can thus be used in companies which use standard warehouse systems with storage racks. Moreover, the discussed model could be used for the evaluation of potential solutions before their practical implementation in a warehouse, which will, consequently, result in reducing the risk of implementing an ineffective solution. The cost of the order-picking process is approximated at 30 to 50% of all warehouse costs. Because of this, product layout planning plays an important role in operational decisions. The model can support that decision, and reduce the risk of a bad decision in product location planning. At present, the proposed model Pickup Simulo is being used in selected companies. Based on the results of the proposed research, the authors' model and its implementation in the software called Pickup Simulo could be helpful in the selection of a product classification model when planning product allocation in a new warehouse.
In future works, the authors want to upgrade the proposed model of Pickup Simulo with the possibility of simulating different warehouse systems.