Abstract Mobile crowd sensing, also called crowd sensing over smartphones, has been an appealing paradigm for collecting sensory data over a vast urban area, due to advantages of low deployment cost and widely spatial coverage of geographically distributed smartphones or other smart devices. In the paper, we focus on a nontrivial problem of making an agreement between crowdsourcers and smartphone users to find the most efficient assignment of sensing tasks to smartphone users. However, there exist several technical challenges such as the incentive issue to encourage participation of smartphone users, preserving private information and distributed implementation in practice. Existing approaches usually have several limitations, e.g. the absence of proper incentives, the assumption of a centralized auctioneer or platform. To this end, we propose a distributed auction framework that explicitly models the interaction between crowdsourcers and smartphone users, achieving the optimal social profit and providing proper incentives to entities without disclosing their privacy as well. We demonstrate that the proposed distributed auction algorithm satisfies a lot of good properties, including optimality of social profit, computation efficiency, convergence, individual rationality through both solid theoretical analysis and extensive experiments. 1. INTRODUCTION With the rapid prevalence of smartphones embedded with various sensors such as camera and 3D accelerometer, GPS, microphone, crowd sensing over smartphones has been a promising paradigm for collecting sensory data over a vast urban area [1–3]. The diversity of sensors makes it possible to perform various sensing tasks, such as taking photos, measuring the level of noise, recording the velocity/acceleration/distance. The main advantages of crowd sensing over geographically distributed smartphones include low-deployment cost and widely spatial coverage. A wide spectrum of realistic applications have benefited from crowd sensing [4, 5]. In this paper, we focus on a nontrivial problem of making an agreement between crowdsourcers who publish sensing tasks and smartphone users who perform sensing tasks consuming their own valuable resources as shown in Fig. 1. There are several key issues to solve the problem. (i) The first one is how to match crowdsourcers (tasks) with smartphone users in an efficient manner to achieve a desirable social profit. It can be regarded to find the most efficient assignment of sensing tasks to smartphone users. The total net profit of all entities (i.e. all crowdsourcers and smartphone users), which is equal to values of all finished tasks minus costs of all related smartphone users, are the so-called social profit. (ii) The second one is how to divide social profit between crowdsourcers and smartphones users so that they are properly stimulated to participate. It can be understood that crowdsourcers and smartphone users finally determine a trading price for each sensing task in their negotiation. Smartphone users claim as much payment as possible to compensate the resources they consumed and make higher profits, while crowdsourcers pay as less as possible to gain higher profits. (iii) The last one is that the negotiation process should be executed a fully distributed manner since we do not assume the existence of a centralized platform. That is to say, each entity (either a crowdsourcer or a smartphone user) makes his own decision upon his local information separately. Figure 1. View largeDownload slide An illustrative example of crowd sensing over smartphones. Crowdsourcers and smartphones are geographically scattered in a vast urban area. Crowdsourcers connect with smartphone users which are within his communication range (gray circles in the picture) and meanwhile smartphone users can only receive task information from crowdsourcers that are close enough. Crowdsourcers and smartphone users exchange information including task description, trading prices with each other. In the distributed manner, each crowdsourcer (smartphone user) knows nothing except the value (cost) information of his own and trading prices (task information) he receives. Figure 1. View largeDownload slide An illustrative example of crowd sensing over smartphones. Crowdsourcers and smartphones are geographically scattered in a vast urban area. Crowdsourcers connect with smartphone users which are within his communication range (gray circles in the picture) and meanwhile smartphone users can only receive task information from crowdsourcers that are close enough. Crowdsourcers and smartphone users exchange information including task description, trading prices with each other. In the distributed manner, each crowdsourcer (smartphone user) knows nothing except the value (cost) information of his own and trading prices (task information) he receives. However, there exist several technical challenges in the problem. First, smartphone users are selfish and aim to maximize their own utilities and thus it requires proper incentives to stimulate their incorporation. It is well known that performing a sensing task incurs a considerable amount of cost to smartphones, e.g. power consumption and cellular data traffic. Therefore, smartphone users are unwilling to contribute their valuable resources without proper incentives. Second, both the cost information of smartphones users and the valuation of tasks for crowdsourcers are private information. Furthermore, either cost information or valuation information varies from one to the other. Both smartphone users and crowdsourcers are reluctant to disclose their privacy. Consequently, the assignment process is supposed to be done without revealing any private information. Finally, the whole process of assignment and negotiation between crowdsourcers and smartphones should be done in a fully distributed manner. We review a couple of existing studies and then point out their limitations. Some existing studies [6–9] make the impractical assumption that smartphone users voluntarily contribute their resources. Many incentive mechanisms have been proposed for crowd sensing. In [1, 10], for example, an auction based mechanism is designed which includes an approximate algorithm for determining winning bids and a payment scheme for deciding the payment to each winning bid. Unfortunately, most existing auction-based mechanisms ignore competition among crowdsourcers where only smartphone users compete with each other to win specific sensing tasks. Moreover, almost all existing approaches in crowd sensing applications adopt a centralized approach, where a centralized auctioneer or platform is deployed for controlling and supervising the negotiation process. However, it is not practical and would probably suffer from single point of failure. To this end, we propose an auction framework that explicitly models the interactions between crowdsourcers and smartphone users in crowd sensing applications since auction is a suitable tool to match crowdsourcers and smartphones and to determine trading prices as well in a distributed manner. In the framework, we further propose a distributed auction algorithm which achieves the optimal social profit finally and provides proper incentives to entities without disclosing their privacy as well. Characteristics of the distributed auction algorithm are summarized as follows. (i) The distributed auction algorithm is an iterative process where at each iteration each smartphone user locally selects the best crowdsourcer (task) by maximizing his own utility and each crowdsourcer locally updates trading prices for his tasks based on current bids received from smartphone users. (ii) The distributed auction algorithm converges to a stable state, i.e. a global equilibrium, where neither crowdsourcers nor smartphone users would change their choices anymore. (iii) Moreover, the equilibrium is proved to achieve the maximum social profit which is defined as the total valuation minus the total cost of finished tasks. Through solid theoretical analysis and extensive experiments, we demonstrate that the proposed distributed auction algorithm satisfies a lot of good properties, including optimality of social profit, computation efficiency, convergence and individual rationality. The distributed auction framework proposed by the paper has several advantages over the centralized auctions. It removes the assumption of the existence of a centralized auction platform. The platform is probably profitable, indicating that the platform probably disturbs the auction process between crowdsourcers and smartphone users in order to gain profit. Furthermore, the distributed auction framework does not suffer from the failure of a single point. According to the proposed distributed auction algorithm, smartphone users do not have to disclose their costs. We summarize main contributions of the paper as follows. To the best of our knowledge, it is the first work that explores the design of distributed auction framework for mobile crowd sensing applications to explicitly model the competition among crowdsourcers and among smartphone users at the same time. We propose a distributed auction algorithm which works in a fully distributed fashion. It is proved that the distributed algorithm would converge to a global equilibrium that achieves the maximum social profit. The proposed distributed algorithm requires neither crowdsourcers nor smartphone users to disclose their private information. Both theoretical analysis and extensive experimental results demonstrate satisfying properties of the proposed algorithm. Furthermore, the proposed algorithm shows a lot of advantages over other compared approaches through comparison. The remainder of this paper is organized as follows. In Section 2, we review related work from several aspects. In Section 3, we introduce system model and offer a mathematical formulation of the problem. Then we discuss the solution of distributed auction algorithm in detail in Section 4. The theoretical analysis follows in Section 5. Furthermore, we give a simple discussion on the implementation issue in Section 6. In the following, we provide experiment settings and show a lot of simulation results in Section 7. Finally, we conclude the paper and discuss future research directions in Section 8. 2. RELATED WORK The related work mainly consists of the following three components: incentive issues with cooperative users, truthful mechanisms based on centralized auctions and distributed auctions without centralized control. Our work belongs to the final component. Unfortunately, there are few existing works [11–13] related to distributed auctions. However, we propose a compelling distributed auction framework. 2.1. Incentive issues in mobile crowdsourcing Existing works [6, 9, 14–19] provide fixed or dynamic money reward to cooperative smartphone users, who are supposed to be motivated well. Jaimes and Vergara-Laurens [14] propose a greedy algorithm of selecting a subset of users according to locations and the budget to maximize the covered area. Lee and Hoh [15] present a dynamic pricing scheme for stimulating participants to provide better quality of service when they sell sensed data to a service provider. Zhang and Cheng [16] propose a cooperative scheme to negotiate the payment for all partners. Another work [19] explores a novel scenario where only discretized strategies can be admitted for crowdsensing. However, these existing schemes ignore the fact that cost information of smartphone users is private. 2.2. Truthful mechanisms based on centralized auctions Several centralized auction mechanisms [10, 20–28] have been proposed with the guarantee of truthfulness. Feng and Zhu [10] propose two novel algorithms, consisting of winning bid determination algorithm that approximates the optimal solution, and critical payment scheme to induce all smartphones to disclose their private information (cost) truthfully. Yang and Fang [24] propose a truthful auction mechanism for mobile applications while protecting the location privacy of smartphone users. Similar to our work, Wang [25] considers the privacy protection without revealing workers’ privacy including their cost information while designing an online incentive mechanism. Xu and Li [26] investigate a truthful task assignment mechanism while first achieving the preference truthfulness of the biased requesters. Luo [27] designs a truthful incentive mechanism to maximize the crowdsourcer’s utility under an asymmetric all-pay auction model. Xu [28] proposes two truthful auction mechanisms under single and multiple time window cases, respectively. For the single case, the authors adopt dynamic programming to choose the winning users optimally, and for the multiple case, they perform the greedy method to approximate the optimal solution within a constant competitive ratio. Jin and Su [20] propose two incentive mechanisms for single-minded and multi-minded combinatorial auction, respectively, in consideration of users’ diverse quality of information especially. Jin [22] proposes a truthful incentive mechanism based on the double auction, simultaneously data aggregation mechanism as well. Different from prior work [10, 20], the strategic behaviors of multiple data requesters are considered. Nevertheless, all these auction mechanisms rely on a centralized entity. This entity is used for conducting the auction, clearing the market, charging and receiving payments. The centralized entity may not exist in the real world, which may also create practical issues, such as the single point of failure. Furthermore, truthfulness essentially means smartphone users should disclose their private information of cost. 2.3. Distributed auctions without centralized control Distributed auctions [11–13] do not require a centralized auctioneer and can be implemented in a distribution fashion. The similar work [12] to us is to apply the iteration auction process to negotiate the trading price of each idle spectrum band for dynamic spectrum access. For each iteration, each auctioneer raises the trading price and the bidder chooses one auctioneer for maximizing their current utility respectively until the equilibrium. Duan and Li [13] design two distributed auction schemes of cost-preferred and time schedule-preferred, respectively, in consideration of some practical limitations like smartphone user’s working time. Owing to the advantages of distributed auctions, they have been employed in more application scenarios. Our work is inspired by the limitations of existing centralized auctions for mobile crowdsourcing and has benefited from distributed auctions. 3. PROBLEM FORMULATION In this section, we first present our system model, then give the mathematical formulation of the problem. Major notations used in the paper are listed in Table 1. Table 1. Main notations used in the paper. Notation Description i,j,k id of smartphone users, crowdsourcers, tasks. ϵ The minimum step size of updating trading prices. mj The number of tasks of crowdsourcer j. vj*,vk The valuation of crowdsourcer j, task k. cij,cik The cost of smartphone user i for performing a task of crowdsourcer j, task k. rij,rik Whether smartphone user i takes a task of crowdsourcer j, task k. pk The trading price of task k. bki The bid price for task k from smartphone user i. Notation Description i,j,k id of smartphone users, crowdsourcers, tasks. ϵ The minimum step size of updating trading prices. mj The number of tasks of crowdsourcer j. vj*,vk The valuation of crowdsourcer j, task k. cij,cik The cost of smartphone user i for performing a task of crowdsourcer j, task k. rij,rik Whether smartphone user i takes a task of crowdsourcer j, task k. pk The trading price of task k. bki The bid price for task k from smartphone user i. View Large Table 1. Main notations used in the paper. Notation Description i,j,k id of smartphone users, crowdsourcers, tasks. ϵ The minimum step size of updating trading prices. mj The number of tasks of crowdsourcer j. vj*,vk The valuation of crowdsourcer j, task k. cij,cik The cost of smartphone user i for performing a task of crowdsourcer j, task k. rij,rik Whether smartphone user i takes a task of crowdsourcer j, task k. pk The trading price of task k. bki The bid price for task k from smartphone user i. Notation Description i,j,k id of smartphone users, crowdsourcers, tasks. ϵ The minimum step size of updating trading prices. mj The number of tasks of crowdsourcer j. vj*,vk The valuation of crowdsourcer j, task k. cij,cik The cost of smartphone user i for performing a task of crowdsourcer j, task k. rij,rik Whether smartphone user i takes a task of crowdsourcer j, task k. pk The trading price of task k. bki The bid price for task k from smartphone user i. View Large 3.1. System model In the market of crowd sensing over smartphones, there are two types of participants: (i) crowdsourcers who publish sensing tasks, or tasks for short, and smartphone users who perform sensing tasks using their own resources such as CPU, memory, battery, camera. A crowdsourcer gains from completed tasks while smartphone users consume their valuable resources for performing sensing tasks. Consequently, crowdsourcers must offer rewards to compensate the sacrifice of smartphone users in order to recruit them to complete these tasks. How to improve the efficiency of transactions between these two types of participants is a significant problem. Let M and N denote the set of crowdsourcers and smartphone users, respectively. Each crowdsourcer j∈M has a valuation vj* on its tasks, denoting the value he can get if the task is done. Suppose a crowdsourcer publishes mj tasks. We assume all tasks of the same crowdsourcer are homogeneous and remove the assumption later in the paper. We use T to denote the set of all tasks of all crowdsourcers, i.e. T={t11,…,tm11,…,t1j,…,tmjj,…} and ∣T∣=∑j∈Mmj. A smartphone user performs a sensing task as long as he can make a nonnegative net profit. Each smartphone user can perform at most one task at the same time. We introduce a cost cij for a smartphone user i∈N to define his sacrifice of performing a sensing task of crowdsourcer j∈M. To compensate the cost of smartphone users incurred by performing assigned tasks, a crowdsourcer is expected to pay a certain amount of reward no less than the cost of the smartphone user. Generally, both crowdsourcers and smartphone users are heterogeneous, i.e. tasks from different crowdsourcers can be different, and the cost for the same task is different for different smartphone users. We also assume that there is no collaboration among crowdsourcers, and no collaboration among smartphone users. Furthermore, we do not assume the existence of a centralized control entity in the market, i.e. transactions between crowdsourcers and smartphone users run in a distributed manner with only local information. Due to some practical limitations, e.g. geographical locations, a crowdsourcer can only connect with some idle smartphone users nearby. Neither a crowdsourcer nor a smartphone user can get access to information of others’ valuations or costs. Therefore, each participant in the market must decide his strategy on his local information. An assignment from crowdsourcer j to smartphone user i is denoted as j→i. It means crowdsourcer j accepts the bid of smartphone user i, and then assigns a task tk∈{t1j,…,tmjj} to smartphone user i. We denote the valuation of each task tk is the same as the valuation vj* of its crowdsourcer j. Definition 3.1 (Valuation). A valuation is the value that a crowdsourcer can get when one of his tasks is successfully completed. The valuation is also the maximum value the crowdsourcer is willing to pay for the smartphone user who finishes one of his tasks. The valuation vector, denoted by v, is defined by all valuations of all crowdsourcers, i.e. v=[v1,…,v∣M∣]. Definition 3.2 (Cost). A cost is a measure of sacrifice that a smartphone user suffers from performing a certain task. The cost is also the minimum price that a smartphone user would charge for performing the task. If the cost for a task is higher than the payment, the smartphone user is reluctant to take the task. This is due to the rationality of smartphone users. The cost matrix, C=[c1,…,c∣N∣]T∈R+∣N∣×∣M∣, presents the cost of each smartphone user to perform tasks from each crowdsourcer, where ci=[ci1,ci2,…,ci∣M∣] is the cost vector of smartphone user i for all crowdsourcers. A constraint on these values is that vj* is private information of crowdsourcer j and cij is private information of smartphone user i. For any smartphone user or crowdsourcer, we assume that they cannot obtain the private information of others. And this is one of the important reason that we try to use auction theory to solve this problem since auction is essentially a game with incomplete information [29]. 3.2. Mathematical formulation Since the costs of different smartphone users for the same task are different, it is important to find the best way to assign sensing tasks to smartphone users. The task assignment problem contains two main subproblems: (i) assigning the tasks for achieving the maximum social profit and (ii) determining reasonable trading prices such that smartphone users and crowdsourcers would accept such the assignment. The first subproblem is regarded as the efficiency issue and the second as the incentive issue. We define the task assignment matrix to be R=(rij)∈R∣N∣×∣M∣, where each element rij∈{0,1} indicates whether smartphone user i takes a task from crowdsourcer j, i.e. rij=1 means that smartphone user i takes a task from crowdsourcer j, and rij=0 otherwise. A feasible task assignment matrix must satisfy two constraints: (i) ∑j∈Mrij≤1 since each smartphone user can take at most one task at the same time; (ii) ∑i∈Nrij≤mj since crowdsourcer j recruits no more than mj smartphone users. We define the net profit of an assignment of j→i, denoted by sij, as the difference of crowdsourcer’s valuation and the smartphone user’s cost, i.e. sij=vj*−cij. Then, we define the social profit as follows. Definition 3.3 (Social Profit). The social profit is the sum of net profits of all pairs of assignments in a feasible task assignment matrix. It can be formally written as: S=∑i∈N∑j∈Mrij·(vj*−cij). (1) An optimal task assignment is the feasible assignment with the maximum social profit. Naturally, the optimal task assignment can be derived by solving the following optimization problem. R*=argmaxRS=argmaxR∑i∈N∑j∈Mrij·(vj*−cij),s.t.(i)∑j∈Mrij≤1,∀i∈N,(ii)∑i∈Nrij≤mj,∀j∈M,(iii)rij∈{0,1},∀i∈N,∀j∈M. (2) In fact, the optimization problem (2) above defines a 0-1 linear programming problem. There are two well-known methods to solve this kind of assignment problem. One is the Branch-and-Bound algorithm [30] and the other is a little tricky. It firstly transforms the original problem into the optimal matching problem in graph theory [31]. Then, it uses Kuhn–Munkres algorithm [32] to solve it. However, neither of the algorithms is suitable for our problem due to the following two reasons. First, both of them are centralized algorithms based on complete information. Nevertheless, both costs and valuations are unaccessible private information of other participants in the market. The assumption of a neutral and nonprofitable third-party platform is not practical due to the risk of disclosing private information of participants. Second, both methods aforementioned cannot solve the second subproblem of determining the trading prices. In other words, these methods fail to provide proper incentives to smartphone users. 4. DISTRIBUTED AUCTION ALGORITHM In this section, we first introduce the distributed auction framework for the assignment problem. Then, we present the design of our distributed auction algorithm. 4.1. Distributed auction framework We next introduce the distributed auction framework for solving the task assignment problem in a distributed mobile crowdsourcing environment. As we have pointed above, the task assignment problem needs to be solved without complete information. Since an auction is essentially a game with incomplete information [29], it is suitable for resource allocation in a distributed manner. In the market of mobile crowd sensing with smartphones, there are three types of elements, i.e. crowdsourcers, smartphone users and sensing tasks, which are regarded as buyers, sellers and auction items in the distributed auction, respectively. It is worth mentioning that there exists no auctioneer who manages the process of the auction in such a distributed scenario. The process of a distributed task auction goes as follows. Crowdsourcers and smartphone users exchange information via wireless communication networks. Neither crowdsourcers nor smartphone users are allowed to communicate with their counterparts in case of collusion. At the beginning, each crowdsourcer broadcasts his request information of tasks, including task description, initial price and number of demands, to available smartphone users. For a smartphone user which may receive multiple requests from different crowdsourcers, it chooses the best one with some specific determination schemes and sends a bid to the corresponding crowdsourcer. Through multiple interactive requesting and bidding, crowdsourcers recruit available smartphone users who perform tasks at lower costs, and in the meanwhile smartphone users find better tasks providing more profits. Furthermore, such a distributed auction is a reversed auction where smartphone users underbid each other in order to obtain business from crowdsourcers. Each smartphone user adjusts his bid dynamically based on requests he receives while each crowdsourcer chooses the most profitable bid from all bids he receives. Actually, both smartphone users and crowdsourcers make decisions based on their local information instead of complete information. The dynamic reversed auction reaches an agreement when no one will violate his previous decision, i.e. no smartphone user will update his bid and no crowdsourcer will violate the assignment. The final agreement on payment between buyers and sellers is called trading price of the task. From the economic perspective, the trading price between crowdsourcer j and smartphone user j ranges from cij to vj* since neither the crowdsourcer nor the smartphone user is willing to accept a negative profit. The property is called individual rationality. In the whole process, the crowdsourcers gain profits by having their tasks done; the smartphone users gain profits by getting payment from the crowdsourcers. 4.2. Stategies in the auction 4.2.1. Strategy of a smartphone user The strategy of a smartphone user is to choose a task from one of the crowdsourcers, or selects no task at all. Specifically, prices of tasks from the same crowdsourcer are possibly different and a smartphone user must thus determine which task instead of crowdsourcer he chooses. Formally, we denote the selection of tasks for smartphone user i as: xi=(xi1,xi2,…,xik,…,xi∣T∣), (3) where xik∈{0,1}; xik=1 means smartphone user i is willing to perform task k from the corresponding crowdsourcer, and xik=0 otherwise. Specially, if xi=0M, it means smartphone user i is not willing to take any task. Since a smartphone user can take at most one task at the same time, we have ∑k∈Txik≤1,∀i∈N. For convenience, we denote eTk to be an ∣T∣-dimensional vector whose k th component is 1 while others are 0. Specially, if k=0, eT0=0T. Then, we can say that the strategy space of a smartphone user is xi∈{eT0,eT1,…,eT∣T∣}, ∀i∈N. Apart from which task to choose, a smartphone user determines which price he bids. Let bi denote the bidding price that smartphone user i offers for the chosen task xi. The strategy of smartphone user i is thus defined as a tuple of the task selection and the bidding price, i.e. bi={xi,bi}. The strategy of a smartphone user in the distributed auction framework is alse called the bid of each smartphone user. 4.2.2. Strategy of a crowdsourcer For each crowdsourcer, he makes a separate choice decision for each task he publishes since he may receive different bidding prices for each task. Similarly, the selection of smartphone user for task k is denoted by yk, yk∈{eN1,…,eNi,…,eN∣N∣}. In addition, the crowdsourcer updates the current price that he would pay to the matched smartphone user for one of his tasks. We call the price of task k as current trading price, denoted by pk. Moreover, the trading price vector which describes the trading prices of all tasks is denoted as, p=[p1,…,pk,…,p∣T∣]. (4) Thus, the strategy of the crowdsourcer for each task k contains two parts, i.e. the selection of smartphone user and trading price, denoted by rk={yk,pk}. A crowdsourcer separately determines the strategy for each task and they are thus regarded as the strategy of the crowdsourcer. 4.3. Design of distributed auction algorithm 4.3.1. Utility as the objective Before describing the process of the distributed auction algorithm, we first point out two characteristics of all crowdsourcers and smartphone users. (i) They are self-interested. This implies they always want to maximize their own utility. (ii) They are myopic. This implies that they act to maximize their immediate expected utility. The utility of either a crowdsourcer or a smartphone user is his net profit from a feasible assignment. On the one hand, the utility of smartphone user i, denoted by ui, should be the difference between the payment he earns from the task he takes and his own cost. In detail, as smartphone user i takes the task k of the corresponding crowdsourcer, i.e. xi=eTk, his utility is: ui=pk−cik,k∈T,acceptedbyacrowdsourcer,0,otherwise. (5) On the other hand, the utility of each task k of a crowdsourcer, denoted by πk, is defined as the profit he gains with the completed tasks. That is the difference of his own valuation for the task and the payment he actually pays for the smartphone user. Formally, it can be defined as: πk=vk−pk. (6) In the distributed auction framework, either a crowdsourcer or a smartphone user tries to maximize his profit by adjusting his choice. 4.3.2. Basic idea The basic idea of our distributed auction algorithm is as follows. Each crowdsourcer systematically adjusts the trading price according to all the bids he receives for each of his tasks; each smartphone user subsequently selects the optimal task and submits a bid with a proper bidding price. It is an interactive process which crowdsourcers and smartphone users bargain with each other repeatedly until an agreement achieves. At the beginning, a crowdsourcer sets a high trading price for each of his tasks and then the price goes down as long as there exist new bids for the tasks. Each smartphone user chooses at most one task to bid according to the current trading price vector. As the trading price of a task descends, smartphone users naturally become less willing to take the task. The updation of trading prices is performed by crowdsourcers since they select the bidding prices of the most profitable bids as the trading prices. The auction ends when no smartphone user is willing to bid with a lower price. Finally, tasks are assigned to smartphone users who choose tasks based on the current trading price vector. By far, there is an unknown issue of determining the new bidding price for the most profitable task for each smartphone user. According to the previous discussion about distributed auction algorithm, a smartphone user must underbid the target task in order to win. Then, how much it should reduce its bidding price is a nontrivial problem since the updation of bidding price is closely related to the effectiveness and efficiency of the proposed algorithm. If the smartphone user underbids with a large step, he may not maximize his utility even he wins; if the smartphone user underbids with a small step, the algorithm may converge at a rather slow speed. In our proposed algorithm, we set the step as the profit gap he can get between the most profitable task and the second most profitable task. The step of reduction is therefore defined as Δi=pk*−cik*−(pk′−cik′)++ϵ, (7) where k* and k′ are the most profitable task and the second most profitable for smartphone user i, respectively. (pk′−cik′)+ is defined as pk′−cik′ if it is no less than zero; otherwise it is 0. Besides, we add a small positive parameter, ϵ>0, to the profit gap to guarantee Δ>0. It is reasonable that a smartphone user must offer a strictly lower bidding price if he submits a new bid, especially when the profit gap is zero, i.e. pk*−cik*=pk′−cik′. We will discuss how to choose ϵ later. 4.3.3. Details of the algorithm The distributed auction is a round-based process which works as shown in Algorithm 1. The algorithm maintains a vector of current trading prices of all tasks and the set of unassigned smartphone users. The auction goes round by round until there exist no unassigned smartphone users, i.e. no smartphone users will lower bidding prices anymore. Then, the trading price at the last round is regarded as the payment scheme to smartphone users. A simple time synchronization scheme is proposed to synchronize multiple crowdsourcers, and the details will be shown in Section 6. It is worth noting that either a smartphone user or a crowdsourcer makes its own strategy independently in Algorithm 1. Specifically, multiple smartphone users select the task with the maximum utility to bid for separately and simultaneously. Meanwhile, each crowdsourcer determines the chosen bid and the trading price independently. Therefore, after the bidding and assignment process, we implement the synchronization scheme to synchronize the information between unassigned smartphone users and crowdsourcers. Especially, at each round, the transactions between crowdsourcers and smartphone users are summarized into two stages: bidding and assignment. At the bidding stage (from Line 11 to Line 23), each unassigned smartphone user bids for a task that maximizes his utilities by reducing the bidding price of the task, and then announces the new bidding price to the corresponding crowdsourcer. If the maximum utility based on the vector of current trading prices of all tasks becomes less than zero, i.e. the smartphone user cannot cover his cost with the current trading price, the smartphone user will be removed from the set of unassigned smartphone users. At the assignment stage (from Line 26 to Line 32), each task which receives at least one bids decides which smartphone users should be chosen. For each task, the smartphone user which charges the lowest trading price will be assigned and then the trading price of the task is updated. Consequently, the set of unassigned smartphone users is modified according to the assignment in the current round. Algorithm 1 Distributed Auction Algorithm. Input: cost matrix C=(cik)∈R+∣N∣×∣T∣, parameter ϵ Output: trading price vector p=[p1,…,p∣T∣], assignment vector a=[a1,…,a∣T∣] 1: // —–Initialization; 2: for each task k∈Tdo 3: set pk←vk,ak←null; 4: end for 5: initialize the set of unassigned smartphone users, i.e. U←N; 6: for each smartphone user i∈Ndo 7: set xi←eT0; 8: end for 9: while U≠∅do 10: // —–Bidding; 11: announce current trading price vector p to smartphone users; 12: for each smartphone user i∈Udo 13: find k*←argmaxk∈T(pk−cik); 14: if pk*−cik*≥0then 15: set xi←eTk*; 16: find k′←argmaxk∈T,k≠k*(pk−cik); 17: Δi←pk*−cik*−(pk′−cik′)++ϵ; 18: bi←pk*−Δi; 19: submit a bid bi for task k* to the crowdsourcer; 20: else 21: set xi←null, remove i from U; 22: end if 23: end for 24: //Each smartphone user makes his own decision independently before a fixed time point; 25: // —–Assignment; 26: for each task k∈T which receives a set of bids, Bk, 27: if ak≠null 28: add ak to U, set ak←null; 29: end if 30: find i*←argmini∈Bkbi; 31: set pk←bi*,ak←i*, remove i* from U; 32: end for 33: //Each crowdsourcer waits for a fixed time duration to determine the chosen bid separately; 34: end while 35: for each task k∈Tdo 36: set pk←pk+ϵ; 37: end for Input: cost matrix C=(cik)∈R+∣N∣×∣T∣, parameter ϵ Output: trading price vector p=[p1,…,p∣T∣], assignment vector a=[a1,…,a∣T∣] 1: // —–Initialization; 2: for each task k∈Tdo 3: set pk←vk,ak←null; 4: end for 5: initialize the set of unassigned smartphone users, i.e. U←N; 6: for each smartphone user i∈Ndo 7: set xi←eT0; 8: end for 9: while U≠∅do 10: // —–Bidding; 11: announce current trading price vector p to smartphone users; 12: for each smartphone user i∈Udo 13: find k*←argmaxk∈T(pk−cik); 14: if pk*−cik*≥0then 15: set xi←eTk*; 16: find k′←argmaxk∈T,k≠k*(pk−cik); 17: Δi←pk*−cik*−(pk′−cik′)++ϵ; 18: bi←pk*−Δi; 19: submit a bid bi for task k* to the crowdsourcer; 20: else 21: set xi←null, remove i from U; 22: end if 23: end for 24: //Each smartphone user makes his own decision independently before a fixed time point; 25: // —–Assignment; 26: for each task k∈T which receives a set of bids, Bk, 27: if ak≠null 28: add ak to U, set ak←null; 29: end if 30: find i*←argmini∈Bkbi; 31: set pk←bi*,ak←i*, remove i* from U; 32: end for 33: //Each crowdsourcer waits for a fixed time duration to determine the chosen bid separately; 34: end while 35: for each task k∈Tdo 36: set pk←pk+ϵ; 37: end for Algorithm 1 Distributed Auction Algorithm. Input: cost matrix C=(cik)∈R+∣N∣×∣T∣, parameter ϵ Output: trading price vector p=[p1,…,p∣T∣], assignment vector a=[a1,…,a∣T∣] 1: // —–Initialization; 2: for each task k∈Tdo 3: set pk←vk,ak←null; 4: end for 5: initialize the set of unassigned smartphone users, i.e. U←N; 6: for each smartphone user i∈Ndo 7: set xi←eT0; 8: end for 9: while U≠∅do 10: // —–Bidding; 11: announce current trading price vector p to smartphone users; 12: for each smartphone user i∈Udo 13: find k*←argmaxk∈T(pk−cik); 14: if pk*−cik*≥0then 15: set xi←eTk*; 16: find k′←argmaxk∈T,k≠k*(pk−cik); 17: Δi←pk*−cik*−(pk′−cik′)++ϵ; 18: bi←pk*−Δi; 19: submit a bid bi for task k* to the crowdsourcer; 20: else 21: set xi←null, remove i from U; 22: end if 23: end for 24: //Each smartphone user makes his own decision independently before a fixed time point; 25: // —–Assignment; 26: for each task k∈T which receives a set of bids, Bk, 27: if ak≠null 28: add ak to U, set ak←null; 29: end if 30: find i*←argmini∈Bkbi; 31: set pk←bi*,ak←i*, remove i* from U; 32: end for 33: //Each crowdsourcer waits for a fixed time duration to determine the chosen bid separately; 34: end while 35: for each task k∈Tdo 36: set pk←pk+ϵ; 37: end for Input: cost matrix C=(cik)∈R+∣N∣×∣T∣, parameter ϵ Output: trading price vector p=[p1,…,p∣T∣], assignment vector a=[a1,…,a∣T∣] 1: // —–Initialization; 2: for each task k∈Tdo 3: set pk←vk,ak←null; 4: end for 5: initialize the set of unassigned smartphone users, i.e. U←N; 6: for each smartphone user i∈Ndo 7: set xi←eT0; 8: end for 9: while U≠∅do 10: // —–Bidding; 11: announce current trading price vector p to smartphone users; 12: for each smartphone user i∈Udo 13: find k*←argmaxk∈T(pk−cik); 14: if pk*−cik*≥0then 15: set xi←eTk*; 16: find k′←argmaxk∈T,k≠k*(pk−cik); 17: Δi←pk*−cik*−(pk′−cik′)++ϵ; 18: bi←pk*−Δi; 19: submit a bid bi for task k* to the crowdsourcer; 20: else 21: set xi←null, remove i from U; 22: end if 23: end for 24: //Each smartphone user makes his own decision independently before a fixed time point; 25: // —–Assignment; 26: for each task k∈T which receives a set of bids, Bk, 27: if ak≠null 28: add ak to U, set ak←null; 29: end if 30: find i*←argmini∈Bkbi; 31: set pk←bi*,ak←i*, remove i* from U; 32: end for 33: //Each crowdsourcer waits for a fixed time duration to determine the chosen bid separately; 34: end while 35: for each task k∈Tdo 36: set pk←pk+ϵ; 37: end for We have the following remarks on the algorithm. First, the process terminates in finite rounds. Since the trading price monotonously decreases, it will finally reach a point that is lower than all costs of smartphone users. Then, no one would bid for any task, and no crowdsourcer would receive more bids than his request. Second, the initial trading price of each task k can be set as vk reasonably, as we assume in the Algorithm 1. Let pk(τ) denote the trading price pk at the τ th round. The initial value and final round value of pk are pk(0) and pk(T), respectively. As long as pk(0) is higher than the final trading price pk(T), it will at last converge to it, thus leading to the same assignment. However, if the initial price pi0 is already lower than pi(T), the final assignment will certainly be different. Third, the final assignment is actually the strategies of smartphone users in the last round of the auction. Since the trading price would not change anymore, each smartphone user wins the task he bids for and gets payment according to the final trading price. Here, it is not necessary to differentiate tasks from the same crowdsourcer and thus we merge the assignment of tasks into a match of crowdsourcers and smartphone users. Finally, to stimulate smartphone users to take tasks, the payment is supposed to be no less than the cost of a smartphone user. In the algorithm, we add a small positive value, ϵ, as shown in Line 36, in order to make sure that no smartphone user gets negative profit. It is obvious that the operation has no influence on the result of the assignment. Then we remove the assumption that all tasks of the same crowdsourcer are homogeneous. Suppose each crowdsourcer has only one task and the cost of the task for each crowdsourcer is different. It is equivalent to the situation that a crowdsourcer has different tasks. Thus, it is simple to apply the proposed algorithm in this more general situation. 4.4. An illustrative example We show an example of the distributed auction with two crowdsourcers and three smartphone users in Fig. 2, where N={s1,s2,s3},M={c1,c2}. Two crowdsourcers publishes 2 and 1 tasks, respectively, where m1=2,m2=1,T={t1,t2,t3}. The cost vector of each smartphone user is listed in Fig. 2. According to notations discussed above, the cost matrix C∈R+3×3 is 667775554. Note that the first and second columns are the same because the first crowdsourcer publishes two tasks. The valuation of each task is [10,10,8]. Then, we list all rounds of the running process of the algorithm on the toy example where the parameter ϵ is set to be 0.2. Figure 2. View largeDownload slide A toy example of the distributed auction with two crowdsourcers and three smartphone users. Figure 2. View largeDownload slide A toy example of the distributed auction with two crowdsourcers and three smartphone users. The example executes as shown in Table 2. At the beginning, the trading prices are the same as valuation of each task, i.e. [10,10,8]. All smartphone users are unassigned and thus each of them offers a bid for his best option, i.e. each smartphone user submits a bid for task 1 with a bidding price of 9.8. Defaultly, the first smartphone user, s1, get the task at the first round. Then, at the second round, the unassigned smartphone users, s2 and s3 compete to get task t2 and smartphone user s3 wins finally. Take s3 at current round as an example for computing the bidding price. His most and second most profitable task is t2 and t1 with net profits of 10−5=5 and 9.8−5=4.8, so his bidding price for t2 is 10−(5−4.8)−ϵ=9.6. After that, smartphone s2 finds task t3 is the most profitable one and submits a bid for it. Finally, the trading prices in such a setting are given in the last row of the table. Since there are no unassigned smartphone users, the process terminates with current assignment. Note that we fine-tune current trading price with the parameter ϵ in order to make sure that every smartphone user gets nonnegative utilities. Table 2. The process of the toy example ( ϵ=0.2). * denotes the bid is chosen at that round. # Trading prices Unassigned Bids 1 [10, 10, 8] {s1,s2,s3} b1={eT1,9.8}* b2={eT1,9.8} b3={eT1,9.8} 2 [9.8, 10, 8] {s2,s3} b2={eT2,9.8} b3={eT2,9.6}* 3 [9.8, 9.6, 8] {s2} b2={eT3,7.6}* 4 [9.8, 9.6, 7.6] ∅ # Trading prices Unassigned Bids 1 [10, 10, 8] {s1,s2,s3} b1={eT1,9.8}* b2={eT1,9.8} b3={eT1,9.8} 2 [9.8, 10, 8] {s2,s3} b2={eT2,9.8} b3={eT2,9.6}* 3 [9.8, 9.6, 8] {s2} b2={eT3,7.6}* 4 [9.8, 9.6, 7.6] ∅ View Large Table 2. The process of the toy example ( ϵ=0.2). * denotes the bid is chosen at that round. # Trading prices Unassigned Bids 1 [10, 10, 8] {s1,s2,s3} b1={eT1,9.8}* b2={eT1,9.8} b3={eT1,9.8} 2 [9.8, 10, 8] {s2,s3} b2={eT2,9.8} b3={eT2,9.6}* 3 [9.8, 9.6, 8] {s2} b2={eT3,7.6}* 4 [9.8, 9.6, 7.6] ∅ # Trading prices Unassigned Bids 1 [10, 10, 8] {s1,s2,s3} b1={eT1,9.8}* b2={eT1,9.8} b3={eT1,9.8} 2 [9.8, 10, 8] {s2,s3} b2={eT2,9.8} b3={eT2,9.6}* 3 [9.8, 9.6, 8] {s2} b2={eT3,7.6}* 4 [9.8, 9.6, 7.6] ∅ View Large 5. THEORETICAL ANALYSIS In the section, we demonstrate the desirable properties of the proposed algorithms theoretically from three different aspects. First, we prove that the proposed algorithm converges to an equilibrium. Second, the final equilibrium achieves optimal social profit, which is the objective of the problem. Third, we further demonstrate that the proposed algorithm satisfies incentive compatibility which indicates every smartphone user is sure to get nonnegative utility. Finally, we offer some analysis of computation efficiency. 5.1. Equilibrium In this subsection, we analyze the convergence of the distributed auction to be an equilibrium. In such a competitive market, we regard that the traded item is the labor of smartphone users which can undertake published tasks. Crowdsourcers pay to smartphone users for their contributing labor to undertake tasks. The amount of demand, which is corresponding to the number of tasks that crowdsourcers publish, is fixed; the amount of supply, which is corresponding to submitted bids from smartphone users, is adjusted along with trading prices of tasks. Smartphone users compete to win sensing tasks by lowering bidding prices. Meanwhile, with lower trading prices, fewer smartphone users would be willing to undertake tasks, i.e. there would be a smaller amount of supply in the market. Equilibrium is a term to express the balance between demand and supply. We aim to find out the trading price vector attached with the equilibrium. We first introduce a state called weak equilibrium (WE) with a specific trading price vector. Given a trading price vector, the corresponding state is a WE if none of these tasks are in a state of supply overflow, i.e. there is at most one smartphone user submits a bid for the task. Therefore, no crowdsourcer is in supply overflow in a WE, which means the number of supply does not exceed the number of demand. The number of supply for a crowdsourcer is the number of submitted bids for all of its tasks, while the number of demand is the number of tasks the crowdsourcer publishes. WE is formally described as follows. Definition 5.1 (Weak Equilibrium). WE is defined as a state where there is at most one bid for each task. Thus, the number of supply for each crowdsourcer jdoes not exceed the number of demand of that crowdsourcer. Suppose sjdenote the number of smartphone users which submit a bid for a task of crowdsourcer j, the condition satisfies WE is sj≤mj,∀j∈M. Lemma 5.2 The distributed auction algorithm converges to a WE. Proof First, we show that the procedure of bidding and assignment in Algorithm 1 ends in finite step. Let p˜k=mini∈Ncik and p¯k=p˜k−ϵ,ϵ>0,∀k∈T. When the trading price drop low enough, say pk<p¯k, no one would bid for task k and the price cannot change any more. Therefore, the final trading price vector would not lower than p¯, i.e. p≥p¯, where p¯=(p¯1,p¯2,…,p¯∣T∣). Since in each round of the distributed auction, at least one smartphone user will bid with a strictly lower price for at least one task; thus the above p¯ must be reached, if possible, in at most K=∑k∈T(vk−p¯k)/ϵ rounds, and K is a finite number. So far we show that the auction ends in finite rounds. According to the termination condition of the distributed auction algorithm, there is no crowdsourcer in supply overflow at the end, i.e. dj=0≤mj,∀j, which is exactly a WE. If p¯ cannot be reached, at the end of the iterative procedure, there are no more smartphone users which submit new bids for tasks. That is to say, there is no more supply for each task at the last round. Then, at the last round, there is only one bid for each assigned task and there is no bid for each unassigned task. Therefore, there exists at most one bid for each task at the last round and the condition of a WE is satisfied. Above all, we have proved that the distributed auction would converge in finite rounds and the achieved state must be a WE.□ However, it is notable that a WE is not necessarily efficient since a rather low trading price vector may also lead to such a state. Think about a trading price vector, p=p¯, where none of smartphone users will bid for any task because they would not get any profit. Due to the inefficiency of a WE, we introduce another term, strong equilibrium (SE). Definition 5.3 (Strong Equilibrium). SE is defined as a state in which (i) no task is in supply overflow and no crowdsourcer is in supply overflow, sj≤mj,∀j∈Mand (ii) if the number of supply for tasks of crowdsourcer jis smaller than the number of demand that crowdsourcer jpublishes, then the trading price of each task kof crowdsourcer jis equal to its valuation, i.e. pk=vk=vj*, if sj<mj. It is obvious that an SE is always a WE. Lemma 5.4 The distributed auction converges to an SE. Proof Since we have proved that the auction converges to a WE in Lemma 5.2, we can prove this lemma as long as we show that: if sj<mj, then pk=vj* for each task k belonging to crowdsourcer j. Let sjk denote the number of supply for task k which is published by crowdsourcer j and sj=∑ksjk (adding all tasks of crowdsourcer j together). We show that by contradiction. Supposing that the auction converges to a WE where there exists a crowdsourcer j with sj<mj and pk<vj* for a task k of crowdsourcer j. Specifically, we suppose there exists a task k with no supply ( sjk=0) and a lower trading price than its valuation (pk<vj*). For convenience, we denote pk(t) as the trading price of task k at the t th round, and pk(1)=vj*, pk(T)=pk where T is the last round of the auction. Since pk(T)<pk(1) and pik is monotonously non-increasing, there must be a round τ in which the task k is in supply overflow ( djk>1). In other words, there is at least one unassigned smartphone user submitting a bid for task k except the smartphone user that the task has been assigned to in the previous round. Therefore, the trading price of task k would decrease until there is no unassigned smartphone user submitting a bid for task k. According to the assignment and pricing rule of the distributed auction, there is at least one supply (i.e. the assigned smartphone user), i.e. sjk≥1. On the one hand, when sjk reaches 1 (which means there is no other unassigned smartphone user requesting task k) the trading price of task k would not decrease (until sjk exceeds 1 again, if possible). On the other hand, when the trading price of task k does not change, the assigned smartphone user would not change his choice since trading prices of all other tasks are non-increasing too. So far we have demonstrated that: (1) if pk<vj* in the end of the auction, there must be a task with more than one bids (supply overflow) in a previous round, i.e. sjk>1; (2) as long as sjk>1, at any round, sjk would decrease until it reaches 1 finally; (3) as long as sjk reaches 1, it would always hold or become larger again. Above all, we have proved that: if pk<vj* then sjk≥1 and si≥mi, which contradicts to the assumption. So we complete the proof.□ Lemma 5.4 makes sense in terms of the relationship between supply and demand in the market. Although demand quantity is fixed, trading price and supply quantity interact with each other and finally an equilibrium achieves. It is reasonable that a higher trading price should be paid for a small amount of supply. What is more, when the supply is insufficient, the highest price, i.e. the amount equal to the valuation, is paid. From the perspective of competition, fewer competitors usually lead to a higher price in the market and vice versa. 5.2. Efficiency of social profit We define the efficiency of the distributed auction algorithm as the achieved social profit. We analyze the efficiency of the distributed auction in this section, and show whether the final assignment is optimal. Especially, if there is only a single crowdsourcer j, the task assignment of the auction is exactly optimal. In the case, the mj smartphone users with the lowest cost are chosen to undertake tasks and actually get the tasks from crowdsourcer j. The social profit is ∑i∈N′(vj*−cij), where N′ is the set of smartphone users who successfully win tasks. It is the optimal social profit. When it comes to multiple crowdsourcers, we will prove that the distributed auction also achieves the optimal task assignment, as long as the step ϵ is small enough. In the subsection, the efficiency of the distributed auction is demonstrated by the following steps. First, we convert the problem to its dual form. Then, we employ the concept of ϵ-complementary slackness condition to derive the final solution. Finally, we show that the distributed auction satisfies the ϵ-complementary slackness condition and thus achieves the optimal social profit with a specific condition. 5.2.1. Dual problem Since we consider each task of a crowdsourcer separately, we offer the following problem as the primary problem. maxrik≥0∑i∈N∑k∈Trik·sik,s.t.(i)∑k∈Trik≤1,∀i∈N,(ii)∑i∈Nrik≤1,∀k∈T,(iii)rik∈{0,1},∀i∈N,∀k∈T. (8) We will ignore the integer constraint (last constraint in (8)) when consider its dual problem. Suppose the dual variables for constraints (i) and (ii) are αi,∀i∈N and βk,∀k∈T, its dual problem is minαi≥0,vk≥pk≥0∑i∈Nαi+∑k∈T(vk−pk),s.t.αi−pk+cik≥0,∀i∈N,k∈T, (9) where we replace sik by vk−cik and define pk:=vk−βk. pk can be regarded as the trading price of task k, i.e. a payment the crowdsourcer paid to a smartphone user if the task is assigned. There is an equivalent form of the dual problem (9) without constraints is Q(p)=minvk≥pk≥0∑i∈Nmaxk(pk−cik)+∑k∈T(vk−pk). (10) Furthermore, the amounts, αi and βk, can be understood as a partition of the net profit, vk−cik, of an assigned pair of smartphone user i and task k. The complementary slackness condition is listed in Equations (11) and (12) as follows. rik(αi−pk+cik)=0,∀i∈N,k∈T, (11) αi∑k∈Trik−1=0,∀i∈N,(vk−pk)∑i∈Nrik−1=0,∀k∈T. (12) Equation (11) shows the relationship between the optimal assignment and the optimal trading price vector. Therefore, for any pair (i′,k′) with ri′k′=1>0 of an optimal assingment, there must be αi′−pk′+ci′k′=0. Then we get the following relation αi′=maxk(pk−ci′k)=pk′−ci′k′. (13) As a result, the complementary slackness condition (13) states that in an optimal assignment each smartphone user is assigned to a ‘best’ task. Equation (12) tells that only an assigned pair of smartphone user and task contributes to the total social profit. From the first equality in Equation (12), if smartphone user is not assigned to any task, we can get that the constraint is not binding ( ∑k∈Trik−1≠0) and there must be αi=0 in an optimal solution. It is the same for a task as shown in the second equality in Equation (12). Therefore, if there are H pairs in the optimal assignment, there are only H smartphone users and H tasks which are possible to contribute to the total social profit. 5.2.2. ϵ-complementary slackness We further introduce a relaxation of the complementary slackness, called ϵ-complementary slackness ( ϵ-CS), which smartphone user is allowed to assigned to tasks within ϵ of the maximum in (13). Suppose πi=maxk(pk−cik) and it is formally written as πi′−ϵ≤pk′−ci′k′≤πi′,∀(i′,k′)∈A (14) where the assignment A and the trading price vector above satisfy the ϵ-CS condition. Specifically, it is obvious that an empty assignment and some trading price vector must satisfy the condition. Then, we prove the following theorem. Theorem 5.5 The assignment and trading price vector derived by the proposed distributed auction algorithm satisfy the ϵ-CS condition. Proof Since the proposed distributed auction is an iterative procedure, it can be proved via (i) constructing some valid assignment and trading price vector at the beginning and (ii) proving that the iterative procedure preserves the ϵ-CS condition. Initially, we start from an empty assignment and a trading price vector equal to valuation of all tasks. Then we need to demonstrate that the distributed auction algorithm preserves the ϵ-CS condition. Suppose (A,{pk,k∈T}) and (A′,{pk′,k∈T}) denote the assignment and trading prices before and after the assignment(Line 26 to 32 in Algorithm 1) in a round, respectively. Let us check whether (A′,{pk′,k∈T}) satisfies the ϵ-CS condition if (A,{pk,k∈T}) satisfies. For any (i,k)∈A′ and (i,k)∈A, it is the obvious ϵ-CS holds. For any (i,k)∈A′ and (i,k)∉A, smartphone user i is unassigned at the beginning of round and wins task k after submitting his bid. The trading price of task k after the assignment is computed as follows. Suppose vik* and wik* denote the profit of the ‘best’ and the second ‘best’ task, i.e. vik*=maxk(pk−cik) and wik*=maxk≠k*(pk−cik). Thus, the bidding price that smartphone user i submits for his best task k* is pk*′=bik*=pk*−(vik*−wik*)−ϵ=cik*+wik*−ϵ, (15) where the bidding price is also equal to the trading price of that task after assignment since smartphone user i wins at the round. πi′=maxk(pk′−cik)=max{pk*′−cik*,maxk≠k*(pk′−cik)}≤max{pk*′−cik*,maxk≠k*(pk−cik)}(∵pk′≤pk)=max{wik*−ϵ,wik*}=wik*. (16) Combining (15) and (16), we can derive that pk*′−cik*=wik*−ϵ≥πi′−ϵ, (17) where the ϵ-CS condition holds.□ 5.2.3. Optimality Finally, we prove the optimality of the proposed distributed auction algorithm based on Theorem 5.5. Theorem 5.6 The assignment derived by Algorithm1is within Hϵof being optimal and is optimal if ϵ<1/H, where His the number of pairs in the assignment. Proof According to the dual problem without constraints, the total social profit achieved by Algorithm 1 is S≤min∑i∈Nπi+∑k∈T(vk−pk)=Q*,S≥min∑i∈N(πi−ϵ)+∑k∈T(vk−pk)=Q*−Hϵ. (18) Q*−Hϵ≤S≤Q*. (19) So the assignment is within Hϵ of being optimal. If valuations ( vk,k∈T) and costs ( cik,i∈N,k∈T) are all integers, the achieved social profit is optimal when ϵ<1/H.□ 5.3. Incentive issues In this subsection, we analyze the incentive issues for smartphone users or crowdsourcers to participate in the distributed auction and accept the final task assignment. We define individual rationality (IR) as the incentive for smartphone users and crowdsourcers to join the auction which shows that they can obtain a non-negative net profit. In Algorithm 1, each smartphone user bids for a task of a crowdsourcer with maximum and nonnegative profit, and each task is assigned with a trading price no larger than its valuation. Thus, both crowdsourcers and smartphone users can achieve nonnegative profit. Thus, we solve the IR issue, incentive for users to join the proposed auction algorithm, in the task assignment process. 5.4. Computation efficiency In the distributed auction algorithm, the computation to determine strategies of smartphone users or crowdsourcers is efficient. The computation efficiency of each round is analyzed as follows. For a smartphone user, he finds out the most profitable task with time complexity of O(C) and computes the bidding price with time complexity of O(C), where C is the number of task descriptions he received from connected crowdsourcers nearby. The value of C is closely related to the connection graph of crowdsourcers and smartphone users. Generally, we have C≪∣T∣. For determining the strategy for each task, a crowdsourcer selects the cheapest bid and the computation complexity is also O(C). Therefore, the computation complexity in a single round is O(C). Thus, the total computation complexity of the distributed algorithm is O(C·K), where K is the upper bound of the number of rounds. If crowdsourcers and smartphone users are densely connected, i.e. C≈∣T∣, the computation complexity is O(∣T∣·K). 6. DISTRIBUTED IMPLEMENTATION In this section, we offer some guidance about implementation of the proposed distributed auction in reality. Since both of the two steps in Algorithm 1 is highly parallel, it is very simply to implement it in a synchronized style. Both smartphone users and crowdsourcers communicate with each other via wireless communication. The connectivity among smartphone users and crowdsourcers are restricted by their geographical locations. Suppose there exists a virtual bank which is connected to all entities in the system and each smartphone user or crowdsourcer has registered an account in the virtual bank. To simplify the explanation, we take the process of a single round as the example. In the process of an auction, there are four phases: task notification, bidding and assignment, performing tasks andpayment collections. In the synchronized setting, each phase of an auction is executed for a fixed period of time. The operations in each phase are listed as follows. Task notification: each smartphone user or crowdsourcer establishes a wireless connection with other entities nearby. Each crowdsourcer prepares the task information (e.g. task id, crowdsourcer id, task description, initial trading price) and broadcasts a message to all smartphone users within its communication range. In the scenario, since each task is processed separately, a crowdsourcer sends a message for each of his tasks. Bidding and assignment: The phase contains an iterative procedure as shown in Algorithm 1. Every smartphone user makes his own decision upon his local information separately and simultaneously. Then each crowdsourcer deals with all bids for each of his tasks and updates trading prices. The whole phase can be executed in a distributed manner since either a smartphone user or a crowdsourcer makes his decision independently. Performing tasks: Each smartphone user that has been assigned a task performs his task at this phase. A smartphones user may consume resources like CPU, camera, 3D-accelerometer to finish the task and sends the result (e.g. a photo, computation results) to the corresponding crowdsourcer. Payment collection: After the crowdsourcer gets the finished task, he sends a payment requests with the negotiated trading prices and requests the virtual bank to transfer the amount of money from his own account to the smartphone user’s account. The virtual bank notifies a smartphone user of his payment having been collected. To adapt to an auction process with several phases, some operations are restricted in the specific period of time. For example, all task notification should be done at the beginning of the auction, which indicates that all tasks that are published later than task notification in this round will be processed in next auction. Meanwhile, each crowdsourcer would wait for a fixed period of time to collect bids from smartphone users. After the stage, the crowdsourcer starts to determine the chosen smartphone user. Furthermore, operations in each phase are not allowed to start before the phase. Since each entity are distributed in the system, a simple method of synchronization is to set a fixed duration for each phase, i.e. T={τ1,τ2,τ3,τ4} for these phase. There are some other details here. We ignore some details of wireless communication and assume that there is a reliable communication channel without transmission failures. We also assume that smartphone users would not exchange information for collusion. It is reasonable that each entity can monitor the message that broadcasts nearby and all entities that send collusion information will be punished. 7. PERFORMANCE EVALUATION In the section, we offer extensive simulations to evaluate the performance of the proposed distributed auction algorithm compared with other methods. 7.1. Simulation settings Each entity is executed by an agent (i.e. a thread in our simulation) and an agent makes a separate decision based on local information. The connection between each pair of crowdsourcers and smartphone users are generated randomly with a predefined proportion, which is called connection degree later. We assume that a single auction process lasts not long, the connection among entities is then regarded unchanged. The private information of each entity is randomly chosen from a given range and the default range is shown in Table 3. All the experiments in the following are executed for 50 times and we choose the average as the final result. Table 3. Default setting of parameters. Meaning Default value ∣N∣ Number of smartphone users 100 ∣M∣ Number of crowdsourcers 30 m¯ Average of mi, i∈N 3 c Connection degree 50% ϵ Parameter in Algorithm 1 1/ max{∣N∣,m¯·∣M∣} Range of costs [0,10] Range of valuations [10,20] Meaning Default value ∣N∣ Number of smartphone users 100 ∣M∣ Number of crowdsourcers 30 m¯ Average of mi, i∈N 3 c Connection degree 50% ϵ Parameter in Algorithm 1 1/ max{∣N∣,m¯·∣M∣} Range of costs [0,10] Range of valuations [10,20] View Large Table 3. Default setting of parameters. Meaning Default value ∣N∣ Number of smartphone users 100 ∣M∣ Number of crowdsourcers 30 m¯ Average of mi, i∈N 3 c Connection degree 50% ϵ Parameter in Algorithm 1 1/ max{∣N∣,m¯·∣M∣} Range of costs [0,10] Range of valuations [10,20] Meaning Default value ∣N∣ Number of smartphone users 100 ∣M∣ Number of crowdsourcers 30 m¯ Average of mi, i∈N 3 c Connection degree 50% ϵ Parameter in Algorithm 1 1/ max{∣N∣,m¯·∣M∣} Range of costs [0,10] Range of valuations [10,20] View Large Our method is evaluated based on the following performance metrics. Social profit: It is defined in Definition 3.3 which is the difference between the valuation of crowdsourcers and the cost of related smartphone users. Take Fig. 2 as an example, the social profit of the assigned results is S=(10−6)+(10−7)+(8−4)=11. # of assignment: We compute the number of pairs for an assignment result for each method. It is an another important metric except the social profit. Convergence speed: It is defined as the number of rounds that the distributed auction has used to converge to the equilibrium. It is straightforward that under the same condition, the fewer the rounds, the faster the convergence speed. Sometimes we also measure the running time of the whole process. Net profit proportion: The social profit is the whole net profit of all crowdsourcers and smartphones. The proportion is the part that is assigned to crowdsourcers. There are several impacting parameters that are closely related to performance, such as the number of tasks, the number of crowdsourcers, and ϵ. In the following, we offer different groups of comparison to show the influence of these impacting parameters. These impacting parameters are defaultly set as shown in Table 3. 7.2. Compared methods We propose a few competing algorithms to compare with our distributed auction algorithm. They are described as follows. Global optimal (Opt): If the complete information is given, there is a global algorithm which can solve the problem. We can first transform the original problem into the optimal matching problem according to graph theory [31], and then use KuhnMunkres algorithm [32] to directly calculate the optimal social profit for the given situation. Global greedy (Greedy): Similar to Opt, the method is also a centralized algorithm which assumes the awareness of the complete information. The method greedily selects the most profitable pair of an unassigned smartphone user and an unassigned task until there are no available pairs. Distributed demand-aware pricing (Pricing): It is a distributed algorithm where each crowdsourcer sets the prices of his tasks to the valuation at the beginning. A crowdsourcer only maintains a single trading price for all of his tasks since all tasks are identical. It is also an iterative process. At one iteration, each smartphone user submits a demand for the crowdsourcer with the highest net profit and each crowdsourcer lowers the price of his tasks by a small step. The algorithm terminates until the number of demands from smartphone users is no larger than the number the crowdsourcer publishes. Distributed auction (Auction): This is the proposed algorithm in the paper. 7.3. Comparison of different approaches In the subsection, we first evaluate one of the performance metrics, social profit, to demonstrate the optimality of the proposed algorithm. The proposed method is compared with several baselines in Figs 3–6. In the four pictures, the proposed algorithm, denoted by Auction, shows the same performance with the global optimal approach, Opt. We can see that the other methods, Greedy and Pricing, are not optimal. The lines of Greedy in the four pictures show much closer performance to Opt than those of Pricing. Figure 3. View largeDownload slide Comparison on social profit of different approaches with different scales. Figure 3. View largeDownload slide Comparison on social profit of different approaches with different scales. Figure 4. View largeDownload slide Comparison on social profit of different approaches with different numbers of smartphone users. Figure 4. View largeDownload slide Comparison on social profit of different approaches with different numbers of smartphone users. Figure 5. View largeDownload slide Comparison on social profit of different approaches with different numbers of crowdsourcers. Figure 5. View largeDownload slide Comparison on social profit of different approaches with different numbers of crowdsourcers. Figure 6. View largeDownload slide Comparison on social profit of different approaches with different connection degrees. Figure 6. View largeDownload slide Comparison on social profit of different approaches with different connection degrees. In Fig. 3, the gap between Greedy and Auction increases when the scale of the problem grows, indicating that it becomes more difficult for Greedy to approximate the optimal social profit. The pricing approach shows a much larger gap in a larger scale problem. What is more, social profit of the Pricing method even decrease when the scale is larger than (100, 30). In Fig. 4 we evaluate the results on social profit when the number of smartphone users ranges from 10 to 200. The social profit of Auction firstly goes up along with the number of smartphone users, since more smartphone users provide more labor in supply and then more sensing tasks are finished to create more social profit. However, social profit keeps stable when the number of smartphone users exceeds 100. This is because the number of crowdsourcers and number of their tasks are fixed, i.e. there is a limited number of demands, social profit would not go up when there are enough smartphone users to finish all sensing tasks. For the Greedy line, the value of social profit increases very slightly when the number of smartphone users is larger than 100. It is reasonable since the Greedy method can approximate Opt with more smartphone users. The third picture, Fig. 5 in this group of experiment tells how the number of crowdsourcers affects social profit for different methods. It is obvious that there is an upward trend for all methods since more crowdsourcers provide more sensing tasks. When there are more sensing tasks are finished, a larger social profit achieves. We can also find that where the number of crowdsourcers exceeds 30, the increase of social profit becomes slower for Auction, Opt and Greedy. When there are more crowdsourcers (tasks), competition among smartphone users becomes less fierce and it is more likely to recruit smartphone users that are less efficient (with larger costs). Nevertheless, for the Pricing method, the trend is a little different and we discuss it later. In Fig. 6, the results of social profit of Auction, Opt and Greedy go up slightly when the connection degree increases. That is to say, when the connection between crowdsourcers and smartphone users becomes denser, more smartphone users are available for crowdsourcers. The social profit first increases with the connection increases and then keeps stable even though the connection degree becomes larger. The stable part is caused by the same reason as shown in Fig. 4. There is another method, Pricing, is not a good try when there are too many smartphone users to compete for sensing tasks. Since their cost information are similar (not exactly the same), it is not easy for crowdsourcers to set a proper price. If the number of bids for a task exceeds its required number, the crowdsourcer would reduce the price; once the price is reduced even with a rather small step, a lot of smartphone users would probably cancel their demands simultaneously. Thus, there would be some sensing tasks are unassigned due to their low prices, since trading prices of tasks cannot go up anymore. As a result, it is possible that social profit goes down with the number of smartphone users goes up. The pricing lines in Figs 3, 4 and 6 are in accord with this effect. The other one, Fig. 5 is different because the competition among smartphone users are less fierce. Then, we evaluate the number of assignment for different approaches. Similar to the first group of experiment on social profit, Auction has the exactly the same performance as that of Opt. The number of assignment of Greedy is very close to the optimal solution for these four different settings. Another method, Pricing performs much worse than the other three in Figs 7–10. Figure 7. View largeDownload slide Comparison on number of assignment of different approaches with different scales. Figure 7. View largeDownload slide Comparison on number of assignment of different approaches with different scales. Figure 8. View largeDownload slide Comparison on number of assignment of different approaches with different numbers of smartphone users. Figure 8. View largeDownload slide Comparison on number of assignment of different approaches with different numbers of smartphone users. Figure 9. View largeDownload slide Comparison on number of assignment of different approaches with different numbers of crowdsourcers. Figure 9. View largeDownload slide Comparison on number of assignment of different approaches with different numbers of crowdsourcers. Figure 10. View largeDownload slide Comparison on number of assignment of different approaches with different connection degrees. Figure 10. View largeDownload slide Comparison on number of assignment of different approaches with different connection degrees. The trends of Auction, Opt and Greedy are almost the same as that the results of social profits and their reasons are similar. When the scale of the problem, the number of smartphone users, or the number of crowdsourcers goes up, there would be more pairs matched in the final assignment. 7.4. Influence of impacting parameters In experiments above, we have evaluated the influence of four impacting parameters, i.e. the scale of the problem, the number of smartphone users, the number of crowdsourcers and connection degree. To show the influence of different settings of another important parameter, ϵ, in the proposed algorithm, we offer some analysis in the subsection. Four settings are evaluated in the experiment and are denoted by ϵ, 10ϵ, 20ϵ and 50ϵ in the pictures. kϵ indicates the parameter is set to be k times the default value. The default setting of ϵ as shown in Table 3 is denoted by ϵ. Auction with such a parameter reaches the optimal value since it satisfies the condition of Theorem 5.6. The default parameter can be estimated by smartphone users. In Fig. 11, social profits of different settings are almost the same. It tells us that even with a very large value for the parameter ϵ, the proposed algorithm, Auction, is able to approach to or achieve the optimal social profit. As a result, the proposed algorithm offers good results even if smartphone users have a not so good estimation result of ϵ. Figure 11. View largeDownload slide Influence of ϵ on social profit. Figure 11. View largeDownload slide Influence of ϵ on social profit. Figs 12 and 13 show the convergence speed of the proposed algorithm under different settings. It is obvious that the algorithm converges much faster when the parameter grows. This is because trading prices of each task would approach to the final trading price vector faster with a larger ϵ. Since the social profits are almost the same when ϵ increases, we can choose a larger ϵ for a fast assignment. Figure 12. View largeDownload slide Influence of ϵ on running time. Figure 12. View largeDownload slide Influence of ϵ on running time. Figure 13. View largeDownload slide Influence of ϵ on number of iterations. Figure 13. View largeDownload slide Influence of ϵ on number of iterations. The last picture in the group of experiments, Fig. 14, shows the proportion of social profit that is assigned to crowdsourcers. From the picture, we can see that the proportion increases with the scale of the problem for different settings, since crowdsourcers have more ability to determine a lower trading price with more available smartphone users. When the scale of the problem becomes larger, there would be more smartphone users are unassigned in the final assignment. But these unassigned smartphone users would compete in the whole auction process and helps to lower trading prices at such a competitive market. The gap between different settings is caused by the process of updating trading prices. At each round, the trading price of a task will decrease by at least ϵ if some smartphone users bid for it, smartphone users thus submit lower trading prices with a larger ϵ. Consequently, crowdsourcers would get a larger proportion of net profit which is created by all entities. That is to say, a rather large ϵ is unfair to smartphone users. Figure 14. View largeDownload slide Influence of ϵ on net profit proportion of all crowdsourcers. Figure 14. View largeDownload slide Influence of ϵ on net profit proportion of all crowdsourcers. 8. CONCLUSIONS In the paper, we proposed a distributed auction algorithm for mobile crowd sensing applications where both crowdsourcers and smartphones users are geographically distributed in a vast area, aiming to finish sensing tasks efficiently from a social perspective. Although a lot of existing studies have been proposed, most of them have limitations, such as lackness of incentives, the assumption of existence of global auctioneer, disclosure of privacy. To this end, the proposed algorithm in the paper can be executed in a fully distributed manner. Due to geographical locations of entities, both crowdsourcers and smartphone users can only connect with some others nearby via wireless communication. A crowdsourcer determines which smartphone users are chosen and locally updates trading prices; a smartphone user can locally choose the crowdsourcer that maximizes his own utility and submits bids to corresponding crowdsourcers. The interaction between crowdsourcers and smartphone users is an iterative process and terminates until convergency. In addition, we do not require smartphone users to disclose their private information of cost. Both theoretical analysis and experiment results prove that the proposed algorithm coverages to an equilibrium with an optimal social profit. FUNDING This work is supported in part by 973 Program (No. 2014CB340303), National Natural Science Foundation of China (Nos. 61472241, 61472254, 61772341 and 61170238), the Science and Technology Commission of Shanghai (Grant no. BI0300153) and Singapore NRF (CREATE E2S2). This work is also supported by the Program for New Century Excellent Talents in University of China, the Program for Changjiang Young Scholars in University of China, the Program for Shanghai Top Young Talents and the National Top Young Talents Support Program. REFERENCES 1 Yang , D. and Xue , G. ( 2012 ) Crowdsourcing to Smartphones: Incentive Mechanism Design for Mobile Phone Sensing. The 18th Annual Int. Conf. Mobile Computing and Networking, Istanbul, Turkey, August 22–26, pp. 173–184. ACM, New York, NY. 2 Xiong , H. ( 2016 ) icrowd: Near-optimal task allocation for piggyback crowdsensing . IEEE Trans. Mobile Comput. , 15 , 2010 – 2022 . Google Scholar Crossref Search ADS 3 Liu , Y. and Guo , B. ( 2016 ) Taskme: Multi-task Allocation in Mobile Crowd Sensing. Proc. 2016 ACM Int. Joint Conf. Pervasive and Ubiquitous Computing, Heidelberg, Germany, September 12–16, pp. 403–414. ACM, New York, NY. 4 ( 2005 ). clickworker, Penfield, NY, US. ‘https://www.clickworker.com/en/mobile-crowdsourcing’. 5 ( 2009 ). Waze, Google West Campus 3. https://www.waze.com/’. 6 Mun , M. and Reddy , S. ( 2009 ) Peir: the Personal Environmental Impact Report, as a Platform for Participatory Sensing Systems Research. Proc. 7th Int. Conf. Mobile Systems, Applications, and Services, Kraków, Poland, June 22–25, pp. 55–68. ACM, New York, NY. 7 Rana , R.K. and Chou , C.T. ( 2010 ) Ear-phone: An End-to-end Participatory Urban Noise Mapping System. Proc. 9th Int. Conf. Information Processing in Sensor Networks, Stockholm, Sweden, April 12–16, pp. 105–116. ACM, New York, NY. 8 Thiagarajan , A. and Ravindranath , L. ( 2009 ) Vtrack: Accurate, Energy-aware Road Traffic Delay Estimation Using Mobile Phones. Proc. 7th Int. Conf. Embedded Networked Sensor Systems, Berkeley, CA, USA, November 4–6, pp. 85–98. ACM, New York, NY. 9 Rai , A. and Chintalapudi , K.K. ( 2012 ) Zee: Zero-effort Crowdsourcing for Indoor Localization. The 18th Annual Int. Conf. Mobile Computing and Networking, Istanbul, Turkey, August 22–26, pp. 293–304. ACM, New York, NY. 10 Feng , Z. and Zhu , Y. ( 2014 ) TRAC: Truthful Auction for Location-aware Collaborative Sensing in Mobile Crowdsourcing. Conf. Computer Communications, Toronto, Canada, April 27–May 2, pp. 1231–1239. IEEE, Piscataway, NJ. 11 Zhang , Y. ( 2013 ) Auction approaches for resource allocation in wireless systems: a survey . IEEE Commun. Surveys Tuts. , 15 , 1020 – 1041 . Google Scholar Crossref Search ADS 12 Gao , L. ( 2011 ) Map: Multiauctioneer progressive auction for dynamic spectrum access . IEEE Trans. Mobile Comput. , 10 , 1144 – 1161 . Google Scholar Crossref Search ADS 13 Duan , Z. and Li , W. ( 2017 ) Distributed Auctions for Task Assignment and Scheduling in Mobile Crowdsensing Systems. The 37th IEEE Int. Conf. Distributed Computing Systems, Atlanta, GA, USA, June 5–8, pp. 635–644. IEEE, Piscataway, NJ. 14 Jaimes , L. and Vergara-Laurens ( 2012 ) A Location-based Incentive Mechanism for Participatory Sensing Systems with Budget Constraints. Int. Conf. Pervasive Computing and Communications, Lugano, Switzerland, March 19–23, pp. 103–108. IEEE, Piscataway, NJ. 15 Lee , J.-S. and Hoh , B. ( 2010 ) Sell Your Experiences: A Market Mechanism Based Incentive for Participatory Sensing. Int. Conf. Pervasive Computing and Communications, Mannheim, Germany, March 29–April 2, pp. 60–68. IEEE, Piscataway, NJ. 16 Zhang , N. and Cheng , N. ( 2014 ) A Cooperative Scheme for Secure Communications with Partner Selection and Incentive Mechanism. The 6th Int. Conf. Wireless Communications and Signal Processing, Hefei, China, October 23–25, pp. 1–6. IEEE, Piscataway, NJ. 17 Mashhadi , A.J. ( 2012 ) Fair content dissemination in participatory dtns . Ad Hoc Netw. , 1 , 1633 – 1645 . Google Scholar Crossref Search ADS 18 Liu , Z. ( 2016 ) A task-centric cooperative sensing scheme for mobile crowdsourcing systems . Sensors , 16 , 746 . Google Scholar Crossref Search ADS 19 Ji , S. ( 2016 ) Incentive mechanisms for discretized mobile crowdsensings . IEEE Trans. Wireless Commun. , 15 , 146 – 161 . Google Scholar Crossref Search ADS 20 Jin , H. and Su , L. ( 2015 ) Quality of Information Aware Incentive Mechanisms for Mobile Crowd Sensing Systems. Proc. 16th ACM International Symposium on Mobile Ad Hoc Networking and Computing, Hangzhou, China, June 22–25, pp. 167–176. ACM, New York, NY. 21 Zhang , X. and Xue , G. ( 2015 ) Truthful Incentive Mechanisms for Crowdsourcing. Conf. Computer Communications, Kowloon, Hong Kong, April 26–May1, pp. 2830–2838. IEEE, Piscataway, NJ. 22 Jin , H. ( 2017 ) Centurion: Incentivizing multi-requester mobile crowd sensing, Computing Research Repository, abs/1701.01533, 1–11. 23 Li , J. ( 2017 ) Crowdsourcing sensing to smartphones: A randomized auction approach . IEEE Trans. Mobile Comput. , 1 , 1 – 15 . 24 Yang , D. and Fang , X. ( 2013 ) Truthful Incentive Mechanisms for k-Anonymity Location Privacy, Proc. INFOCOM, Turin, Italy, April 14–19, pp. 2994–3002. IEEE, Piscataway, NJ. 25 Wang , Y. ( 2016 ) An incentive mechanism with privacy protection in mobile crowdsourcing systems . Comput. Netw. , 102 , 157 – 171 . Google Scholar Crossref Search ADS 26 Xu , J. and Li , H. ( 2017 ) Incentivizing the Biased Requesters: Truthful Task Assignment Mechanisms in Crowdsourcing, The 14th Annual IEEE Int. Conf. Sensing, Communication, and Networking, San Diego, CA, USA, June 12–14, pp. 1–9. IEEE, Piscataway, NJ. 27 Luo , T. ( 2016 ) Incentive mechanism design for heterogeneous crowdsourcing using all-pay contests . IEEE Trans. Mob. Comput. , 15 , 2234 – 2246 . Google Scholar Crossref Search ADS 28 Xu , J. ( 2015 ) Incentive mechanisms for time window dependent tasks in mobile crowdsensing . IEEE Trans. Wireless Commun. , 14 , 6353 – 6364 . Google Scholar Crossref Search ADS 29 Krishna , V. ( 2009 ) Auction Theory . Academic press , Cambridge . 30 Schrijver , A. ( 1998 ) Theory of Linear and Integer Programming . John Wiley & Sons , Oxford . 31 Gibbons , A. ( 1985 ) Algorithmic Graph Theory . Cambridge University Press , Cambridge . 32 Munkres , J. ( 1957 ) Algorithms for the assignment and transportation problems . J. Soc. Industr. Appl. Math. 5 , 32 – 38 . Google Scholar Crossref Search ADS The British Computer Society 2017. All rights reserved. For permissions, please e-mail: journals.permissions@oup.com This article is published and distributed under the terms of the Oxford University Press, Standard Journals Publication Model (https://academic.oup.com/journals/pages/open_access/funder_policies/chorus/standard_publication_model)
The Computer Journal – Oxford University Press
Published: Oct 1, 2018
It’s your single place to instantly
discover and read the research
that matters to you.
Enjoy affordable access to
over 18 million articles from more than
15,000 peer-reviewed journals.
All for just $49/month
Query the DeepDyve database, plus search all of PubMed and Google Scholar seamlessly
Save any article or search result from DeepDyve, PubMed, and Google Scholar... all in one place.
Get unlimited, online access to over 18 million full-text articles from more than 15,000 scientific journals.
Read from thousands of the leading scholarly journals from SpringerNature, Elsevier, Wiley-Blackwell, Oxford University Press and more.
All the latest content is available, no embargo periods.
“Hi guys, I cannot tell you how much I love this resource. Incredible. I really believe you've hit the nail on the head with this site in regards to solving the research-purchase issue.”
Daniel C.
“Whoa! It’s like Spotify but for academic articles.”
@Phil_Robichaud
“I must say, @deepdyve is a fabulous solution to the independent researcher's problem of #access to #information.”
@deepthiw
“My last article couldn't be possible without the platform @deepdyve that makes journal papers cheaper.”
@JoseServera
DeepDyve Freelancer | DeepDyve Pro | |
---|---|---|
Price | FREE | $49/month |
Save searches from | ||
Create lists to | ||
Export lists, citations | ||
Read DeepDyve articles | Abstract access only | Unlimited access to over |
20 pages / month | ||
PDF Discount | 20% off | |
Read and print from thousands of top scholarly journals.
Already have an account? Log in
Bookmark this article. You can see your Bookmarks on your DeepDyve Library.
To save an article, log in first, or sign up for a DeepDyve account if you don’t already have one.
All DeepDyve websites use cookies to improve your online experience. They were placed on your computer when you launched this website. You can change your cookie settings through your browser.
ok to continue