Efficient Nash Equilibrium Resource Allocation Based on Game Theory Mechanism in Cloud Computing by Using Auction

One of the most complex issues in the cloud computing environment is the problem of resource allocation so that, on one hand, the cloud provider expects the most profitability and, on the other hand, users also expect to have the best resources at their disposal considering the budget constraints and time. In most previous work conducted, heuristic and evolutionary approaches have been used to solve this problem. Nevertheless, since the nature of this environment is based on economic methods, using such methods can decrease response time and reducing the complexity of the problem. In this paper, an auction-based method is proposed which determines the auction winner by applying game theory mechanism and holding a repetitive game with incomplete information in a non-cooperative environment. In this method, users calculate suitable price bid with their objective function during several round and repetitions and send it to the auctioneer; and the auctioneer chooses the winning player based the suggested utility function. In the proposed method, the end point of the game is the Nash equilibrium point where players are no longer inclined to alter their bid for that resource and the final bid also satisfies the auctioneer’s utility function. To prove the response space convexity, the Lagrange method is used and the proposed model is simulated in the cloudsim and the results are compared with previous work. At the end, it is concluded that this method converges to a response in a shorter time, provides the lowest service level agreement violations and the most utility to the provider.


Introduction
Cloud computing is a model for the empowerment of comprehensive, convenient and demand-oriented network access to a series of share and configurable computing resources such as networks, service providers, storage space, application and other services, which can be supplied quickly and made final and usable with the least attempt and contact with the providing manager [1,2]. The approach followed in Cloud Computing services consists of paying a certain amount for the demanded resources and providing the resources for the agreed time period. This method is currently utilized by famous cloud providers including Amazon EC2 as resource calculation per hour usage of CPU (pay as you use) [1]. Although this method is one of the most basic methods of selling commodity or services, it prevents complex interaction between the buyer and the cloud provider. One of the drawbacks of this method is that at the time of high system workloads, a job demanded by a customer must wait a long time in order for the workload to become less and the needed resources to be allocated. This strategy is free of the priority of task execution, whereas the customer owner of this job can raise their priority by bidding more money for it and obtain the needed resources. The current methods of resource allocation such as FIFO, Round-Robin, etc., used in clouds, conduct a type of unfair allocation without considering task priority between jobs.
In most cloud services, performing task scheduling with respect to these conditions and also considering the said requirements in the service level agreement is a complex task. Ordinarily, cloud providers agree on some conditions as their obligations in the provision of quality services at the time of resource allocation to customers; therefore, any resource allocations to jobs and or transferring jobs from one resource to another resource must be conducted by considering the agreed Quality of Service (QoS) [2]. For instance, if a resource is allocated to one job, no other job can obtain that resource with a higher price until the time of implementing the allocated task and, moreover, at the time of assessing the applicant's suggestions for resource allocation, considering these parameters seems necessary to guarantee the intended quality. Some issues like deadline and maximum budget of the customer are among them. Other parameters can also be placed in this discussion including the network bandwidth for tasks which need input file and or tasks which comprise a number of subtasks (workflow).
Customers are interested in their tasks being completed in the shortest time possible and with the least cost which a cloud provider must receive. On the other hand, the cloud provider also tends to maximize the utilization of its resources and enhance its profitability, which are in contrast with each other and are not in alignment with traditional methods of resource allocation and scheduling mechanism. Since providing service in clouds is a kind of product in the supply chain, service scheduling can be divided into two categories: 1. User-Level 2. System-Level In the system-level scheduling, solving the problem of resource management within data center is considered. From the customer's view, a data center is an integrated system offering services to users; however, data centers are a combination of a great number of physical machines serving integratedly. After receiving a great number of tasks from different users and allocating them to physical machines, performance of a data center is influenced. In order to control and improve utilization of the system, numerous instances such as the simultaneous execution of processes, resource sharing, debugging, etc. Must be included [2,3,4,5,6]. This type of scheduling at the cloud data center level is also called resource provisioning. The focus of this study is on the subject of resource allocation. In a smaller grouping, resource scheduling and their allocation to tasks in the cloud provider can be divided into two groups [2,6,7,8,9,10,11,12,13]. -Based on information transparency: choosing method of presenting information to other participants such as fully transparent method, sealed method, etc.
-Combinatorial auction method: offering bids as a combination of several bids for types of resources, as an instance, a customer offers a bid for a combination of Network, Storage, RAM, CPU.
In a research conducted by Buyya et al. [14], different types of economic based scheduling methods used in economic grid and grid environments are categorized according to Fig 1. Heuristic models for task-execution scheduling mainly include static and dynamic methods. Static methods are used when the set of tasks to be scheduled is predetermined and dynamic methods are used when tasks enter as real time [6].

Static strategies
Of the most famous presented algorithms in this group, OLB,MET,MCT,MIN-MIN,MAX-MIN, GA, SA, Tabu,A Ã , etc. can be pointed out. Based on the conducted evaluation when the machines are compatible, GA algorithm provides the best response and MET the worst response. And for incompatible machines, A Ã ,GA the best solution and OLB the worst. In general, Min-Min, A Ã , GA can be introduced as the most trusted methods in the provision of the least Makespan. by the scheduler; in the Batch mode, tasks are scheduled categorically and groups are deposited to resources with a short interval.
• Online-Mode: KPB, SA, MCT, MET, OLB algorithms are placed in this group.
• Batch-Mode: Suffrage, Max-min, Min-Min algorithms are included in this category.
Amazon has had numerous innovations as one of the pioneers of cloud computing in the discussion of resource allocation. This provider has divided the supplied resources into three instances each of which is usable for a certain need.
• The first instance and customary of Amazon is On-Flat: In this instance, evidence of the notion of pay as you go, for hourly resource rent, a fixed pricing has been conducted and users can purchase an hour to start and, in continuance, if needed to rent more time, pay the cost of the next hour again and still have the resource at their disposal.
• The second instance is On-Demand: In this instance, pricing has been done on the grounds that the user rents the resource for a longer period of time right from the start; therefore, the price of renting this instance per hour is less than the previous one. In this instance, the user must be committed to paying all hours of the rented resource.
• The third instance is On-Spot: In this instance, Amazon reprices its additional resources, not currently rented. Amazon's pricing model for this instance has not been provided based on minimum costs and acquisition of profitability through resources. The process of pricing these resources occurs once every hour and users applying for these resources must offer bid for their intended resources; if the offered bid is more than the base price, the resource is given to them for a period of one hour with Amazon's base price. At the end of one hour, the new pricing is renewed and if the user's previous bid is more than the new price, the resource rent continues for another hour until the user's bid goes below Amazon's pricing. If the user's bid is less than Amazon's new price, the task is cut without any warning and resources are taken back from the user.
In this research, inspired by Amazon's On-Spot instance, the subject of resource allocation from user's perspective is considered, in accordance with the instances mentioned and using auction economic method and designing an executive mechanism based on the game theory, a multi-agent environment is presented for the expansion of the cloud provider's utility, on the one hand, and the user's required resource allocation by considering time constraints and the user's budget, on the other hand. In the proposed model, each agent seeks the maximization of their expected utility and the cloud provider as nature intends to maximize the utilization of cloud, in addition to maintaining the system in the Nash equilibrium mode; each agent represents a customer and is also responsible for announcing the start and end of the game and choosing the winner of the auction and calculating the provider's utility.

Related Works
Since market-based methods have been used in numerous researches, in this section, we review them in three subcategories, public, grid computing and cloud computing.

In public environment
One of the oldest usages of the auction model in computer computing, dates back to computing time allocation of a mini-computer in Harvard University [15]. In this auction model, a smart "financial bid" was offered by the user to attend the auction in order to take computing time. Gagliano [16] has also studied the subject of computing resources through auction; he tried to somewhat inject smartness into tasks so as to be able to calculate a suitable bid to take resources. In this method, in order to offer each bid, the information of previous bids has also been used. Economic mechanisms are introduced as one of the main approaches of in resource management systems such as agents [1], telecommunication networks [17], data mining [18], cluster computing [19] and grid computing [20]. In these systems, numerous management instances, including bandwidth price, congestion control of TCP, content delivery and routing, are investigated and researched. Market traditional models are mainly summarized in pricing and transmission modes, among which commodity models, contract, lending and simple auction methods can be named. These models each have strengths and weaknesses and are suitable for a certain situation. Stuer [21] prefers the commodity model, since he believes that this model leads to equilibrium in supply and demand. Stanford [22] has designed architecture based on the contract method in which a dynamic pricing model exists based on the clash of demands mechanism. In this model, certain systems are designed and employed by the system in order for the price to reach a fixed point. The lending model [23] has been considered as another strategy. In this model, the two-sided cooperation of resources has been presented so that one side, instead of receiving money, obtains a resource on the other side. Additionally, numerous auction-based methods are extensively used in resource management including bidwined and bid-shared.

In Grid Computing
Auction has been used, to a great extent, in resource allocation and scheduling in the grid computing. Wolski et al. [24] have compared auction and commodity market models to achieve a sustainable price and balancing point. Gomoluch and Schroeder [25] have simulated a twosided auction protocol to allocate resources in grids. They have demonstrated that the proposed method of their research has a better performance than the famous Round-Robin method. Gray et al. [14] have designed a meta scheduler based on two-sided auction which works in the grid environments. The conducted comparison by them shows that their proposed auction method, in addition to increasing user utility and system performance, offers better responses compared to the usual meta schedulers. Das and Grosu [26] have presented a combinatorial auction model to allocate resources in grid so that, in their model, various grid providers can supply their computing resources. An "auctioneer" collects different information on the supplied resources and implements a combinatorial auction mechanism to allocate resources, such that users offer their bids in order to obtain a series of resources. Dash et al. [27] formulated a scheduling mechanism of tasks in the grid environment. They considered an optimization problem with the objective of reducing the system's whole price; nevertheless, in this model, selfish providers might attempt to present an erroneous report of the price parameters and their capacity rate if it leads to the expansion of their profit. They offered a decentralize as well as central mechanism to solve this problem. In another study conducted by Grosu [28], a system architecture has been presented for the problem of compatible resource allocation in the grid environment. The proposed architecture allows both groups of users and providers to participate in the process of resource allocation and pricing with different mechanisms.
Galstyan [8] has proposed a small supplied algorithm to allocate resources in grid environments. In this algorithm, agents that use a certain resource are rewarded if their number does not violate the resource capacity and, otherwise, are punished. Consequently, a system can use all resources by means of adjusting their capacity. The limitation of this algorithm is in the fact that few agents can be active in that. Berdin [9] has developed a non-centric debate strategy in auction for divisible resources. The amount of budget constraint is determined for mobile agents and they try to do the task by planning the available price amount through a series of repeated stages. Maheswaran [10], by expanding Berdin's results, proposed a divisible auction structure which allows auction features to be modeled as linear Gaussian in a wide range of mobile agents. He also proved that an auction contains a single Nash equilibrium point. Nash equilibrium explains how an individual can adopt a rational decision in a non-cooperative environment; as a result, this concept is used in resource allocation researches in mobile agents and grid computing. G-Commerce [29] is an example of grid management tools which uses economic computing method to allocate and control resources. In this platform, two types of market conditions are implemented, commodity market and auction. BEinGRID [30] is also an infrastructure for the execution of grid technologies in conditions of commercial scenarios. In the GridEcon [31], a commodity market platform has been presented so that users can purchase available computing resources.

In Cloud Computing
Recently, researchers have moved towards using economic methods in cloud computing. Wang et al. [32] have used various economic methods in resource pricing in cloud. They tested the execution of the proposed model on Amazon EC2 and a proprietary infrastructure and, in the end, concluded that the pricing used in Amazon is unfair to users. Walker et al. [33] have presented a model in which the resultant profit is calculated by obtaining the storage space from cloud. CloudCmp tools [34] help users to be able to find a suitable service provider by determining their needs. Buyya et al. [35] have proposed an infrastructure for resource allocation in multiple clouds based on commodity pricing method. Altman et al. [36] have suggested a market in which resource allocation and pricing are based on bidding exchanges. In this exchange, users and service providers both offer their requirements and bids and allocation occurs in case of finding a suitable match. Risch et al. [31] have offered a cloud test environment to experiment various mechanisms. They have implemented the model proposed by Altman et al. [36] in this platform. The proposed market in the last two studies are not easily implementable due to current cloud infrastructures and available messaging interactions. As a consequence, the main focus of most researchers is on a model where a single provider and a number of users are present. Lin et al. [37], by examining economic models with statistical data analysis, have demonstrated that economic methods can supply suitable resource allocation and acceptable income for the provider if a lot of resources and users exist. As an example, Amazon EC2 service presented one of the economic methods of selling resources, called on spot, for the first time in commercial service providers. Unfortunately, due to commerciality, the pricing method used in on spot instances is not publicly accessible. Chochan et al. [38] have demonstrated in a research how to be able to increase speed in tasks of the Map/Reduce type using on spot examples. They analyzed how this model leads to performance achievement and cost reduction. Campos-Nanez et al. [39] have conducted a research in which by implementing a dynamic auction and performing different adjustments in it in public computing environment, service providers offer their bid to implement a job instead of users. In this model, the capacity of available resources in the provider is publicly visible and bidders merely offer their bids and the service is chosen with the lowest price for the new customer. Researchers have depicted that Markov perfect equilibrium point exists for the game in this model.
The subject of resource supply is also one of the issues which researchers have attempted to solve by using economic models. Dynamic supply of computing resources has been evaluated by Quiroz et al. [40]. They presented a real time non-centric method to supply VM based on workload estimation parameters. The authors in this study proposed a model to predict workload based on estimation over a long period of time. Van et al. [41] have evaluated an automatic resource management system which is VM allocation from a physical machine sample to the resource. They demonstrated that their proposed model simultaneously guarantees the service level agreement and resource utilization. Vecchiola et al. [42] have also proposed an allocation mechanism based on deadline for the execution of scientific workflow in cloud.
Kansal et al [43] have moved towards measuring the consumption of each VM separately by developing techniques of measuring energy in physical computing resources. They tried to predict and reduce the cost of central electricity supply by creating the capacity of measuring energy consumption in each VM. Meng et al. [44] have introduced a technique to find patterns from within servers' workload so they can attempt to combine and merge virtual machines. This model packs several VMs in a smaller resource in order to maintain service quality. Chen et al. [45] have introduced various factors for the optimization of resource utilization and reduction of costs in order to reduce cloud provider cost and enhance its profit. Their solution intends to control performance and costs using utilization tuning vector from computing resources and retuning VMs at the execution time. Naik and Ghosh [46] formulated the fact that most users' demands are more than the computing resource amount needed and by removing additional demands attempt to increase profit. In their proposed model, the highest bid is chosen as the winner and must pay the offered amount. In another research, Lynar [47] has assessed three types of bid-winner auction and obtained a considerable difference at the execution time and consumptive energy. A great number of commercial and scientific platforms use economic methods to solve the problem of resource allocation in grid and cloud. Cloudbus [48] is an infrastructure interface and a middleware to develop cloud computing programs based on economic methods. The above-mentioned frameworks refer to conceptual environments of the problem of resource allocation in cloud and grid using final equilibrium theory and optimization from user's perspective. The subject of cooperation in computing economy merely consists of creating equilibrium between users and providers of cloud service in order to enhance utilization of resources and competition among different users has been avoided. A common flaw in most of these studies is that, in the hypothesized non-centric models, the environment is considered as non-competitive and ideal. Mobile agents perfectly understand their competitors' information, a fact which is hardly plausible in the real world. Kwok [7] is the pioneer in using hierarchical game theory models in grid computing environments (greedily). He has used both equilibrium point method and problem optimization strategy for public modes based on utility function.
In an alternate research [12], a suitable method has been presented to allocate resources for multi-agent systems. In this method, the presence of Nash equilibrium point has been relied on. Commercial agents can improve the results of conducted allocations by means of updating their belief from environment and introduce new bids. Wei [6] has used both optimization and justice method by considering a resource allocation problem for cloud computing. He attempted to solve the problem of optimization using problem relaxation methods with the help of binary integer programming and utilized a game theory evolutionary mechanism to reduce the amount of lost performance. As was pointed out, various studies have been conducted by researchers in the field of resource allocation and supply methods in computing environments especially grid. According to the great number of decision-making parameters in cloud environment and evaluating the conducted movement process of researches, it seems that economic scheduling methods, due to beneficiaries' two-sidedness in cloud environment and existence of financial problems between the parties, can be a suitable option for continuing researches in this field. In accordance with the proposed categorization in economy-based methods [49], six groups of resource allocation and supply algorithms have been presented so far of which auction methods and methods with auction-based pricing are at the head of the proposed models; this issue has been mentioned separately in Table 1.
By evaluating different models presented in allocation in economic environments in Table 2 [50,51,52,53,54,55,56,57,58,59], in this research, we intend to more accurately investigate the presented algorithms in auction, auction sharing, posted price, bargaining, commodity price, contractual network and game theory methods, and propose a suitable method of one or a combination of a number of these methods. According to the conducted categorization, it seems that auction-based methods, auction sharing and commodity price have had the most inclination to utilization [60,61,62,63]. The commodity price method, due to very high simplicity and faster execution, has been able to attract the attention of a number of researchers. However, this method, due to being based on commodity pricing using knowledge of the market methods and other service provider and market movement strategies, is more considered as a static pricing strategy than a dynamic resource allocation method. The auction method, due to using a parametric and fair approach offering a win-win result to both sides, has been considered by many researchers [64,65,66,67,68]. In this study, we try to provide a new model based on auction or a combination of auction with other methods, by investigating and comparing different models in this area and along with eliminating their deficiencies.

Problem Modeling
First, the problem is evaluated at the level of platform as a service, in the modeling of this problem, it is assumed that tasks are relegated to Cloud at the level of platform and the service provider needs to have information about tasks in order to be able to acquire the best combination of virtual machines for the execution of tasks from infrastructure level.
We assume that n tasks are allotted to m resources. Each user U i have a number of similar interdependent k(i) tasks which need equal amount of computing. Each resource is in such a way that the sum of total cost is minimized and n relevant tasks are implemented in the least time with minimal cost. We assume matrix a consisting of n rows, each for one user, and m columns each for one resource. a ij represents the amount of each task of user U i that is assigned to R i , then we assume that a i is the representative of i-th row of the matrix a. Hence, the allocation vector of a i can result in: P a ij 2a i a ij ¼ kðiÞ Two matrices of n Ã m are derived from the a matrix, one is completion time matrix T and the other is expense matrix E. The t ij amount of T matrix indicates the execution time of the tasks od user U i . When they are assign to R i resource, since all tasks of user u i are implemented in parallel and independently, the execution time of all tasks of user u i equals max{t ij |t ij 2 t i } so that t i is indicative of the i-th row of the T matrix. The e ij amount of the E matrix represents the price paid by user U i to implement its a ij task on R j resource. Therefore, the price for implementing the U i 's task equals P m j¼1 e ij . In general, a contrast and trade-off exists between the execution time and cost for each of the tasks. Here we assume that all the participants have complete information of the environment and identical view of the cost and time matrix.
To create equilibrium between time and cost, two amounts of W t for weighing time and W e for weighing fee are hypothesized; therefore, the total cost of user U i is written as follows: w t :max t ij 2t i ft ij g þ w e P j e ij . And since the ultimate objective is to minimize cost and increase utility, the amount of utility for the U i can be calculated as thus: In addition, we assume that Thet ij is assumed as the execution time of the i task on the R j resource in such a way that no other task is being implemented on that resource. It can be deduced that t ij ¼t ij : P j a ij and e ij ¼ a ij :t ij :p j are in place when only one task is allocated to a resource. P j stands for the cost of resource per time unit in such a way that P = P 1 , P 2 , . . ., P m is arranged ascendingly. In order to display the modeled problem, an example is investigated using this model. We assume that we have 4 resources of R1 -R4 so that the cost vector is as P = (1.2, 1.4, 1/7, 2) and we intend to allocate 4 tasks of U 1 -U 4 to these resources.
Consequently, the assignment matrix is as follows: a ¼ Since the cost and time of executing all task of users on resources are jointly divided, the execution time of tasks is calculated thus: And the cost matrix: In order to maintain simplicity in computations, we ignore the ratio of weight time to cost. Therefore, each of the players (users) is as follows: Each of the tasks is considered as a player and the a i assignment vector of each is also assumed as that player's selective strategy. In the end, the ultimate strategy of the system's final mode including total selective strategies by all players in the T time will be as a = (a 1 , . . ., a n ) T vector. The selective strategy of each player i is demonstrated with a i and other competitors' strategy is shown as a −i . Accordingly, (a i , a −i ) stands for the selective strategy of the player i against other players and in case of alteration in the strategy of player i, any kind of adoption of other strategies is displayed as (a 0 i ,a −i ). In the end, the purpose of the problem is to solve the game G = < s, a, u >, in which s represents players, a their strategies and u their obtained utility. This game is of the type of repetitive and simultaneous game. Each player seeks maximum amount of utility and in order to optimize the solution of the problem, the following conditions must be considered: In which k(i) stands for all the tasks of user U i . One of the key parameters in obtaining utility function, is an amount called Constant Elasticity of Substitution (CES). This amount seeks to obtain a fixed amount of demand value (computational resources) and production value (virtual machines) and create an equilibrium in them. The amount of CES can be calculated as C is the integration value of using all resources by all players, c i is each palyer's usage of (the player's share of resources) such as execution time, paid price, consumption bandwidth, used electricity, etc. α i is also the resource share parameter which detects each resource allocation value to a task. And s is demand elasticity of substitution. In order to simplify, equation r ¼ sÀ1 s is considered and C is rewritten as follows: And after applying the Hoptial law lim r!0 If P n i¼1 a i ¼ 1, the function value will be as aconstant scale, namely that the consumption amount will grow as the consumption growth rate value of each of the resources. If each α i grows 20%, then C will also grow 20%. If P n i¼1 a i < 1, then the scale return rate declines or on the other hand rises. CES function is, particularly, a specific mode of Cobb Douglas function. In a general condition, if c 1 , c 2 , . . ., c m are consumption values from m resources by the allocated tasks to them, the utility function is written as below: Which c = (c 1 , c 2 , . . ., c m ) and P m i¼1 a m ¼ a we will have C ! c 1/α function when > 0.
uðcÞ ¼ uðcÞ 1=a Now assuming p i ¼ a i a (ratio of using each resource to all usage of resources), again we will have: And to obtain maximum utility, we can take logarithm of the utility function: max X m i¼1 ðp i ln c i Þ Choosing optimal strategy and Nash equilibrium Nash equilibrium is a point of game where no player will gain more utility by altering their strategy, if other players do not wish to change strategy. In this game, it is assumed that all the players are rational and have normal behavior. Once again, game G is assumed, each player i can obtain their utility for different modes of u 1 (a 1 , a 2 , . . ., a n ) strategy. It must be noted that utility is dependent on each player's chosen strategy and other players' strategies. A profile of fa Ã 1 ; a Ã 2 ; ::; a Ã n g 2 a strategy is a Nash equilibrium point if no change of strategy by a player leads to profit increase of other players.
In order to simplify the game and reducing limitations of optimization problem solving, the following instances are considered as presuppositions of problem solving: 1. The execution time for each of the tasks allocated to resources is predetermined. Various methods exist to estimate this time [9,14].
2. tasks are interdependent and can interact with each other. The amount of consumption bandwidth is not considered in every interaction.
Most of scientific problems which are implemented in parallel satisfy these two terms. Moreover, if a task does not include subtasks and is implemented independently, it is sufficient to merely consider the sweep interactive time between subtasks as zero for that task.

Objective function definition
The best objective function can be based on prices. For this purpose, the weighing sum of time and cost can be obtained [19]. Each time unit is recorded as a fixed amount of cost. In this problem, each time unit is considered the equivalent of 100 monetary unit and the ratio w t :w e = 1 is assumed. Each player can consider a deadline, displayed with T 0 , and a maximum budget amount, shown with E 0 .
First, we assume that each resource has a certain execution capacity of tasks which is shown with c = (c 1 , c 2 , . . ., c m ) and the amount of execution speed of each task on each resource is demonstrated through equation e ij . Once again, the e ij matrix, representing the cost of executing the i task on the resource, we assume that Θ j is the sum of task bids for the resource as the price of one resource at that instant and obtain as Y j ¼ P n i¼1 e ij . And y Ài j ¼ P n k6 ¼i e kj is assumed as the sum of bids by other competitors for the resource j. It can be perceived from the above equations that the share of each task from the resource is calculable from equation. The spent time for the execution of task i on the resource j is defined as thus: And the final execution cost on the resource j is as thus: Now, for each player to choose their best strategy, an amount must be considered as their payoff. As an example, if t i j is assumed as the payoff, all players tend to have the most speed in task execution; therefore, the least payoff is for the best choice. On the other hand, if the price is considered as payoff (e i j ), the most cost constantly dominates alternate strategies (dominated strategy) and the most e i j dominates other competitors. Consequently, the best solution in choosing payoff is the combination of these two limitations together. According to the constant elasticity of substitution (CES) function [13], mentioned before, the players' payoff is altered as below: So that and are, respectively, time demand elasticity output and price. In Table 3, the used parameters are presented in the model.
(the cost ratio of each player to other players) which, in fact, this weighing coefficient demonstrates the significance of cost or time parameter. Since the objective of all players is to minimize time and cost, then the optimal objective function of a player i is minφ subject to By Lagrangian definition, we obtain Hamilton equation: By replacing parameters t i j and e i j , function is made by three variables e ij , l i e , l i t , and by its derivation, ratios e ij , l i e , l i t are, respectively, obtained to the amount bid by player i for resource j.
T 0 and E 0 are, respectively, time and price limit of player i and y Ài j also represents estimation of sum total of bids by other competitors. Each of formulas 2 and 3 indicate the effect of price and time on the bid of player i. Both these equations demonstrate that the current bid e ik is obtained with respect to previous bids by competitors (j<k) y Ài j , present y Ài k and future y Ài j (j>k). ½y Ài 1 ; . . . ; y Ài k ; y Ài kþ1 ; . . . ; y Ài m Here, in order to simplify problem solving, it is assumed that others remain constant in the network, consequently, the game is modeled as a static game with complete information. However, since such matter is farfetched in the real world and competitors try to acquire the most utility, in practice, our information of the environment is not complete hence an estimation must be obtained of sum total of bids by other competitors compared with their past. ½y Ài 1 ; . . . ; y Ài k ; y Ài kþ1 ; . . . ; y Ài m In which, y Ài kþ1 ; . . . ; y Ài m is an estimation of bids by competitors in future.

Estimation of parameters
The presence of Nash equilibrium in the game with complete information has been proved by Berdin [9]. Nevertheless, the new problem is when buyers do not intend to publicly display their prices. In this environment, this question is addressed: how do players become aware of each other's prices and or, in other terms, estimate them. Since in the auction game explained before, we have the history of various round of the game Θ 1 , . . ., Θ k−1 , we can use them to estimate the price of next round. In probability science, Bayesian theory indicate that the likelihood a hypothesis occurring depends on the observation of given causes in the state space. Distribution of future state can be obtained from past P(Θ) and its similarity function P(Θ|Θ k ), as follows: To calculate P(Θ|Θ k ), Bayesian learning mechanism can be utilized. Using Bayesian learning, the closest amount of resource price can be predicted and next bids can be estimated as thus.
y Ài In which, E(e i ) is the vector of bids by player i. The three parameters a i k , b i k , and g i k are defined as knowledge from other competitors: By replacing y Ài j in F i k ðY k Þ in equation 2, function F i k ðY k Þ is obtained as follows: In fact, function F i k ðY k Þ demonstrates that the rate of dependence of bids is not merely on the budget and the offered amount can also change in the next stage by alteration in workload. As seen in chart of Figs 2 and 3, a rich player can gain more resources by presenting a big bid and, on the other hand, player with high workload must wait to gain cheaper resources.
By replacing y Ài j with Θ ke ik in equation 3, function g i k ðY k Þ is obtained which formulates the bid according to deadline: This ascending uniformity equality function depends on and shows that if we do not include budget limit to the bid amount, it can grow indefinitely.
In Fig 4, the bid functions, when both budget limit and deadline are included, are compared.
In Fig 4, the intersecting curve is included as a new function named h i k ðY k Þ (the calculated objective function the players' bid for participating in the auction), which is based on budget limit and deadline and is written as below:

Equilibrium price
In order to achieve an equilibrium point, in bids offered by different players, we act as follows. First, players who need resource k, calculate and offer their initial bid: Y ð1Þ k ¼ P N e ij In the first stage, the price that the players wish to pay for a part of resource, is calculated by   As a consequence, part of resource owned is as x iðmÞ If each of the players is not satisfied with the performed allocation, due to the low resource or high price, the repetitions continue and players can optimize the bids in next stages and if all players are satisfied, the price flows: Y ðmþ1Þ k ¼ Y ðmÞ k . Therefore, the resource price in the amount Y ðmþ1Þ k is consented by all players and we have reached the equilibrium price. Since, in the game theory, Nash equilibrium point occurs when none of the players intends to alter their game, thus So that e Ã ik is equilibrium bid and y ÀiÃ k ¼ Y Ã k À e Ã ik competitors' equilibrium optimum amount. When demand is greater than supply, P N x i k > 1, players are motivated to offer more price to achieve more share of resources; consequently, resource price increases. The expansion of resource price leads to the reduction of x i k until P N x i k reduces to one will (a number of competitors withdraw from participating in the competition, due to lack of ability to offer higher bid). Conversely, this situation P N x i k < 1 also applies. Fig 5 demonstrates resource price equilibrium in dynamic conditions for a time when the distribution of players' bids is similar.

Experimentation
Since the execution of resource allocation algorithm will be very expensive and time-consuming in cloud computing real environments, therefore, the execution of this algorithm was done in cloudsim simulator [48]. First, the auction was sequentially implemented based on different systems and, afterwards, a simulation was simultaneously conducted from posted mode of proposals by different users. The possibility arrival rate of offer distribution is considered as parameters and resources can also be connected to the center or leave it freely. In simulation, four entities are considered. The CIS storage, a database of whole cloud, is used for recording between users' needs and available resources in the datacenter. The datacenter is responsible for the integration between hardware, databank of storage tools, applied software and operating systems for the construction of a resource pool and their virtual offering to users. Next entity is users or the players who intend to execute a set of independent tasks and are ready to pay a price in order to obtain their required resources to execute tasks on those resources. These players offer their bids based on economic capacity and priority of tasks according to the proposed formula in the model. The auctioneer is a medium for the creation, management and execution of an economic competitive environment.
The auctioneer tries to obtain a monetary equilibrium point for a non-cooperative game among players based on a predetermined decision-making function of laws. At the beginning, the database prepares available resources and registers their distribution information inside CIS. Furthermore, users demanding task execution announce to the auctioneer and are placed in the queue according to their request time. In a regular cycle, the auctioneer collects the set of information and posts the demands after decision-making to datacenters in order to construct relevant virtual machines to the number needed for task execution. At each stage of auction process, each of the users post their demand including local time, processors' power and intended bid. The auctioneer receives all bids and informs all the players of the sum total of received bids. In a game with incomplete information, Cloud users are merely aware of their bid and total bids. They dynamically forecast resource future price and update their information on competitors ½y Ài 1 ; . . . ; y Ài k ; y Ài kþ1 ; . . . ; y Ài m . In this way, the auctioneer adopts a decision for allocation and requires all players to announce their opinion.
If everyone is satisfied, the auctioneer announces his/her decision to datacenter and finishes the game. Users execute their tasks and pay resource price. The algorithm of auctioneer and user procedure, along with more details, is presented in the following section. From the user's view after task execution request, observers concentrate on analyzing the received message to understand his/her next move. When the auctioneer announces that a new auction has begun, the user calculates a new proposal amount and sends to the auctioneer. If a user receives a message containing parameters from alternate bids, he/she tries to estimate the next total bids, using Bayesian learning mechanism. And, in the end, when the user received the resource final price and the amount of his/her allocated share, he/she prepares for task execution and resource price update. This process has been demonstrated in algorithm 1. In the conducted simulation, the auction time was considered once in intervals of one hour. Upon starting of the auction, a message is sent to all users, containing a request for posting bid. After receiving all bids, the auctioneer informs users of the total Θ k . Simultaneously also, the auctioneer collects all bidding function parameters (including deadlines and price limit) from all users and adopts a rational decision and reaches a price limit. If the difference of P h i k and Θ k is more than a predefined threshold limit value, the auctioneer continuously rejects the price and requests new price (resource price amount h i k is calculated by considering deadlines and price limits per user). When the equilibrium amount is achieved, the performed resource allocation is announced to everyone. This process has been demonstrated in algorithm 2.

Evaluation
For the evaluation of the proposed model, the Cloudsim simulation environment has been used. To compare the obtained results, first an implementation of algorithms was conducted based on the proposed auction by Zaman [69] and the proposed workload was produced in that article. In the proposed model by Zaman, several auctions have been suggested with different decision-making mechanisms according to which the author has concluded that his proposed model presents a better response than alternate auction-based economic methods and even with respect to real-time nature of Cloud environments, the proposed method will have the most optimal allocation. To better compare the proposed model in this research, which is based on auction and uses game theory mechanism, the simulation of the new model was done 275 times, involving 25 times model execution on prepared archives and calculation of the average achieved results in each of the workload archives. In the end, the 11 obtained results were compared for both models separately.

Work Load Selection
Since for Cloud environments, a public workload has not yet been published, therefore, in this research, PWA workload (Parallel Workloads Archive) was used [70].This workload is a combination of a rich set of executed tasks on the world' large databases. In this workload, over 26 archives exist of which 11 archives was chosen for this research; in Table 4, their specifications, including archive's name, time duration for data collection from database, number of all executed tasks in that time interval and number of all processors, are given.
Archives are chosen so as to have diversity from time aspect and number of tasks and also processing power. A database with 64 to 163840 various processors has been used to be able to simulate on platforms with different specifications. These workloads are given based on SWF format [71]. In this format, information related to posted tasks to databases are presented in the form of 8 fields; in the simulation of this research, six characteristics have been used (Table 5).
Next, a number of other characteristics were added to this workload by researchers, which include the following: -Number of virtual machines required in proportion to the demanded type of task: to calculate the number and type of virtual machines required for each task, we use equation is the amount of average CPU time used and T R j is total time of task execution. Using the obtained amount, a record is performed for m types of virtual machines and, accordingly, we achieve the number of required virtual machines of m types.
-Task budget limit: to calculate each task's budget amount, first, its speed is calculated from , in which P j is the number of used processors. Afterwards, the calculated speed is multiplied by a random number. This random number μ is fixed for each group of users. Thus, all users are categorized into three groups, basedon the UserID value, and a number is given to each group.
-Task deadline: since no option is considered in the available archives to determine deadline, in this research, we consider the deadline equivalent to 4 to 8 times the time required to execute the task and randomly assign it to each task.

Auction execution
Following, for auction execution, four virtual machines VM1, VM2, VM3, VM4 are assumed. The value N equivalent to the number of users and M the number total available processors are deduced from each of archive files. We assume that the hypothesized virtual machines contain weights (1,2,3,4), respectively. Namely that the processing power and resources VM2 are twice VM1. The number of users participating in each auction, is a function of total number of users of that workload. Since the auction is held every each hour, all users whose time sending task is smaller than the current time and their deadline is not over can participate in the auction whether or not previously participated in the auction (except for users who have been announced as winners in previous auctions). In order to detect the required number of virtual machines for each user, the set (C1, C2, C3) is assumed as communication ratios. As an example, the amount (0.05, 0.15, 0.25) is interpreted such that if a task has communication ratio 0.05, this task needs μP j number of VM1 instance in such a way that P j is the number of processors required by user u j . The remaining required processors are also calculated with the same ratio among alternate instances of virtual machine. To assign users and identify the amount μ, UserID is used and users are divided into five categories (userid mod 5). The total number of virtual machines available in Cloud is initially a function of h vector which indicates the percentage of each of the instances compared with the whole virtual machines available. In this research, this vector has been assumed as (0.07, 0.13, 0.27, 0.53) and (0.25,0.25,0.25,0.25). in Table 6, the assumed values are demonstrated for the simulation of the model. The basic price of each of VMs has been considered based on prices listed on Amazon.

Analysis of results
By executing the proposed model and analyzing the obtained results, a more accurate comparison can be performed among the methods under study. In the first stage, a comparison is conducted between the obtained income rate in the two proposed algorithms in [69] and this research model. In Fig 6, executing normal distribution of models has been shown on 11 selected archives. In workload number 1 and 5, the obtained income rate of the proposed model is less than the compared algorithms. The reason for this is the low number of available demands in this workload; since one of the bidding function calculation parameters is using the record of offered prices and as the number of demands becomes higher, the system will reach a more accurate forecasting with the passing of time; therefore, as observed, the proposed model has better response and greater income in most workloads compared with the other two algorithms.
Next, based on the obtained outputs, the cost rate of executing the two previous proposed algorithms are displayed in Fig 7. As seen, the proposed model cost is either less than or equal to the two previous algorithms in most workloads, and the reason for this depends on the more rate of resource allocation performed in the proposed model.
In Fig 8, the rate of obtained final profit in each of workloads has been demonstrated by executing the three models. In 9 workloads, the rate of obtained profit is greater than both previous auctions and in 2 other workloads, most customers with sufficient deadline and enough budget to execute their task, have obtained their intended resource or resources. However, in the other two algorithms, two parameters of budget and time have not been included in resource allocation and have been chosen merely based on the highest winning proposed amount.
According to the obtained results in the comparison of the proposed model with other models, next, the effect of budget and time in choosing winner and the rate of resultant profit are investigated. Fig 9 shows the extent of resources utilization in the proposed algorithm compared with other two algorithms. As can be seen in this figure, in the workloads in which resultant profit has been higher (Fig 8), the resource utilization has also been high and resources have been adequately utilized. Fig 10 shows the percentage of served users compared with total number of requests. This diagram shows that in the majority of workloads, the rate of response to users' requests and the ability to perform their requests have been higher in the proposed algorithm compared with the other two algorithms. By analyzing the results of these two diagrams, it can be concluded that the mechanisms used in this study has a better performance in higher workloads compared with other economic methods, and also that this mechanism can achieve better results in cloud data centers that have a large number of users and repeated requests. The reason behind this claim is that while proposed mechanism provides equal opportunities for users to send their bids, it uses an objective function in which the parameters of budget constraint and deadline are considered and the price offered by the users (h i k ðY k Þ) and their deadlines move toward an equilibrium. The calculation of this function is based on the parameters announced by the users and the estimations of the auctioneer itself. On the other hand, users also utilize the bid function (e ik ) with accordance to their budget constraints and deadline and then calculate and send the amount of their bid. This process causes the constraints of time and budget to be considered in both sides of the game, and the game ends when all players have offered their bids in accordance with their capabilities and needs and are satisfied with their performance and when no player has the desire to change his proposal; therefore, in this condition the Nash equilibrium is achieved.  In Fig 11, it has been demonstrated how prices alter during time. We conclude that applying budget has great effect on the initial equilibrium price since selfish but rational players constantly try to gain more profit than others. Nevertheless, in the mode of budget limitation, players become conservative and in order not to finish their budgets and to be able to pay for the execution of the remaining tasks, they act conservatively in the first stages; however, the equilibrium price is less than the average price. On the other hand, if players have sufficient capital, they are motivated to offer greater bids so as to be able to allocate a greater share of resources to themselves.
Next, the accuracy of forecasting Bayesian learning is evaluated in a mode where the cloud competitive environment is replete with uncertainty such as insufficient knowledge of the environment and posting tasks as real time. In Fig 12, price forecasting of resources in a dynamic game with incomplete information has been demonstrated.
When common knowledge is insufficient, the user tries to predict the others' bids by using the published equilibrium prices. When the standard deviation is small, not more than 0.01, simulation works well. If users cause an unsustainable condition and propose random bids in a risky process, the accurate forecasting of prices becomes difficult. If the opposing information  is iteratively learned, the practical results have shown that resource prices can still be convergent to equilibrium price in a step by step process.
It can be seen that LLNL-Thunder-2007 workload achieves the highest profit for cloud but it is also one the workloads that provide service to the greatest number of users. Therefore, in the following, we will further investigate the details of this workload and the behavior of the proposed model and other algorithms in this workload. Table 7 presents the comparison between the performances of different algorithms in this workload and the number of tasks that (considering their deadline) have been able to participate in the auction and also the tasks assigned to resources. This comparison shows that in naïve auction, a significant number of tasks can enter the auction but fewer numbers can get their desired resources. Other models also have been able to assign more than 80% of tasks to resources; but in the model proposed in this study, a high percentage of tasks receive service and the rate of agreement violation is very small.

Conclusion
In this paper, a non-cooperative game is proposed to solve the problem of multi-user allocation in cloud scenarios. The scheduling model includes auction, bidding function, cost prediction and equilibrium point analysis. Here, an algorithm based on game theory is performed for user bidding, auctioneer pricing and share-bidding model in supplying resources in cloud framework simulator for scientific workflow tasks. The results demonstrated that resource allocation during a non-cooperative game between users achieves Nash equilibrium point even when our common knowledge of the environment is insufficient. In this paper, it was demonstrated that forecasting Bayesian learning has the best and more sustainable efficiency and can help the auctioneer to reach resource equilibrium price. In the proposed model, in order to execute tasks with workflow at the level of platform as a service, each player had limitations in budget and deadline for his/her intended task execution; therefore, a method was proposed so as to be able to reach the game condition to an equilibrium point, that is Nash equilibrium point by offering an objective function for the estimation of the bidding amount by the player in the auction and also offering a method to choose a suitable price by the auctioneer. Model simulation showed that despite competition among users and presence of users with various financial capability and deadlines in the execution of their demands, the system achieves a sustainable mode after executing a few stages and the proposed bidding function prevents from reaching impasse. Comparing the proposed model with some auction-oriented methods revealed that in the proposed model in this research, the profit rate resulting from allocations are greater compared with other methods and more users obtain their intended resource.

Author Contributions
Conceived and designed the experiments: AN GHD. Performed the experiments: AN GHD. Analyzed the data: AN GHD. Contributed reagents/materials/analysis tools: AN GHD. Wrote the paper: AN GHD.