Keywords

1 Introduction

Cloud computing has been a twenty-first century marvel that has occupied the entire information technology (IT) world and also many of the non-IT enterprises has shifted their business information to cloud. It has appeared as a virtue to both enterprises and academic users [1]. The reasons being obvious that it has helped the business fraternity to reduce their IT overhead. The introduction of this new age technology has revolutionized the concept of computational resource utilization. Hence, a major change in the computational approach has been observed. Different computing devices such as processing units, memory units, storage components, networking segments are virtualized and these virtual instances are used to create cloud infrastructural environment [2]. It has been noticed that the total cost of ownership (TCO) has been in the affordable range for the small and medium size enterprises [3].

Resource optimization in cloud computing has been incorporated in many different ways. Many algorithms have been built and many computational and mathematical models have been designed such as particle swarm optimization, genetic algorithm, Nash equilibrium, cooperative game-based optimization etc. [4,5,6,7]. In this context, ant colony optimization (ACO) is also a popular technique for achieving the optimization solution in an efficient manner. It follows probabilistic slant to discover the finest set of solutions from a puddle of solutions. Researchers have developed computational logic to create artificial ants through programming. These artificially programmed agents (resemblance with the behavior and properties of biological social insect ant) ensure a better solution after every iteration through predominant paradigm [8, 9]. Finally, the best solution is obtained and applied for enhancing the overall performance of the system. In our proposed approach, we have investigated resource optimization through a modified ACO technique to optimize the execution cost and time through an efficient resource selection mechanism.

While virtualization will help in mimicking the computational resources into virtual instances [4, 10], and logically isolating and segregating them for keeping individual existence for participating into optimization of resources for cloud computing; the ACO algorithm will be in action to find out the best probable solutions for allocating the resources to the virtual instances. Virtualization will help in maximizing the utilization of the available resources [1, 11] whereas, ACO will allocate the required resources to incoming tasks. So, in this study, we have encapsulated the virtualization technology and ACO algorithm with the objective to reach to an optimized virtual resource allocation method that will efficiently compute all the tasks without affecting the system performance.

Cloud computing is used to store secure end-to-end encrypted IoT data on multiple servers and can be accessed online. To avoid the dependency of internet based centralized cloud storage and edge devices, fog computing creates local networks for decentralized IoT ecosystem to decide whether to process the data locally or remotely. This means, fog computing enhances the opportunity to analyze and process offline data if access to the cloud is not stable or possible. Hence, efficient resource allocation in virtualized cloud platform unfolds a gateway for fog computing to properly place fog nodes into edge platforms that can provide unprecedented processing speed on sensitive and real time operations for data analytics in IoT.

In this study, we have addressed a major issue: whether the resource allocation policy can be optimized in virtual cloud platform or not. So, our objective is to find out the most feasible resource allocation policy among a pool of solutions that provides best cloud execution model to the cloud users. To ensure this selection, encapsulated virtualization-based ant colony optimization (EVACO) algorithm is proposed for partially virtualized cloud platform. This algorithm ensures the selection of the improved solution in such a way, so that least number of iterations are required to complete the execution. So, in our proposed approach, first the pool of virtualized resources is created as an initial population and then an independent resource will be selected through EVACO algorithm to complete the assigned task with minimum amount of time without affecting the system performance.

The rest of the paper is organized as follows: Section 2, describes the existing works. We have explained the traditional methods in Sect. 3. Our proposed mathematical model and associated EVACO algorithm is formulated in Sect. 4, which is followed by the result analysis in Sect. 5. Finally, we conclude our discussion in Sect. 6.

2 Motivation

Computing has changed its paradigm from time to time. The main objective of this transformation is to efficiently solve real world problems. Furthermore, computing technologies became a part of daily activities. In this regard, computation needs to be intelligent and easily accessible to the users. The variants of distributed system focus on reliable, available and demand-based execution of tasks. Allocation of resource towards effective computation has always been an area of research and development. Different algorithms for different environments and dependencies have been proposed and implemented to enhance the execution process. Virtual cloud platforms make online analysis of IoT data and fog nodes do it offline. In both the platforms, resources are allocated to resolve tasks in competent manner. We started our research with the motivation to make resource allocation optimal for virtualized cloud platforms, so that we get most feasible solutions with unparalleled speed and performance.

3 Related Study

There have been considerable research works focusing on optimizing and analyzing the resource allocation of cloud computing. In such context [12], suggested a task scheduling algorithm based on the ant colony optimization algorithm (ACOA) that efficiently allocates cloud resources to users’ jobs within the virtual machines using diversity and reinforcement techniques [13] found that the typical cloud-based strategy was proven to be unable to meet the requirement of low-latency execution of multiple devices in an edge area. Therefore, they planned to incorporate ACOA-based internet of things (IoT) approach that can lead to the number of edge devices to create an edge data centre. Finally, they proposed a two-level scheduling optimization scheme that will produce an efficient output in timely manner [5] defined a large-scale peer to peer (P2P) grid system that implements an ACOA to identify the location of required resources. The authors of [14] have proposed an efficient IaC-based resource allocation framework for simulated virtual cloud platforms that provides high throughput and effortless cloud resource configuration management.

Mishra et al. [15] demonstrated the re-engineering approaches to migrate the ACOA to modern Intel multi-core architectures to mitigate the factors that has an impact on hardware performance. On similar research [13], presented a new open computing language (OpenCL) based ACOA and [16] have discussed novel parallel algorithms of the well-known ACOA on the multi-core platforms of Intel Xeon Phi co-processor.

The authors of [8] established a strategy for efficient software module clustering in which dependent modules are placed together inside a cluster. According to [2], the computational complexity of ACO if compared to that of genetic algorithm (GA), crops better result as ACO can optimize the services to a higher degree [9] projected an adaptive learning model based on ACO Algorithm to improve stint, price and eminence factors to realize the optimal resource allocation.

On contrary, our research focuses on optimizing the resource allocation towards completion of cloud tasks in a partially virtualized cloud platform efficiently without hampering the SLA and system performance through encapsulating the ACO algorithm with virtualization technology. In this context, we propose a novel EVACO algorithm along with supportive mathematical cloud execution model. Our research shows better performance than that of existing algorithms, which have been proved through extensive simulations.

The following table displays the comprehensive comparison between different researches discussed above (Table 1).

Table 1 Comprehensive comparison of related studies

4 Traditional ACO

In order to formulate the proposed EVACO, we have analyzed the basic approach of ACO. There has been a considerable study to incorporate virtualization techniques to increase the infliction of computational resources. Conversely, ACO has also proven to be a great solution towards resource allocation methods.

In ACO algorithm, each ant obtains a starting node that can be considered as it’s nest [5, 17, 18]. From this node, the ant selects the next node based on the rules of the algorithm. The ant completes its journey by traversing all the nodes only once and finally returns home at last. The ants can travel the nodes either concurrently or successively. During the journey, each ant places a convinced volume of pheromones on the route. The amount of pheromone to be poured down in the routes depends on the quality of the path selected by the ant; a petite path usually fall-outs with more pheromone. The precipitated pheromone undergoes disappearance which is best known as evaporation.

The probability of selecting the succeeding node j by the Ant to arrive at from the current node i is computed as follows [15, 16, 18]:

$$ p\left({c}_{ij}|{s}^p\right)=\frac{{\tau_{ij}^{\alpha}}^{\ast}\;{\eta}_{ij}^{\beta }}{\sum \limits_{c_{ij}\in N\left({s}^p\right)}{\tau_{ij}^{\alpha}}^{\ast}\;{\eta}_{ij}^{\beta }} $$
(1)

where, sp = a partial solution, N is the list of all existing routes from node i to every neighbor node which are yet to be traversed by the ant, cij is the route from i to j, p is the probability of incidence, tij is the quantity of pheromone follow on cij, hij is calculated as some empirical factor, ηij = Q/dij, where dij is a remoteness factor amid nodes i and j, Q is a constant weight and α and β are the algorithmic constraints.

4.1 Apprising Pheromone Value

The Ants will update the value of the pheromone on the routes connecting the nodes according to the following formula [2, 11, 16, 17]:

$$ {\tau}_{ij}\leftarrow {\tau}_{ij}+\sum \limits_{k=1}^m\Delta {\tau}_{ij}^k $$
(2)

where, m is the count of ants, ∆τk = Q/Lk if the ant k traveled the path Ckij between nodes i and j; Q is a persistent weight (it is the set of all neighbor nodes), and Lk is the distance covered by the ant k during travel and is represented as ∆τk = 0.

4.2 Evaporation

After finishing the nth trip by the Ants, evaporation will take place in all the available routes between the nodes. This is given by the formula as follows:

$$ {\tau}_{ij}^n\leftarrow \left(1-\xi \right)^{\ast} {\tau}_{ij}^n $$
(3)

where, ξ ⊆ (0,1] is the evaporation factor.

5 Proposed Solution

We propose for a modified version of the basic ACO algorithm by encapsulating it in virtualized platform. We call it encapsulating virtualization-based ant colony optimization (EVACO). To implement our algorithm, first, the available computing resources need to be virtualized to create the initial population. These virtualized resources provide maximum resource utilization percentage through isolated instances. Then, we will apply ACO algorithm on the entire pool of isolated yet correlated and fully functional virtual resources. This, in turn will provide us the optimum solution in minimum number of iterations. The entire process will not hamper the overall performance of the cloud platform. To implement our algorithm, we have taken a step-by-step approach. We have described each step in the following discussion:

5.1 Formulating Primary Population for Virtualized Computing Resources

A control variable in the optimization model is the path taken by an ant in any stratum of an N-dimensional space. The N-dimensional array indicates the path taken by the ant. The array can be represented as:

$$ VRP=\left({vr}_1,{vr}_2,{vr}_3,\dots, {vr}_i,\dots, {vr}_n\right) $$
(4)

where, virtual resource pool (VRP) is a set of solutions, n is the total number of control variables, and vri is the ith control variable in a single VRP. As shown below, each control variable i selects a weight from a discrete domain Vi’s predetermined set of weights:

$$ {V}_i=\left({v}_{i,1},{v}_{i,2},\dots, {v}_{i,d},\dots, {v}_{i,{D}_i}\right) $$
(5)

in which, i = 1,2,3,...,N; Vi is the encoded set of weights for ith control variable, vi,Di = dth conceivable weight for the ith control variable, and Di = total number of conceivable weights for the ith control variable. The EVACO algorithm begins with generating a MxN matrix at random, where M is the population size of results and N represent the number of control variables. As a result, the pseudo-random solution matrix looks like this:

$$ {P}_{VR}=\left[\begin{array}{c}{ VR P}_1\\ {}{ VR P}_2\\ {}\vdots \\ {}{ VR P}_j\\ {}\vdots \\ {}{ VR P}_M\end{array}\right]=\left[\begin{array}{cccccc}{vr}_{1,1}& {vr}_{1,2}& \dots & {vr}_{1,i}& \dots & {vr}_{1,N}\\ {}{vr}_{2,1}& {vr}_{2,2}& \dots & {vr}_{2,i}& \dots & {vr}_{2,N}\\ {}\vdots & \vdots & \dots & \vdots & \dots & \vdots \\ {}{vr}_{j,1}& {vr}_{j,2}& \dots & {vr}_{j,i}& \dots & {vr}_{j,N}\\ {}\vdots & \vdots & \dots & \vdots & \dots & \vdots \\ {}{vr}_{M,1}& {vr}_{M,2}& \dots & {vr}_{M,i}& \dots & {vr}_{M,N}\end{array}\right] $$
(6)

in which PVR is the population of virtual resources; VRPj is the jth solution, vrj,i is the ith control variable of the jth solution, and M is the population size (i.e., the quantity of existing solutions to solve the task). The weight of vrj,i is arbitrarily nominated from a set Vi.

5.2 Apprising Pheromone to the Control Domain

The EVACO looks for information in various parts of the control space and adds it there. New solutions are created erratically depending on the statistical data available in the control domain. The EVACO algorithm assigns pheromone intensity value to each control variable’s weight depending on the solution’s fitness score. The higher the pheromone quantity, the more suitable a solution is, and the other way around. In virtualization scenario, if a virtual resource is available and idle, then the best solution is to allocate that resource to solve a problem to increase the utilization of resources in an optimized way. So, the idle index (ϕ) will be used in exchange of pheromone during the solution. The higher idle index is for a virtual resource, the higher the chances of allocating that resource to a pending task.

To apportion pheromone to the discrete domain, N arrays of size 1xDi are used, each array is allotted to one control variable as follows:

$$ {P}_i=\left({p}_{i,1},{p}_{i,2},\dots, {p}_{i,d},\dots, {p}_{i,D}\right) $$
(7)

where, Pi = the pheromone matrix for the ith control variable and pi,d = the pheromone intensity of the dth probable weight of the ith control variable. At the start of the algorithmic refinement, the elements of the matrix Pi equate zero. In virtualization platform, as the idle index is changed for a virtual resource, it becomes either not available or any other higher idle index resource is chosen for next pending task. So, the availability index (σ) is equivalent with evaporation coefficient (ϵ).

In basic ACO algorithm, pheromone intensity for the dth possible weight of the ith control variable is updated as follows [3, 15]:

$$ {p}_{i,d}^n=\left(1-\varepsilon \right)^{\ast} {p}_{i,d}+\sum \limits_{j=1}^M\Delta {c}_{i,d}^j $$
(8)

in which, Pn = the updated intensity of pheromone of the dth possible weight of the control variable, ϵ = the rate of evaporation and \( \sum \limits_{j=1}^M\Delta {c}_{i,d}^j \) = the quantity of pheromone laid on the dth possible weight of the ith control variable by the jth ant.

The weight of \( \sum \limits_{j=1}^M\Delta {c}_{i,d}^j \) resembles to the fitness score of the jth solution, and is assessed for our proposed EVACO algorithm as follows in a minimization problem:

$$ \Delta {c}_{i,d}^j=\left\{\begin{array}{c}\frac{Q}{F\left({VRP}_j\right)}\kern0.36em if\;{vr}_{j,i}={v}_{i,d}\\ {}0\kern2.28em if\kern0.34em otherwise\end{array}\right. $$
(9)

where j = 1, 2, …, M; i = 1, 2, …, N; d = 1, 2, …, Di; Q is a constant weight and F(VRPj) is the fitness weight of the jth solution.

In the EVACO algorithm, we can replace the pheromone weight pi,d with idle index (ϕ) and the evaporation coefficient (ϵ) with availability index (σ). So, the modified equation can be derived from Eqs. (8) and (9) as follows:

$$ \operatorname{maximize}\left(\phi \right)=\left\lfloor \left(1-\sigma \right)^{\ast} \phi +\sum \limits_{j=1}^M\frac{Q}{F\left({VRP}_j\right)}\right\rfloor $$
(10)

This equation will consider a lower edge weight which is bare minimum for idle index as we have used a floor function to set the lower limit. Any weight below a predefined constant will be disregard and hence the performance degradation cannot occur. If and only if the idle index of a computational resource is higher than the lower bound, then EVACO will consider that resource for further update.

5.3 Generation of Updated Solution

There is always an infinitesimal probability of never nourishing the condition p (cij | sp) nj, which can be deduced from equation number 1. So, in this research, we have used some amendment in the traditional ACO Algorithm. For the given node i, we create a random number nj ⊂ [0,1) and then compare that to the moving sum. The result is updated whenever is recalculated. When njp (cij | sp) satisfies, considered as the index of the next node j to travel. Essentially, this difference is only noticeable in the beginning phases of the test, when the amount of pheromone trailing on the various pathways is fairly similar. The summation of the probabilities of the conceivable weights of each control variable is equal to one. So, we write:

$$ \sum \limits_{d=1}^{D_i}{\Psi}_{i,d}=1 $$
(11)

The weights of the control variables of an updated result are arbitrarily elected depending on the assessed likelihood. To do so, we calculated a cumulative probability for each potential weight of each judgement variable, as shown below:

$$ {\Upsilon}_{i,r}=\sum \limits_{d=1}^r{\Psi}_{i,d} $$
(12)

in which, ϒi,r is the accretive likelihood of the rth possible weight of the ith control variable. Then, an arbitrary weight (ω) is inferred within the range of [0,1]. Depending on the comparative values obtained, weights are selected. For example, if the weight of ω is less than the weight of ϒi,r, ϒi,1 is selected; otherwise, the rth weight is selected in a pattern where ϒi,r − 1 < ω < ϒi,r.

5.4 Mutating EVACO to Optimize Further

The worst possible situation that may occur in any optimization algorithm is when it gets trapped in some local optimal loop. Hence, the notion of mutation is brought from the genetic algorithm (GA) to avoid being locked into the local minima. When an ant has finished its trip, it will begin the mutation process based on the mutation probability. A node is randomly eliminated from the tour and is replaced by another randomly picked node from the same group. Finally, the randomly chosen node is added into the (m 1) positions. The new solution of the afflicted ant is the shortest tour of all the feasible tours, including the initial route. As a result, the total number of iterations reduces up to a great extent resulting optimal solution. The outline of the proposed EVACO is represented in Algorithm 1. Note that, Table 2 represents different notations used in this algorithm.

Table 2 Symbols used in EVACO algorithm and their descriptions

Algorithm 1: Proposed EVACO

Input: M, PVR, N, Vi, TQ, Rv, VRP, AL Output: Optimal resource allocation to the decomposed task Initialize M=N=AL=0 begin generate M initial population PVR of possible solutions randomly while termination criteria stand false do { evaluate fitness values for all the existing solutions assign idle index to decision variables based on fitness values finalize availability index to select if a resource will enter AL or not allocate idle resources to VRP update AL by removing the already allocated resources for i: = 1 to N do { for d: =1 to Vi do { update idle index of possible value dij for decision variable i based on availability index and fitness value evaluate selection probability of possible value dij } } for k: = 1 to M do { for i: = 1 to N do { select a random value rki for ith decision variable among all possible values based on their probabilities } } } select a solution if the fitness value is higher than initial solution update PVR mutate to exit the local minima for optimize further }

5.5 Flowchart and Service Model

A flowchart is a pictorial representation of flow of control. For our proposed EVACO algorithm, we have presented a flowchart that make the concept easier for implementation. Figure 1 below, is the technical flowchart for our algorithm.

Fig. 1
3 illustrations of a phone with HypEdge user interface. Get started is in the center of the leftmost illustration. Login information, such as an email address and password, are in the middle illustration. The rightmost illustration contains the patient portal, which includes a patient report.

Flowchart for EVACO algorithm

We, moreover, have designed a service model for our proposal that shows how the subtasks are assigned with virtual resources efficiently using EVACO algorithm to produce optimal solution for the cloud customer. Figure 2 shows the service model for our proposal.

Fig. 2
A U C I diabetes correlation matrix. The correlation coefficients for pregnancies, glucose, blood pressure, skin thickness, insulin, B M I, diabetes pedigree function, age, and outcome are the rows and columns. Pregnancies and age are roughly correlated at 0.57. The diagonal contains 1s.

Proposed service model

6 Result Analysis

In this section, we evaluate our proposed EVACO algorithm to prove its expediency. In order to evaluate the performance of the proposed approach, we have considered a methodological approach to create an environment for our simulations. We have developed a customized java program to implement the proposed EVACO algorithm. We have first discussed about the simulation set-up followed by the analysis of the results obtained from the simulations. Finally, the proposed EVACO algorithm is compared with some existing approaches from the literature.

6.1 Simulation Set-Up

Our experiment for evaluating the proposed EVACO algorithm and the proposed execution model requires both hardware and software set-ups. Using the hard- ware set-up, we have created a virtualized cloud platform. The detail of hardware set-up is listed in Table 3.

Table 3 Details of hardware set-up for simulation

The software module for our simulation is installed using the hardware specifications mentioned in Table 4. As we have to apply our proposed algorithm in a virtualized platform, we have used VMWare workstation as type-II hypervisor. We have installed it on the top of Windows 10 operating system. After installing the workstation, we have created host virtual machines using ESXi server virtualization framework.

Table 4 Details of software set-up specifications

To complete the simulation, we have started with creating the virtual instances inside the physical computer system. We have used the set-up described in Table 3 for this step. We have implemented EVACO algorithm through a customized java code, running in our VMs. The primary intention is to find a set of optimum resources that can be allocated to each and every decomposed tasks. While implementing the code, we have taken care of all the constraints of EVACO algorithm. Our proposed algorithm is a direct enactment of our proposed mathematical model. So, while writing the java code, we have taken care of all the required parameters for execution.

6.2 Simulation Result

Performance Evaluation of EVACO Algorithm

In order to evaluate the performance of our proposed EVACO algorithm, we focus on the parameter of resource allocation to a sub task and minimization of time to complete the entire process. The algorithm is designed to reach to the solution with minimum number of iterations. Additionally, through mutations it avoids of getting trapped inside the local minima.

We have started our experiment with 20 virtual resources and arbitrarily 186 number of subtasks. These virtual resources have been created inside a host. Our aim in the algorithm is that whenever a subtask will appear in the queue, it will be allocated to the resource that is most feasible. So, the virtual resources (also called nodes) are placed randomly in a predefined partially virtualized cloud platform.

The starting node, marked as 1 in Fig. 3a and Fig. 3b also chosen randomly and represents the comparative node traversal routes in two different iterations. From Fig. 3a to Fig. 3b, it can be noticed that for different iterations the starting nodes have changed to get the optimized shortest traversal route for the given parameters. For example, the starting node (marked as 1) in Fig. 3a has become node number 5 in Fig. 3b and the node number 16 in Fig. 3a has become the starting node in Fig. 3b. This happened because we have given different parameter list for EVACO algorithm for execution in these two cases. We further observe that the choice of next node changes with the change in starting node. The traversing of nodes from 1 to 20 is an implication of the fact that these virtual instances (called as nodes) are available to be allocated to the incoming sub tasks. This is possible because the idle index (as described in the Eq. 10) of these nodes are high and hence sub tasks are allocated to them.

Fig. 3
Nine box plots with error bars. Between 1.0 and 0.0, outcome has the widest range, while glucose typically has the narrowest. Age, B M I, and insulin levels are all average.

(a) Iteration 1 and (b) Iteration 2 of EVACO algorithm

The performance comparison for the stated iterations is demonstrated in Fig. 4a and Fig. 4b which reflects the time (in milliseconds) required to traverse all 20 nodes. The numeric weights of the time requirement to execute the proposed algorithm have been shown in Table 4 for further comparisons.

Fig. 4
A bar graph of population versus age. Between the ages of 22 and 25, there is the highest population, while between 62 and 65, there is the lowest. The graph is descending. The values are estimated.

Performance comparison graph of (a) Iteration 1 and (b) Iteration 2 of EVACO algorithm

From Table 4, it is clearly noticeable that EVACO algorithm substantially provides better time complexity than that of other algorithms like PSO, GA, IACO, SACO, ACO etc. We have calculated mean, variance and standard deviation weights from the obtained result to compare these algorithms in terms of computational time spent for different iterations. The detailed graphical comparisons have been displayed in Figs. 5, 6, 7, 8, 9 and 10. From the generated graphs, we can claim that our proposed EVACO algorithm and the associated mathematical model stands higher than the existing approaches (Table 5).

Fig. 5
A bar graph of population versus age of diabetes mellitus. Between the ages of 39 and 43, there is the highest population, while between 62 and 65, there is the lowest. The graph is descending, with some peaks. The values are estimated.

Comparison of mean for PSO, GA, IACO, SACO, ACO and EVACO

Fig. 6
A bar graph of population versus age for non-diabetes mellitus. Between the ages of 22 and 25, there is the highest population, while between 53 and 58, there is the lowest. The values are a estimated.

Comparison of variance for PSO, GA, IACO, SACO, ACO and EVACO

Fig. 7
A bar graph of the population sample versus the diabetes incidence rate. Bar 1, representing diabetic patients, has 442 samples with a 68.63% rate, while bar 2, representing non-diabetic patients, has 202 samples with a 31.37% rate.

Comparison of standard deviation for PSO, GA, IACO, SACO, ACO and EVACO

Fig. 8
A bar graph compares the accuracy scores of S V C, L Reg, and K N N. The highest score is 0.7441 for S V C, and the lowest is 0.7054 for K N N.

Comparison of performance analysis for PSO, GA, IACO, SACO, ACO and EVACO

Fig. 9
A bar graph compares the precision scores of S V C, L Reg, and K N N. The highest score is 0.8977 for S V C and L Reg, and the lowest is 0.8409 for K N N.

Comparison of resource requirements for PSO, GA, IACO, SACO, ACO and EVACO

Fig. 10
A bar graph of sensitivity and specificity scores for the S V C, L Reg, and K N N models. For all models, sensitivity has the highest score, while specificity has the lowest.

Comparison of makespan requirements for PSO, GA, IACO, SACO, ACO and EVACO

Table 5 Time comparison of EVACO vs. other algorithms for 30 iterations

7 Conclusion

ACO has been able to show how effectively resources can be optimized for improved allocation policy. On the other hand, virtualization proved its significance to cloud computing by reducing the infrastructure overhead and increasing the throughput of the data centres. Combined, they can be used for enhancing the resource optimization policy in partially virtualized cloud platforms. In this paper, we have proposed a novel algorithm (called as EVACO) that applies ACO in a modified approach in a partially virtualized cloud platform for finding feasible resource allocation policy. In this context, we have also designed a new utilitarian mathematical model. This model shows how a cloud user can get the optimized solution for a given set of tasks. We have run rigorous simulations by setting up the environment using cloud analyst simulator. The simulation results shown in Table 4 explains that the performance of our proposed algorithm is quite satisfactory. We have compared our simulation results with other existing algorithms and found that our proposed algorithm is giving better results than others. Overall, through the simulation we have shown that the performance of our proposed EVACO algorithm is excellent and is better than other existing algorithms in terms of optimal resource allocation and overall execution model.