Strong Substitutes: Structural Properties, and a New Algorithm for Competitive Equilibrium Prices

We show the Strong Substitutes Product-Mix Auction (SSPMA) bidding language provides an intuitive and geometric interpretation of strong substitutes as Minkowski differences between sets that are easy to identify. We prove that competitive equilibrium prices for agents with strong substitutes preferences can be computed by minimizing the difference between two linear programs for the positive and the negative bids with suitably relaxed resource constraints. This also leads to a new algorithm for computing competitive equilibrium prices which is competitive with standard steepest descent algorithms in extensive experiments.


Introduction
This paper shows that for an important and widely-studied class of problemsthose for which agents have strong substitutes valuations over multiple units of multiple differentiated goods-competitive-equilibrium prices can be found by considering two linear programs.Specifically, we relax resource constraints on both programs in the same way, and find the relaxation that minimizes the difference between the objectives of the two programs; the dual prices of one of these relaxed programs are competitive equilibrium prices.We derive this result by using the geometric representation of preferences provided by the Strong Substitutes Product-Mix Auction (SSPMA) bidding language.This then allows us to develop an efficient algorithm to find the competitive equilibrium prices when preferences are represented this way.Since, as we detail below, the SSPMA language is a natural way for agents to express their preferences, our algorithm is a practical way to find competitive equilibrium prices for strong substitutes.
Our paper also provides a novel algorithm to find the prices in an SSPMA, since these are prices that would be competitive equilibrium prices for the given aggregate supply if bidders had bid their actual values.1 Participants in SSPMAs make bids that express "strong-substitutes" preferences for multiple units of multiple, differentiated, indivisible goods.Strong-substitutes preferences are those that would be ordinary substitutes preferences if every unit of every good were treated as a separate good (Milgrom and Strulovici, 2009).They are an extension of gross substitutes preferences (Kelso and Crawford, 1982) from single-unit to multi-unit, multi-item markets, and are equivalent to M ♮ -concavity (Danilov et al., 2001;Murota, 2016;Shioura and Tamura, 2015).They have many attractive properties.In particular, all agents having strongsubstitutes preferences is a sufficient condition for the existence of competitive equilibrium prices in markets with indivisible goods.
Furthermore, even though strong substitutes are a small subset of the set of all possible valuation functions of a bidder, they are practically relevant for various applications such as auctions used by the Bank of England (Klemperer, 2008(Klemperer, , 2018)).So a significant amount of theoretical literature has been devoted to markets where participants have these valuations (Ausubel, 2006;Baldwin and Klemperer, 2019;Murota and Tamura, 2003;Paes Leme, 2017).
Importantly, valid bids in the SSPMA bidding language permits the specification of precisely the set of preferences that are strong substitutes, and indeed is the only language that is known to do this. 2 As we will see, it is also parsimonious, or "compact", in that many valuations can be expressed using only a small number of simple bids. 3Finally, it expresses valuations in a natural way, which can be understood and analyzed geometrically; we show aggregate demand is the Minkowski difference between two easily identified demand sets.

The Strong Substitutes Product-Mix Auction (SSPMA)
There is significant literature on computing competitive equilibria with strong substitutes valuations.See, for example, Kelso and Crawford (1982), Bikhchandani and Mamer (1997), Gul and Stacchetti (1999), Murota and Tamura (2003), Ausubel (2006), Nisan and Segal (2006), Milgrom and Strulovici (2009), Paes Leme (2017), Bichler et al. (2020), and Paes Leme and Wong (2020). 4The interest in strong substitutes is due to the fact that it captures practically relevant valuations for indivisible goods, but the allocation problem can be solved in polynomial time and Walrasian competitive equilibrium prices always exist, which is not the case for general valuations (Bikhchandani and Ostroy, 2002).
Prior literature requires either value oracles for exponentially many bundles, or demand oracles.Demand oracles can be understood as indirect or iterative mechanisms, where bidders reveal their demand correspondence for a set of prices specified by the auctioneer.So in a large market with many goods that is organized as a sealed-bid auction, the auctioneer needs to perform an exponential number of value queries for each bidder before the allocation algorithm can be run.Such enumerative (XOR) bid languages are used in spectrum auctions, but can lead to "missing bids" problems, which can significantly affect prices, and also create efficiency losses (Bichler et al., 2013). 5 The SSPMA was developed by Klemperer (2008) for the Bank of England to provide liquidity to financial institutions by auctioning loans to them.The SSPMA is neither based on a value nor a demand oracle. 6A collection of bids specifies a large number of package values, which mitigates the missing bids problem.This type of preference elicitation permits efficient ways to compute Walrasian prices, and allows us to uncover new properties of strong substitutes valuations.
not possible to express all strong substitute valuations as combinations of weighted ranks of matroids on a ground set bounded by the number of goods.
3 See Goetzendorff et al. (2015) for a discussion of compactness. 4Paes Leme and Wong (2020) provides the fastest algorithm for value oracles and a new algorithm for aggregate demand queries.However, the latter is different in spirit to our paper which addresses a market design for applications such as the Bank of England's.
5 Bidders who do not submit the very large number of bids required to fully specify their valuations are treated as if they place no value on the packages they fail to bid for. 6If a demand oracle is what is available, a conversion to SSPMA is available via Goldberg et al. (2020)'s algorithm which computes the (unique) list of bids corresponding to a bidder's demand preferences, given access to either a demand or a valuation oracle.
Each bidder makes a set of bids, each of which is a vector b, incorporating an integer weight w(b).Each bidder's set of bids is interpreted as specifying a quasi-linear utility function over multiple units of each of n goods plus money.A bid in which w(b) > 0 (a "positive" bid) is simply interpreted as a bid for up to, but not more than, w(b) units, in total, of the goods i = 1, . . ., n, in which the expressed value of receiving x i units of good i is x i • b i .
Example 1.A bidder might be interested in 2 units, and be willing to pay up to price 2 for each unit of good 1, but only up to price 1 for each unit of good 2.These preferences can be implemented by a single bid b = (2, 1) with w(b) = 2. Figure 1 shows how the bid b divides price space into three regions: for example, if the price vector p = (p 1 , p 2 ) lies in the region labeled as "(2, 0) demanded" then, at this price vector, receiving the bundle (2, 0) maximizes the bidder's utility among all feasible bundles.The black lines mark the borders at which the demanded bundle changes.If prices lie exactly on the boundary of two or more regions, then the set of demanded bundles is given by the discrete convex hull of the bundles demanded in the adjacent regions.For example, if p = (2, 4), the bidder demands bundles (0, 0), (1, 0) or (2, 0).Bids in which w(b) < 0 ("negative" bids) are interpreted as "cancellation" bids that cancel part of the demand created by positive bids.But this means that all bids can be treated by the auctioneer in exactly the same way: a bid is accepted whenever at least one of its prices exceeds the corresponding auction price and, if it is accepted, then it is allocated the good on which its price exceeds the corresponding auction price by most. 7The following example from Klemperer (2008Klemperer ( , 2010) ) demonstrates the potential usefulness of negative bids in the context of the Bank of England's auctions, in which the different goods were "weak collateral" and "strong collateral", and the prices were the interest rates that the winning bidders paid:8 Example 2. A bidder might be interested in $100 million of weak collateral (good 1) at up to a 7% interest rate, and $80 million of strong collateral (good 2) at up to a 5% interest rate.However, even if prices are high, the bidder wants an absolute minimum of $40 million (see Figure 2).These preferences can be implemented by making all of the following four bids: I $100 million of weak at 7%.II $80 million of strong at 5%.III $40 million of {weak at maximum permitted bid OR strong at maximum permitted bid less 2%}.IV minus $40 million of {weak at 7% OR strong at 5%}.
Note that the bids lead to an arrangement of hyperplanes, at each of which the agent is indifferent among more than one bundle.Bids (I) and (II) together generate the demand shown in the three quadrants to the left of (7, 0) and/or below (0, 5), but would on their own imply zero demand in the top right quadrant.Adding the high positive bid, (III), at (k, k − 2), in which k is the maximum permitted bid on either good (we assume k is large), would add demand of $40 million of weak everywhere above the 45 deg diagonal line through (2, 0), and $40 million of strong everywhere below this line; the negative bid, (IV), at (7, 5) then cancels this bid everywhere to the left of, and below, (7,5).
Preferences of the kind illustrated in Example 2 are very natural for a liquidity-constrained bidder, but cannot be accurately represented without the use of a negative bid. 9 However, with positive and negative bids, valid bids in the bidding language can precisely represent any "strong substitutes" preferences. 10Moreover, the way in which positive and negative bids define demand sets has a nice geometric interpretation as Minkowski differences, as we will show.And, importantly, as we discuss below, in practical settings expressing valuations with SSPMA bids is likely to be much more compact than listing valuations explicitly as assumed in Bikhchandani and Mamer (1997) or subsequent literature.For all these reasons, the SSPMA is a natural choice for applications.
To make practical use of SSPMAs, however, requires that we can find competitive equilibrium prices among participants using the bid language. 11That is, given the collection of the sets of bids made by all the participants, we need to be able to find a price vector at which any given quantity vector of goods would be exactly demanded if all the bids expressed participants' actual preferences.
If all the bids are positive, the competitive equilibrium price vectors are just the shadow price vectors in the solution to a simple linear program, more specifically a network flow problem, in which the number of variables is linear in the number of bids and distinct goods.The reason is that competitive 9 One way to understand a negative bid for a unit is that it is the highest price at which you would cancel a bid for one unit.Reducing your purchases only at low prices makes no sense on its own.However, in two dimensions, for example, it does make sense in conjunction with a positive bid north-east of the negative bid which gives higher prices at which you would buy (and that the negative bid therefore cancels when prices are low) and also other bids to the west and south of it, at least one of which is accepted when the cancellation operates (and without which there would be no reason for the cancellation). 10Klemperer (2010) stated this result for the case of multiple units of each of two goods.Baldwin and Klemperer (2016) and Baldwin and Klemperer (2021) show the general result, and also show that any preferences represented by this language that are valid (i.e., the demand for a good cannot decrease if its price falls while no other price changes-see discussion below Definition 2) must be strong substitutes.
11 Bidders in a Product-Mix auction simultaneously make sets of bids that express their preferences.The auctioneer then chooses the aggregate supply and allocates each participant its competitive-equilibrium allocation at competitive-equilibrium prices, assuming that all the expressed preferences are accurate.Ties between bids can be broken arbitrarily, since participants who express their preferences accurately are indifferent.If there are multiple competitive equilibria, the Bank of England's Product-Mix auctions choose the best one for bidders (this is uniquely defined-see discussion below Definition 2).See Klemperer (2008Klemperer ( , 2010) ) for more details.
equilibrium maximizes social surplus in our setting, so the relevant linear program allocates the bids among participants to maximize the sum of their surpluses, subject to allocating exactly the available supply.12With negative bids, however, the allocation problem cannot be modeled with only a single linear program, and the computation of prices is then more challenging.

Our Contribution
We study characteristics of strong substitutes by using the SSPMA language.First, we show that the positive and negative bids in the SSPMA allow us to interpret strong substitutes as Minkowski differences between sets that are easy to identify.This gives new insight into the geometric structure of strong substitutes, a valuation class that is difficult to characterize.We then illustrate the SSPMA language's expressiveness using Ostrovsky and Paes Leme (2015)'s notorious example of strong substitutes that other languages cannot represent.We also explain that the language is compact for realistic settings, since the bidder need not explicitly give a value for every bundle which it might be allocated.
Our main contribution is an equivalence result for different mathematical formulations of the pricing problem.We show that minimizing the difference between the maximum social surpluses attained by solving certain pairs of allocation problems-each of which is a simple problem-provides the information we need to compute the equilibrium prices.Specifically, the correct quantity of negative bids, s, accepted by the auctioneer minimizes the difference between the objective function of the linear program that would be solved to allocate the available supply increased by s if only the positive bids were available (we call this the "positive program"), and the objective of a corresponding linear program that would be solved to allocate a quantity of s using only the negative bids (the "negative program").Moreover, the competitive equilibrium price vectors are the shadow price vectors for the positive program for this value of s. 13 We prove these results by showing that minimizing the difference between the positive and negative programs is dual to minimizing a Lyapunov function L(p).More precisely, we show that the Toland-Singer dual (Maehara and Murota, 2015;Toland, 1979) of L(p) is the minimum difference between the positive and negative linear programs.Baldwin, Goldberg, Klemperer, and Lock (2019) have recently shown that a standard steepest-descent algorithm based on the Lyapunov function (following Murota and Tamura (2003)) can solve the SSPMA pricing problem, but their method takes only limited advantage of the special features of the geo-metric representation. 14By taking fuller advantage of the structure of strong substitutes analyzed in this paper, we find an alternative to steepest descent on the Lyapunov function.Our algorithm draws on DC (difference of convex functions) programming. 15Steepest descent algorithms on the Lyapunov function are known to be very efficient.But we find that the DC algorithm is at least similarly fast in all our experiments.Neither algorithm is consistently faster, and in environments with only a low number of negative bids (which we conjecture are the most likely ones in practice-see Section 2.3), the DC algorithm is the faster one.So, while both algorithms terminate in a few seconds even for large problem instances, the DC algorithm provides an valuable new alternative by taking advantage of the structural properties of strong substitutes.

Outline
We proceed as follows.Section 2 introduces the SSPMA bidding language.We illustrate its expressiveness, and explain that it is a compact language that expresses all strong-substitutes valuations (and no others) as the Minkowski difference of positive and negative bids.Section 3 proves that the pricing problem can be solved by minimizing the difference between the objectives of the two linear programs, by showing that this is dual to minimizing the Lyapunov function.Section 4 takes advantage of this result to use "DC programming" (difference of convex functions programming) to specify an algorithm to solve the problem, and uses numerical experiments to compare our algorithm to a steepest-descent algorithm based on the Lyapunov function.Section 5 concludes.All proofs are in the Appendix.
2 The SSPMA Bid Language

Formal description of the SSPMA language
In the SSPMA, each of m bidders j ∈ {1, . . ., m} submit an arbitrary number of bids for distinct goods i ∈ {1, . . ., n}.A bid is a vector b Here, for i = 1, . . ., n, coordinate b i gives the value for good i.The final coordinate b n+1 ∈ Z\{0} is the weight of the bid; we write w(b) for the projection to this final coordinate.We refer to positive and negative bids according to the sign of w(b).Prices p = (p 1 , . . ., p n ) ∈ R n 14 Unlike Baldwin, Goldberg, Klemperer, and Lock (2019) we focus on the structural properties of strong substitutes that arise from the SSPMA bid language as well as the economic interpretation of the Toland-Singer dual of the widely used Lyapunov function. 15Minimizing the difference between two M ♮ -convex functions is in general N P -hard (Kobayashi, 2015;Maehara et al., 2018): the difference between the positive and negative programs is neither convex nor concave.However, this specific problem can be solved in polynomial time, as is clear from the relationship to the Lyapunov function.
are linear.Our bundles of indivisible goods will be written x, y ∈ Z n ≥0 .We write e i for the coordinate vectors i = 1, . . ., n in Z n .
A positive bid b expresses the willingness of the bidder to pay at most b i for units of good i = 1, . . ., n, and for up to w(b) units in total.It defines a valuation v b on the domain ∆ w(b) of bundles of at most w(b) units, that is, The utility associated with this bid is quasi-linear, v b (y) − ⟨p, y⟩, so the indirect utility associated with such a bid is just where we include 0 because the bid may instead be rejected.Any combination of w(b) units of utility-maximizing goods is acceptable, as are fewer units when u b (p) = 0, so the demand set is This set comprises all integer bundles in the convex polytope in which the bundles w(b)e i , where i maximizes b i − p i ≥ 0, are vertices, and 0 is also a vertex if max i∈{1,.
Let Q comprise all price vectors q in a small neighborhood of p, and such that D b (q) = {x b (q)} are singletons for all b ∈ B. Then the aggregate demand set is equal to the discrete convex hull : negative bids are used to "cancel" part of the demand arising from positive bids.We cannot extend this rule to prices at which the demand set is non-unique simply by taking the Minkowski sum of demand sets associated with all bids; negative bids which are marginal between goods must be treated consistently with positive bids marginal on those same goods. 16However, if the bids B j of each bidder j = 1, . . ., m are valid, then the full aggregate demand set D B (p) defined by When B contains only positive bids, we can aggregate the simple valuations implied by individual bids, to obtain the aggregate valuation v B : The latter equation also gives us an indirect way to identify the aggregate valuation if B is a valid set of positive and negative bids.However, one of our main results, which is also the starting point to our equilibrium pricing algorithm, is a purely primal expression for the aggregate valuation in the presence of negative bids (Theorem 1).
The valuation implied by such bids is for strong substitutes: Definition 1 (Ordinary and Strong Substitutes, Milgrom and Strulovici (2009) and Baldwin and Klemperer (2019)) A valuation v is ordinary substitutes, if for any price vectors p ′ ≥ p with singleton demand sets when we consider every unit of every good to be a separate good, v is ordinary substitutes.
The SSPMA only expresses preferences of this kind, and can express any strong substitutes valuation (Baldwin andKlemperer, 2016, 2021) 17 .It is, to our knowledge, the only bidding language that provably has this feature.
In an SSPMA such as the Bank of England's, total supply is not predetermined; the auctioneer represents its preferences as supply schedules, and the auction finds competitive equilibrium given the auctioneer's and bidders' expressed preferences.However, the auctioneer can equivalently auction the maximum quantity of each good that it would ever sell at any price vector, and place appropriate bids to buy back quantities at lower prices. 18So we index the auctioneer as agent 0 and include its bids in the set B of all bids from all bidders.This paper therefore addresses the following problem: Definition 2 (Equilibrium pricing problem) Given a valid set B of all bids from all bidders (including the auctioneer) and a target supply t, find a price vector p ∈ R n , such that t is demanded at p, that is, t ∈ D B (p).Such a price vector is called an equilibrium price. 19  It is well-known that a competitive equilibrium does indeed exist, given our assumptions of strong substitutes and a seller who will retain units of any underdemanded good at a price of zero (Danilov et al., 2001;Milgrom and Strulovici, 2009).Indeed, this also implies that equilibrium price in R n ≥0 exists.The set of equilibrium prices forms a lattice with respect to the Euclidean ordering (Gul and Stacchetti, 1999;Murota, 2003), i.e., for any valuations v 1 , • • • , v m , if p and p ′ are equilibrium prices for such valuations, then p ∧ p ′ and p ∨ p ′ are also equilibrium prices.This implies that there exists an unique minimal equilibrium price vector.It is possible to modify the algorithm we will develop to find the minimal equilibrium price vector rather than an arbitrary price vector.
To understand the "validity" of bids in the SSPMA, we briefly outline some geometric ideas from Baldwin and Klemperer (2019).First, the collection B of bids induces a set of prices at which the aggregate demand is not unique: the "locus of indifference prices" (LIP), notated L B := {p : |D B (p)| > 1}.For a price p to be in the LIP, at least one bid must be marginal, so some equality of the form b i = p i or b i − p i = b j − p j must hold, where i, j ∈ {1, . . ., n} and j ̸ = i.Therefore, L B consists of a union of pieces of hyperplanes with normals in {e i , e i − e j : 1 ≤ i < j ≤ n}.These pieces of hyperplanes are known as facets.To each facet F , we assign a weight w(F ), given by the sum of the weights of bids that are marginal at a price in the relative interior of F .Facets always have nonzero weight; if the sum of weights of marginal bids is zero then one may see that demand is in fact unique.
The LIP L B splits price space into multiple unique demand regions (UDRs) at which a unique bundle is demanded.Let p be a price vector in an UDR for which the demand is known (for example, for p large, the demand is 0).If the price p changes along a curve, and crosses a facet F of L B , then the demand 18 Klemperer (2018) (Appendix E1) illustrates how the auctioneer can do this for general supply schedules; for the special case in which it just wishes to sell a bundle t = (t 1 , . . ., tn) at any non-negative prices, it will simply auction supply t and enter a bid (0, . . ., 0; i t i ) into the auction. 19This paper takes competitive behavior as given; we do not address the extent to which bidders may distort their preferences.In an SSPMA it is rational for bidders whose demand is not too large relative to aggregate demand to make bids that approximately reflect their true preferences.Throughout this article, we assume that bids reflect true preferences.
changes by w(F )n, where n is the normal of F pointing into the opposite direction of the path.For an illustration, see Figure 3. Thus, the LIP fully encodes the aggregate demand at every UDR-price, and so -by taking convex hulls -at every price.3 Finding demand in each UDR of a LIP.The black circles represent positive bids with weight 1, namely (2, 2; 1), (1, 0; 1) and (0, 1; 1); the white circle represents a negative bid, (1, 1; −1).Note that all facets emanating from this negative bid are canceled by parts of facets arising from positive bids.A curve which determines demand in every UDR is shown as a dashed line.The curve starts at a high price, where the demand is (0, 0).The vectors where the path intersects the LIP indicate the correctly oriented normals of the facets with respect to the path.For example, inspecting the crossings of facets reveals that the demand at (0.5, 0.5) is 1 Now, a negative-weighted facet cannot arise from a quasi-linear preference relation: when the price of one good decreases, the demand for that good must not also decrease.So negative bids must be placed in such a way that, in the resulting collection of facets, no facet has a negative weight.This condition is equivalent to concavity of the indirect utility function. 20From now on we assume that our bid collections are always valid.Note that if each individual bidder's bid set is valid, then so is the set of all bids from all bidders.
The following two subsections discuss geometrical interpretations and properties of this bid language.While they do not contribute directly to our main Theorem 1 and the algorithm, they provide useful background on the role of negative bids in the SSPMA and intuition for the overall approach.

Interpretation via Minkowski Differences
There appears to be a contrast between the intuitive definition of the aggregate demand set when all bids are positive (so the aggregate demand set is just the Minkowski sum of the individual demand sets) and the more involved definition when negative bids are present.Recall from Section 2.1 that in this case we defined the aggregate demand set to be the discrete convex hull of bundles which are demanded uniquely when we slightly change the price vector p.We cannot simply take Minkowski sums because we must ensure that negative bids are treated in a valid way with their associated positive bids (see the discussion after Definition 2).However, if B is valid, then we can provide a more parsimonious novel definition by using the Minkowski difference operation.We recall that A − B consists of all points x ∈ R n , such that x + B ⊆ A. The geometric effect of this operation is illustrated in We prove this result in Appendix A.1.

Expressiveness and compactness of the SSPMA
To illustrate the expressive power of negative bids, we consider Ostrovsky and Paes Leme (2015)'s notorious example of a valuation, v r , that shows that prior bid languages such as the endowed assignment valuations by Hatfield and Milgrom (2005) are strictly less expressive than the set of gross substitutes (and so also strong substitutes) valuations.21(We discuss the construction of v r in Appendix A.2.)However,

Proposition 2
The valuation v r in Ostrovsky and Paes Leme (2015) can be represented by 8 positive and 6 negative SSPMA bids.
This proposition illustrates Baldwin and Klemperer (2021)'s more general result that all strong substitutes valuations can be depicted in the SSPMA.We prove Proposition 2 without relying on this general result by explicitly providing the list of SSPMA bids.
Moreover, an important feature of the SSPMA language is that it is parsimonious: the valuations that are most used in practice can be expressed very simply, using far fewer bids than the number of different bundles valued.Let W := b∈B w(b).Note that W equals the maximum number of units that a bidder who makes bids b ∈ B is interested in.Then SSPMA bids can assign a "non-trivial" value to Ω(W n ) bundles: Proposition 3 Consider an SSPMA with n goods, and suppose a bidder makes bids B.
Moreover, bidders in practical applications are likely to need to make far fewer bids than Proposition 3 suggests: Expressing a demand function for each good independently is trivial-it just requires providing a separate list of bids for each i with, for each i, b j = 0 for all j ̸ = i.In many settings these bids will express much of the information about bidders' valuations.
At a second, higher, level of complexity, any bid which selects the "best value" among any number of goods can be expressed using only positive bids.Observe that W is the maximum number of bids that a bidder who is interested in winning at most W units, and who uses only positive bids, needs to makeand if any of her bids have greater weight than 1, she will need fewer bids.So such a bidder can express her valuations of all possible bundles with only a few bids.
More complex features of preferences require negative bids to express, but these features seem less likely to arise frequently.Example 2 is one example, and there are others,22 but we expect most bidders would be unlikely to have to handle more than a very small number of these special issues.In fact, in the Bank of England's auctions, bidders showed relatively little interest even in bids of the "second level" of complexity, and they used such bids only rarely-perhaps because they are only very important to banks in times of real crisis. 23So bidders are unlikely to need many negative bids in most practical auction settings. 24The number of bids needed by a bidder who is interested in winning at most W units, and who needs only a small number of negative bids, cannot much exceed W .Moreover, such a bidder will need to use many fewer than W bids unless most or all of her bids are of weight only 1.So these bidders, too, are likely to be able to express their full valuations with only a few bids.
The number of bundles valued by a set of bids of mixed sign can be much smaller than the lower bound on the number of bundles valued by the same number of bids that are all positive.25But we expect the SSPMA bidding language will be much more "compact"26 in most practical cases than-saylisting valuations for all bundles explicitly.
So in the settings that we believe are most likely to arise, bidders can probably build up their valuations bit by bit through adding individual bids.We expect most of these bids will be positive; moreover, software can make entering negative bids easier, by checking feasibility and by allowing the bidding of "words,"27 , and by checking feasibility. 28t least with human participants, it seems less likely that a valuation function with all exponentially many package values would be available, but in this case the prices can be computed directly, using steepest descent or linear programming algorithms.Alternatively, bidders could use Goldberg et al. (2020)'s algorithm to generate bids from an arbitrary value function. 29 The SSPMA Pricing Problem With only positive bids, our equilibrium pricing problem (Definition 2) can be solved via a simple linear program that maximizes the total welfare given the target bundle t.We know that t ∈ ∆ W , where W is the total weight of bids placed, by our assumption about the bids of the auctioneer.But recall from Equation (4) that, given the collection B of all bids of all bidders, the aggregate valuation of any bundle t ∈ ∆ W is given -in LP notation -by Here π b and p i denote the respective dual variables.This program always has an integral optimal solution, as may be seen either by properties of strongsubstitutes valuations, or by recognizing that it is an instance of the min-cost flow problem.The number of constraints and variables is polynomial in the number of bids and goods, in contrast to the formulation of Bikhchandani and Mamer (1997).The set of equilibrium prices can be computed directly: Proposition 4 In an SSPMA with only positive bids, the equilibrium prices for the target supply t are the optimal dual variables p = (p 1 , . . ., p n ) of the network linear program (LP) which can be solved in polynomial time in the number of goods and bids.
Proposition 4 simply follows from writing down the complementary slackness conditions of (LP), so we do not provide an explicit proof.If B also contains negative bids, the problem of efficiently computing equilibrium prices is less obvious.One route, taken by Baldwin, Goldberg, Klemperer, and Lock (2019), is to minimize the Lyapunov function L : R n → R (Ausubel, 2006), defined for target t as where aggregate indirect utility u B (p) is as defined in Equation (3).The set of minimizers of L coincides with the set of equilibrium prices, and structural properties of L allow for polynomial-time steepest descent algorithms to find these minima (Baldwin et al., 2019;Murota, 2003;Paes Leme and Wong, 2017).However, this approach works by invoking a rather generic submodular function minimization algorithm, under the assumption that a demand oracle is available.By contrast, with only positive bids we can build upon much more specialized algorithms to solve network linear programs.And, as we now show, taking advantage of the economic structure of the problem allows us to incorporate negative bids into this approach: Recall that the total allocation in an SSPMA is equal to that assigned to positive bids minus that assigned to negative bids.So, to assign t units in total, we must assign t + s units to positive bids and s to negative bids, for some "supplementary" bundle s.Recall also that we write B + for the positive bids in B, and |B − | for the negative bids b ∈ B endowed with weights |w(b)|.We introduce two additional SSPMAs: that with bids B + and target t + s, which we call the "positive auction"; and that with (positive) bids |B − | and target s, which we call the "negative auction".Write W + and W − for the total weights of bids in these respective auctions, so that ∆ W+ and ∆ W− are the sets of bundles that may be sold by each of them.Note that for each t ∈ ∆ W and s ∈ ∆ W− , t + s lies in ∆ W+ (see Appendix Lemma 4).
If we pick s correctly, then this is equivalent to allocating t units in the auction with bids B.Moreover, since both B + and |B − | are sets of positive bids, their respective aggregate valuations and equilibrium prices can be evaluated using the linear program above.We now show how to find s: Theorem 1 If B represents all bids from all bidders, then the aggregate valuation at the target supply t ∈ ∆ W can be written as Moreover, given a minimizer s, each equilibrium price p of the auction with bids B + and target supply t + s is an equilibrium price for the auction with bids |B − | and target supply s, and also for the complete auction with bids B and target supply t.
We prove Theorem 1 in Appendix A.4.To understand the economic intuition underlying Theorem 1 assume that the set of equilibrium prices is n-dimensional and consider a price p in its interior.(Although the SSPMA would choose the minimum of the equilibrium prices, choosing an interior price simplifies the intuition.)Let s be the vector of negative bids accepted in the equilibrium.Initially set the target s of the negative auction to be s, which means that p is an equilibrium price for both the positive and negative auctions.
Consider the effect of changing p on the weighted sum of bids accepted in these two auctions.Recall that the full set B of positive and negative bids in the original SSPMA is valid.So for any price at which additional negative bids are marginal to be accepted, positive bids with at least as great a weight must also be marginal to be accepted-see the discussion of validity of B at the end of Section 2.1.(The converse does not hold: positive bids can be marginal at prices at which no negative bid is marginal.)So, any change in price from p would alter the total weight of bids accepted in the positive auction by weakly more than it would alter the total weight of bids accepted in the negative auction.
Now consider an increase in one coordinate of the supplementary bundle, from s to s ≥ s, in both the positive and negative auctions.The additional bids that will be accepted in the positive auction with target t+s will, because of our observation above, have weakly greater value than the additional bids accepted in the negative auction.That is, v Similarly, if we decrease one coordinate to s ≤ s, then bids which are now rejected from the positive auction will have weakly lower value than the bids rejected from the negative auction.So, again, v . General changes in s may be understood as a sequence of these two operations.
It follows that s can be identified by minimizing v The formal proof of Theorem 1 rests on applying a version of Toland-Singer duality (Toland, 1979) to the valuations in the positive and negative auctions, and relating this to the Lyapunov function L(p).Maehara and Murota (2015) provide a theoretical treatment of discrete DC-functions, establishing (their Theorem 4.6) Toland-Singer duality in discrete DC-functions.
First recall that, for a function The domain dom ∂f of the subdifferential consists of all points x ∈ dom f with ∂f (x) ̸ = ∅.It turns out that for in our application, the convex conjugates and subdifferentials have an intuitive economic meaning.
Lemma 1 Let B be a collection of positive bids.Then −v B can be naturally extended to a convex function f : dom f → R with the following properties: We will use the following version of Toland-Singer duality, which allows for restricted domains: Theorem 2 (Toland-Singer Duality) Let f : dom f → R and g : dom g → R be proper convex lower semi-continuous functions with closed and convex domains dom f ⊆ dom g ⊆ R n and such that dom g * ⊆ dom f * ⊆ R n .If one of the differences f (x) − g(x) and g * (y) − f * (y) has a minimum in dom f , respectively dom g * , the other difference also has one, and Moreover, if x minimizes f (x) − g(x), then any ȳ ∈ ∂g(x) minimizes g * (ȳ) − f * (ȳ).Conversely, for any minimizer ȳ of g * (y) − f * (y), any x ∈ ∂f * (ȳ) minimizes f (x) − g(x).
For a proof see Tao and An (1997, Theorem 1).We will apply Theorem 2 to the convex extensions of −v |B−| and −v B+ (to the convex hulls of their domains).

The Pricing Algorithm
Using Theorem 1, we can approach the pricing problem by minimizing the difference v B+ (t + s) − v |B−| (s).While the valuations v B+ and v |B−| can be extended to concave functions, and can efficiently be evaluated with linear programs at any given pair of bundles, their difference is in general neither concave nor convex.Moreover, as recently shown by Kobayashi (2015), minimizing the difference between two M ♮ -convex functions is an NP-hard optimization problem.However, there is a class of algorithms on the difference of convex functions (DC algorithms; see An and Tao, 2005;Tao and An, 1997), that find at least local minima of such problems and are often very fast in practice.

A DC Auction Algorithm
By Theorem 1, we seek s minimizing v B+ (t + s) − v |B−| (s).We will approach this by minimizing f (s) − g(s), where f (s) and g(s) are the convex extensions of −v |B−| (s), respectively −v B+ (t + s), to the convex hulls of their domains.A necessary condition for such s is that it gives a stationary point, that is, s ∈ dom ∂f with ∂f (s) ∩ ∂g(s) ̸ = ∅.To interpret this in our context, if q ∈ ∂f (s) ∩ ∂g(s) then p = −q is a price at which t +s is demanded in the positive auction, and s is demanded in the negative auction (see Lemma 1).
The DC Algorithm 1 finds a stationary point for two convex functions f : dom f → R and g : dom g → R with dom ∂f ⊆ dom ∂g and dom ∂g * ⊆ dom ∂f * (Tao and An, 1997).Our functions f and g, defined above, satisfy these conditions: By Appendix Lemma 4, dom f = conv ∆ W− ⊆ conv{s ∈ Z n : t + s ∈ ∆ W+ } = dom g, dom g * = R n = dom f * , and by Lemma 1 the domains of the respective functions coincide with the domains of their subdifferentials.

Algorithm 1: A DC-algorithm
Input: Convex functions f : dom f → R, g : dom g → R with dom ∂f ⊆ dom ∂g and dom ∂g * ⊆ dom ∂f * Output: Stationary points s ∈ R n of f − g and q of g * − f * 1: Choose an initial q 0 ∈ R n 2: for k = 0, 1, . . .do 3: Choose s k ∈ ∂f * (q k ) 4: Choose q k+1 ∈ ∂g(s k ) 5: if g * (q k+1 ) − f * (q k+1 ) = g * (q k ) − f * (q k ) then 6: return (s k , q k ) 7: end if 8: end for However, s being a stationary point for f and g is not a sufficient condition for s to globally minimize f − g.So we check whether a corresponding p is a local -and hence global -minimizer of the Lyapunov function L. If it is, then it is indeed an equilibrium price.If not, we go one step in the direction of steepest descent of the Lyapunov function and then restart the DC-algorithm.This is Algorithm 2 (where lines 1-8 are exactly Algorithm 1 with expressed in their economic interpretation; see Lemma 1 for more details).

Algorithm 2: DC auction algorithm
Input: Valid set B of SSPMA bids Output: Equilibrium price p and supplementary bundle s 1: Choose an initial price p 0 2: for k = 0, 1, . . .do 3: Choose a bundle s k demanded at price p k in the negative-bids auction 4: Choose an integral price vector p k+1 at which t + s k is demanded in the positive-bids auction 5: if end if 8: end for 9: if there exists e ∈ ±{0, 1} n with L(p k + e) < L(p k ) then 10: Restart the algorithm with p 0 := p k + e 11: end if The value of L(p k ) decreases by at least one in every iteration 2-8 of the algorithm until the termination criterion in Step 5 is satisfied (we refer to Appendix A.5 for details).Whenever the algorithm is restarted in Step 10, L also decreases by at least one.Since there exists a minimizer for L, the algorithm terminates: Theorem 3 Algorithm 2 always terminates in a Walrasian equilibrium price.
Algorithm 2 does not specify how to choose bundles s k and prices p k+1 .Determining bundles s k is particularly simple when valuations are expressed in the SSPMA -we just allocate each bid with utility maximizing goods.For finding prices p k+1 , an instance of (LP) must be solved.We use a min-cost flow solver to do so.Appendix A.6 explains our implementation in more detail.
Obtaining sharp worst-case bounds for Algorithm 2 is challenging due to the very generic nature of the DC-Algorithm 1.Note that the class of functions representable as a difference of convex functions is very large -for example, it contains all functions with continuous second derivative (Horst and Thoai, 1999).Also recall that Kobayashi (2015) shows that minimizing the difference of two general M ♮ -convex functions is NP-hard.Intuitively, we expect Algorithm 2 to perform particularly well when the number of negative bids is small.For example, when there are no negative bids at all, the algorithm boils down to solving the min-cost flow problem (LP).For the general case, we provide the following simple bound for Algorithm 2 by the number of negative bids.
First, observe that we may implement Step 3 to choose a bundle s k which is uniquely demanded at some price-and indeed we do so in our practical implementation, because the vertices of demand sets D |B−| (p k ) have this property.
We also assume that prices in Step 4 are chosen deterministically -for the same bundle, the algorithm always returns the same price.
Second, observe that if s k+1 = s k , then the chosen prices in Step 4 are also equal, so the termination criterion 5 is satisfied.After a possible restart, the algorithm also can never reach this bundle again -this would contradict the strict monotonicity properties as we explain in the Appendix (Lemma 6).So in the worst case, after each restart of the algorithm, we directly choose bundles s 0 = s 1 in the first two iterations which immediately causes another restart.It follows that every possible bundle uniquely demanded in the negative auction is chosen at most twice in Step 3 of the algorithm. 30If there is only one single negative bid, these are exactly n + 1 bundles, and so the number of iterations, by which we mean the total number of iterations through the loop from Step 2 to Step 8, of Algorithm 2 is in O(n).Note that after each restart, we iterate at least once through the for loop, so the number of restarts is also in O(n).More generally, Proposition 3 shows that n+|B−| n bundles are demanded in total in the negative auction if the weights of all negative bids are equal to one.Since the number of uniquely demanded bundles does not change if we increase weights, n+|B−| n bounds the number of uniquely demanded bundles in general negative auctions.This therefore provides an upper bound on the number of bundles demanded uniquely in this auction, so on the number of iterations of Algorithm 2. This analysis gives a rather pessimistic worst-case bound for the algorithm, but it suggests that the algorithm performs particularly well with a low number of negative bids.In fact, in our experimental evaluation, we find that the DC algorithm is even faster than steepest descent in these environments.
When there are only positive bids, Algorithm 2 boils down to solving a single linear program, which can be formulated as a min-cost flow problem on a graph with |V | = O(n+|B|) vertices and |E| = O(n|B|) edges (see Appendix A.6).The enhanced capacity scaling algorithm (Ahuja et al., 1993) finds an optimal integral solution in iterations, which implies that the pricing problem can be solved in time this way.On the other hand, Baldwin, Goldberg, Klemperer, and Lock (2019) provide the worst-case bound O(n 2 |B| 2 log M + n|B|T (n)) for the steepest descent algorithm, where M = max b∈B ∥b∥ ∞ is the maximal price of a bid vector and T (n) is the complexity of minimizing an n-dimensional submodular function.Note that the total asymptotic runtime of the network flow formulation coincides with the first summand n 2 |B| 2 log M of the steepest descent formulation up to a logarithmic factor.However, we may expect the second summand n|B|T (n) to dominate the runtime.To the best of our knowledge, the best known weakly polynomial worst case bound for minimizing a general integral submodular function is O(n 2 log nU •EO +n 3 log O(1) nU ), where U is an upper bound for the maximal value of the submodular function (Chakrabarty et al., 2017;Lee et al., 2015).Thus, the worst-case bound for n|B|T (n) cannot be better than O(n 4 |B| log(nU )) using known methods.Hence, in particular when the number of goods increases, we may expect the min-cost flow formulation to outperform the steepest descent formulation in the absence of negative bids. 31aes Leme and Wong (2020) present a polynomial time algorithm for computing competitive equilibrium prices for bidders with general preferences and provide a specialization of their algorithm for gross substitutes valuations, which is the fastest algorithm for this setting currently known.They provide the worst-case bound for the runtime of their algorithm, where n is the number of goods, m is the number of bids, M is the maximum value a bid has for a bundle and T V is the runtime of the value oracle.So the worst-case runtime of Paes Leme and Wong (2020)'s algorithm grows linearly in the number of bidders, while the worst-case runtime of our algorithm (when all its bids are positive) grows quadratically. 32However, our algorithm performs much better than Paes Leme and Wong (2020)'s as we increase the number of units available without changing the number of goods (when all the SSPMA bids are positive), because its worst case is unaffected, whilst Paes Leme and Wong (2020)'s worst case is cubic in the number of units because they must treat each additional unit as an additional good. 33Moreover, even when there are only small numbers of units available of each distinct good, we expect the use cases for the two algorithms to be different: in a setting where fast direct access to bidders' valuations is possible, we expect applying Paes Leme and Wong (2020)'s algorithm would be preferable to first computing the corresponding SSPMA bids for every bidder and then applying our algorithm.On the other hand, when preferences are provided by bidders in the SSPMA bid language, we expect it is faster to use our algorithm directly, rather than translating the SSPMA bids into value oracles first and then using Paes Leme and Wong (2020).

Experimental Evaluation
We implemented both the DC auction algorithm and a steepest descent algorithm based on the Lyapunov function.The Lyapunov approach and the restart step in the DC algorithm require the minimization of a submodular function.As in Baldwin, Goldberg, Klemperer, and Lock (2019), we use the Fujishige-Wolfe algorithm (Chakrabarty et al., 2014), which in practice often outperforms other submodular minimization algorithms.
In our experimental evaluation we solved problems with 10-50 goods, 1020/1200/1500/3020/3500 positive and 20/200/500 negative bids.We drew on a specialization of the algorithm by Baldwin et al. (2016) to randomly generate valid groups of bids, each group consisting of 3 positive and 1 negative bids.Algorithm 4 in Appendix A.7 describes this procedure, and Table 2 in Appendix A.8 gives our results.
The DC algorithm appears to be faster if there are not too many negative bids (less than 200, in our experiments).Table 1 shows a selection of our results for the case of 20 negative bids.So if the number of negative bids is small, which we consider the most likely scenario (see section 2.3), our DC algorithm is a particularly good choice.Table 1 Runtimes of the DC and the steepest descent (SD)-algorithm for instances where the number of negative bids is low.
However, the main conclusion from Table 2 is that both algorithms are very fast, solving even the largest problems in our experiments in less than 3 seconds.Experiments with up to 50 goods and 10,000 bids can also be solved in a few seconds only.34

Conclusion
Strong substitutes valuations are of central importance for both theory and practical applications.We have developed a new algorithm for computing competitive equilibrium prices when agents' preferences are expressed using the Strong Substitutes Product-Mix Auction bidding language, a compact language that permits the expression of all strong-substitutes valuations (and no other valuations).By contrast with a previous approach of using a standard steepest-descent algorithm that tests candidate solutions in turn, we began from the economics of the problem.We used the fact that the shadow prices of two separate linear programs that maximize value for "positive" and "negative" bids, respectively, must be equal, and proved that our model formulation is dual to the Lyapunov function.We also used the bidding language to provide new insight into the geometric structure of strong substitutes valuations.

Lemma 3 Suppose
Proof of Proposition 1.By the strong-substitutes property, the sets D B + (p) and D |B − | (p) are equal to the set of integer points of their respective convex hull, as by definition is But, as B is a valid set of bids, we know by Baldwin, Goldberg, Klemperer, and Lock (2019) Theorem 2.3 that u B is the indirect utility of a strong substitutes valuation v such that Dv(p) = D B (p) for all p ∈ R n .It follows that each vertex x of D B (p) is the unique element of D B (q) for a price q close to p and such that x minimizes (q − p) A.2 The valuation v r from Ostrovsky and Paes Leme (2015) We now explain the construction of vr from Ostrovsky and Paes Leme (2015).Let G = (V, E) be an undirected graph with 4 vertices and 6 edges E = {1, . . ., 6}, such that every vertex is connected to every other vertex by an edge (see Figure 5).A subset H of E is called independent if it contains no cycles.For any H ⊆ E, the rank of H is the maximal cardinality of an independent subset contained in H: The rank function induces the valuation vr : {0, 1} 6 → Z given by vr(x) = rank ({i : x i = 1}).As Ostrovsky and Paes Leme (2015) show, vr is strong substitutes.However, it does not satisfy the property of strong exchangeability which, as Ostrovsky and Paes Leme (2015) show, is a characteristic of every endowed assignment valuation.Consequently, it is not possible to express vr by endowed assignment messages.We demonstrate, however, that it can be expressed using the SSPMA.Note that valuations induced by SSPMA bids are always defined on a scaled simplex ∆ W for some total weight W ∈ Z ≥0 .We thus naturally extend vr to ∆ 6 ⊇ {0, 1} 6 by assuming free disposal: vr(x) = rank({i : Proof of Proposition 2. Given H ⊆ E, we write b H := i∈H e i .We make the following bids: Denote by vr(x) = rank({i : x i ≥ 1}) for x ∈ ∆ 6 the valuation induced by the rank function, and by v B (x) the valuation induced by the above bids.Our goal is to show v B = vr.Note that bid 0 only ensures that the domains of vr and v B are equal, and does not "contribute" to the valuations apart from this.So let us check that indeed dom v B = ∆ 6 .There is 1 bid of type 0, 4 bids of type 1, 3 bids of type 2, and 1 bid of type 4.So summing up the weights of these bids gives W + = 12.On the other hand, there are 6 bids of type 3, so W − = 6, and consequently dom v B = ∆ 12−6 = ∆ 6 .
We have ur(p) = max x∈∆ 6 vr(x) − ⟨p, x⟩ and u B is defined by Equation (3).Recall from Section 2.1 that, for i ∈ {r, B}, we have v i (x) = min p∈R 6 u i (p) + ⟨p, x⟩, where one can check that p → u i (p) + ⟨p, x⟩ always possesses a non-negative minimizer p for x ∈ ∆ 6 .(2015).
So in order to prove Proposition 2, it suffices to show that ur(p) = u B (p) for all p ∈ R 6 ≥0 .By L ♮ -convexity of ur and u B (Murota, 2003), both are determined uniquely on R 6 ≥0 by the values ur(p) and, respectively, u B (p) for p ∈ Z 6 ≥0 .Moreover, given p ∈ Z 6 ≥0 , define p by pi = p i if p i ≤ 1 and pi = 1, otherwise.Since the marginal value of any good is at most 1 for vr, and no bid in B has any value greater than 1, allocating a good i with pi = 1 can never increase utilities, so we have ur(p) = ur(p) and u B (p) = u B (p).So our problem reduces to showing that ur(p) = u B (p) for all p ∈ {0, 1} 6 .For H ⊆ {1, . . ., 6}, denote by p H ∈ {0, 1} 6 the price vector with p H i = 1 if and only if i ∈ H.We will show that ur(p H ) = u B (p H ) for all H ⊆ {1, . . ., 6}.
We claim that ur(p H ) = rank(H c ).To see this, let x be a bundle with ur(p H ) = vr(x) − ⟨p H , x⟩ = vr(x) − i∈H x i .Let P = {i : x i ≥ 1}.Then by properties of matroid rank functions.Consequently, equality must hold everywhere, so ur(p H ) = rank(H c ).
Regarding the indirect utility of our bids, we observe that at prices p First, for price vectors p H with |H| < 3, all bids are accepted, since every placed bid has positive values for at least 3 goods.There are 4 bids of type 1, 3 bids of type 2, 6 bids of type 3 and 1 bid of type 4. In total, we get On the other hand, one can see from Figure 5 that every subset containing at least 4 edges contains a cycle free subset of cardinality 3, and there is no cycle free subset with more than 3 elements.Consequently, ur(p H ) = rank(H c ) = 3.Now consider p H with |H| = 3. Obviously, all bids on more than 3 edges get accepted.A bid b H with H = 3 is rejected, if and only if H = H.In this case, H c is a cycle of length 3, so ur(p H ) = rank(H c ) = 2.We then also clearly have u B (p H ) = 2, since exactly one bid is rejected, and all others are accepted.
On the other hand, if |H| = 3 and no bid is rejected, H c is cycle free, so ur(p H ) = rank(H c ) = 3 = u B (p H ).
Next, suppose |H| = 4, so ur(p H ) = rank(H c ) = 2, because 2 edges cannot form a cycle.Regarding the bids, if H is a cycle of length 4, one bid of type 2 is rejected.In this case, H c consists of two non adjacent edges.Consequently, there is no i ∈ H such that {i} ∪ H c is a cycle.Equivalently, for no H ⊆ H with | H| = 3 we have that Hc is a cycle, so no bid of type 1 is rejected, and u B (p H ) = 2.
If, otherwise, H has no cycle of length 4, H c consists of two adjacent edges.Thus, there is a unique e ∈ H with {i} ∪ H c being a cycle, so a single bid of type 1 is rejected, which means that again u B (p H ) = 2.

A.3 Proof of Proposition 3
Proof of Proposition 3. We will show that D = ∆ W = Z n ∩ W ∆, where ∆ is the standard simplex in dimension n, spanned by 0 and the standard unit vectors e i .Since W ∆ contains exactly n+W n integer points (Beck and Robins, 2007, Theorem 2.2), the remaining results follow.
By the strong substitutes property, D = (conv D) ∩ Z n , so it suffices to show that conv D = W ∆. To that goal we note that if we set p i = −1 and p j very large for j ̸ = i, then D(p) = {W e i }, since every bid b is allocated with w(b) items of good i and the total weight of all bids is W . Also, for a very large price (in every coordinate) p, we have D B (p) = {0}.Consequently, conv D ⊇ W ∆. To see the reverse inclusion, note that any demanded bundle cannot contain strictly more than W items, as some bid would have to be allocated with more than w(b) items otherwise.The lower bounds come from the basic inequality m k ≥ (m/k) k .

A.4 Proof of Theorem 1
Proof of Lemma 1.The linear program (LP) of Section 3 is clearly defined for any x = t ∈ conv ∆ W , and we can use this to assign a real value to ṽB (x) for x ∈ conv ∆ W and set f = −ṽ B .Since f is a polyhedral convex function according to (Rockafellar, 1970, p. 172), its subdifferential is nonempty at every point of dom f (Rockafellar, 1970, Theorem 23.10), so dom ∂f = dom f = conv ∆ W .Let us consider the convex conjugate f * of f (x) = −ṽ B (x).By definition, f * (q) = max x∈conv ∆ W ⟨q, x⟩ + ṽB (x), or in LP-form: Note that since the set of feasible solutions x is compact, f * (q) attains a finite value for all q ∈ R n , so dom ∂f * = dom f * = R n , since f * is also polyhedral convex.Let us now derive the expressions for ∂f and ∂f * .To that goal, note that x maximizes the above linear program if and only if x ∈ ∂f * (q), which is in turn equivalent to q ∈ ∂f (x) (Rockafellar, 1970, Theorem 23.5).It is not hard to see from Equations ( 1) and (2) that the variables y bi constitute an optimal solution for the above linear program, if and only if for every fixed b the vector (y bi ) n i=1 lies in conv D b (−q), which can be seen to be equivalent to x ∈ conv D B (−q) (recall that in the case of only positive bids, the aggregate demand set is just the Minkowski sum of the individual demand sets).It now directly follows that ∂f * (q) = conv D B (−q) and ∂f This directly implies the second part of the Lemma.
Proof of Theorem 1.Let f be the convex extension of s → −v |B − | (s) and g the convex extension of s → −v B + (t + s).Then dom f = conv ∆ W − ⊆ dom g and dom g * = R n = f * by Lemmas 1 and 4. From Lemma 1 we know that f * (q) = u |B − | (−q).Similarly, g * (q) = u B + (−q) − ⟨q, t⟩.So we can apply Theorem 2 to f − g and get In other words, each equilibrium price for t + s for the positive auction is an equilibrium price for the complete auction as well.

A.5 Proof of Theorem 3
We now prove Theorem 3 which states that our DC-algorithm always terminates in a global minimum.First, we collect some properties of the DC-algorithm.
Next, we show that we can always restart the DC algorithm from a computed stationary point.
Lemma 5 Suppose that in Algorithm 2 the termination criterion in line 5 is met with supply s and price vector p.If p is no equilibrium price, then there exists a descent direction e ∈ ±{0, 1} n of the Lyapunov function at p.If we restart the algorithm with p0 := p + e, we have for all elements (p k , sk ) of the new sequence that L(p k ) ≤ L(p) − 1.
Proof.If the returned price p is no equilibrium price, then it is no minimizer of the Lyapunov function (Ausubel, 2006).It follows by L ♮ -convexity of L that there exists e ∈ ±{0, 1} n with L(p + e) ≤ L(p) − 1 (Murota, 2003).By Property 1 in Proposition 6 we have that L(p k ) ≤ L(p) − 1 for the sequence of prices generated after the restart with initial price p0 = p+e.Since L possesses a minimizer (Ausubel, 2006) and after each restart the value of the Lyapunov function decreases by at least 1, the algorithm terminates with an equilibrium price.
This completes the proof of Theorem 3: In each step of the main loop, the value of L(p k ) strictly decreases by an integer amount, and if we leave the main loop, we either restart with a price vector of a strictly smaller value, or we terminate, if we are at a global minimum already.
Lemma 6 Suppose that the prices p k+1 in Step 4 of Algorithm 2 are chosen deterministically.Let R ∈ Z ≥0 be the number of restarts of the algorithm and let Sr = (s 0 r , s 1 r , . . ., s |Sr | r ) the sequence of iterates generated in Step 3 after the r-th restart for r = 0, . . ., R (S 0 is the sequence before the first restart).Then for r 1 ̸ = r 2 , Sr 1 and Sr 2 do not contain any common bundle.Moreover, for each r the bundles s 0 r , . . ., s |Sr |−1 r are pairwise distinct.
Proof.Suppose that s k r 1 = s l r 2 for some r 1 ≤ r 2 and k, l.Then we have for the computed prices in Step 4 that p k+1 For the DC algorithm, reformulating the (LP) as a min-cost flow problem comes with a significant computational advantage as compared to solving it with a generic LP-solver.We briefly describe the general min-cost flow problem.For more details, we refer to Ahuja et al. (1993).Given a directed graph, an arc is a tuple (v, w) where v and w are nodes of the graph.We denote by u(v, w) ≥ 0 the maximum capacity of this arc and by c(v, w) ∈ R the cost per unit flow along (v, w).For a node v, we denote by β(v) ∈ R the supply at node v. Depending on the sign of β(v), a total flow of |β(v)| must leave (positive sign) or enter (negative sign) v.If the supply is 0, the inflow must equal the outflow.A flow f assigns a value f (v, w) ∈ R to each arc, the amount of flow from v to w.It is feasible, if 0 ≤ f (v, w) ≤ u(v, w) for each arc (v, w) in the network, and w f (v, w) − w f (w, v) = β(v) for all nodes v, where the sums run over all w such that (v, w), respectively (w, v) is an arc in the network.The cost of the flow is equal to (v,w) c(v, w)f (v, w).The objective of the min-cost flow problem is to find a feasible flow with minimal cost.
The linear program (LP) is used to solve Step 4 in Algorithm 2 where we need to compute a price vector p k+1 at which the bundle t + s k is demanded.A straightforward network flow model for (LP) is illustrated in Figure 6.For each good i ∈ {1, . . ., n} there is a node g i , and for each of the m = |B + | positive bids indexed by j ∈ {1, . . ., m} there is a node b j .Finally, there is a destination node d.In our flow network, there is an arc (g i , b j ) from each good i to each bid j with unlimited capacity u(g i , b j ) = ∞ and cost c(g j , b i ) = −b j i , i.e., the negative value of bid j for good i.The arcs (b j , d) from the bids to the destination node have capacity u(b j , d) = w(b j ) and cost c(b j , d) = 0.In Step 4 of Algorithm 2, a supply of t + s k must be distributed among the bids.We set the supply of node g i to β(g i ) = t i + s k i and the supply of node d to β(d) = − n i=1 t i + s k i .Finally, the supply of node b j is set to β(b j ) = 0. Since t + s k ∈ ∆ W + (Appendix Lemma 4), n i=1 t i + s k i ≤ m j=1 w(b j ), so a feasible flow f exists.Moreover, since the capacities and supplies are all integral, an integral optimal flow exists.Note that the proposed flow network contains arcs with negative cost.If required by a specific solver, it can however easily be transformed into a network with only non-negative costs (Ahuja et al., 1993, p. 40).
We assume that the applied min-cost flow solver provides us with an integral optimal flow f , as well as with an integral optimal dual solution, consisting of node potentials π(v) ∈ R for each node v in the network.These satisfy the following complementary slackness conditions (Ahuja et al., 1993, Theorem 9.4).
From the complementary slackness conditions it is not hard to deduce that p defined by p i = π(g i ) − π(d) is an equilibrium price vector for the supply t + s k , so we can choose p k+1 = p in Step 4 of the algorithm.
Let us finally consider Step 3 of Algorithm 2, where a bundle s k must be chosen that is demanded at price p k ∈ Z n in the negative auction.This is particularly easy to do in the Product-Mix Auction (see also Baldwin, Goldberg, Klemperer, and Lock (2019)

A.7 Generating Valid Bid Groups
Algorithm 4: Algorithm for generating valid groups of positive and negative bids, used for experiments.

4:
Set v i j = a j if σ(j) = i.

5:
Otherwise, choose v j i ∈ {0, a j } uniformly at random.6: end for 7: Place positive bids at v 1 , v 2 .8: Place a negative bid at the coefficient-wise maximum v 1 ∧ v 2 .9: Let J = {j : v 1 j ̸ = v 2 j }.Place a positive bid at v 1 ∧ v 2 + a 0 e J .10: Assign weight w to all these bids and shift them by c.

Fig. 1
Fig.1Example of using a single bid to represent preferences in a Product-Mix auction.The single bid with weight 2, implementing the preferences of Ex. 1.The total demand generated by the bid is indicated in each region of price space.

Fig. 2
Fig.2Example of using positive and negative bids to represent preferences in a Product-Mix auction.The set of bids implementing the preferences of Ex. 2. The sizes of the bids ($millions) are shown next to the black and white circles that represent the positive and negative bids, respectively.The total demand generated by the complete set of bids, ($millions of weak, $millions of strong), is indicated in each region of price space.
..,n} (b i − p i , 0) = 0.If D b (p) contains more than one bundle, we say all goods i = 1, . . ., n maximizing b i − p i are marginal for bid b at p.If {0} ⊊ D b (p) then we say the bid is marginal to be accepted.If D b (p) = {0} we say the bid is rejected.Now consider a multiset B of positive bids, which could be all those placed by a single bidder, or could, for example, be all bids from all bidders.The aggregate indirect utility u B (p) is just the sum of indirect utilities: u B (p) = b∈B u b (p), and the aggregate demand set D B (p) is the Minkowski sum of demand sets D B (p) = b∈B D b (p).However, we also allow negative bids: those for which w(b) < 0. These do not represent a meaningful economic valuation on their own, but do so in "valid" combinations with positive bids.Given a collection B of bids, write respectively B + and B − for the positive and negative bids in B. Write |b| for the bid (b 1 , . . ., b n ; |w(b)|), and write |B − | for the set of bids |b| where b ∈ B − .Now the aggregate indirect utility is an appropriately signed sum of indirect utilities: u B (p) := b∈B+ u b (p) − b∈|B−| u b (p).(3) We say that the set B is valid when the indirect utility u B is concave.(See Theorem 1 of Baldwin, Goldberg, Klemperer, and Lock (2019); further discussion of this notion is given below after Definition 2.) To define the aggregate demand set with positive and negative bids, first define the demand D b (p) associated with an individual negative bid b as D b Fig.3Finding demand in each UDR of a LIP.The black circles represent positive bids with weight 1, namely (2, 2; 1), (1, 0; 1) and (0, 1; 1); the white circle represents a negative bid, (1, 1; −1).Note that all facets emanating from this negative bid are canceled by parts of facets arising from positive bids.A curve which determines demand in every UDR is shown as a dashed line.The curve starts at a high price, where the demand is (0, 0).The vectors where the path intersects the LIP indicate the correctly oriented normals of the facets with respect to the path.For example, inspecting the crossings of facets reveals that the demand at (0.5, 0.5) is 1 • (1, 0) + 1 • (−1, 1) + 1 • (1, 0) = (1, 1).

Fig. 4
Fig. 4 The Minkowski sum A+(−B) and Minkowski difference A−B of a rectangle A and a triangle B. Left: the rectangle A (in gray); four instances of a + (−B), in which a ∈ A and −B is the triangle (dashed line and its interior); and A + (−B) (black line, including its interior).Right: the same rectangle A (in gray); six instances of a + B. For five of these, such as a = x, we have a + B ⊆ A and so a ∈ A − B, but y + B ̸ ⊆ B and so y / ∈ A − B. The full set A − B is given by the black line and its interior.

Figure 4 .
Note in particular that in general A + (−B) ̸ = A − B. Proposition 1 Let B be a valid collection of bids in an SSPMA.Then for every price vector p the demand set D B (p) is equal to D B+ (p) − D |B−| (p).

Proposition 5
Algorithm 2 requires at most O n+|B−| n iterations for solving the equilibrium pricing problem.
respectively, the unique elements of D B + (p) and D |B − | (p).By definition, we have 0. Place a bid b ∅ with w(b ∅ ) = 3 1.For all H ⊆ E with |H| = 3 and H c is a cycle in G, make a bid b H with w(b H ) = 1. 2. For all H ⊆ E constituting a cycle of length 4, make a bid b H with w(b H ) = 1. 3. For all H ⊆ E with |H| = 5 make a bid b H with w(b H ) = −1.4. Make a bid b E with w(b E ) = 2.

Fig. 5
Fig. 5 Graph used to construct the valuation vr from Ostrovsky and Paes Leme (2015).
): For each bid b in the negative auction, choose a bundle s(b) ∈ D b (p).By Equations (1) and (2), this can be done in linear time in the number of different goods.Then set s k = b∈|B − | s(b).In our implementation, we choose a bundle s k which is a vertex of D |B − | (p).This can be achieved by suitably perturbing p: Let q = p + ∆ be a price such that D |B − | (q) ∩ D |B − | (p) ̸ = ∅ and |D |B − | (q)| = 1.For example, ∆ = (ε, 2ε, . . ., nε) works for ε > 0 small enough.Then simply choose the unique s(b) ∈ D |B − | (q) and construct s k as above.
H ) if and only if H ∩ H c ̸ = ∅, i.e., if and only if b H has positive value for at least one good not in H. Otherwise it generates utility 0. We now consider all subsets H ⊆ {1, . . ., 6} and show that in each case, ur(p H ) = u B (p H ).
H , the bid b H generates a utility of w(b (Ausubel and Milgrom, 2006)ems has a solution.By substituting p = −q, we can rewrite the problem on the right asmin p∈R n u B + (p) − u |B − | (p) + ⟨p, t⟩ = min p∈R n u B (p) + ⟨p, t⟩.The expression u B (p) + ⟨p, t⟩ is exactly the Lyapunov function L(p) introduced in Section 3.For strong-substitutes valuations, the Lyapunov function always attains a minimum, and the set of minimizers is equal to the set of equilibrium prices for the target t(Ausubel and Milgrom, 2006).Consequently, the problem min s∈conv ∆ W − ṽB + (t + s) − ṽ|B − | (s) also has a solution s ∈ conv ∆ W − , and the values of both minimization problems are equal.There exists at least one integral solution s ∈ ∆ W to this problem: Let p be a minimizer of the Lyapunov function.By Theorem 2, each s ∈ ∂f * (−p) = conv D B (p) minimizes ṽB + (t + s) − ṽ|B − | (s), so in particular each s ∈ D B (p) ̸ = ∅ does so.Since the valuations v B + and v |B − | coincide on integral bundles with ṽB + and ṽ|B − | by construction,

Table 2 :
Runtimes of the DC-and the steepest descent (SD)-algorithm.For each experimental setting, we generated 15 sample auctions.The indicated runtimes are the averages over the respective 15 samples.