What is optimization?

Optimization, or Simulation Based Optimization (SBO), is a powerful technique employed to ‘seek out’ the best possible solution from an ‘infinite’ pool of potential solutions.


Imagine a warehouse with 1099 storage spaces, designated to accommodate 100 different part numbers. Each space needs to be assigned to one of the 100 part numbers, with each item number guaranteed at least one space. The products dynamically flow in and out of the warehouse, influenced by various parameters. The challenge now is to calculate the optimal distribution of storage spaces for each part number to maximize warehouse utilization.


Assuming no additional constraints, each item number can occupy anywhere between 1 and 1000 (1099 – 99 = 1000) spaces. This scenario leads to a staggering 1000^100 = 1 * 10^300 possible combinations or solutions. That’s a one followed by 300 zeros! While it’s not technically an infinite number of solutions, it’s still an astronomical figure, especially considering the relatively limited scope of the calculation.


An optimization algorithm’s mission is to pinpoint the optimal, or near-optimal, solution for a given optimization problem. Various types of optimization algorithms exist, each specialized in different problem scenarios. In the aforementioned example, the sole objective is to maximize the utilization rate. However, most real-world cases involve multiple objectives that need to be optimized simultaneously. These objectives often contradict each other. For instance, one might need to maximize the production throughput while minimizing the work-in-progress.

multi-objective optimization

When multiple objectives need to be met, one common optimization technique involves converting the values from each result parameter into a universal parameter, such as cost. This approach allows for optimization as if there’s only a single objective. However, this method may not always provide the ideal solution. In such instances, it’s beneficial to employ Multi-Objective Optimization (MOO), a strategy specifically designed to optimize multiple objectives simultaneously.

NSGA (Non dominated Sorting Genetic Algorithm)

NSGA-II stands as a well-known multi-objective optimization algorithm. This algorithm operates by initiating with a random population. The superior solutions within this population are permitted to survive and generate the succeeding population. Through this process, the algorithm almost always succeeds in identifying the optimal or near-optimal solution among an ‘infinite’ array of possibilities.


Optimization time plays almost always a crucial role. Even though the optimization algorithm aids in pinpointing the optimal solution, it often requires numerous generations to discover the best solution, particularly for large optimization problems. For each individual in every generation, the Flow Simulation model must be executed to give a unique result. This necessity for speed is a key reason why it’s vital to build a Flow Simulation model to run fast and underscores the importance of simplifying Simulation models.