**Algorithm 4** Determining critical path algorithm


We start with the last sub-job determined. The next sub-job of the critical path will have the latest finish data transfer to the previously determined sub-job. The process continues until the next sub-job becomes the first sub-job.

The purpose of the crossover operation in the n-GA algorithm is creating new solutions in the hope that they are superior to the old one. In the crossover phase of the GA algorithm, when the sub-jobs of the critical path are not moved to other RMSs, the old critical path will have very low probability of being shortened. Thus, the overall makespan of the workflow has a low probability of improvement.

The primary purpose of the mutation operation is to maintain genetic diversity from one generation of a population of chromosomes to the next. In particular, it allows the algorithm to avoid local minima by preventing the population of chromosomes from becoming too similar to each other. When the sub-jobs of the critical path are not moved to other RMSs, the old critical path will have very low probability of being changed. Thus, the mutation operation does not have as good effect as it should have.

With the standard GA algorithm, it is always possible that the above situation happens and thus creates a long convergent process. We can see an example scenario in Figure 7. Assume that we select a parent as presented in Figure 7a. Using the procedure in Algorithm 4, we know the critical path of each solution which is marked by colour boxes. After the crossover and mutation operation as described in Figure 7b, 7c, the old critical path remains the same.

To overcome this elimination, we propose an algorithm called the w-GA algorithm.
