## 3 Problem with Solution Framework
### Task Scheduling Process Using HWACO Algorithm  
The ACO (Ant Colony Optimization) algorithm, as the term suggests, tries to copy the behavior and movements of the ant toward a particular food source and back to its colony [19]. The algorithm comprises two major steps: the Construct_ANT solution and the Update_Pheromone function. In the Construct_ANT solution function, a set of artificial ants are constructed in order to find results from the finite set of available answer components, and, in the Update_Pheromone function, the pheromone level related to the solution set is maximized in order to arrive at an ideal solution-set from the available possible solution sets, that is, by maximizing the pheromone level related to a particular solution set, more importance is given to that particular solution set  
Figure 1: Architectural diagram of the task scheduler in cloud environment.  
compared to other solution sets; therefore, selection of the ideal solution set occurs. Efficient discovery of the shortest path is important. At the same time, optimization is also one of the most vital factors in order to obtain and enhance the functioning of the task scheduler in the cloud environment. The Ant Colony Optimization algorithm and some other similar type of algorithms provide a near ideal solution with some drawbacks in certain cases; thus, an enhanced version of the ACO has been introduced, that is, the HWACO algorithm. The HWACO is equipped with improved construct ANT solution and Update Pheromone methods that make use of the weight concept, which provides the required consistency among the capabilities, such as exploitation and exploration. In this work, the HWACO algorithm was defined and executed in the task scheduling process using the following notation:  
* S is the exploration space with a finite set of distinct choice variables generated for each variable Ti;
* \(\Omega\) represents the set of restraints;
* f:S\(\rightarrow\)R is the main function which must be reduced.  
The definition of the exploration space \(S\) is as follows. A distinct variable set \(X_{i}\), where the value of i ranges from [1, m] (where m is the number of available tasks) with the variable's value present in the set, is defined as \(v_{ij}\in D_{i}\), and \(D_{i}=\left\langle v1_{j},\ldots,\ v_{\left|D_{i}\right|j\right\rangle}\), where i represents a particular selected variable in the set \(S\), and \(D_{i}\) stands for the search variable for finding the correct virtual machine; therefore, \(X_{i}\) represents the set of the available virtual machine for executing the required tasks. Each element of the set \(S\) is defined properly, that is, every element variable \(X_{i}\) has a value \(v_{ij}\) allocated from its field \(S\). A new set \(S\Omega\) is defined, which contains the achievable results that satisfy all the constraints specified on the set \(\Omega\) and set \(X_{i}\). The constraints present in the set \(\Omega\) are usually pre-fed beforehand to include various rules and constraints, such as checking the value of the elements from the different sets such as \(S,\ T\) and \(V\), in order to make sure that these values are inside the acceptable range of values, and no negative numbers are present. The rule for forming various sets such as \(X_{i},\ D_{i}\), and others will eventually lead to finding the required objective solution set by setting up the fitness function and the selection of values based on the fitness function, and certain rules, such the maximum number of the available virtual machines to be considered, that is, the j value, the acceptable range of values for the constants such as \(\alpha\), \(\beta\), and many more depend on the user's needs.  
A result set S* that belongs to the set S\({}_{\Omega}\) is known as a global optimal solution set if it satisfies the below equation:  
\[f(S^{*})\leq f(S\Omega)\,\ \forall S\Omega\in S \tag{4}\]  
In order to obtain the best optimal path with the shortest distance, the following processes are followed:  
* Construct_ANT solution.
* Update_Pheromone.