TY - JOUR AU - Pingyi, Luo, AB - 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
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