1. Introduction
^{1}^{1}1This work was supported by the U.S. Army Research Laboratory and the U.K. Ministry of Defence under Agreement Number W911NF1630001. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of the U.S. Army Research Laboratory, the U.S. Government, the U.K. Ministry of Defence or the U.K. Government. The U.S. and U.K. Governments are authorized to reproduce and distribute reprints for Government purposes notwithstanding any copyright notation hereon. Faheem Zafari also acknowledges the financial support by EPSRC Centre for Doctoral Training in High Performance Embedded and Distributed Systems (HiPEDS, Grant Reference EP/L016796/1), and Department of Electrical and Electronics Engineering, Imperial College London.Mobile edge computing is a viable solution to support resource intensive applications (users). Edge computing relies on edge clouds placed at the edge of any network (he2018s, ). This, in contrast with running applications on different mobile devices or deep in the Internet, usually allows onehop communication (jia2015optimal, ) between edge clouds and application that results in reducing application latency. However, a fundamental limitation of mobile edge computing is that in contrast with traditional cloud platforms and data centers, edge clouds are limited in resources and may not always be able to satisfy application demands (he2018s, ). Realizing the resource scarcity problem, the research community has started several initiatives to create an open edge computing platform where edge clouds in the same geographical location can form a shared resource pool. However, allocating these resources efficiently from the shared pool to different applications in itself is a challenge.
There have been several attempts in the literature to address the resource allocation problem. He et al. (he2018s, ) studied the allocation of edge resources to different applications by jointly considering request scheduling and service placement. Jia et al. (jia2015optimal, ) discussed edge cloud placement and allocation of resources to mobile users in the edge cloud in a Wireless Metropolitan Area Network (WMAN). Xu et al. (xu2016efficient, ) discussed edge cloud placement in a largescale WMAN that contains multiple wireless access points (APs). However, most work does not account for the fact that edge resources can belong to different service providers where each service provider can have a particular objective to optimize such as security, throughput, latency, etc. Therefore creating a resource pool and then allocating these resources requires taking different service provider objectives into account, which results in a multiobjective optimization (cho2017survey, ) (MOO) problem. Furthermore, each service provider has primary applications that should be prioritized over applications of other service providers as customer loyalty is an important part of the cloud business model. For example, Amazon Web Services (AWS) and Microsoft Azure need to satisfy the demands of their own customers first before they “rent” resources to other service providers.
In this paper, we attempt to address the aforementioned shortcomings. We consider an edge computing setting where different edge clouds belonging to different service providers are placed at the network edge. Each cloud has a specific amount of resources and particular applications affiliated with the cloud can ask for resources. All clouds initially attempt to allocate resources to their own affiliated applications. If a cloud can satisfy its own applications and still have available resources, it can share them with other edge clouds that might need resources. To capture this, we present a Cooperative Game Theory (CGT) based resource sharing and allocation mechanism in which different edge clouds share their resources and form a coalition to satisfy the requests of different applications. Our CGT based framework takes into account the fact that different edge clouds may have different objectives, which is why traditional single objective optimization framework cannot be used. The contributions of this paper are:

We propose a CGT based multiobjective resource sharing and allocation framework for edge clouds in an edge computing setting. We show that the resource sharing and allocation problem can be modeled as a Canonical game. The core of this canonical game is nonempty and the Shapley value (shapley1988value, ) lies inside the core. For small number of players, we show numerically that the Shapley value provides a fair, Paretooptimal and stable^{2}^{2}2No service provider has the incentive to leave the coalition and form a smaller coalition. allocation.

We propose an efficient algorithm that provides an allocation from the core, hence reducing the complexity from (for Shapley value).

We evaluate the performance of our proposed framework and show that the resource sharing and allocation mechanism improves the utilities of game players.
The paper is structured as: Section 2 provides a primer on CGT, the Core and Shapley Value. Section 3 presents our system model. It also presents the resource sharing and allocation optimization problem with the game theoretic solution. Section 4 presents our experimental results while Section 5 concludes the paper.
2. Preliminaries
In this section, we present a primer on Cooperative Game Theory, the Core and Shapley Value as they are used later in the paper.
3. System Model
Let be the set of all the edge clouds that act as players in our game. We assume that each player has a set of different types of resources such as communication, computation and storage resources. The th edge cloud can report its available resources to a central entity, the coalition controller. Here is the amount of resources of type available to edge node
. Vector
represents all available resources at different edge clouds. Each edge cloud has a set of native applications that ask for resources. Furthermore, the set of all applications that ask for resources from the set of edge clouds (coalition of edge clouds) is given by where i.e., each application asks only one edge cloud for resources. The coalition controller receives a request (requirement) matrix from every player(1) 
where the row corresponds to the application while columns represent different resources, i.e., is the amount of resource that application requests.
The coalition, based on and , has to make an allocation decision that optimizes the utilities of all the edge clouds . The allocation decision is a vector
that indicates how much of each resource is allocated to application at edge cloud . Mathematically,
(2) 
where is the amount of resource belonging to player that is allocated to application .
3.1. Optimization Problem
In this section, we first present the resource allocation problem for a single edge cloud (no resource sharing with other edge clouds). Then we present the MOO problem for the coalition. For a single edge cloud , the allocation decision matrix , where stands for single objective optimization, is given by
(3) 
The optimization problem is given below:
(4a)  
(4b)  s.t.  
(4c)  
(4d) 
The above optimization problem captures the goal of every single edge cloud i.e., maximizing its utility by allocating its available resources to its native applications^{3}^{3}3Applications that are primarily affiliated with the edge cloud.. The first constraint (4b) indicates that resources allocated to all users cannot exceed capacity. The second constraint (4c) indicates allocated resources cannot exceed required resources while the final constraint (4d) requires the allocations to be nonnegative. For the cooperative case where edge clouds work in cooperation with other edge clouds, we aim to maximize the utility of our coalition in (5):
(5a)  
(5b)  s.t.  
(5c)  
(5d) 
Here in (5) indicates the utility that an edge cloud receives by providing its resources to applications in . Remaining available resources at edge cloud can be used by applications of other edge clouds that will be charged at a rate that edge cloud (each edge cloud acts as a player in our cooperative game) would have charged the application had the request been satisfied by edge cloud . Hence is the utility that edge cloud receives for sharing its resources with edge cloud . is the weight assigned to the utility of player . is the weight assigned to the utility . The purpose of the weights is to highlight that each edge cloud first allocates resources to its own applications and then shares the remaining resources with other edge clouds.
3.2. Game Theoretic Solution
(6) 
Algorithm 1 provides an overview of our proposed approach. We calculate the Shapley value for the players and assign it to . Finally to obtain , we take the inverse function of . As we are using monotonic utilities, we know that the inverses of the utilities exist. A fundamental issue with the Shapley value is its complexity. This motivates developing a more efficient algorithm to obtain an allocation from the core.
3.3. Reducing the Computational Complexity
To reduce computational complexity, we propose an algorithm (Algorithm 2) that requires solving only optimization problems rather than .
(7a)  
(7b)  s.t.  
(7c)  
(7d) 
Theorem 1 ().
The solution obtained from Algorithm 2 lies in the core.
Proof.
We need to show that the utilities obtained in Step of Algorithm 2: a) are individually rational. b) are group rational, and c) no player has the incentive to leave the grand coalition and form another coalition .
Individual Rationality: For each player , the solution obtained by solving the optimization problem in (4) is the utility a player obtains by working alone i.e. it is . The value in Step 4 is either zero or positive but cannot be negative due to the nature of utility used i.e.
Group Rationality: The value of the grand coalition as per (6) is the sum of utilities ’s and ’s. Steps 2, 4 and 5 of Algorithm 2 obtain the sum of the utilities as well. Hence the solution obtained as a result of Algorithm 2 is group rational. Furthermore, due to superadditivity of the game and monotone nondecreasing nature of the utilities, no player has the incentive to form a smaller coalition. Hence Algorithm 2 provides a solution from the core. ∎
4. Experimental Results
To evaluate the performance of the proposed resource sharing and allocation mechanism, we consider a set of game players where each player has three different types of resources i.e., storage, communication and computation. Without loss of generality (W.l.o.g), the model can be extended to include other types of resources/parameters as well. We present results for four different settings with 1) ; 2) ; 3) ; and 4) . We used linear and sigmoidal utilities (see (8)) for all the players. However, the results hold for any monotone nondecreasing utility.
(8) 
is chosen to be either or to capture the requirements of different applications. The request matrix and capacity vector for each player were randomly generated. The experiments were run in Matlab R2016b on Corei7 processor with 16 GB RAM. The optimization problems were solved using the OPTItoolbox.
4.1. Value of Coalition
Table 1 shows the utilities of different players in a player application setting. Player one was assigned a linear utility while player two and three had sigmoidal utilities. It is evident from the table that the utility of the coalition improves when more players are added. The grand coalition has the highest utility, verifying the superadditive nature of the game. The last row shows the Shapley Values (S.V.) for the grand coalition. Our (alg2 in Figure 1) provides the same value of coalition as Shapley value (due to Pareto optimality), however players are assigned different utilities in the coalition. Figure 1 shows the value of coalition for players, and and applications with set to and . The grand coalition achieves the highest coalition utility for all three cases. As a higher value of
(i.e., the slope of the sigmoidal function is steep) puts a stringent requirement on the edge clouds to satisfy requests of the applications if it is to gain any utility, we see that that the overall value of coalition is smaller for
when compared with . Figure 2 shows the utility of a player without resource sharing and with resource sharing in the grand coalition in varying experimental settings (, , , and ). We show the utility of the player in the grand coalition both using Shapley value (SV) and our algorithm (alg2 in Figure). Similar trends are observed in Figure 3. However, we do not calculate the Shapley value for and due to the computational complexity and the utility of the players in the grand coalition is obtained using Algorithm . It is evident that all the players’ utilities improve by sharing resources and taking part in the cooperative game.Coalition  Player Utilities  Coalition Utility  

{1}  36  0  0  36 
{2}  0  4.37  0  4.37 
{3}  0  0  4.31  4.31 
{12}  40.17  4.375  0  44.545 
{13}  40.31  0  4.313  44.623 
{23}  0  8.68  8.68  17.37 
{123}  44.68  8.68  8.68  62.06 
{123} (S.V.)  40.34  10.90  10.81  62.06 
4.2. Time complexity
Computational complexity of the Shapley value is high, which is why it cannot be used for a large number of players. We compared the performance of our algorithm with the Shapley value based allocation (given in Algorithm 1) in a 3player game with different number of applications. Experimental results showed that Algorithm 2 reduces the computation time by as large as 71.67% and as small as 26.6% while the average improvement was about 49.75%. Figure 4 shows the calculation time for different userapplication settings with varying . We see that in all the settings, our proposed algorithm outperforms the Shapley value based allocation.
5. Conclusions
We proposed a cooperative game theory based resource allocation and sharing framework for edge computing that can efficiently allocate resources to different applications affiliated with edge clouds. Our resource allocation and sharing game is canonical and convex. The core for the game is nonempty, hence the grand coalition is stable and Shapley value also lies in the core. Furthermore, due to computational complexity of calculating Shapley value, we presented an algorithm that can provide an allocation and sharing decision from the core. Experimental results showed that edge clouds can improve their utility by using our proposed resource allocation mechanism and our algorithm can provide us an allocation from the core (guarantee of Pareto optimality and stability) in a shorter time than the Shapley value.
References
 [1] Ting He, Hana Khamfroush, Shiqiang Wang, Tom La Porta, and Sebastian Stein. It’s Hard to Share: Joint Service Placement and Request Scheduling in Edge Clouds with Sharable and Nonsharable Resources. 2018. To appear in IEEE ICDCS.
 [2] Mike Jia, Jiannong Cao, and Weifa Liang. Optimal Cloudlet Placement and User to Cloudlet Allocation in Wireless Metropolitan Area Networks. IEEE Transactions on Cloud Computing, 2015.
 [3] Zichuan Xu, Weifa Liang, Wenzheng Xu, Mike Jia, and Song Guo. Efficient Algorithms for Capacitated Cloudlet Placements. IEEE Transactions on Parallel and Distributed Systems, 27(10):2866–2880, 2016.
 [4] JinHee Cho, Yating Wang, Ray Chen, Kevin S Chan, and Ananthram Swami. A Survey on Modeling and Optimizing MultiObjective Systems. IEEE Communications Surveys & Tutorials, 19(3):1867–1901, 2017.
 [5] Lloyd S Shapley. A Value for NPerson Games. Contributions to the Theory of Games, 2(28):307–317, 1953.
 [6] Zhu Han. Game Theory in Wireless and Communication Networks: Theory, Models, and Applications. Cambridge University Press, 2012.