# Stackelberg Network Pricing Games

###### Abstract.

We study a multi-player one-round game termed Stackelberg Network Pricing Game, in which a leader can set prices for a subset of priceable edges in a graph. The other edges have a fixed cost. Based on the leader’s decision one or more followers optimize a polynomial-time solvable combinatorial minimization problem and choose a minimum cost solution satisfying their requirements based on the fixed costs and the leader’s prices. The leader receives as revenue the total amount of prices paid by the followers for priceable edges in their solutions, and the problem is to find revenue maximizing prices. Our model extends several known pricing problems, including single-minded and unit-demand pricing, as well as Stackelberg pricing for certain follower problems like shortest path or minimum spanning tree. Our first main result is a tight analysis of a single-price algorithm for the single follower game, which provides a -approximation for any . This can be extended to provide a -approximation for the general problem and followers. The latter result is essentially best possible, as the problem is shown to be hard to approximate within . If followers have demands, the single-price algorithm provides a -approximation, and the problem is hard to approximate within for some . Our second main result is a polynomial time algorithm for revenue maximization in the special case of Stackelberg bipartite vertex cover, which is based on non-trivial max-flow and LP-duality techniques. Our results can be extended to provide constant-factor approximations for any constant number of followers.

###### Key words and phrases:

Stackelberg Games, Algorithmic Pricing, Approximation Algorithms, Inapproximability.^{†}

^{†}copyright: ©:

Patrick Briest \@ifemptylab1

lab1

Martin Hoefer \@ifemptylab2

lab2

Piotr Krysta

section1[Introduction]Introduction Algorithmic pricing problems model the task of assigning revenue maximizing prices to a retailer’s set of products given some estimate of the potential customers’ preferences in purely computational [14], as well as strategic [3] settings. Previous work in this area has mostly focused on settings in which these preferences are rather restricted, in the sense that products are either pure complements [2, 7, 15, 16] and every customer is interested in exactly one subset of products or pure substitutes [1, 8, 10, 14, 15, 16], in which case each customer seeks to buy only a single product out of some set of alternatives. A customer’s real preferences, however, are often significantly more complicated than that and therefore pose some additional challenges.

The modelling of consumer preferences has received considerable attention in the context of algorithmic mechanism design [18] and combinatorial auctions [12]. The established models range from relatively simple bidding languages to bidders that are represented by oracles allowing certain types of queries, e.g., revealing the desired bundle of items given some fixed set of prices. The latter would be a somewhat problematic assumption in the theory of pricing algorithms, where we usually assume to have access to a rather large number of potential customers through some sort of sampling procedure and, thus, are interested in preferences that allow for a compact kind of representation.

In this paper we focus on customers that have non-trivial preferences, yet can be fully described by their types and budgets and do not require any kind of oracles. Assume that a company owns a subset of the links in a given network. The remaining edges are owned by other companies and have fixed publicly known prices and some customer needs to purchase a path between two terminals in the network. Since she is acting rational, she is going to buy the shortest path connecting her terminals. How should we set the prices on the priceable edges in order to maximize the company’s revenue? What if there is another customer, who needs to purchase, e.g., a minimum cost spanning tree?

This type of pricing problem, in which preferences are implicitly defined in terms of some optimization problem, is usually referred to as Stackelberg pricing [23]. In the standard 2-player form we are given a leader setting the prices on a subset of the network and a follower seeking to purchase a min-cost network satisfying her requirements. We proceed by formally defining the model before stating our results.

subsection2[Model and Notation]Model and Notation In this paper we consider the following class of multi-player one-round games. Let be a multi-graph. There are two types of players in the game, one leader and one or more followers. We consider two classes of edge and vertex games, in which either the edges or the vertices have costs. For most of the paper, we will consider edge games, but the definitions and results for vertex games follow analogously. In an edge game, the edge set is partitioned into two sets with . For each fixed-price edge there is a fixed cost . For each priceable edge the leader can specify a price . We denote the number of priceable edges by . Each follower has a set of feasible subnetworks. The weight of a subnetwork is given by the costs of fixed-price edges and the price of priceable edges,

The revenue of the leader from subnetwork is given by the prices of the priceable edges that are included in , i.e.,

Throughout the paper we assume that for any price function every follower can in polynomial time find a subnetwork of minimum weight. Our interest is to find the pricing function for the leader that generates maximum revenue, i.e.,

We denote the value of this maximum revenue by . To guarantee that the revenue is bounded and the optimization problem is non-trivial, we assume that there is at least one feasible subnetwork for each follower that is composed only of fixed-price edges. In order to avoid technicalities, we assume w.l.o.g. that among subnetworks of identical weight the follower always chooses the one with higher revenue for the leader. It is not difficult to see that in the 2-player case we also need followers with a large number of feasible subnetworks in order to make the problem interesting.

###### Proposition 0.1.

Given follower and a fixed subnetwork , we can compute prices with maximizing or decide that such prices do not exist in polynomial time. In the 2-player game, if , revenue maximization can be done in polynomial time.

The proof of Proposition 0.1 will appear in the full version. In general we will refer to the revenue optimization problem by Stack. Note that our model extends the previously considered pricing models and is essentially equivalent to pricing with general valuation functions, a problem that has independently been considered in [4]. Every general valuation function can be expressed in terms of Stackelberg network pricing on graphs, and our algorithmic results apply in this setting as well.

subsection2[Previous Work and New Results]Previous Work and New Results The single-follower shortest path Stackelberg pricing problem (StackSP) has first been considered by Labbé et al. [17], who derive a bilevel LP formulation of the problem and prove NP-hardness. Roch et al. [19] present a first polynomial time approximation algorithm with a provable performance guarantee, which yields logarithmic approximation ratios. Bouhtou et al. [5] extend the problem to multiple (weighted) followers and present algorithms for a restricted shortest path problem on parallel links. For an overview of most of the initial work on Stackelberg network pricing the reader is referred to [22]. A different line of research has been investigating the application of Stackelberg pricing to network congestion games in order to obtain low congestion Nash equilibria for sets of selfish followers [11, 20, 21].

More recently, Cardinal et al. [9] initiated the investigation of the corresponding minimum spanning tree (StackMST) game, again obtaining a logarithmic approximation guarantee and proving APX-hardness. Their single-price algorithm, which assigns the same price to all priceable edges, turns out to be even more widely applicable and yields similar approximation guarantees for any matroid based Stackelberg game.

The first result of our paper is a generalization of this result to general Stackelberg games. The previous limitation to matroids stems from the difficulty to determine the necessarily polynomial number of candidate prices that can be tested by the algorithm. We develop a novel characterization of the small set of threshold prices that need to be tested and obtain a polynomial time -approximation (where denotes the ’th harmonic number) for arbitrary , which turns out to be perfectly tight for shortest path as well as minimum spanning tree games. This result is found in Section Stackelberg Network Pricing Games.

We then extend the analysis to multiple followers, in which case the approximation ratio becomes . This can be shown to be essentially best possible by an approximation preserving reduction from single-minded combinatorial pricing [13]. Extending the problem even further, we also look at the case of multiple weighted followers, which arises naturally in network settings where different followers come with different routing demands. It has been conjectured before that no approximation essentially better than the number of followers is possible in this scenario. We disprove this conjecture by presenting an alternative analysis of the single-price algorithm resulting in an approximation ratio of . Additionally, we derive a lower bound of for the weighted player case. This resolves a previously open problem from [5]. The results on multiple followers are found in Section Stackelberg Network Pricing Games.

The generic reduction from single-minded to Stackelberg pricing yields a class of networks in which we can price the vertices on one side of a bipartite graph and players aim to purchase minimum cost vertex covers for their sets of edges. This motivates us to return to the classical Stackelberg setting and consider the 2-player bipartite vertex cover game (StackVC). As it turns out, this variation of the game allows polynomial-time algorithms for exact revenue maximization using non-trivial algorithmic techniques. We first present an upper bound on the possible revenue in terms of the min-cost vertex cover not using any priceable vertices and the minimum portion of fixed cost in any possible cover. Using iterated max-flow computations, we then determine a pricing with total revenue that eventually coincides with our upper bound. These results are found in Section Stackelberg Network Pricing Games.

Finally, Section Stackelberg Network Pricing Games concludes and presents several intriguing open problems for further research. Some of the proofs have been omitted due to space limitations.

section1[A Single-Price Algorithm for a Single Follower]A Single-Price Algorithm for a Single Follower Let us assume that we are faced with a single follower and let denote the cost of a cheapest feasible subnetwork for the follower not containing any of the priceable edges. Clearly, we can compute by assigning price to all priceable edges and simulating the follower on the resulting network. The single-price algorithm proceeds as follows. For it assigns price to all priceable edges and determines the resulting revenue . It then simply returns the pricing that results in maximum revenue. We present a logarithmic bound on the approximation guarantee of the single-price algorithm.

###### Theorem 0.2.

Given any , the single-price algorithm computes an -approximation with respect to , the revenue of an optimal pricing.

subsection2[Analysis]Analysis The single-price algorithm has previously been applied to a number of different combinatorial pricing problems [1, 15]. The main issue in analyzing its performance guarantee for Stackelberg pricing is to determine the right set of candidate prices. We first derive a precise characterization of these candidates and then argue that the geometric sequence of prices tested by the algorithm is a good enough approximation. Slightly abusing notation, we let refer to both price and the assignment of this price to all priceable edges. If there exists a feasible subnetwork for the follower that uses at least priceable edges, we let

be the largest price at which such a subnetwork is chosen. If no feasible subnetwork with at least priceable edges exists, we set . As we shall see, these thresholds are the key to prove Theorem 0.2.

We want to derive an alternative characterization of the values of . For each we let refer to the minimum sum of prices of fixed-price edges in any feasible subnetwork containing at most priceable edges, formally

and . For ease of notation let . Consider the set of points , on the plane. By we refer to a minimum selection of points spanning the upper convex hull of the point set. It is a straightforward geometric observation that we can define as follows:

###### Fact 1.

Point belongs to if and only if

We now return to the candidate prices. By definition we have that . We say that is true threshold value if , i.e., if at price the subnetwork chosen by the follower contains exactly priceable edges. Let denote the indices, such that are true threshold values and for ease of notation define . For an example, see Figure 1.

###### Lemma 0.3.

is true threshold value if and only if belongs to .

###### Proof.

”” Let be true threshold value, i.e., at price the chosen subnetwork contains exactly priceable edges. We observe that at any price the cheapest subnetwork containing priceable edges has cost . Thus, at price it must be the case that for all and for all . It follows that

and, thus, we have that belongs to .

”” Assume now that belongs to and let

Consider any . It follows that since and, thus, the network chosen at price cannot contain less than priceable edges. Analogously, let . Using we obtain and, thus, the subnetwork chosen at price contains exactly priceable edges. We conclude that is a true threshold.

It is not difficult to see that the price defined in the second part of the proof of Lemma 0.3 is precisely the threshold value . Let be any true threshold. Since points define the convex hull we can write that . We state this important fact again in the following lemma.

###### Lemma 0.4.

For all it holds that .

From the fact that points define the convex hull we know that , i.e., is the largest of all -values. On the other hand, each describes the maximum revenue that can be made from a subnetwork with at most priceable edges and, thus, is clearly an upper bound on the revenue made by an optimal price assignment.

###### Fact 2.

It holds that .

By definition of the ’s it is clear that at any price below the subnetwork chosen by the follower contains no less than priceable edges. Furthermore, for each the single-price algorithm tests a candidate price that is at most a factor smaller than . Let , denote the revenue that results from assigning price or to all priceable edges, respectively.

###### Fact 3.

For each there exists a price with that is tested by the single-price algorithm. Especially, it holds that

Finally, we know that the revenue made by assigning price to all priceable edges is . Let denote the revenue of the single-price solution returned by the algorithm. We have:

This concludes the proof of Theorem 0.2.

subsection2[Tightness]Tightness The example in Figure 2 shows that our analysis of the single-price algorithm’s approximation guarantee is tight. The follower wants to buy a path connecting vertices and . In an optimal solution we set the price of edge to . Then edges form a shortest path of cost . On the other hand, assume that all edges are assigned the same price . Every choice will lead to a revenue of at most . Similar results apply if the follower purchases a minimum spanning tree instead of a shortest path.

The best known lower bound for 2-player Stackelberg pricing is found in [9], where APX-hardness is shown for the minimum spanning tree case. To the authors’ best knowledge, up to now no non-constant inapproximability results have been proven. We proceed by extending our results to multiple followers, in which case previous results on other combinatorial pricing problems yield strong lower bounds.

section1[Extension to Multiple Followers]Extension to Multiple Followers In this section we extend our results on general Stackelberg network pricing to scenarios with multiple followers. Recall that each follower is characterized by her own collection of feasible subnetworks and denotes the number of followers. Section Stackelberg Network Pricing Games extends the analysis from the single follower case to prove a tight bound of on the approximation guarantee of the single-price algorithm. In addition, it presents an alternative analysis that applies even in the case of weighted followers and yields approximation guarantees that do not depend on the number of followers. Section Stackelberg Network Pricing Games derives (near) tight inapproximability results based on known hardness results for combinatorial pricing. Proofs are omitted due to space limitations.

subsection2[Guarantees of the Single-Price Algorithm]Guarantees of the Single-Price Algorithm Let an instance of Stackelberg network pricing with some number of followers be given. We obtain a similar bound on the single-price algorithm’s approximation guarantee.

###### Theorem 0.5.

The single-price algorithm computes an -approximation with respect to , the revenue of an optimal pricing, for Stack with multiple followers.

The proof of Theorem 0.5 reduces the problem to the single player case. However, it relies essentially on the fact that we are considering the single-price algorithm. It does not imply anything about the relation of these two cases in general.

An even more general variation of Stackelberg pricing, in which we allow multiple weighted followers, arises naturally in the context of network pricing games with different demands for each player. This model has been previously considered in [5]. Formally, for each follower we are given her demand . Given followers buying subnetworks , the leader’s revenue is defined as It has been conjectured before that in the weighted case no approximation guarantee essentially beyond is possible [19]. We show that an alternative analysis of the single-price algorithm yields ratios that do not depend on the number of followers.

###### Theorem 0.6.

The single-price algorithm computes an -approximation with respect to , the revenue of an optimal pricing, for Stack with multiple weighted followers.

subsection2[Lower Bounds]Lower Bounds Hardness of approximation of Stackelberg pricing with multiple followers follows immediately from known results about other combinatorial pricing models. Theorem 0.7 is based on a reduction from the (weighted) unit-demand envy-free pricing problem with uniform budgets, which is known to be inapproximable within ( denotes the number of products) [6]. Here we are given a universe of products and a collection of (weighted) customers, each of which buys the cheapest product out of some set of alternatives with a price not exceeding her budget. The resulting Stackelberg game is an instance of the so-called river tariffication problem. Each player needs to route her demand along one out of a number of parallel links connecting her respective source and sink pair. One direct fixed price connection determines her maximum budget for purchasing a priceable link. Theorem 0.7 resolves an open problem from [5]. The construction is depicted in Figure 3.

###### Theorem 0.7.

The Stackelberg network pricing problem with multiple weighted followers is hard to approximate within for some , unless NP BPTIME(). The same holds for the river tariffication problem.

Theorem 0.8 is based on a reduction from the single-minded combinatorial pricing problem, in which each customer is interested in a subset of products and purchases the whole set if the sum of prices does not exceed her budget. Single-minded pricing is hard to approximate within [13], where and denote the numbers of customers and products, respectively. Theorem 0.8 shows that the single-price algorithm is essentially best possible for multiple unweighted followers.

###### Theorem 0.8.

The Stackelberg network pricing problem with multiple unweighted followers is hard to approximate within for some , unless NP BPTIME(). The same holds for bipartite Stackelberg Vertex Cover Pricing (StackVC).

The idea for the proof of Theorem 0.8 is illustrated in Figure 3. We define an instance of StackVC in bipartite graphs. Vertices on one side of the bipartition are priceable and represent the universe of products, vertices on the other side encode customers and have fixed prices corresponding to the respective budgets. For each customer we define a follower in the Stackelberg game with edges connecting the customer vertex and all product vertices the customer wishes to purchase. Now every follower seeks to buy a min-cost vertex cover for her set of edges. We proceed by taking a closer look at this special type of Stackelberg pricing game and especially focus on the interesting case of a single follower.

section1[Stackelberg Vertex Cover]Stackelberg Vertex Cover

Stackelberg Vertex Cover Pricing is a vertex game, however, the approximation results for the single-price algorithm continue to hold. Note that in general the vertex cover problem is hard, hence we focus on settings, in which the problem can be solved in polynomial time. In bipartite graphs the problem can be solved optimally by using a classic and fundamental max-flow/min-cut argumentation. If all priceable vertices are in one side of the partition, then for multiple followers there is evidence that the single-price algorithm is essentially best possible. Our main theorem in this section states that the setting with a single follower can be solved exactly. As a consequence, general bipartite StackVC can be approximated by a factor of 2.

###### Theorem 0.9.

If for a bipartite graph we have , then there is a polynomial time algorithm computing an optimal price function for StackVC.

Before we prove the theorem, we mention that the standard problem of minimum vertex cover in a bipartite graph with disjoint vertex sets , and edges can be solved by the following application of LP-duality. The LP-dual is interpreted as a maximum flow problem on an adjusted flow network . In particular, is constructed by adding a source and a sink to and connecting to all vertices with directed edges , and to all vertices with directed edges . Each such edge gets as capacity the cost of the involved original vertex - i.e. for or if . Furthermore, all original edges of the graph are directed from to and their capacity is set to infinity. The value of a maximum --flow equals the cost of a minimum cut, and in addition the cost of a minimum cost vertex cover of the graph (for an example see Figure 4). To obtain such a cover consider an augmenting --path in , which is a path traversing only forward edges with slack capacity and backward edges with non-zero flow. The maximum flow can be computed by iteratively increasing flow along such paths. The vertices in the minimum vertex cover then correspond to incident edges in a minimum cut. In particular, the minimum vertex cover includes a vertex if the flow allows no augmenting --path from to , i.e. if every path from to has at least one backward edge with no flow, or at least one forward edge without slack capacity.

We use a similar idea to obtain the optimal pricing for StackVC. Let and the values for denote the minimum sum of prices of fixed-price vertices in any feasible subnetwork containing at most priceable vertices. Then, are again upper bounds on the revenue that can be extracted from a network that includes at most priceable vertices. We thus have .

4

4

4

Suppose all priceable vertices are located in one partition and consider Algorithm 1. We denote by the cover calculated by Algorithm 1. At first, when computing the maximum flow on holding all , the algorithm obtains a flow of . We first note that in the following while-loop we will never face a situation, in which there is an augmenting --path (traversing forward edges with slack capacity and backward edges with non-zero flow) starting with a fixed-price vertex. We call such a path a fixed path, while an augmenting --path starting with a priceable vertex is called a price path.

###### Lemma 0.10.

Every augmenting path considered in the while-loop of Algorithm 1 is a price path.

###### Proof.

We prove the lemma by induction on the while-loop and by contradiction. Suppose that in the beginning of the current iteration there is no fixed path. In particular, this is true for the first iteration of the while-loop. Then, suppose that after we have increased the flow over a price path , a fixed path is created. must include some of the edges of . Consider the vertex at which hits . By following from to and from to there is a fixed path, which must have been present before flow was increased on . This is a contradiction and proves the lemma.

Recall from above that the optimum cover contains a vertex if there is no augmenting --path from to . In particular, this means that for a vertex the following two properties are fulfilled: (1) there is no slack capacity on edge ; (2) there is no augmenting --path from over a different vertex . As the algorithm always adjusts the price of a vertex to equal the current flow on , only the violation of property (2) can force a vertex to leave the cover. In particular, such an augmenting --path must start with a fixed-price vertex, and it must reach by decreasing flow over one of the original edges for . We call such a path a fixed -path.

###### Lemma 0.11.

Algorithm 1 creates no fixed -path for any priceable vertex .

The proof of Lemma 0.11 is similar to the proof of Lemma 0.10 and will appear in the full version. As there is no augmenting path from to any priceable vertex at any time, the following lemma is now obvious.

###### Lemma 0.12.

includes all priceable vertices.

Proof of Theorem 0.9. Finally, we can proceed to argue that the computed pricing is optimal. Suppose that after executing Algorithm 1 we increase over for any priceable vertex . As we are at the end of the algorithm, it does not allow us to increase the flow in the same way. Thus, the adjustment creates slack capacity on all the edges for any and causes every priceable vertex to leave . The new cover must be the cheapest cover that excludes every priceable vertex, i.e. it must be and have cost . As we have not increased the flow, we know that the cost of is also . Note that before starting the while-loop the cover was of cost . As all flow increase in the while-loop was made over price paths and all the priceable vertices stay in the cover, the revenue of must be . This is an upper bound on the optimum revenue, and hence the price function derived with the algorithm is optimal. Finally, notice that adjusting the price of the priceable vertices in each iteration is not necessary. We can start with computing and for the remaining while-loop set all prices to . This will result in the desired flow, which directly generates the final price for every vertex as flow on . Hence, we can get optimal prices with an adjusted run of the standard polynomial time algorithm for maximum flow in . This proves Theorem 0.9.

###### Theorem 0.13.

There is a polynomial time -approximation algorithm for bipartite StackVC.

In Theorem 0.13 we use the previous analysis to get a -approximation of the optimum revenue for general bipartite StackVC. This results in a -approximation for any number of followers. In contrast, the analysis of the single-price algorithm is tight even for one follower and all priceable vertices in one partition. Moreover, bipartite StackVC for at least two followers is NP-hard by a reduction from the highway pricing problem [7].

section1[Open problems]Open problems

There are a number of important open problems that arise from our work. We believe that the single-price algorithm is essentially best possible even for a single follower and general Stackelberg pricing games. However, there is no matching logarithmic lower bound, and the best lower bound remains APX-hardness from [9]. In addition, we believe that for weighted followers a better upper bound than is possible, which would decrease the gap to the lower bound we observed. More generally, extending other algorithm design techniques to cope with pricing problems is a major open problem.

## References

- [1] G. Aggarwal, T. Feder, R. Motwani, and A. Zhu. Algorithms for Multi-Product Pricing. In Proc. of 31st ICALP, 2004.
- [2] N. Balcan and A. Blum. Approximation Algorithms and Online Mechanisms for Item Pricing. In Proc. of 7th EC, 2006.
- [3] N. Balcan, A. Blum, J. Hartline, and Y. Mansour. Mechanism Design via Machine Learning. In Proc. of 46th FOCS, 2005.
- [4] M. Balcan, A. Blum, and Y. Mansour. Single Price Mechanisms for Revenue Maximization in Unlimited Supply Combinatorial Auctions. Technical Report CMU-CS-07-111, Carnegie Mellon University, 2007.
- [5] M. Bouhtou, A. Grigoriev, S. van Hoesel, A. van der Kraaij, F. Spieksma, and M. Uetz. Pricing Bridges to Cross a River. Naval Research Logistics, 54(4): 411–420, 2007.
- [6] P. Briest. Towards Hardness of Envy-Free Pricing. ECCC Technical Report TR06-150, 2006.
- [7] P. Briest and P. Krysta. Single-Minded Unlimited-Supply Pricing on Sparse Instances. In Proc. of 17th SODA, 2006.
- [8] P. Briest and P. Krysta. Buying Cheap is Expensive: Hardness of Non-Parametric Multi-Product Pricing. In Proc. of 18th SODA, 2007.
- [9] J. Cardinal, E. Demaine, S. Fiorini, G. Joret, S. Langerman, I. Newman, and O. Weimann. The Stackelberg Minimum Spanning Tree Game. In Proc. of 10th WADS, 2007.
- [10] S. Chawla, J. Hartline, and R. Kleinberg. Algorithmic Pricing via Virtual Valuations. In Proc. of 8th EC, 2007.
- [11] R. Cole, Y. Dodis, and T. Roughgarden. Pricing Network Edges for Heterogeneous Selfish Users. In Proc. of 35th STOC, 2003.
- [12] P. Cramton, Y. Shoham, and R. Steinberg (Editors). Combinatorial Auctions. MIT Press, 2006.
- [13] E.D. Demaine, U. Feige, M.T. Hajiaghayi, and M.R. Salavatipour. Combination Can Be Hard: Approximability of the Unique Coverage Problem. In Proc. of 17th SODA, 2006.
- [14] P. Glynn, P. Rusmevichientong, and B. Van Roy. A Non-Parametric Approach to Multi-Product Pricing. Operations Research, 54(1):82–98, 2006.
- [15] V. Guruswami, J.D. Hartline, A.R. Karlin, D. Kempe, C. Kenyon, and F. McSherry. On Profit-Maximizing Envy-Free Pricing. In Proc. of 16th SODA, 2005.
- [16] J. Hartline and V. Koltun. Near-Optimal Pricing in Near-Linear Time. In Proc. of 8th WADS, 2005.
- [17] M. Labbé, P. Marcotte, and G. Savard. A Bilevel Model of Taxation and its Application to Optimal Highway Pricing. Management Science, 44(12): 1608–1622, 1998.
- [18] N. Nisan and A. Ronen. Algorithmic Mechanism Design. In Proc. of 31st STOC, 1999.
- [19] S. Roch, G. Savard, and P. Marcotte. An Approximation Algorithm for Stackelberg Network Pricing. Networks, 46(1): 57–67, 2005.
- [20] T. Roughgarden. Stackelberg Scheduling Strategies. SIAM J. on Computing, 33(2): 332–350, 2004.
- [21] C. Swamy. The Effectiveness of Stackelberg Strategies and Tolls for Network Congestion Games. In Proc. of 18th SODA, 2007.
- [22] S. van Hoesel. An Overview of Stackelberg Pricing in Networks. Research Memoranda 042, METEOR, Maastricht, 2006.
- [23] H. von Stackelberg. Marktform und Gleichgewicht (Market and Equilibrium). Verlag von Julius Springer, Vienna, 1934.