## 4 The Proposed Hybrid Method  
Efficiently solving the multi-objective multiprocessor scheduling problem is of great importance in engineering applications. The reason is that the task graph is the representation of a parallel program running over multiprocessors in distributed systems. Decreasing the total execution time and optimizing other objectives of the problem play a remarkable role in distributed systems, and this is the reason why the problem has been widely solved by many different approaches up to now and is still going on. The new hybrid method that combines the improved MODE algorithm [19; 50; 51] and VNS methodology [52; 53] is described in this part. According to [51], DE is a simple, effective, and robust algorithm for solving global optimization problems. Many research efforts have been made to improve DE and apply it to different practical problems. Differential evolution is able to search a very large space of candidate solutions, and its biggest advantage is stability. Since the DE is simple, robust, and stable, it was selected as the main method to be hybridized with another fast and efficient search technique called VNS. Applying the pure MODE algorithm is not promising; the selection, crossover, and mutation operators in MODE are therefore modified and improved in this paper. The dominance rank to be used in the selection part affects the performance in a good way. Likewise, to increase the performance, MODE has been hybridized with a fast and robust VNS. These are the motivations for this paper to merge MODE and VNS in order to reach a reliable and robust method. With regard to selection, crossover, and mutation operators, the suggested hybrid technique makes use of a modified MODE. All non-dominated solutions found so far, Pareto-front, are kept in an archive, which is updated at the end of each cycle in MODE. The population is randomly initialized at the beginning of the proposed method. A solution (scheduling) is represented in the suggested way as an array including two rows and n columns, in which n is the total number of tasks in the graph. As an example, Figure 3 provides a random schedule for the graph seen in Figure 2. The \(t_{i}\) symbol is used to point the task number assigned to processor p\({}_{j}\) explained in Section 3. Hence, each column in array indicates the assignment of task \(t_{i}\) to processor p\({}_{j}\) e.g., the second column illustrates that t\({}_{2}\) has been assigned to p\({}_{1}\). The procedure depicted in Algorithm 1 is used to randomly initialize the population. While the tasks are determined based on the topological ordering, the processors are chosen at random. The ability of this algorithm to provide diverse, legitimate, random solutions--solutions that differ in terms of task ordering and processors--is one of its advantages. The algorithm retains a list of all ready tasks to be done, called ReadyTasks, and it selects tasks at random one by one from this list to generate solutions. If all of a task's parents have previously been completed, the task is ready to be executed. For this, the algorithm gives each job a parent counter and decrements it whenever a parent is executed. In this manner, when the parent counter reaches zero, a task is added to the ReadyTasks list. The Successors of a task \(t_{i}\) in the algorithm is the set of its children on task graph e.g., the successors of t\({}_{5}\) on graph shown in Figure 2 are {t\({}_{7}\), t\({}_{8}\), t\({}_{9}\), t\({}_{10}\)}. The proposed hybrid method for tackling the mentioned problems is shown in Figure 4. As can be seen in the flowchart, the system continues to operate in successive sessions until the termination requirements are satisfied. The system first determines the values of each objective using the formulae and explanations from Section 2. The algorithm for calculating a schedule's makespan is shown in Algorithm 2. The AT[\(t_{i}\)] and FT[\(t_{i}\)] variables in the algorithm represent the readiness of each task to begin execution and its completion, respectively.