## 2 Related Work  
There have been three main methods to solve _MOPs_. First method converts the _MOP_ into a single objective one by aggregating the objectives and giving them different weights according to their importance [22]. Second method orders the objectives according to their importance (lexicographic approach), and tries to optimize objectives according to their order [22]. Third method is _PO_, which optimizes the whole objectives simultaneously [8]. It generates a non-dominated set of solutions that represent the best solutions to the problem [8]. _PO_ can be used as an effective way to evaluate the goodness of multi-objective solutions, which is needed for multi-objective optimization methods. _SI_ methods are population-based meta-heuristic methods, which simulate the behavior of natural organisms that live into groups in their strategies to cover a large search space economically [5]. _SI_ methods transform the solutions of a _MOP_ into a _M_-dimensional solution space, trying to cover the feasible space effectively for finding the best solutions. Since they were first proposed to solve _MOPs_[7], many meta-heuristic methods have been proposed to solve _MOPs_[9; 10; 23]. One of these is _NSGA_[9], an evolutionary algorithm which combines a genetic algorithm with _PO_ to find non-dominated solutions. Its main goal is to diversify the population over the whole _PF_. This eliminates the biasness of resulted non-dominated solutions towards specific regions in the search space. Based on these ideas, _NSGA-II_[10], which is an improved version, has become one of the most popular evolutionary computing techniques for addressing _MOPs_. The changes included the addition of an _EL_ to store the best solutions found during the search process. This modification enhanced the quality of generated non-dominated solutions and reduced the execution time of the algorithm via parallel candidate paths. An alternative approach to tackle _MOPs_ is to decompose the original difficult problem into simpler subproblems, and solve them independently but coupling their solutions, in such a way that each subproblem is optimized by using information from its neighboring ones. This was tested successfully by [PERSON] et al. [PERSON] et al. (2019), who used _NSGA-II_ for solving the subproblems and demonstrated better results over _NSGA-II_ alone in different benchmark tests. _SI_ methods have been combined with _PO_ to solve _MOPs_. An example is [PERSON] et al. (2019) (_MOPSO_, Multi-Objective Particle Swarm Optimization), where the _PSO_ meta-heuristic is employed to explore the solution space. _MOPSO_ keeps track of the non-dominated solutions during its execution (in an external archive), and in doing so it exhibits the advantages of using enough memory during the search process, especially when dealing with _MOPs_. Some further improvements in the accuracy of the solutions to _MOPs_ can be achieved by replacing _PSO_ method with other variants of _PSO_, either for accuracy or for reducing the time complexity. For instance, using Cat Swarm Optimization as in [PERSON] et al. (2019), or using information from the neighbor particles, as in Quantum-behaved Multi-Objective Particle Swarm Optimization (_MOQPSO_) [PERSON] et al. (2019), which applies the rules of cultural evolution to control how swarm members evolve. Here, particles in the swarm depend on the other particles in their vicinity, and not only on their own previous positions, to determine their next location. This highlights the importance of performing a local search around the current state so that _SI_ methods can discover better solutions and ultimately converge to a near optimum point, as [PERSON] et al. (2019) shows. Another variation appears in [PERSON] et al. (2019), where the authors propose a different nature-inspired swarm behavior, the Grey Wolf (_GW_) social hierarchy, to run the dynamics of the _SI_-based solver.