## 2 Related Works
### Fuzzy Techniques  
[PERSON] et al. [22] proposed a modified genetic algorithm-based approach to assign tasks to VMs. In their approach, the fitness of the two parent chromosomes was calculated using two Mamdani fuzzy inference systems. Similarly, the crossover phase was also performed using a fuzzy inference system. Using this modified approach, they were able to reduce the makespan, cost, DoI, and other metrics compared to non-fuzzy GA approaches and a neuro-fuzzy approach in three separate experiments. [PERSON] et al. [23] proposed a VM allocation approach using Mamdani and Takagi-Sugeno fuzzy inference methods. They used input fuzzy sets for CPU, RAM, and hard-disk utilization. Their fuzzy systems provided a metric for server availability as output, which decided whether a VM could be allocated to a server. Their comparison showed the Mamdani approach to be better for the tested scenario. [PERSON] et al. [24] proposed a task scheduling approach for cloud computing with the aim of improving the reliability of task execution in the cloud. For this purpose, they presented a fuzzy inference-based approach that used cost, trust, and length metrics for tasks as fuzzy inputs and provided the priority for each of the task as output. The proposed inference system used three linguistic variables for each of the inputs and used 27 rules. Their proposed approach achieved improved waiting times and turnaround times. [PERSON] et al. [25] proposed a task scheduling approach that made joint use of Mamdani fuzzy inference and particle swarm optimization (PSO). They calculated the fitness of the solution given by PSO using a fuzzy inference system that used task length, CPU speed, RAM, and BW to decide the fitness of assigning a task to a given VM. They used a binary PSO-based process to determine the final rule base for this fuzzy system. A second fuzzy inference system was then used to calculate the final fitness of task-to-VM mapping using the output of the first system and the total execution time of a VM. Then, they continued to optimize the solution using modified PSO to find the final solution, which provided improvements in parameters such as execution time and degree of imbalance, among others. [PERSON] et al. [26] considered the problem of a multi-cloud environment and scheduling workflow tasks. The proposed approach worked under the constraints of minimizing makespan and cost and maximizing resource utilization. An additional constraint was to keep the reliability of task execution above an informed threshold. Their proposed approach used a modified PSO approach. The aforementioned reliability constraint was calculated using a fuzzy membership function according to resource utilization. The proposed approach yielded better results than the compared approach without a fuzzy reliability constraint. [PERSON] et al. [27] proposed an approach for optimal allocation of tasks to a map reduce cluster. To update the number of task slots at a processing site, they used fuzzy inference within an interval around a default value of task slots. The default value was, itself, derived from established standards. The fuzzy inference system used CPU, memory, and bandwidth utilization as inputs and obtained the required update to the number of task slots as output. The input fuzzy membership functions were generated using the frequency distribution of the input parameters from usage logs of real clusters. [PERSON] et al. [28] considered the waiting time, cost, and degree of load of cloud resources to be the primary objectives to target for optimization in their task scheduling approach. Using these objectives and a fuzzy self-defense algorithm, they developed a PSO approach that provided better results across many performance measures.