## 1 Introduction  
Multi-objective optimization problems comprise some contradicting objectives to be optimized simultaneously when increasing one of them is the cause of decreasing the others [1, 2, 3]. To deal with this type of problem, multi-objective optimization algorithms (metaheuristics) are widely applied by researchers, according to recent studies in the literature [4, 5]. Multi-objective metaheuristics attempt to find a set of solutions for balancing the trade-off between the problem objectives. Therefore, the goal of metaheuristics is to extract a set of non-dominated solutions, Pareto-front, that optimize all objectives of the problem [6, 7]. A non-dominated solution has at least one better objective and no worse objective than all other solutions [2, 6]. A sample Pareto-front for minimization of a bi-objective problem is indicated in Figure 1. The represented Pareto-front comprises seven non-dominated and nine dominated solutions out of a total of 16 solutions [8]. Multi-objective task graph scheduling is an NP-hard problem that plays a significant role in the heterogeneous distributed systems. In a task graph scheduling problem, the goal is to distribute all tasks of an acyclic graph (parallel program) over the processors in such a way that all the objective functions are optimized. The solution to the problem is expected to optimize all the scheduling objectives, such as flow time, reliability, etc., simultaneously [9; 10]. A detailed problem definition is presented in Section 2. A pretty wide range of developed algorithms may be found in the literature to solve the task graph scheduling problem, which indicates the great importance of the problem in engineering applications. The state-of-the-art algorithms in the literature mostly apply soft computing methods and metaheuristics for solving the problem [11; 12; 13; 14]. For instance, SGA and EP methods were developed by authors in [14], as were MOGA and MOEP methods applied in [15]. Moreover, HEFT-NSGA, MFA, weighted sum MOEP, hybrid algorithms, and a multi-agent system were developed in [8; 16; 17; 18], respectively. It can be seen that in the majority of state-of-the-art literature, a simple metaheuristic or weighted-sum method has been used. State-of-the-art methods are listed in Section 3. Likewise, Section 3 includes several new evolutionary algorithms proposed in recent literature. This paper provides a novel hybrid method comprising the improved multi-objective differential evolution (MODE) method and variable neighborhood search (VNS) to schedule task graphs in distributed systems [19]. The novelty of the proposed hybrid method is achieved by improving MODE and hybridizing it with the VNS approach. The proposed method improves the performance of MODE by applying appropriate solution representation as well as effective selection, crossover, and mutation operators. Likewise, the VNS algorithm is applied to improve the extracted Pareto-front, speed up the evolution process, and increase the power of determining more promising parts of the search space. In the modified version of MODE, the selection operator is more effective due to applying roulette-wheel selection based on dominance rankings instead of fully random selections. The number of solutions dominating a solution is known as dominance rank, and consequently, the better solutions will have lower ranks. Therefore, the lower ranks are arranged to occupy larger parts of the roulette wheel to increase their selection chance (probability). Likewise, effective mutation and crossover operators are proposed in this paper to speed up the evolution process and increase the driven Pareto-front quality. A more promising portion of the search space is found in a novel proposed mutation because both task order and processors are modified without breaking the feasibility of the solution. Details of the innovative mutation and crossover operators are given in Section 4. In the modified MODE, non-dominated solutions found so far, Pareto-front, are kept in the archive and updated at the end of each MODE loop.