CS 234r: Markets for Networks and Crowds
Pricing, Walrasian Equilibrium, Tâtonnement
Lecture 4
Matching and Money
Combinatorial Markets
Recall: Up to this point, we have described
mechanisms for matching markets that rely
on the preference rankings of individuals.
But what if we could extract more information, such as the value each agent has for each
potential match, in dollars? This would allow us to find not only a Pareto efficient outcome, but the precisely most socially efficient
matching.
In a combinatorial market, there is a set N of
n agents (buyers) and a set M of m goods (or
items). There is one indivisible copy of each
good. Think: cars. We typically think of
each good as being sold by a separate seller,
but this won’t be important for now — we’ll
talk about this more in the next lecture.
Def: A valuation function assigns a nonnegative value to each set of goods: v : 2M →
Algorithmically, this is the same as finding R≥0 . Each agent i has a valuation function
a maximum weighted matching in a bipartite vi . We will assume valuation functions are
graph, which can be done in polynomial time.
• monotone: v(S) ≤ v(T ) ∀S ⊆ T , and
In principle, we could use such an algorithm
to determine market outcomes. For example:
• normalized so that v(∅) = 0.
Def: An allocation x is a partition of the
goods among the agents, with possibly some
goods left unallocated. We write xi for the
set of goods allocated to agent i.
• Housing markets
• Assignment of workers to jobs
Def:
P The social welfare of an allocation x
is
i vi (xi ). An allocation that maximizes
social welfare is said to be efficient.
Note: The algorithm will find an efficient
matching, but it might be that not every participant is happy with the outcome. If we
were to resolve real economic markets using
an algorithm for maximum weighted matching, the participants might benefit by lying
about their preferences.
Goal: Find an allocation x that maximizes
social welfare. We will call this the allocation
problem.
Goal: Instead of simply choosing a market
Special Case: Matchings
outcome, design a market where the participants are individually incentivized to select Note: In the special case that each agent
the optimal matching.
can be allocated at most one item, an allocaIdea: Use payments!
tion is precisely a matching. In this case, a
1
valuation function simply assigns a value to
each item. The allocation problem is equivalent to finding a maximum-weight bipartite
matching.
P
xi , he must pay j∈xi pj in exchange for receiving those goods.
To see that this is a special case of a combinatorial market, suppose that each valuation function is unit-demand. A valuation v
is unit-demand if it assigns a value v(j) to
each item j ∈ M , and then for any set of
items S we have
Each agent wants to maximize his or her own
utility.
Def: the utility of agent i,Pgiven that he is
allocated set xi , is vi (xi ) − j∈xi pj .
Def: the demand correspondence of agent
i at prices p, Di (p), is the set of utilitymaximizing sets of goods. That is, Di (p)
equals
X
X
{S : vi (S)−
pj ≥ vi (T )−
pj ∀T ⊆ M }.
v(S) = max v(j).
j∈S
j∈S
j∈T
That is, each agent gets value from at most
one of the items allocated to him. When valuDef: a Walrasian Equilibrium (also known
ation functions are unit-demand, it is without
as a competitive equilibrium, or a price equiloss of generality to allocate at most one item
librium) is a choice of item prices p, plus an
to each agent.
assignment x, such that
Example:
• every agent is allocated a demanded set:
We will use this running example throughxi ∈ Di (p) for all i.
out. There are 3 items, {a, b, c}, and 3 agents:
• every item with positive price is sold: if
j 6∈ xi for all i, then pj = 0.
• Alice: v(a) = $2, v(b) = $3, v(c) = $0
Example:
• Bob: v(a) = $0, v(b) = $2, v(c) = $4
Consider our running example. Price vector
• Charlie: v(a) = $0, v(b) = $4, v(c) = $5 (pa = 0, pb = 1, pb = 2), along with allocation
(Alice ← {a}, Bob ← {c}, Charlie ← {b}),
Alice and Bob are both unit-demand agents. together form a Walrasian Equilibrium.
(Alice ← {a}, Bob ← {c}, Charlie ← {b}) is
A Walrasian equilibrium is essentially an asan allocation, with social welfare 10.
signment of prices to goods that equates
supply and demand. On the demand side,
each buyer obtains their most desired set of
Walrasian Equilibrium
goods. On the supply side, every good is sold
Left to their own devices, each agent would to someone (except possibly if the good is
naturally want to take the item they value “worthless,” in the sense that no agent wants
the most, but this might cause some items to it even if it is free). We say that the market
be overdemanded. To coordinate the agents’ clears.
preferences, we introduce prices.
As it turns out, a Walrasian equilibrium not
Imagine that every good j ∈ M has a price only clears the market, but it does so in a
pj ≥ 0. If agent i is allocated a set of goods socially efficient way.
2
Theorem 1 (First Welfare Theorem)
Lemma 2 (Mix-and-Match) If (x, p) and
If (x, p) is a Walrasian equilibrium, then x (y, q) are Walrasian equilibria in a matching
maximizes social welfare.
market, then (x, q) and (y, p) are as well.
Because of the Mix-and-Match Lemma, we
tend to associate Walrasian equilibria with
their price vectors. The following lemma
shows that these prices vectors form a complete lattice. In particular, there is a minimum equilibrium and a maximum equilibrium. (Proof hint: use the Mix-and-Match
Lemma.)
Proof: Say (x, p) is a WE, and let y be any
other allocation.
For each agent
P
P i, we know
vi (xi ) − j∈xi pj ≥ vi (yi ) − j∈yi pj . Take a
sum over all agents to get
X
XX
X
XX
vi (xi )−
pj ≥
vi (yi )−
pj .
i
i
j∈xi
i
i
j∈yi
Since all items with positive price are alTheorem 3 In a matching market, the set
located
actually have that
P
P under x, we P
of Walrasian price vectors form a complete
to j∈M pj , which cani
j∈xi pj is equal
P P
lattice.
not be less than i j∈yi pj . So
XX
i
j∈xi
p xi ≥
XX
i
Example: Consider our running example.
The minimal equilibrium is price vector (pa =
0, pb = 1, pb = 2), along with allocation (Alice
← {a}, Bob ← {c}, Charlie ← {b}). The
maximal equilibrium is (pa = 2, pb = 3, pb =
4), with the same allocation.
p yi ,
j∈yi
from which we conclude
X
X
vi (xi ) ≥
vi (yi ),
So now we have some basic understanding
of what Walrasian equilibria look like. Can
so x must be optimal.
2 we find one? Does an equilibrium even exist? The following simple procedure is useful for constructing a Walrasian Equilibrium.
Finding Walrasian Equilibria in It is called “Tâtonnement,” which translates
Matching Markets
roughly to “grasping around blindly.” The
basic idea is to raise prices on over-demanded
In this section we will restrict our attention to items until the market reaches equilibrium.
the special case of matching markets. That
is, we will assume that all agent valuations We will begin by presenting a simple version
are unit-demand. Later we will see how to that modifies prices in discrete jumps, but
obtains only an approximate equilibrium.
relax this assumption.
To build some intuition about Walrasian Def: the -approximate demand corresponequilibria, here are some simple results; the dence of agent i given prices p, Di (p), is the
proofs are left as an exercise. The first re- set of sets of goods that maximize agent i’s
up to an additive error. That is,
sult states that any Walrasian price vectors utility,
can be paired with any Walrasian allocation Di (p) is equal to
X
X
to form an equilibrium. (Proof hint: use the {S : vi (S)−
pj ≥ vi (T )−
pj − ∀T ⊆ M }
first welfare theorem.)
j∈S
j∈T
i
i
3
Def: an -approximate Walrasian equilibrium is an allocation x and price vector p such
that xi ∈ Di (p) for all i, and all unsold items
have price 0.
Proof: Prices only rise, and some price rises
on each iteration of the algorithm. The algorithm must therefore terminate eventually,
since an item whose price is sufficiently high is
not included in any agent’s demanded set(s).
Algorithm:
By line 3, if the algorithm terminates, it must
be that xi ∈ Diδ for each agent i. So it only
remains to show that each unallocated item
2. Start with pj = 0 for all j ∈ M , and has price 0. We claim that once an item
xi = ∅ for all i ∈ N .
is allocated, it never again becomes unallo3. For each agent i, consider price vector cated. This will complete the proof, since
then the only unallocated items are items
p(i) defined by:
that were never allocated, and thus never had
(
their prices incremented on line 5.
pj
if j ∈ xi
(i)
pj =
Suppose for contradiction that the algorithm
pj + δ if j 6∈ xi .
unallocates some item j on some iteration of
4. If xi ∈ Di (p(i) ) for all i, stop and return lines 3-7; say iteration t. This can only occur
if an agent i with j ∈ xi is selected in line
(x, p).
4, but j 6∈ yi . In this case, item j would be
(i)
5. Choose any i for which xi 6∈ Di (p ). unallocated on line 6. However, in a matching market, allocations are singletons; it must
Pick yi ∈ Di (p(i) ).
therefore be that xi = {j}. Moreover, it must
6. For each item j ∈ yi , increase pj by δ.
be that {j} was the allocation assigned to
iteration, say t0 < t.
7. Allocate yi to agent i: set xi = yi , and agent i on a previous
So, on iteration t0 , it must have been that
set xk = xk \yi for all k 6= i.
{j} ∈ Di (p). Since the prices of other items
can only increase, and pj increased only by δ
8. Continue on line 3.
on iteration t0 , {j} must be in Diδ (p) on iterThe above description is more general than ation t. This contradicts the fact that agent
2
matching markets, and one could imagine i was selected on line 4 in iteration t.
running Tâtonnement on any combinatorial
market. However, Tâtonnement does not alExact Walways succeed in finding an equilibrium in a Bonus Material:
combinatorial market; we will see an exam- rasian Equilibrium
ple of that later. But for the special case of
matching markets, Tâtonnement does always The Tâtonnement algorithm described in the
converge to a Walrasian equilibrium.
previous section only finds an approximate
Walrasian equilibrium. We can make this
Theorem 4 In a matching market, the approximation arbitrarily good by taking δ
Tâtonnement process must terminate. More- as small as desired. In the limit as δ → 0,
over, it terminates at a (δ)-approximate Wal- this has the net effect of allowing prices to
rasian equilibrium.
rise continuously. In this limit, the algo1. Let δ > 0 be arbitrarily small.
4
rithm finds an exact Walrasian equilibrium Example: Suppose our market has two
for matching markets. This argument lets goods {L, R}, a left shoe and a right shoe.
us conclude that an exact Walrasian Equilibrium always exists for matching markets.
• Alice would like to purchase the shoes
δ δ
only as a pair.
Her valuation is
To formalize this, suppose (x , p ) is the outv
({L,
R})
=
5,
but
v
A
A (L) = vA (R) = 0.
put of the Tâtonnement process for a given
choice of δ, say restricted to δ ∈ (0, 1]. Con• Bob is interested in any single shoe (persider the limit δ → 0. As there are only
haps Bob is a dog). His valuation is
finitely many choices of allocations, some alvB (L) = vB (R) = vB ({L, R}) = 3.
location x must occur for infinitely many δ.
Restrict attention to only those values of δ
for which xδ = x; this produces a subse- In this example, Tâtonnement does not find
quence of values of δ with limit 0. For each a Walrasian equilibrium. Consider the simof these infinitely many δ’s there is a price ple Tâtonnement process, with a small price
vector pδ ; moreover, these prices vectors lie increment δ. Starting at prices 0, Alice will
in a bounded range (since no price can be choose both shoes on every iteration, and Bob
greater than all agents’ values for all items). will choose whichever shoe is cheaper. This
There must therefore be a subsequence of δ’s will continue until the price of each shoe rises
for which the associated price vectors con- above $2.50. At this point, Bob will take
verge to some vector of limit prices, say p, one shoe from Alice (say the left), raising its
as δ → 0. But this then implies that (x, p) is price further, and then Alice will discard her
an -approximate Walrasian equilibrium for remaining shoe and take her demanded set
all sufficiently small (since, as δ → 0, it which is ∅. The resulting allocation is (Alice
can be made arbitrarily close to a (m · δ)- ← ∅, Bob ← {L}) at prices ($2.50+, $2.50+).
approximate equilibrium). Therefore (x, p) is This is not an approximate Walrasian equilibrium, since the right shoe is unallocated but
an exact Walrasian equilibrium as well.
has a positive price.
What went wrong in this example? When
proving that Tâtonnement finds a WE for
matching markets, an important fact was
that once a good is allocated, it is never
unallocated. In the example above, this
is precisely what fails: Alice ultimately
discards one of her shoes. The so-called
Gross Substitutes Condition captures precisely those settings in which this never happens. One can show that, under this condition, Tâtonnement successfully finds an equilibrium.
Beyond Matching
The Tâtonnement algorithm is defined for
arbitrary combinatorial markets, not just
matching markets. However, in general, a
WE is not always guaranteed to exist. Why
does Tâtonnement fail?
Recall our proof that Tâtonnement finds
an approximation Walrasian equilibrium for
matching markets: we needed to show that
once an item is allocated, it is never unallo- Def: Valuation vi for agent i satisfies the
cated. This is true for matching markets, but gross substitutes condition if, for every pair
is not true in general.
of price vectors p and p0 with p0j ≥ pj for all
5
j, if S ∈ Di (p) and S 0 = {j ∈ S : pj = p0j }, ing a ride. Write vi for passenger i’s value for
then there exists some S ∗ ∈ Di (p0 ) such that a ride. There are also m drivers in the surS 0 ⊆ S ∗.
rounding area who could potentially travel to
The definition of gross substitutes is a that neighborhood to start looking for pasbit opaque, but its intuition comes from sengers. Say that driver j has cost cj to travel
Tâtonnement. Roughly speaking, if we think to the neighborhood and pick up a passenger.
In this scenario there is only one type of good
(a ride), the passengers are potential buyers,
and the drivers are potential sellers. Unlike
the combinatorial market model above, the
sellers have a cost for providing the good.
This is straightforward to add to the model:
we’ll simply add a constraint to the definition
of Walrasian equilibrium: each seller is providing their desired set of goods at the given
prices. (Our earlier definition of Walrasian
equilibrium is then simply the special case
where the seller costs are all 0.)
of S as the set of items taken by agent i in
some round, and S 0 as the set of those items
that are still being held by agent i in some
future round (i.e., those that have not been
taken away by other agents), then the condition states that, in that future round, agent i
has a most-demanded set in which she keeps
all the items in S 0 and possibly takes some
others.
Ride-share services, Cobweb markets, and the Myth
of the Invisible Auctioneer
A competitive equilibrium is then simply a
price p for which the number of buyers wishing to buy at price p (i.e., with vi ≥ p) equals
the number of sellers wishing to sell at price p
(i.e., with cj ≤ p), breaking indifferences arbitrarily. One can view a varying price p (e.g.,
surge pricing) as attempting to find an equilibrium price for a given supply and demand.
However, as we will now see, if passengers and
drivers respond to prices myopically then the
resulting behavior can be erratic.
We’ve shown that Tâtonnement can fail when
goods are not subtitutes. What else can go
wrong? One fundamental assumption underlying Tâtonnement is that the market doesn’t
actually clear until prices have settled at their
equilibrium point. It is as if an invisible auctioneer is coordinating the prices, and lets
the market know when prices have converged
and trade actually occurs. In practice, one
might imagine that sales are actually happening concurrently with price adjustment.
Should we still expect prices to converge to a
competitive equilibrium when that happens?
Example: Suppose passenger values are
(6, 6, 5, 4, 3), and driver costs are (6, 4, 2, 1).
Let’s say that, initially, all 4 passengers are
looking for rides but there is only 1 driver
available. The market-clearing price, given
the presence of only a single driver, is 6: this
is the price at which only one passenger wants
As it turns out, the way that buyers and sell- a ride (breaking indifference appropriately).
ers respond to prices in the short-run can draWhen the price is 6, all 4 drivers are intermatically influence market convergence. We
ested in providing a ride. So let’s suppose
can illustrate one issue with a toy model of a
all 4 drivers make their way to the currently
ride-share platform. In this toy model, there
high-priced neighborhood. But now there are
are n passengers in a neighborhood all want6
4 drivers available, and the equilibrium price
falls to 3. (There is some flexibility here, but
let’s imagine we always choose the passengeroptimal price, for the sake of the example.)
The drivers with costs 4 and 6 no longer want
to provide rides, so they soon leave and go
elsewhere. But then, with 2 drivers remaining, the equilibrium price rises back up to
5, which compels one of the drivers to come
back. The equilibrium price falls back down
to 4, and the market has reached an equilibrium.
The above example shows that prices can
fluctuate up and down on their way to finding an equilibrium point. (In fact, one can
modify the example so that the price doesn’t
converge at all, and instead diverges to ever
greater extremes!) These types of price oscillation are typical of scenarios in which sellers
respond to price changes, which then respond
to the quantity of sellers, and vice-versa. This
is known as a cobweb model, since prices
slowly spiral around the supply and demand
curves (i.e., the value and cost vectors). This
type of asynchrony can present a barrier to
equilibrium, when decentralized markets are
left to their own devices.
7
© Copyright 2026 Paperzz