Enabling Sharing in Auctions for Short-Term Spectrum Licenses

Wireless spectrum is a valuable and scarce resource that currently su ﬀ ers from under-use because of the dominant paradigm of exclusive-use licensing. We propose the SATYA auction (Sanskrit for truth), which allows short-term leases to be auctioned and supports diverse bidder types, including those willing to share access and those who require exclusive-use access. Thus, unlike unlicensed spectrum such as Wi-Fi, which can be shared by any device, and exclusive-use licensed spectrum, where sharing is precluded, SATYA improves e ﬃ ciency through supporting sharing alongside quality-of-service pro-tections. The auction is designed to be scalable, and also strategyproof, so that simple bidding protocols are optimal. The primary challenge is to handle the externalities created by allocating shared-use alongside exclusive-use bidders. Using realistic Longley-Rice based propagation modeling and data from the FCC’s CDBS database, we conduct extensive simulations that demonstrate SATYA ’s ability to handle heterogeneous bidders involving di ﬀ erent transmit powers and spectrum needs.


Introduction
Currently, spectrum is licensed by governments in units covering large areas at high prices and for long periods of time, which creates a large barrier to entry for new applications. The main alternative, unlicensed bands such as Wi-Fi, has offered tremendous benefit, but is subject to a "tragedy of the commons" where these bands become congested and performance suffers [6]. Many researchers and firms (e.g., [4,18,35]) have proposed creating a secondary market for dynamic spectrum access to provide a new way to access spectrum. The idea is that primary spectrum owners would be able to sell short-term leases. The same technology could also be used by the government to provide a new approach to the licensing of government owned spectrum, by selling short-term licenses in a primary market. This is made possible by recent advances in building spectrum registries [18,29].
Rather than just sell exclusive-use access to spectrum, we advocate the adoption of auction technology to allocate spectrum to both exclusive-use and shared-use. An exclusive-use license guarantees a winner no interference but can be inefficient. For example, devices such as wireless microphones are only used occasionally, and other devices can use the same spectrum when the wireless microphone is not in use. This heterogeneity of devices and demand patterns presents an opportunity for sharing. In addition, many devices are capable of using a medium access controller (MAC) to share spectrum when there is contention.
Auctions generate revenue and also enable efficient spectrum use through the dynamic reprovisioning of spectrum. Auctions improve efficiency relative to fixed price schemes by allowing prices to adapt dynamically in response to varying demand. In addition, auctions provide incentives for different users to describe through bids their access requirements, for example specifying exclusive-use or allowing sharing.
We describe the SATYA auction, which is designed to allocate short-term spectrum access across a wide range of scenarios, embracing different access technologies and different types of users, including individuals and service providers. This makes SATYA well suited to handle the mixture of users found today in settings such as Wi-Fi while still providing a better service than unlicensed spectrum. In determining the allocation of spectrum, SATYA considers the effect of interference on the value of the allocation to different bidders. Because of the possibility of sharing spectrum, bidders in SATYA care about how spectrum is allocated to other bidders, along with the dynamic access patterns of those bidders. Most existing auction designs for wireless spectrum either fail to allow sharing, or fail to scale to realistic problem sizes.
In order to make the algorithms for winner determination and determining payments scalable we impose structure on the bidding language with which bidders describe the effect of allocation to others on their value. The language allows bidders to express their value for different allocations, given probabilistic activation patterns, an interference model, and under different requirements expressed by bidders for shared vs exclusive-access spectrum. In determining the the value of an allocation, the auction must determine the fraction of each bidder's demand that is satisfied in expectation, considering sharing and interference patterns. For this purpose, we adopt a model for resolving contention by devices and assume knowledge of which devices will interfere with each other given allocation (based on device location), and represented through a conflict graph.
The SATYA auction is strategyproof, which is a property that makes simple bidding protocols optimal for users or the devices representing users. In particular, the utilitymaximizing (the utility to a user is modeled as the difference between the user's value and the price) strategy is to bid truthfully, regardless of the bids, and regardless of the kinds of activation patterns and sharing or exclusive-use preferences of other users.
Strategyproofness is a property that is desirable for large-scale, distributed systems involving self-interested parties because it promotes stability-the optimal bid is invariant to changes in bids from other users. In comparison, bidders would need to keep changing their bids in a non-strategyproof auction in order to maximize utility. This continual churn in bids imposes an overhead on system infrastructure as well as participants.
Even without sharing, the problem of finding a value-maximizing (and thus efficient) allocation of spectrum is NP-hard [19]. In obtaining scalability, we adopt a greedy algorithm for determining the winners and the spectrum allocation. A crucial difficulty that arises because of externalities is that a straightforward greedy approach to allocation fails to be monotonic. What this means is that a user can submit a larger bid but receive less spectrum (in expectation, given the interference, sharing and activation patterns). Monotonicity is sufficient, and essentially necessary, for strategyproof auctions [30]. This leads to a significant design challenge.
In recovering monotonicity, SATYA modifies the greedy algorithm through a novel combination of bucketing bids into value intervals in which they are treated equally (this idea was employed in Ghosh and Mahdian [12]), along with a "computational ironing" procedure that is used to validate the monotonicity of an allocation and perturb the outcome as necessary to ensure monotonicity (this idea was introduced by Parkes and Duong [31]). These techniques prevent cases in which an increase in bid can change the decision of the greedy algorithm to something that looks just as good given decisions made so far, but turns out to be worse for the bidder because of interference with other bids that are subsequently allocated.
In evaluating SATYA, we use real-world data sources to determine participants in the auction, along with the Longley-Rice propagation model [3] and high-resolution terrain information, to generate conflict graphs. We compare the performance of SATYA against other auction algorithms and baselines. Our results show that, when spectrum is scarce, allowing sharing through the SATYA auction increases efficiency by 40% over previous approaches while generating revenue for spectrum owners. The baseline also serves to provide an upper bound on the potential cost of requiring strategyproofness relative to a protocol that is designed to be efficient, but where participants in any case choose to behave in a way that is approximately truthful.

Related Work
Most proposed auction designs for the sale of short-term spectrum licenses preclude sharing amongst auction participants [5,10,23,33,35,36]. From amongst these, VERI-TAS [35] was the first strategyproof design. However, VERITAS does not support sharing. We compare SATYA to VERITAS in the empirical analysis. Ileri et al. [16,17] consider models where users have exclusive access but only for short time periods, which effectively permits some amount of sharing. Kasbekar and Sarkar [24] propose a strategyproof auction and allow for sharing amongst winners. But the winner determination algorithm in their proposed auction is not scaleable because bids are explicitly represented on different joint spectrum allocations, which requires considering an exponential (in the number of participants) number of allocations. In contrast, our use of a structured bidding language allows us to achieve good efficiency while considering a polynomial number of allocations. Huang et al. [15] propose an auction design where bidders bid to share a single channel, but their design is not strategyproof and they do not address the issue of how to assign channels when multiple are available.
Gandhi et al. [11] propose an auction that allows sharing amongst winners, but differs from our approach in that it does not provide strategyproofness (and thus lacks an equilibrium analysis and is otherwise hard to evaluate), and precludes sharing between users who want exclusive-use when active but are only intermittently active (e.g., wire-less microphone devices) and other users. Externalities have also been considered in auction theory [21,22], but without the combinatorial aspect of our allocation problem and the difficulties this implies for achieving strategyproofness. A number of papers have considered externalities in online advertising [8,12,13,25,32]. However, this work (and similarly that of Krysta et al. [26] on the problem of externalities in general combinatorial auctions) is not directly relevant, as the externalities in spectrum auctions have a special structure, of which SATYA takes advantage in order to achieve compact bid representations and scalable winner determination.

Challenges in Auction Design
In this section we describe in some more detail the challenges that arise when designing a spectrum auction that permits sharing. First, we discuss the general form of an auction and define strategyproofness. Second, we present a cenreal result due to Myerson [30] that provides a general framework for designing strategyproof auctions through the use of a monotone allocation rule. Finally, we introduce reserve prices, which are a standard approach to increasing the revenue from an auction.
In the simplest type of auction, a single item is for sale. Each bidder i has private information about his value V i > 0. Let B i ≥ 0 denote the bid from bidder i. Each bidder receives an allocation A i ∈ {0, 1}, where A i = 1 if the bidder gets the item and 0 otherwise. Feasibility insists that i A i ≤ 1. Writing B = (B 1 , . . . , B n ) for bids from n bidders, then we can write the allocation selected as a function A(B) = (A 1 (B), . . . , A n (B)). Finally, each bidder makes some payment P i ≥ 0, that depends on the bids, so we write P i (B). In a standard model, a bidder's utility, which captures his preference for the outcome of an auction, is and represents the true value for the allocation minus the payment. There are many ways such an auction can be run. One approach, known as a first-price auction, is that each bidder names a price and the bidder who bids the most wins the item and pays their bid with P i (B) = B i for the winner. With perfect knowledge, a bidder should bid slightly more than the highest bid of other bidders (to a maximum of V i ), in order to pay as little as possible. Thus bidders try to anticipate how much others will bid, and bid accordingly. This gives a first-price auction high strategic complexity.
Another approach, due to Vickrey [34], is a second-price auction, where each bidder names a price and the bidder who bids the most wins the item. However, instead of paying the bid price, the payment is equal to the bid of the second highest bidder. In such an auction, a bidder has a simple strategy that is (weakly) optimal no matter what: bid true value B i = V i . The Vickrey auction is strategyproof.
definition 16.1 An auction defined with allocation rule A and payment rule P is strategyproof if for all bid profiles B, all agents i, and all alternate bids As explained in the introduction, a strategyproof auction is desirable because of the effect it has in simplifying bidding strategies and because of the overhead it removes from the infrastructure by precluding the need for bids to be continually updated as bids from others change.
But how to design such an auction in our setting? One thing to recognize is that the allocation will be much more complicated: analogous to an item is a channel × location (where the location depends on the location of the bidder's device and the channel is a range of frequencies) In addition to there being multiple items to allocate, there will be interference such that the value of an item depends on the other bidders allocated similar items. In particular, bidders that are geographically close to each other and are allocated the same channel will interfere with each other.
Part of the challenge is to describe a concise language to represent a bidder's value for different possible allocations. Another part of the challenge is to ensure that the allocation can be computed in polynomial time. The NP-hardness of the winner determination problem precludes a general auction design due to Vickrey, Clarke, and Groves [7,14,34], that would be strategyproof and efficient in our domain.
In achieving strategyproofness, an important property is that an allocation algorithm be monotone, which requires that is weakly increasing in the bid of bidder i, fixing the bids of others, so that

.1 (Myerson [30]) An auction is strategyproof if and only if for all bidders i, and fixed bids of other bidders
Even beyond strategyproofness, monotonicity is still a worthwhile goal because it guarantees that participants attempting to optimize their bid will only increase the amount they receive and the amount they pay when they increase their bid.
In the case of an auction for a single good, the nature of monotonicity is simple: a bidder must continue to win the good when bidding a higher price. However, in our setting, winning a channel alone is not sufficient to make a bidder happy. In particular, if the channel is heavily used by others in a bidder's neighborhood it may have little value. Thus, a bidder cares not only about whether or not he is allocated a channel, but also who else is allocated the same channel. The effects of the allocations of other bidders on the value of winning a good are known as externalities. This complicates the auction design because the allocation rule must be monotone not only in whether a bidder gets a channel, but also the amount of sharing that occurs on that channel. But once an allocation rule has been developed that is monotone in this sense, the auction can be made strategyproof through standard methods.
While determining the prices bidders pay requires computing an integral, in many cases this integral has a simple form. For example, in the (deterministic) single good case the allocation to a bidder, A i , only takes on two values: 0 when the bidder does not get the good and 1 when he does. Since the allocation must be monotone, it is entirely determined by the critical value where it changes from 0 to 1. Thus, computing the integral reduces to the problem of determining the minimum bid that the bidder could have made and still been allocated.
In addition to strategyproofness, the proposed auction designs for the allocation of short-term licenses and spectrum sharing can be evaluated in terms of the twin goals of: • Allocative efficiency: rather than maximize throughput or spectral efficiency, allocate resources to maximize the total utility from the allocation. Thus, in addition to traditional metrics we also report the total value from the allocations determined at the outcome of SATYA. • Revenue: good revenue properties are important in order to provide an incentive for spectrum owners to participate in the market.
Efficiency is often held to be of primary importance when designing a marketplace because it provides a competitive advantage over other markets, and encourages participation by buyers. Maximizing revenue can be at odds with efficiency because it can be useful to create scarcity in order to boost revenue. One way to do this is to adopt a reserve price. We will examine the tradeoff between efficiency and revenue that can be achieved by adjusting the reserve price in SATYA.

User Model
In order to find opportunities to share among heterogeneous users (e.g., a user with a wireless device, or a TV station), we need a language to describe the requirements of each possible type of user. Our model uses discrete intervals of time (called epochs), with auctions clearing periodically and granting the right to users to contend for access to particular channels over multiple epochs. Thus our approach models participants who regularly want spectrum in a particular location over a period of time. Participants who wish to enter or leave need to wait until the next time the auction is run. The ultimate allocation of spectrum arises through random activation patterns of users and interference effects, and depends on specifics of the medium-access control (MAC) contention protocol. The effect of this MAC protocol is modeled within SATYA in determining the allocation.
The interference between users and their associated devices is modeled through a conflict graph, G = (V, E), such that each user i is associated with a vertex (i ∈ V) and an edge, e = (i, j) ∈ E exists whenever users i and j would interfere with each other if they are both active in the same epoch and on the same channel. Note that, for service providers such as TV stations, defining the conflict graph may be complex as it requires making decisions about the acceptability of interference over some portion of the served area.
We allow for both exclusive-use and "willing to share" users, where the former must receive access to a channel without contention from interfering devices whenever they are active, while the latter can still obtain value through contending for a fraction of the channel with other interfering devices.
We say that a channel is free, from the perspective of user i in a particular epoch, if no exclusive-use user j, who interferes with i and is assigned the right to the same channel as i, is active in the epoch.
Formally, we denote the set of user types T . Each type t i ∈ T is a tuple 1} denotes whether the user requires exclusive-use of a channel in order to make use of it (x i = 1) or willing to share with another user while both are active on the channel (x i = 0).
• a i ∈ (0, 1] denotes the activation probability of the user: the probability that the user will want to use the channel, and be active, in an epoch.
• d i ∈ (0, 1] is the fractional demand of the channel that a user who is willing to share access requires in order to achieve full value when active.
• p i ≥ 0 denotes the per-epoch penalty incurred by the user when active and the assigned channel is not free. Both exclusive-use and non exclusive-use users can have a penalty.
• C i ⊆ C = {1, 2, . . .}, where C is the set of channels to allocate, each corresponding to a particular spectrum frequency, denotes the channels that user i is able to use (the user is indifferent across any such channel.) • v i ≥ 0 denotes the per-epoch value received by the user in an epoch in which it is active, the channel is free, and in the case of non exclusive-use types, the user receives at least a share d i of the available spectrum.
In this model, each user demands a single channel. We discuss an extension to multiple channels in Section 16.4.6.
Some of the parameters that describe a user's type are a direct implication of the user's technology and application domain. For example, whether or not a user requires exclusive-use when active and is unwilling or unable to share falls into this category. Users that can use a MAC will tend to be able to share, other users will tend not to be able to. As we explain below, users operating low-power TV stations or with wireless microphone devices would likely be in this category. The set of channels C i on which a user's device can legally broadcast will tend to be easy to define.
For parameters such as the activation probability (how often the user makes use of the channel), and the fractional demand (how much of the channel is used when active), we assume that these can be estimated by the device, and then monitored by the network environment upon the outcome of an auction with the user punished if this information is mischaracterized. For example, a user could be banned from participating in future auctions. But certainly, the fractional demand d i and activation probability a i may be difficult to estimate in some cases, and especially when first bidding, due to uncertainty arising from the effects of interference, anticipated traffic, and propagation.

Examples
• A user who wishes to run a low-power (local) TV station on a channel would be unable to share it with others when active (x i = 1), would be constantly broadcasting (a i = 1), and would have a very large penalty p i since it is unacceptable for the broadcast to be interrupted by someone turning on another (exclusive-use) device. • A user with a wireless microphone cannot share a channel when active (x i = 1), but is used only occasionally (a i = 0.05) and has a smaller value of p i since it may be acceptable if the user is occasionally unable to be used when there is another exclusive user also trying to use the channel. 1 • A bidder may want to run a wireless network. Such a user would have constant traffic (a i = 1), consume a large portion of the channel (d i = 0.9), and might have a large penalty similar to a TV station for being completely disconnected. However, such a user is willing to share the channel with other non-exclusive types (x i = 0), and will pay proportionately less for a smaller fraction of the bandwidth. • A bidder representing a delay tolerant network [20], who occasionally (a i = 0.2) would like to send a small amount of information (d i = 0.4) if the channel is available. Such bidders might have a low or even no penalty as their use is opportunistic.
The per-epoch penalty is the cost to a user that is incurred in an epoch when the user is active (wants to use the network) but the channel is encumbered by an exclusive-use device. This can represent the known cost of using an alternate network or a contractual rebate.
The per-epoch value of a user v i represents the dollar value that a user assigns to being able to access the channel when active, that is, in an epoch when the user wants to use the network. For an exclusive-use user, it is the per-epoch value for gaining exclusive access during that epoch. For a user willing to share, it is the per-epoch value for gaining a fraction d i of the channel (as long as the channel is unencumbered by an exclusive-use device), and the assumption is that the value falls off linearly for a share below d i . We will design a strategy-proof auction in which it is optimal for users to report their true value of v i when bidding in the auction.

Allocation Model
Let A i ∈ C i ∪ {⊥} denote the channel allocated to each user i, where ⊥ indicates the user has not been assigned a channel. Let A = (A 1 , . . . , A n ) denote the joint allocation to n users. To allocate a channel means that the user has the right to contend for the channel when active, along with other users that interfere with the user and are allocated the same channel. Exclusive-use users take priority over non exclusive-use users, and only experience interference when multiple exclusive-use users are simultaneously active. Non exclusive-use users share the channel when active simultaneously, and when the channel is free of exclusive-use users.
Let V i (A, t) denote the expected value to user i for allocation A given type profile t = (t 1 , . . . , t n ). The value also depends on the conflict graph G, since this affects the interference between users. But we omit this term for notational simplicity.
An efficient allocation of spectrum maximizes the expected total value across the user population, that is All allocations are feasible in our setting, since the expected value captures the negative externality due to interference. For this, we define the expected value V i (A, t) as, A user's value depends first on the expected fraction of the user's request that can be satisfied. The user can only use the channel when it is not in use by another exclusiveuse user, so we let Pr i (F|A, t) ∈ [0, 1] denote the probability that the channel is free (F), with no exclusive-use user interfering with the allocated channel. Given that the channel is free, the user may still have to share with other users. For this, E A [S i |F, t] ∈ [0, 1] denotes the maximum of the expected fraction of a channel that is available to user i given an epoch in which the channel is unobstructed by an exclusive-use user, the user is active, and given user i's demand. For an exclusive-use user, this amount is always E A [S i |F, t] = 1, because such a user receives complete access to the channel when active and the channel is otherwise free.
Thus, the first term in (16.4) takes the expected fraction of channel capacity (necessarily less than d i ) supplied in an epoch in which the user is active, and in which the channel is free from exclusive-use users, and multiplies this by the probability the channel is free and the user is active a i Pr i (F|A, t), and the user's value for receiving d i fraction of the channel in an epoch. This assumes that a user's value is linear in the available bandwidth (up to max-demand d i .) The second term in (16.4) calculates the expected per-epoch penalty due to the channel not being free when a user is active (the probability of which is a i · (1 − Pr i (F|A, t))).
To complete this, we need to also define the probability that the channel allocated to user i is free, given allocation A and type profile t. This is given by the expression, (1 − a j ), (16.5) where N i is the set of neighbors of i in G. This is the joint probability that no exclusiveuse neighbor in the conflict graph, allocated the same channel as i, is active in an epoch.
Finally, we require an expression for E A [S i |F, t] ≤ d i , the expected fraction of a channel available to a user in an epoch when it is active and the channel is free. For this, we first consider the effect of a fixed number of active (non exclusive-use) neighbors in such an epoch.
For this, we assume a Carrier Sense Multiple Access (CSMA) style MAC, in which bandwidth is shared as equally as possible among active (non-exclusive-use) users, subject to the constraint that no user i receives more than its demand d i . Formally, if N a is a set containing i and the active neighbors of i with whom i shares a channel in the allocation, and N f = { j ∈ N a | d j < f }, then user i receives a share of the available bandwidth on the channel equal to, The user either gets the full demand d i or, failing that, the fair share (which the max in the equation determines). If all users have the same demand d i , this reduces to each either the full demand being satisfied if d i ≤ 1/|N a | or receiving a 1/|N a | share of the channel capacity otherwise. If some users demand less than their fair share, the remainder is split evenly among the others.
In completing an expression for E A [S i |F, t], we adopt ν i (A, c) to denote the set of neighbors of i on conflict graph G that, in allocation A, are allocated channel c. In particular, ν i (A) denotes the set of neighbors allocated the same channel as i. The probability that a particular set, N ⊆ ν i (A) is active in any epoch is, From this, a user's expected share of the channel, given that the user is active and the channel is free (where the expectation is computed with respect to random activation patterns of interfering neighbors) is given by, The two special cases cover exclusive-use users (who always receive their full demand when active, conditioned on the channel being otherwise free), and users for whom the channel is never free (for whom we arbitrarily define it to be 0, because the value in this case turns out to be irrelevant).
In general, computing E A [S i |F, t] requires time exponential in the number of neighbors ν i (A) with which i shares a channel. In making this practical, sharing can be limited to d max n neighbors, and the calculation can be completed in time that scales as O(2 dmax ). Alternatively, it may turn out that d max is already small due to the nature of the conflict graph. Indeed, in our experiments for practical models of signal propagation, and even with hundreds of users participating in the auction, we did not need to impose such a limitation.

Auction Algorithm
Turning to the design of SATYA, we assume that the only component of a user's type that can be misreported is v i , which represents the per-epoch value of the user when active.
Designing an auction that is strategy-proof in regard to per-epoch value v i is the focus of this section. As explained in Section 16.3.1, it seems reasonable to assume that many of the parameters of a user's type can be checked by the network at the outcome of an auction and enforced through punishment (e.g., kicking out of the auction environment in the future), or are fundamental to the operation of a user's device (e.g., whether or not it can share the channel or needs exclusive-use) and thus not useful to manipulate. misreporting them (for example by remaining active and sending junk data to increase a i ), implementing such manipulations would be costly to users and in many cases would simply result in higher payments. Thus, for simplicity we ignore this possibility.
There are a number of interpretations of the penalty incurred by a user when a channel is encumbered by an exclusive-use device under which it seems reasonable to treat it as known. For example, the penalty could represent the cost to gain access to a fallback network when this network is unavailable or a contractual payment the spectrum owner is obligated to make. The exact value may also not be important, as long as it is large. In practical terms, the value of the penalty controls the level of sharing that is permissible with exclusive users who are occasionally active, and getting this to the correct order of magnitude may be sufficient. In the extreme, SATYA works fine taking p i = 1 for all i, which forbids such sharing.
Even if no users are permitted to share channels, finding an optimal allocation is NP-Hard [19]. Assigning bidders to channels such that no two neighbors have the same channel is a graph coloring problem. Therefore we adopt a greedy algorithm for allocation, modified to achieve monotonicity.

Externalities and Monotonicity
Let us first define monotonicity in our setting. For this, it is convenient to drop the complete type profile t from notation and write Pr i (F|A) and E A [S i |F] in place of Pr i (F|A, t) and E A [S i |F, t] respectively. In addition, let b = (b 1 , . . . , b n ) denote the joint bid vector received from users, with b j ≥ 0 for all j.
for all bids b i ≥ b i . This insists that the expected share of a channel available to a user, conditioned on being active, weakly increases as the user's bid increases. user to the best available channel in terms of maximizing value (or no channel if that is better). If there is a tie, the algorithm uses some tie-breaking rule, such as the lowest channel number. If user A has a lower bid than user B, the algorithm assigns user B to channel 1, then user A to channel 2, and both are fully satisfied. If user A raises its bid above that of user B, user A will be assigned to channel 1. Then, assuming sharing is better than leaving B unassigned, the algorithm assigns user B to channel 1, and user A receives less value due to interference.

High level approach
The monotonicity violation from Figure 16.1 would be prevented if the algorithm was not allowed to assign user B to channel 1 in the second case. We do this for many cases by assigning each user to a "bucket" based on his bid, such that the more a user bids the higher the bucket to which he is assigned. Users are not allowed to share with a user from a higher bucket. Thus, if user B is in a lower bucket than user A, user B will simply not be assigned a channel. If both users are in the same bucket, we will consider them in some order independent of their actual bids, and adopt in place of their bid value the minimal possible value associated with the bucket. The effect is that the allocation decision is invariant to a user's bid while the bid is in the same bucket. Since users are only allowed to share with other users within their buckets, the way buckets are chosen is an important parameter of our algorithm. Larger buckets create more possibilities for sharing. However, they also mean that the algorithm pays less attention to user's bids, so they may decrease the social welfare (the total value of the allocation) and revenue. Bucketing prevents many violations of monotonicity, but it is not sufficient to prevent all of them. In particular, the example from Figure 16.1 can still occur if user A is in a lower bucket than user B and then raises his bid so they are in the same bucket (if he raises it to be in a higher bucket there is no problem). To deal with this case we adapt a technique known as "ironing" [31] to this domain. This is a post-processing step in which allocations that might violate monotonicity are undone. Given an input (a set of bids) to an allocation algorithm, the basic idea is to check the sensitivity of the allocation with respect to unilateral changes in the bid value by each bidder. In Parkes and Duong [31] this is applied to a problem of stochastic optimization, and a failure in regard to checking higher bids is addressed by unallocating the bidder at the current input. In the context of the SATYA auction, sensitivity is checked in regard to lower bids, and failure is addressed by unallocating other bidders that are sharing a channel with the user (improving the allocation for the bidder at the current input).
For each user allocated in the current bucket, we ask the counterfactual question "If this user were instead in the next lower bucket, is it possible he would be allocated?" If so, we guarantee that the user is satisfied in the current bucket by canceling (or "ironing") the allocations of other users with whom he shares. In Figure 16.1, if user A were in a lower bucket he would be allocated a channel. Therefore, in the ironing step, the algorithm would change user B's allocation and not allocate a channel in the current bucket. It will be important, though, that a channel allocation that is canceled in this way will be considered unavailable for future allocation. This prevents the need for nested arguments involving the effect of ironing on future allocations, future ironing of future allocations, and so on.
In this high level description, we have assumed that any two users who interfere with each other cannot share a channel without harming each other. In reality, this is not the case; users capable of using a MAC and sending at sufficiently low rates will have a negligible effect on each other. Many of the more intricate details of our algorithm come from adapting the general approach to take advantage of this fact and allow more efficient use of wireless spectrum.

16.4.3
The SATYA Algorithm SATYA begins by assigning each user i to a bucket based on the user's bid value b i . There are many ways this can be done as long as it is monotone in the user's bid. For example, user i with an activity-normalized bid a i b i could be assigned to value bucket with bounds [2 , 2 +1 ). To be general, we assume that bucketing of values is done according to some function β(k), such that bucket k contains all users with (normalized) bids a i b i in the range [β(k), β(k + 1)). Once users are assigned to buckets they are assigned channels greedily, in descending order of buckets. The order of assignment across users within the same bucket is determined randomly. Let K i denote the bucket associated with user i. A channel c is considered to be available to allocate user i at some step in the algorithm, and given the intermediate allocation A, if, • the channel c is in C i ; • assigning i would not cause an externality to a neighbor from a higher bucket: for all j ∈ N i , with K j < K i , ∈{ν j (A,c)∪{i}} d ≤ 1 (16.10) • and, the combined demands of i and the neighbors of i from higher buckets assigned to c are less than 1: We refer to the second condition as requiring that the demands of each neighbor of user i from a higher bucket be satisfied. The third condition requires that the demand of user i is satisfied. This does not preclude allocations where some user has E[S i |F, t] < d i . It simply requires that, in such cases, the user is sharing with others in the user's own bucket.
Suppose i is the next user to be considered for allocation. SATYA will identify the channel for which assigning i to the channel has the maximum marginal effect on the total value of all currently allocated users along with user i itself. To do so, for every channel c that is available to the user, and including ⊥ (and thus not allocating any spectrum to the user), SATYA estimates the expected value to some user j after assigning i to c as This estimate differs from the user's actual bid by assuming that each user in a given bucket shares the same value. This is important for achieving monotonicity, because we need to ensure the decision for a user depends on the bucket associated with a user's bid value and not in more detail on a user's value.
Given this, user i is assigned to the channel that maximizes the sum of the expected bid values of each user already allocated and including its own value, and without leaving any user with a negative expected value. The optimal greedy decision might allocate ⊥ to user i, and thus no spectrum. In the event of a tie, the user is assigned to the lowest numbered among the tied channels (including preferring ⊥, all else equal).
After all users in a bucket are assigned channels, there is an ironing step in which monotonicity of the allocation is verified, and the allocation perturbed if this fails. Recall that monotonicity violations occur when the greedy allocation makes a "bad" decision for the user and would make a better one had the user been considered later. Bucketing prevents users from being able to move themselves later while staying in the same bucket, but they could still lower their bid enough to drop into the next bucket. To rule out this possibility, the ironing procedure re-runs the allocation procedure for each user with the user placed instead in the next lower bucket. If this counterfactual shows that the final allocation would be better for the user, then there is a potential monotonicity violation, and the provisional allocation is modified by changing the assignments of the neighbors with whom the user shared a channel to ⊥. Checking only the next bucket is sufficient because if the user can be assigned in any lower bucket he can be assigned in the next bucket.
The complete algorithm is specified in pseudocode as Algorithm 5. In the specification, we use distinct names to be able to refer to allocations created along the way. The variable A(k, i, j) denotes the state of the allocation in bucket k after considering the jth user in the order given by random permutation π on users. Some of these allocations will be used for the counterfactual questions asked by ironing, so i is the user currently being omitted (i = 0 if there is no such user).
The proof of Lemma 16.4.1 is presented in the appendix.