1 Introduction

This paper shows that for an important and widely-studied class of problems–those 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.Footnote 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 [35]. They are an extension of gross substitutes preferences [25] from single-unit to multi-unit, multi-item markets, and are equivalent to \(M^\natural \)-concavity [17, 37, 45]. They have many attractive properties. In particular, all agents having strong substitutes 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 [26, 28]. So a significant amount of theoretical literature has been devoted to markets where participants have these valuations [4, 8, 38, 41].

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.Footnote 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.Footnote 3 Finally, 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.

1.1 The strong substitutes product-mix auction (SSPMA)

There is significant literature on computing competitive equilibria with strong substitutes valuations. See, for example, [4, 11, 13, 21, 25, 35, 38, 39, 41, 42].Footnote 4 The 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 [14].

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 [12].Footnote 5

The SSPMA was developed by [26] 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.Footnote 6 A 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.

Each bidder makes a set of bids, each of which is a vector \({\mathbf {b}}\), incorporating an integer weight \(w({\mathbf {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({\mathbf {b}}) > 0\) (a “positive” bid) is simply interpreted as a bid for up to, but not more than, \(w({\mathbf {b}})\) units, in total, of the goods \(i = 1, \ldots , n\), in which the expressed value of receiving \(x_i\) units of good i is \(x_i \cdot 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 \({\mathbf {b}} = (2,1)\) with \(w({\mathbf {b}}) = 2\). Figure 1 shows how the bid \({\mathbf {b}}\) divides price space into three regions: for example, if the price vector \({\mathbf {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 \({\mathbf {p}} = (2,4)\), the bidder demands bundles (0, 0), (1, 0) or (2, 0).

Fig. 1
figure 1

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

Fig. 2
figure 2

Example of using positive and negative bids to represent preferences in a Product-Mix auction. The set of bids implements the preferences of Example 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

Bids in which \(w({\mathbf {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.Footnote 7 The following example from [26, 27] 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:Footnote 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 Fig. 2). These preferences can be implemented by making all of the following four bids:

  1. I

    $100 million of weak at 7%.

  2. II

    $80 million of strong at 5%.

  3. III

    $40 million of {weak at maximum permitted bid OR strong at maximum permitted bid less 2%}.

  4. 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.Footnote 9 However, with positive and negative bids, valid bids in the bidding language can precisely represent any “strong substitutes” preferences.Footnote 10 Moreover, 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 [13] 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.Footnote 11 That 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 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.Footnote 12 With negative bids, however, the allocation problem cannot be modeled with only a single linear program, and the computation of prices is then more challenging.

1.2 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 [40]’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.Footnote 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({\mathbf {p}})\). More precisely, we show that the Toland-Singer dual [33, 47] of \(L({\mathbf {p}})\) is the minimum difference between the positive and negative linear programs.

[6] have recently shown that a standard steepest-descent algorithm based on the Lyapunov function (following [38]) can solve the SSPMA pricing problem, but their method takes only limited advantage of the special features of the geometric representation.Footnote 14 By 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.Footnote 15 Steepest 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.

1.3 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

2.1 Formal description of the SSPMA language

In the SSPMA, each of m bidders \(j \in \{1,\ldots ,m\}\) submit an arbitrary number of bids for distinct goods \(i\in \{1,\ldots ,n\}\). A bid is a vector \({\mathbf {b}}= (b_1,\dots ,b_n;b_{n+1}) \in {\mathbb {Z}}_{\ge 0}^{n}\times ({\mathbb {Z}}\setminus \{0\})\). Here, for \(i=1,\ldots ,n\), coordinate \(b_i\) gives the value for good i. The final coordinate \(b_{n+1}\in {\mathbb {Z}}\setminus \{0\}\) is the weight of the bid; we write \(w({\mathbf {b}})\) for the projection to this final coordinate. We refer to positive and negative bids according to the sign of \(w({\mathbf {b}})\). Prices \({\mathbf {p}}=(p_1,\ldots ,p_n)\in {\mathbb {R}}^n\) are linear. Our bundles of indivisible goods will be written \({\mathbf {x}},{\mathbf {y}}\in {\mathbb {Z}}^n_{\ge 0}\). We write \({\mathbf {e}}^i\) for the coordinate vectors \(i=1,\ldots ,n\) in \({\mathbb {Z}}^n\).

A positive bid \({\mathbf {b}}\) expresses the willingness of the bidder to pay at most \(b_i\) for units of good \(i=1,\ldots ,n\), and for up to \(w({\mathbf {b}})\) units in total. It defines a valuation \(v_{\mathbf {b}}\) on the domain \(\varDelta _{w({\mathbf {b}})}\) of bundles of at most \(w({\mathbf {b}})\) units, that is, \(\varDelta _{w({\mathbf {b}})}=\{{\mathbf {y}}\in {\mathbb {Z}}^n_{\ge 0}:\sum _{i=1}^n y_i\le w({\mathbf {b}})\}\), with \(v_{\mathbf {b}}({\mathbf {y}})=\sum _{i=1}^n b_i y_i\). The utility associated with this bid is quasi-linear, \(v_{\mathbf {b}}({\mathbf {y}})-\langle {\mathbf {p}},{\mathbf {y}}\rangle \), so the indirect utility associated with such a bid is just

$$\begin{aligned} u_{{\mathbf {b}}}({\mathbf {p}}) = w({\mathbf {b}})\max _{i \in \{1,\dots ,n\}}( b_i-p_i,0), \end{aligned}$$
(1)

where we include 0 because the bid may instead be rejected. Any combination of \(w({\mathbf {b}})\) units of utility-maximizing goods is acceptable, as are fewer units when \(u_{{\mathbf {b}}}({\mathbf {p}})=0\), so the demand set is

$$\begin{aligned} D_{{\mathbf {b}}}({\mathbf {p}}):=\left\{ {\mathbf {y}}\in \varDelta _{w({\mathbf {b}})}~:~ \sum _{i=1}^n y_i(b_i-p_i)=u_{{\mathbf {b}}}({\mathbf {p}})\right\} . \end{aligned}$$
(2)

This set comprises all integer bundles in the convex polytope in which the bundles \(w({\mathbf {b}}){\mathbf {e}}^i\), where i maximizes \(b_i-p_i\ge 0\), are vertices, and \({\mathbf {0}}\) is also a vertex if \(\max _{i \in \{1,\dots ,n\}}( b_i-p_i,0)= 0\). If \(D_{{\mathbf {b}}}({\mathbf {p}})\) contains more than one bundle, we say all goods \(i=1,\ldots ,n\) maximizing \(b_i-p_i\) are marginal for bid \({\mathbf {b}}\) at \({\mathbf {p}}\). If \(\{{\mathbf {0}}\}\subsetneq D_{{\mathbf {b}}}({\mathbf {p}})\) then we say the bid is marginal to be accepted. If \(D_{{\mathbf {b}}}({\mathbf {p}})=\{{\mathbf {0}}\}\) we say the bid is rejected.

Now consider a multiset \({\mathcal {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_{{\mathcal {B}}}({\mathbf {p}})\) is just the sum of indirect utilities: \(u_{{\mathcal {B}}}({\mathbf {p}})=\sum _{{\mathbf {b}}\in {\mathcal {B}}}u_{\mathbf {b}}({\mathbf {p}})\), and the aggregate demand set \(D_{{\mathcal {B}}}({\mathbf {p}})\) is the Minkowski sum of demand sets \(D_{{\mathcal {B}}}({\mathbf {p}})=\sum _{{\mathbf {b}}\in {\mathcal {B}}}D_{{\mathbf {b}}}({\mathbf {p}})\).

However, we also allow negative bids: those for which \(w({\mathbf {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 \({\mathcal {B}}\) of bids, write respectively \({\mathcal {B}}_+\) and \({\mathcal {B}}_-\) for the positive and negative bids in \({\mathcal {B}}\). Write \(|{\mathbf {b}}|\) for the bid \((b_1,\ldots ,b_n;|w({\mathbf {b}})|)\), and write \(|{\mathcal {B}}_-|\) for the set of bids \(|{\mathbf {b}}|\) where \({\mathbf {b}}\in {\mathcal {B}}_-\). Now the aggregate indirect utility is an appropriately signed sum of indirect utilities:

$$\begin{aligned} u_{{\mathcal {B}}}({\mathbf {p}}) := \sum _{{\mathbf {b}}\in {\mathcal {B}}_+} u_{\mathbf {b}}({\mathbf {p}})-\sum _{{\mathbf {b}}\in |{\mathcal {B}}_-|} u_{\mathbf {b}}({\mathbf {p}}). \end{aligned}$$
(3)

We say that the set \({\mathcal {B}}\) is valid when the indirect utility \(u_{{\mathcal {B}}}\) is concave. (See Theorem 1 of [6]; 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_{{\mathbf {b}}}({\mathbf {p}})\) associated with an individual negative bid \({\mathbf {b}}\) as \(D_{\mathbf {b}}({\mathbf {p}})=-D_{|{\mathbf {b}}|}({\mathbf {p}})=\{-{\mathbf {x}}~|~{\mathbf {x}}\in D_{|{\mathbf {b}}|}({\mathbf {p}})\}\). Let \({\mathcal {Q}}\) comprise all price vectors \({\mathbf {q}}\) in a small neighborhood of \({\mathbf {p}}\), and such that \(D_{{\mathbf {b}}}({\mathbf {q}})=\{{\mathbf {x}}_{{\mathbf {b}}}({\mathbf {q}})\}\) are singletons for all \({\mathbf {b}}\in {\mathcal {B}}\). Then the aggregate demand set is equal to the discrete convex hull

$$\begin{aligned} D_{{\mathcal {B}}}({\mathbf {p}}) = {{\,\mathrm{conv}\,}}\left\{ \sum _{{\mathbf {b}}\in {\mathcal {B}}} D_{{\mathbf {b}}}({\mathbf {q}}): {\mathbf {q}}\in {\mathcal {Q}}\right\} \cap {\mathbb {Z}}^n. \end{aligned}$$

In particular, if \(D_{{\mathbf {b}}}({\mathbf {p}})\) is a singleton for all \({\mathbf {b}}\in {\mathcal {B}}\), then \(D_{{\mathcal {B}}}({\mathbf {p}})\) is just \(\sum _{{\mathbf {b}}\in {\mathcal {B}}} D_{{\mathbf {b}}}({\mathbf {p}})=\sum _{{\mathbf {b}}\in {\mathcal {B}}_+} D_{{\mathbf {b}}}({\mathbf {p}})-\sum _{{\mathbf {b}}\in |{\mathcal {B}}_-|} D_{{\mathbf {b}}}({\mathbf {p}})\): 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.Footnote 16 However, if the bids \({\mathcal {B}}^j\) of each bidder \(j=1,\ldots ,m\) are valid, then the full aggregate demand set \(D_{{\mathcal {B}}}({\mathbf {p}})\) defined by \({\mathcal {B}}=\bigcup _{j=1}^m {\mathcal {B}}^j\) is indeed the Minkowski sum: \(D_{{\mathcal {B}}}({\mathbf {p}})=\sum _{j=1}^m D_{{\mathcal {B}}^j}({\mathbf {p}})\).

When \({\mathcal {B}}\) contains only positive bids, we can aggregate the simple valuations implied by individual bids, to obtain the aggregate valuation \(v_{{\mathcal {B}}}:\varDelta _W\rightarrow {\mathbb {Z}}\), where \(W=\sum _{{\mathbf {b}}\in {\mathcal {B}}}w({\mathbf {b}})\):

$$\begin{aligned} v_{{\mathcal {B}}}({\mathbf {y}}) = \max \left\{ \sum _{{\mathbf {b}}\in {\mathcal {B}}}\sum _{i=1}^n x_{i{\mathbf {b}}}b_i:\, \sum _{{\mathbf {b}}\in {\mathcal {B}}} x_{i{\mathbf {b}}} \le y_i \, \forall i\text { and } \sum _{i=1}^n x_{i{\mathbf {b}}} \le w({\mathbf {b}}) \, \forall {\mathbf {b}}\in {\mathcal {B}}\right\} . \end{aligned}$$
(4)

As usual, the relations \(u_{{\mathcal {B}}}({\mathbf {p}}) = \max _{{\mathbf {x}}\in {\mathbb {Z}}_{\ge 0}^n} v_{{\mathcal {B}}}({\mathbf {x}})-\langle {\mathbf {p}},{\mathbf {x}}\rangle \) and \(v_{{\mathcal {B}}}({\mathbf {x}}) = \min _{{\mathbf {p}}\in {\mathbb {R}}^n} u_{{\mathcal {B}}}({\mathbf {p}}) + \langle {\mathbf {p}},{\mathbf {x}}\rangle \) hold. The latter equation also gives us an indirect way to identify the aggregate valuation if \({\mathcal {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, [8] and [35]) A valuation v is ordinary substitutes, if for any price vectors \({\mathbf {p}}' \ge {\mathbf {p}}\) with singleton demand sets \(D_v({\mathbf {p}}') = \{{\mathbf {x}}'\}\) and \(D_v({\mathbf {p}}) = \{{\mathbf {x}}\}\), we have \({\mathbf {x}}_k' \ge {\mathbf {x}}_k\) for all k with \(p_k' = p_k\). A valuation v is strong substitutes, if, 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 [7, 9]Footnote 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 pre-determined; 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.Footnote 18 So we index the auctioneer as agent 0 and include its bids in the set \({\mathcal {B}}\) of all bids from all bidders. This paper therefore addresses the following problem:

Definition 2

(Equilibrium pricing problem) Given a valid set \({\mathcal {B}}\) of all bids from all bidders (including the auctioneer) and a target supply \({\mathbf {t}}\), find a price vector \({\mathbf {p}}\in {\mathbb {R}}^n\), such that \({\mathbf {t}}\) is demanded at \({\mathbf {p}}\), that is, \({\mathbf {t}}\in D_{{\mathcal {B}}}({\mathbf {p}})\). Such a price vector is called an equilibrium price.Footnote 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 [17, 35]. Indeed, this also implies that equilibrium price in \({\mathbb {R}}^n_{\ge 0}\) exists. The set of equilibrium prices forms a lattice with respect to the Euclidean ordering [21, 36], i.e., for any valuations \(v_1, \cdots , v_m\), if \({\mathbf {p}}\) and \({\mathbf {p}}'\) are equilibrium prices for such valuations, then \({\mathbf {p}}\wedge {\mathbf {p}}'\) and \({\mathbf {p}}\vee {\mathbf {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 [8]. First, the collection \({\mathcal {B}}\) of bids induces a set of prices at which the aggregate demand is not unique: the “locus of indifference prices” (LIP), notated \({\mathcal {L}}_{{\mathcal {B}}} :=\left\{ {\mathbf {p}}:\, |D_{{\mathcal {B}}}({\mathbf {p}})| > 1 \right\} \). For a price \({\mathbf {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\in \{1,\ldots ,n\}\) and \(j\ne i\). Therefore, \({\mathcal {L}}_{{\mathcal {B}}}\) consists of a union of pieces of hyperplanes with normals in \(\{{\mathbf {e}}^i,{\mathbf {e}}^i-{\mathbf {e}}^j:\, 1 \le i < j \le 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 \({\mathcal {L}}_{{\mathcal {B}}}\) splits price space into multiple unique demand regions (UDRs) at which a unique bundle is demanded. Let \({\mathbf {p}}\) be a price vector in an UDR for which the demand is known (for example, for \({\mathbf {p}}\) large, the demand is 0). If the price \({\mathbf {p}}\) changes along a curve, and crosses a facet F of \({\mathcal {L}}_{{\mathcal {B}}}\), then the demand changes by \(w(F) {\mathbf {n}}\), where \({\mathbf {n}}\) is the normal of F pointing into the opposite direction of the path. For an illustration, see Fig. 3. Thus, the LIP fully encodes the aggregate demand at every UDR-price, and so – by taking convex hulls – at every price.

Fig. 3
figure 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 \cdot (1,0) + 1 \cdot (-1,1) + 1\cdot (1,0) = (1,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.Footnote 20 From 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.

2.2 Interpretation via Minkowski differences

Fig. 4
figure 4

The Minkowski sum \(A+(-B)\) and Minkowski difference \(A-B\) of rectangle A and a triangle B. Left: the rectangle A (in gray); four instances of \(a+(-B)\), in which \(a\in 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\subseteq A\) and so \(a\in A-B\), but \(y+B\not \subseteq B\) and so \(y\notin A-B\). The full set \(A-B\) is given by the black line and its interior

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 Sect. 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 \({\mathbf {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 \({\mathcal {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 \({\mathbf {x}}\in {\mathbb {R}}^n\), such that \({\mathbf {x}}+B \subseteq A\). The geometric effect of this operation is illustrated in Fig. 4. Note in particular that in general \(A+(-B) \ne A - B\).

Proposition 1

Let \({\mathcal {B}}\) be a valid collection of bids in an SSPMA. Then for every price vector \({\mathbf {p}}\) the demand set \(D_{{\mathcal {B}}}({\mathbf {p}})\) is equal to \(D_{{\mathcal {B}}_+}({\mathbf {p}}) - D_{|{\mathcal {B}}_-|}({\mathbf {p}})\).

We prove this result in Appendix A.1.

2.3 Expressiveness and compactness of the SSPMA

To illustrate the expressive power of negative bids, we consider [40]’s notorious example of a valuation, \(v_r\), that shows that prior bid languages such as the endowed assignment valuations by [22] are strictly less expressive than the set of gross substitutes (and so also strong substitutes) valuations.Footnote 21 (We discuss the construction of \(v_r\) in Appendix A.2.) However,

Proposition 2

The valuation \(v_r\) in [40] can be represented by 8 positive and 6 negative SSPMA bids.

This proposition illustrates [9]’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 := \sum _{{\mathbf {b}}\in {\mathcal {B}}} w({\mathbf {b}})\). Note that W equals the maximum number of units that a bidder who makes bids \({{\mathbf {b}}\in {\mathcal {B}}} \) is interested in. Then SSPMA bids can assign a “non-trivial” value to \(\varOmega (W^n)\) bundles:

Proposition 3

Consider an SSPMA with n goods, and suppose a bidder makes bids \({\mathcal {B}}\).

Let \(D := \bigcup \{D_{{\mathcal {B}}}({\mathbf {p}}):\, {\mathbf {p}}\in {\mathbb {R}}^n\}\) and let \(W := \sum _{{\mathbf {b}}\in {\mathcal {B}}} w({\mathbf {b}})\). Then \(D=\varDelta _W\) and so \(|D| = {{n+W}\atopwithdelims (){n}} \ge (1+W/n)^n\).

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\ne 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 make—and 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,Footnote 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.Footnote 23 So bidders are unlikely to need many negative bids in most practical auction settings.Footnote 24 The 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.Footnote 25 But we expect the SSPMA bidding language will be much more “compact”Footnote 26 in most practical cases than—say—listing 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,”Footnote 27, and by checking feasibility.Footnote 28

At 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 [20]’s algorithm to generate bids from an arbitrary value function.Footnote 29

3 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 \({\mathbf {t}}\). We know that \({\mathbf {t}}\in \varDelta _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 \({\mathcal {B}}\) of all bids of all bidders, the aggregate valuation of any bundle \({\mathbf {t}}\in \varDelta _W\) is given - in LP notation - by

$$\begin{aligned} v_{{\mathcal {B}}}({\mathbf {t}}) = \max \sum _{{\mathbf {b}}\in {\mathcal {B}}} \sum _{i \in [n]} b_i x_{{\mathbf {b}}i}&\\ \text {s.t.} \ \sum _{i \in [n]} x_{{\mathbf {b}}i}&\le w({\mathbf {b}})&\forall {\mathbf {b}}&\in {\mathcal {B}}&(\pi _{{\mathbf {b}}})\\ \sum _{{\mathbf {b}}\in {\mathcal {B}}} x_{{\mathbf {b}}i}&= t_i&\forall i&\in [n]&(p_i)\\ x_{{\mathbf {b}}i}&\ge 0&\forall {\mathbf {b}}&\in {\mathcal {B}},\, i \in [n] . \end{aligned}$$
(LP)

Here \(\pi _{{\mathbf {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 strong substitutes 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 [13]. 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 \({\mathbf {t}}\) are the optimal dual variables \({\mathbf {p}}=(p_1,\dots ,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 \({\mathcal {B}}\) also contains negative bids, the problem of efficiently computing equilibrium prices is less obvious. One route, taken by [6], is to minimize the Lyapunov function \(L:{\mathbb {R}}^n\rightarrow {\mathbb {R}}\) [4], defined for target \({\mathbf {t}}\) as

$$\begin{aligned} L({\mathbf {p}}) = u_{{\mathcal {B}}}({\mathbf {p}}) + \langle {\mathbf {p}},{\mathbf {t}}\rangle \end{aligned}$$

where aggregate indirect utility \(u_{{\mathcal {B}}}({\mathbf {p}})\) is as defined in Eq. (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 [6, 36, 42]. 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 \({\mathbf {t}}\) units in total, we must assign \({\mathbf {t}}+{\mathbf {s}}\) units to positive bids and \({\mathbf {s}}\) to negative bids, for some “supplementary” bundle \({\mathbf {s}}\). Recall also that we write \({\mathcal {B}}_+\) for the positive bids in \({\mathcal {B}}\), and \(|{\mathcal {B}}_-|\) for the negative bids \({\mathbf {b}}\in {\mathcal {B}}\) endowed with weights \(|w({\mathbf {b}})|\). We introduce two additional SSPMAs: that with bids \({\mathcal {B}}_+\) and target \({\mathbf {t}}+{\mathbf {s}}\), which we call the “positive auction”; and that with (positive) bids \(|{\mathcal {B}}_-|\) and target \({\mathbf {s}}\), which we call the “negative auction”. Write \(W_+\) and \(W_-\) for the total weights of bids in these respective auctions, so that \(\varDelta _{W_+}\) and \(\varDelta _{W_-}\) are the sets of bundles that may be sold by each of them. Note that for each \({\mathbf {t}}\in \varDelta _W\) and \({\mathbf {s}}\in \varDelta _{W_-}\), \({\mathbf {t}}+{\mathbf {s}}\) lies in \(\varDelta _{W_+}\) (see Appendix Lemma 4).

If we pick \({\mathbf {s}}\) correctly, then this is equivalent to allocating \({\mathbf {t}}\) units in the auction with bids \({\mathcal {B}}\). Moreover, since both \({\mathcal {B}}_+\) and \(|{\mathcal {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 \({\mathbf {s}}\):

Theorem 1

If \({\mathcal {B}}\) represents all bids from all bidders, then the aggregate valuation at the target supply \({\mathbf {t}}\in \varDelta _W\) can be written as

$$\begin{aligned} v_{{\mathcal {B}}}({\mathbf {t}}) = \min _{{\mathbf {s}}\in \varDelta _{W_-} }\left( v_{{\mathcal {B}}_+}({\mathbf {t}}+{\mathbf {s}})-v_{|{\mathcal {B}}_-|}({\mathbf {s}}) \right) . \end{aligned}$$

Moreover, given a minimizer \({\bar{{\mathbf {s}}}}\), each equilibrium price \({\bar{{\mathbf {p}}}}\) of the auction with bids \({\mathcal {B}}_+\) and target supply \({\mathbf {t}}+{\bar{{\mathbf {s}}}}\) is an equilibrium price for the auction with bids \(|{\mathcal {B}}_-|\) and target supply \({\bar{{\mathbf {s}}}}\), and also for the complete auction with bids \({\mathcal {B}}\) and target supply \({\mathbf {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 \({\mathbf {p}}\) in its interior. (Although the SSPMA would choose the minimum of the equilibrium prices, choosing an interior price simplifies the intuition.) Let \({\bar{{\mathbf {s}}}}\) be the vector of negative bids accepted in the equilibrium. Initially set the target \({\mathbf {s}}\) of the negative auction to be \({\bar{{\mathbf {s}}}}\), which means that \({\mathbf {p}}\) is an equilibrium price for both the positive and negative auctions.

Consider the effect of changing \({\mathbf {p}}\) on the weighted sum of bids accepted in these two auctions. Recall that the full set \({\mathcal {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 \({\mathcal {B}}\) at the end of Sect. 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 \({\mathbf {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 \({\bar{{\mathbf {s}}}}\) to \({\mathbf {s}}\ge {\bar{{\mathbf {s}}}}\), in both the positive and negative auctions. The additional bids that will be accepted in the positive auction with target \({\mathbf {t}}+{\mathbf {s}}\) will, because of our observation above, have weakly greater value than the additional bids accepted in the negative auction. That is, \(v_{{\mathcal {B}}_+}({\mathbf {t}}+{\mathbf {s}})-v_{{\mathcal {B}}_+}({\mathbf {t}}+{\bar{{\mathbf {s}}}})\ge v_{|{\mathcal {B}}_-|}({\mathbf {s}})-v_{|{\mathcal {B}}_-|}({\bar{{\mathbf {s}}}})\). Similarly, if we decrease one coordinate to \({\mathbf {s}}\le {\bar{{\mathbf {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_{{\mathcal {B}}_+}({\mathbf {t}}+{\mathbf {s}})-v_{{\mathcal {B}}_+}({\mathbf {t}}+{\bar{{\mathbf {s}}}})\ge v_{|{\mathcal {B}}_-|}({\mathbf {s}})-v_{|{\mathcal {B}}_-|}({\bar{{\mathbf {s}}}})\). General changes in \({\mathbf {s}}\) may be understood as a sequence of these two operations.

It follows that \({\bar{{\mathbf {s}}}}\) can be identified by minimizing \(v_{{\mathcal {B}}_+}({\mathbf {t}}+{\mathbf {s}})-v_{|{\mathcal {B}}_-|}({\mathbf {s}})\).

The formal proof of Theorem 1 rests on applying a version of Toland-Singer duality [47] to the valuations in the positive and negative auctions, and relating this to the Lyapunov function \(L({\mathbf {p}})\). [33] 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 \(f:{{\,\mathrm{dom}\,}}f \rightarrow {\mathbb {R}}\), where \({{\,\mathrm{dom}\,}}f\subseteq {\mathbb {R}}^n\), the convex conjugate \(f^*:{{\,\mathrm{dom}\,}}f^*\rightarrow {\mathbb {R}}\) is defined by \(f^*({\mathbf {p}})=\sup _{{\mathbf {x}}\in {{\,\mathrm{dom}\,}}f}( \langle {\mathbf {p}}, {\mathbf {x}}\rangle - f({\mathbf {x}}) )\), where \({{\,\mathrm{dom}\,}}f^*\subseteq {\mathbb {R}}^n\) comprises those \({\mathbf {p}}\) at which \(f^*({\mathbf {p}})\) is finite-valued. The subdifferential of f is the set-valued function

$$\begin{aligned} \partial f({\mathbf {x}})=\{{\mathbf {p}}\in {\mathbb {R}}^n: \langle {\mathbf {p}}, {\mathbf {y}}\rangle - f({\mathbf {y}}) \le \langle {\mathbf {p}},{\mathbf {x}}\rangle - f({\mathbf {x}}) \quad \forall {\mathbf {y}}\in {\mathbb {R}}^n\}. \end{aligned}$$

The domain \({{\,\mathrm{dom}\,}}\partial f\) of the subdifferential consists of all points \({\mathbf {x}}\in {{\,\mathrm{dom}\,}}f\) with \(\partial f({\mathbf {x}}) \ne \emptyset \). It turns out that in our application the convex conjugates and subdifferentials have an intuitive economic meaning.

Lemma 1

Let \({\mathcal {B}}\) be a collection of positive bids. Then \(-v_{{\mathcal {B}}}\) can be naturally extended to a convex function \(f: {{\,\mathrm{dom}\,}}f \rightarrow {\mathbb {R}}\) with the following properties:

  1. 1.

    \({{\,\mathrm{dom}\,}}\partial f = {{\,\mathrm{dom}\,}}f = {{\,\mathrm{conv}\,}}\varDelta _W\) and \({{\,\mathrm{dom}\,}}\partial f^* = {{\,\mathrm{dom}\,}}f^* = {\mathbb {R}}^n\)

  2. 2.

    \(f^*({\mathbf {q}}) = u_{{\mathcal {B}}}(-{\mathbf {q}})\) and \(\partial f^*({\mathbf {q}}) = {{\,\mathrm{conv}\,}}D_{{\mathcal {B}}}(-{\mathbf {q}})\)

  3. 3.

    \(\partial f({\mathbf {x}}) = -\{ {\mathbf {p}}\in {\mathbb {R}}^n \,:\, {\mathbf {x}}\in {{\,\mathrm{conv}\,}}D_{{\mathcal {B}}}({\mathbf {p}})\}\).

We will use the following version of Toland-Singer duality, which allows for restricted domains:

Theorem 2

(Toland-Singer duality) Let \(f:{{\,\mathrm{dom}\,}}f\rightarrow {\mathbb {R}}\) and \(g:{{\,\mathrm{dom}\,}}g\rightarrow {\mathbb {R}}\) be proper convex lower semi-continuous functions with closed and convex domains \({{\,\mathrm{dom}\,}}f \subseteq {{\,\mathrm{dom}\,}}g\subseteq {\mathbb {R}}^n\) and such that \({{\,\mathrm{dom}\,}}g^* \subseteq {{\,\mathrm{dom}\,}}f^*\subseteq {\mathbb {R}}^n\). If one of the differences \(f({\mathbf {x}})-g({\mathbf {x}})\) and \(g^*({\mathbf {y}})-f^*({\mathbf {y}})\) has a minimum in \({{\,\mathrm{dom}\,}}f\), respectively \({{\,\mathrm{dom}\,}}g^*\), the other difference also has one, and

$$\begin{aligned} \min _{{\mathbf {x}}\in {{\,\mathrm{dom}\,}}f} f({\mathbf {x}})-g({\mathbf {x}}) = \min _{{\mathbf {y}}\in {{\,\mathrm{dom}\,}}g^*} g^*({\mathbf {y}})-f^*({\mathbf {y}}). \end{aligned}$$

Moreover, if \({\bar{{\mathbf {x}}}}\) minimizes \(f({\mathbf {x}})-g({\mathbf {x}})\), then any \({\bar{{\mathbf {y}}}} \in \partial g({\bar{{\mathbf {x}}}})\) minimizes \(g^*({\mathbf {y}})-f^*({\mathbf {y}})\). Conversely, for any minimizer \({\bar{{\mathbf {y}}}}\) of \(g^*({\mathbf {y}})-f^*({\mathbf {y}})\), any \({\bar{{\mathbf {x}}}} \in \partial f^*({\bar{{\mathbf {y}}}})\) minimizes \(f({\mathbf {x}})-g({\mathbf {x}})\).

For a proof see [46, Theorem 1]. We will apply Theorem 2 to the convex extensions of \(-v_{|{\mathcal {B}}_-|}\) and \(-v_{{\mathcal {B}}_+}\) (to the convex hulls of their domains).

4 The pricing algorithm

Using Theorem 1, we can approach the pricing problem by minimizing the difference \(v_{{\mathcal {B}}_+}({\mathbf {t}}+{\mathbf {s}})-v_{|{\mathcal {B}}_-|}({\mathbf {s}})\). While the valuations \(v_{{\mathcal {B}}_+}\) and \(v_{|{\mathcal {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 [29], minimizing the difference between two \(M^{\natural }\)-convex functions is an NP-hard optimization problem. However, there is a class of algorithms on the difference of convex functions (DC algorithms; see [2, 46]), that find at least local minima of such problems and are often very fast in practice.

4.1 A DC auction algorithm

By Theorem 1, we seek \({\bar{{\mathbf {s}}}}\) minimizing \(v_{{\mathcal {B}}_+}({\mathbf {t}}+{\mathbf {s}})-v_{|{\mathcal {B}}_-|}({\mathbf {s}})\). We will approach this by minimizing \(f({\mathbf {s}})-g({\mathbf {s}})\), where \(f({\mathbf {s}})\) and \(g({\mathbf {s}})\) are the convex extensions of \(-v_{|{\mathcal {B}}_-|}({\mathbf {s}})\), respectively \(-v_{{\mathcal {B}}_+}({\mathbf {t}}+{\mathbf {s}})\), to the convex hulls of their domains. A necessary condition for such \({\bar{{\mathbf {s}}}}\) is that it gives a stationary point, that is, \({\bar{{\mathbf {s}}}} \in {{\,\mathrm{dom}\,}}\partial f\) with \(\partial f(\bar{s}) \cap \partial g({\bar{s}}) \ne \emptyset \). To interpret this in our context, if \({\mathbf {q}}\in \partial f({{\bar{{\mathbf {s}}}}}) \cap \partial g({{\bar{{\mathbf {s}}}}})\) then \({\mathbf {p}}=-{\mathbf {q}}\) is a price at which \({\mathbf {t}}+{{\bar{{\mathbf {s}}}}}\) is demanded in the positive auction, and \({{\bar{{\mathbf {s}}}}}\) is demanded in the negative auction (see Lemma 1).

The DC Algorithm 1 finds a stationary point for two convex functions \(f: {{\,\mathrm{dom}\,}}f \rightarrow {\mathbb {R}}\) and \(g: {{\,\mathrm{dom}\,}}g \rightarrow {\mathbb {R}}\) with \({{\,\mathrm{dom}\,}}\partial f \subseteq {{\,\mathrm{dom}\,}}\partial g\) and \({{\,\mathrm{dom}\,}}\partial g^* \subseteq {{\,\mathrm{dom}\,}}\partial f^*\) [46]. Our functions f and g, defined above, satisfy these conditions: By Appendix Lemma 4, \({{\,\mathrm{dom}\,}}f = {{\,\mathrm{conv}\,}}\varDelta _{W_-} \subseteq {{\,\mathrm{conv}\,}}\{ {\mathbf {s}}\in {\mathbb {Z}}^n \,:\, {\mathbf {t}}+{\mathbf {s}}\in \varDelta _{W_+} \} = {{\,\mathrm{dom}\,}}g\), \({{\,\mathrm{dom}\,}}g^* = {\mathbb {R}}^n = {{\,\mathrm{dom}\,}}f^*\), and by Lemma 1 the domains of the respective functions coincide with the domains of their subdifferentials.

figure a

However, \({{\bar{{\mathbf {s}}}}}\) being a stationary point for f and g is not a sufficient condition for \({{\bar{{\mathbf {s}}}}}\) to globally minimize \(f-g\). So we check whether a corresponding \({\mathbf {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 18 are exactly Algorithm 1 with expressed in their economic interpretation; see Lemma 1 for more details).

figure b

The value of \(L({\mathbf {p}}^k)\) decreases by at least one in every iteration 28 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 \(\mathbf{{s}}^k\) and prices \({\mathbf {p}}^{k+1}\). Determining bundles \(\mathbf{{s}}^k\) is particularly simple when valuations are expressed in the SSPMA - we just allocate each bid with utility maximizing goods. For finding prices \({\mathbf {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 [24]. Also recall that [29] shows that minimizing the difference of two general \(M^\natural \)-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 \({\mathbf {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_{|{\mathcal {B}}_-|}({\mathbf {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 \({\mathbf {s}}^{k+1} = {\mathbf {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 \({\mathbf {s}}^0={\mathbf {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.Footnote 30 If 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 \({\mathcal {O}}(n)\). Note that after each restart, we iterate at least once through the for loop, so the number of restarts is also in \({\mathcal {O}}(n)\). More generally, Proposition 3 shows that \({{n+|{\mathcal {B}}_-|}\atopwithdelims (){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+|{\mathcal {B}}_-|}\atopwithdelims (){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.

Proposition 5

Algorithm 2 requires at most \({\mathcal {O}}\left( {{n+|{\mathcal {B}}_-|}\atopwithdelims (){n}}\right) \) iterations for solving the equilibrium pricing problem.

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| = {\mathcal {O}}(n+|{\mathcal {B}}|)\) vertices and \(|E|={\mathcal {O}}(n|{\mathcal {B}}|)\) edges (see Appendix A.6). The enhanced capacity scaling algorithm [1] finds an optimal integral solution in

$$\begin{aligned} {\mathcal {O}}(|E|\log |V| (|E|+|V|\log |V|)) \end{aligned}$$

iterations, which implies that the pricing problem can be solved in time

$$\begin{aligned} {\mathcal {O}}(n^2|{\mathcal {B}}|^2\log ^2(n+|{\mathcal {B}}|)) = \tilde{ {\mathcal {O}}}(n^2|{\mathcal {B}}|^2) \end{aligned}$$

this way. On the other hand, [6] provide the worst-case bound \({\mathcal {O}}(n^2|{\mathcal {B}}|^2\log M + n|{\mathcal {B}}|T(n))\) for the steepest descent algorithm, where \(M = \max _{{\mathbf {b}} \in {\mathcal {B}}} \Vert {\mathbf {b}} \Vert _{\infty }\) 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|{\mathcal {B}}|^2\log M\) of the steepest descent formulation up to a logarithmic factor. However, we may expect the second summand \(n|{\mathcal {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 \({\mathcal {O}}(n^2 \log (nU) \cdot EO + n^3\log ^{{\mathcal {O}}(1)} (nU))\), where U is an upper bound for the maximal value of the submodular function [16, 30]. Thus, the worst-case bound for \(n|{\mathcal {B}}|T(n)\) cannot be better than \({\mathcal {O}}(n^4|{\mathcal {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.Footnote 31

[42] 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

$$\begin{aligned}&mn\cdot T_V + {\mathcal {O}}(mn\log m + n^3\log (mnM) + n^3 \log ^{{\mathcal {O}}(1)}(mnM)) \\&\quad = \tilde{{\mathcal {O}}}(mn\cdot T_V + n^3) \end{aligned}$$

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 [42]’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.Footnote 32 However, our algorithm performs much better than [42]’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 [42]’s worst case is cubic in the number of units because they must treat each additional unit as an additional good.Footnote 33 Moreover, 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 [42]’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 [42].

4.2 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 [6], we use the Fujishige-Wolfe algorithm [15], 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 [5] to randomly generate valid groups of bids, each group consisting of 3 positive and 1 negative bids. Algorithm 3 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 Sect. 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.Footnote 34

5 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.