# Resource Scheduling in Cloud Computing Based on a Hybridized Whale Optimization Algorithm
## 2 Cloud Computing Paradigm, Scheduling and Literature Review
### Swarm Intelligence Overview and Cloud Computing Applications  
Metaheuristics can be defined as high-level procedures or heuristics that simulate behavior of some kind of natural phenomenon or system. Metaheuristics are trying to gradually improve potential problem solutions in a set of iterations by using randomness. By utilizing the criteria of type of phenomenon that is simulated, metaheuristics can be categorized into two groups: bio-inspired (nature-inspired) metaheuristics and those that are not inspired by nature. The nature-inspired approaches are further segmented into evolutionary algorithms (EA) and swarm intelligence. The most widely used EA approach is genetic algorithm (GA) [37]. Swarm intelligence is a rather new category of nature-inspired algorithms that mimics the collective behavior of a group (swarm) of organisms from nature. Examples of such groups include colonies of bees and ants, flocks of birds and fish, herds of elephants, groups of bats, etc. Nature can be portrayed as an inspiring source of concepts, mechanisms, and principles for designing artificial computing systems that are able to address complex computational problems [38]. One of the most essential characteristics of a swarm is that it consists of relatively simple and unsophisticated agents, which collectively show intelligent behavior. Swarm intelligence algorithms have many implementations for heterogeneous NP hard tasks from the real-world, including in the area of cloud computing, as can be seen in the literature. In the following few paragraphs, a brief review of some the most well-known swarm intelligence approaches is presented along with its applications in the cloud computing domain. The artificial bee colony (ABC) algorithm simulates groups of honey bee swarms [39], and it is known as a successful solver of NP hard challenges [40; 41; 42]. The ABC algorithm has several successful applications in cloud computing. In [43], the authors implemented a technique that combines task migration with cloud computing load balancing using the ABC approach. The agile task handling approach using ABC has been shown in [44], where the authors have focused on improving makespan time and the degree of imbalance indicators. Multi-objective task scheduling approaches using ABC have also been implemented where the objectives of energy consumption, time span of the tasks, resource cost, and utilization were taken into consideration [45]. The firefly algorithm (FA) algorithm was inspired by the lighting properties of the fireflies. It was created by [PERSON] in 2009, and it was first tested on standard benchmark problems [46]. Many modified and hybridized versions of the FA can be found in the literature [47; 48; 49; 50]. Recently, the FA has been applied in the deep learning domain [51] for designing convolutional neural network (CNN) architecture [52]. The FA algorithm has also been implemented in many practical problems from the cloud computing domain, where it showed good performance. Some of the examples include the workflow scheduling problem [53] and load balancing [54]. Other swarm intelligence algorithms that have been devised by [PERSON] are the bat algorithm (BA) [55] and cuckoo search (CS) [56]. Similar to the FA, the BA and CS have showed superior performance metrics when tackling many practical challenges [57; 58; 16; 59]. The BA algorithm has also been adapted for cloud computing challenges such as scheduling workflow applications [60; 61] and cloud service composition [62]. There are also some implementations of the CS algorithm for the cloud computing domain [63; 64]. The monarch butterfly optimization (MBO) is a relatively novel algorithm that was created by [PERSON] [65]. Shortly after it was devised, many MBO versions emerged [66; 67; 68]. The MBO has also been implemented for cloudlet scheduling problems in cloud computing environments [4]. Another relatively new swarm approach that is worth mentioning is the tree growth algorithm (TGA) [69].