It’s in the nature of modern logistics that a large enterprise will have item shortages that cause bottlenecks in a supply chain. When these bottlenecks develop, we minimize the effect by determining where these items should be shifted to minimize the global effect of these shortages.

A customized enterprise resource planning optimization program is created for the client so that the item is transferred to the units that require it the most to minimize the adverse effects of the shortage.

# Enterprise Resource Planning Shortages: Enter Cross-Leveling

Cross-Leveling is a logistics function that distributes supplies across an organization to minimize shortages and maximize usage.

After the user validates the units that are involved in the cross-leveling operation, the user can upload a text file from their personal computer that lists a set of end items, and the minimum quantity that each unit requires. The system then builds a table with the current unit quantities. A program then takes a look at the number of items required, and runs a Genetic Algorithm that picks items from the units that have the highest quantities, while minimizing the impact of taking those items from the supplying unit.

Genetic Algorithm and Heuristics

The Genetic Algorithm drives the engine that approximates a global solution set for the problem. GAs work by using simulated biological reproductive processes to find solutions to mathematical search problems. The Cross Leveler GA starts by generating a population of possible solutions. Possible solutions consist of random requirements leveled on each unit. These requirements are used as the “genome” in the GA. Each individual in the population is given a fitness score, which in this case is the objective value in the problem statement, which includes a penalty incurred for every sourcing solution that differs from the requirement, or number of items on hand in the unit. This was done in order to widen the initial search space. The penalty function widens the solution’s objective score, making the most of the constraints elastic. This provides a suitable breeding ground for the GA to start with.

The GA takes the initial population, picks two members randomly from the population, and breeds them together in a process called crossover. The crossover process starts with the initialization of four “embryos”. The “parents’” chromosomes are then mixed in the four embryos with a random process that will pick a gene (sourcing solution) from the mother or the father, for two of the embryos. The other two embryos have genes that are slightly mutated from the parents. This process is repeated until all four embryos have an entire genome. Fitness scores then rank the embryos. The individual with the highest fitness score is then picked as the “child” from the crossover operation.

The weakest individual of the population is then found and a process referred to as tournament selection is used to determine if the child will replace the weakest individual in the population. If the child has a higher score than the weakest member of the population, they automatically replace the weak member. Otherwise there is a ninety–five percent chance that the child won’t be inserted into the population. Five percent of the time, the child will replace the weakest member of the population even if the child has a weaker fitness score. This also allows a wider search area over the solution space. The crossover operation continues until 400 viable children are created and inserted into the population, or 10,000 crossover iterations have been completed, whichever comes first. That is considered one generation. After a generation, the top ten percent of the population, or the *elites* are set aside and carried over to the next generation. The highest fitness score of that generation is recorded in a list and the rest of that generation is discarded. Another population of individuals is initialized, with the elites from the last generation added in, and the process is started again. This is done until 150 generations have been created, or the highest fitness score has not changed more than a value epsilon for seventy generations, whichever comes first. The solution that comes out is the heuristic approximation to the optimal solution. This process is repeated for all of the supply items that require sourcing from the activities.