Computing Walrasian Equilibrium
Renato Paes Leme Sam Wong (Google) (Berkeley)
Computing Walrasian Equilibrium Renato Paes Leme - - PowerPoint PPT Presentation
Computing Walrasian Equilibrium Renato Paes Leme Sam Wong (Google) (Berkeley) supplies: demand: flour, bakeries, milk, hospitals, vegetables, households, medicine, schools, paper,
Renato Paes Leme Sam Wong (Google) (Berkeley)
supplies: flour, milk, vegetables, medicine, paper, … demand: bakeries, hospitals, households, schools, …
supplies: flour, milk, vegetables, medicine, paper, … demand: bakeries, hospitals, households, schools, … Task: Allocate supplies efficiently to satisfy the demands
supplies: flour, milk, vegetables, medicine, paper, … demand: bakeries, hospitals, households, schools, … Task: Allocate supplies efficiently to satisfy the demands
Invisible Hand
Nations” (1776): invisible hand
Economics” (1874): mathematical theory of market equilibrium
equilibrium theory
combinatorial theory of market equilibr.
n goods m buyers
n goods m buyers vi : 2N → R v1 v2 v3 v4
n goods m buyers vi : 2N → R p1 p2 p3 p4 p5 p6 v1 v2 v3 v4
n goods m buyers vi : 2N → R p1 p2 p3 p4 p5 p6 v1 v2 v3 v4 D(vi, p) = argmaxS⊆N[vi(S) − P
i∈S pi]
n goods m buyers vi : 2N → R p1 p2 p3 p4 p5 p6 v1 v2 v3 v4 D(vi, p) = argmaxS⊆N[vi(S) − P
i∈S pi]
S1 ∈ D(v1, p)
n goods m buyers vi : 2N → R p1 p2 p3 p4 p5 p6 v1 v2 v3 v4 D(vi, p) = argmaxS⊆N[vi(S) − P
i∈S pi]
S1 ∈ D(v1, p) S2 ∈ D(v2, p)
n goods m buyers vi : 2N → R p1 p2 p3 p4 p5 p6 v1 v2 v3 v4 D(vi, p) = argmaxS⊆N[vi(S) − P
i∈S pi]
S1 ∈ D(v1, p) S2 ∈ D(v2, p) ∅ ∈ D(v3, p)
n goods m buyers vi : 2N → R p1 p2 p3 p4 p5 p6 v1 v2 v3 v4 D(vi, p) = argmaxS⊆N[vi(S) − P
i∈S pi]
S1 ∈ D(v1, p) S2 ∈ D(v2, p) S4 ∈ D(v4, p) ∅ ∈ D(v3, p)
i.e. each good is demanded by exactly one buyer.
p ∈ Rn Si ∈ D(vi, p) First Welfare Theorem: in equilibrium the welfare is maximized. P
i vi(Si)
(proof: LP duality) How do markets converge to equilibrium prices ? How to compute a Walrasian equilibrium ?
Microscopic Macroscopic Telescopic
Microscopic Macroscopic Telescopic Value oracle: given i and S: query . vi(S)
Microscopic Macroscopic Telescopic Value oracle: given i and S: query . vi(S) Demand oracle: given i and p: query .
S ∈ D(vi, p)
Microscopic Macroscopic Telescopic Value oracle: given i and S: query . vi(S) Demand oracle: given i and p: query .
S ∈ D(vi, p)
Aggregate Demand: given p, query.
P
i Si; Si ∈ D(vi, p)
Algorithm Oracle Access Running time
tatonnement (trial-and-error) [Walras, Kelso-Crawford, …]
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1 +1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1 +1
n goods m buyers v1 v2 v3 v4 p1 p2 p3 p4 p5 p6 +1 +1 −1 +1
under a condition called gross substitutes.
such that gradient descent is exactly tatonnement:
argminf(p) ∂jf(p) = 1 − [total demand for j] f(p) = P
i maxS[vi(S) − p(S)] + p([n])
under a condition called gross substitutes.
Algorithm Oracle Access Running time
tatonnement / gradient descent [Walras, Kelso-Crawford, …] aggregate demand pseudo poly
Algorithm Oracle Access Running time
tatonnement / gradient descent [Walras, Kelso-Crawford, …] aggregate demand pseudo poly Linear programming [Nisan-Segal] demand + value
poly time
Algorithm Oracle Access Running time
tatonnement / gradient descent [Walras, Kelso-Crawford, …] aggregate demand pseudo poly Linear programming [Nisan-Segal] demand + value
poly time
this paper
poly time aggregate demand
˜ O(n2 · TAD + n5)
min P
i ui + p([n])
ui ≥ vi(S) − p(S), ∀i, S
min P
i ui + p([n])
ui ≥ vi(S) − p(S), ∀i, S
separating constraint
hyperplane
min P
i ui + p([n])
ui ≥ vi(S) − p(S), ∀i, S
separating constraint
hyperplane
f(p) = P
i[maxS vi(S) − p(S)] + p([n])
min P
i ui + p([n])
ui ≥ vi(S) − p(S), ∀i, S
separating constraint
hyperplane
f(p) = P
i[maxS vi(S) − p(S)] + p([n])
f(p), ∂f(p)
We adapt the cutting plane algorithm of Lee-Sidford-Wong’15 to optimize f using only
(only via aggregate demand oracle)
∂f(p)
gross substitutes [Kelso-Crawford]
necessary and “sufficient” condition for tatonnement to converge “increase in the price for one good doesn’t decrease demand for other good.”
gross substitutes [Kelso-Crawford]
necessary and “sufficient” condition for tatonnement to converge
valuated matroids [Dress-Wenzel]
generalization of Grassman-Plucker relations, when can be
v(S) − P
S pj
“increase in the price for one good doesn’t decrease demand for other good.”
gross substitutes [Kelso-Crawford]
necessary and “sufficient” condition for tatonnement to converge
valuated matroids [Dress-Wenzel]
generalization of Grassman-Plucker relations, when can be
v(S) − P
S pj
v(S) ∈ {0, −∞}
(if those are matroids). “increase in the price for one good doesn’t decrease demand for other good.”
gross substitutes [Kelso-Crawford]
necessary and “sufficient” condition for tatonnement to converge
valuated matroids [Dress-Wenzel]
generalization of Grassman-Plucker relations, when can be
v(S) − P
S pj
v(S) ∈ {0, −∞}
(if those are matroids).
discrete concavity [Murota-Shioura]
local certificate of global optimality “increase in the price for one good doesn’t decrease demand for other good.”
gross substitutes [Kelso-Crawford]
necessary and “sufficient” condition for tatonnement to converge
valuated matroids [Dress-Wenzel]
generalization of Grassman-Plucker relations, when can be
v(S) − P
S pj
v(S) ∈ {0, −∞}
(if those are matroids).
discrete concavity [Murota-Shioura]
local certificate of global optimality
Discrete Convex Analysis
“increase in the price for one good doesn’t decrease demand for other good.”
Algorithm Oracle Access Running time
tatonnement / gradient descent [Walras, Kelso-Crawford, …] aggregate demand pseudo poly
Algorithm Oracle Access Running time
tatonnement / gradient descent [Walras, Kelso-Crawford, …] aggregate demand pseudo poly Combinatorial flow-based algos [Murota] value oracle strong poly time
˜ O(mn3 · TV )
Algorithm Oracle Access Running time
tatonnement / gradient descent [Walras, Kelso-Crawford, …] aggregate demand pseudo poly Combinatorial flow-based algos [Murota] value oracle strong poly time
˜ O(mn3 · TV )
this paper
aggregate demand
˜ O(n · TAD + n3)
Algorithm Oracle Access Running time
tatonnement / gradient descent [Walras, Kelso-Crawford, …] aggregate demand pseudo poly Combinatorial flow-based algos [Murota] value oracle strong poly time
˜ O(mn3 · TV )
this paper
aggregate demand
˜ O(n · TAD + n3)
this paper
value oracle
˜ O((mn + n3) · TV )
gets us to
˜ O(mn3 · TV ) O(n2 · TV ) ˆ f(p) = P
i[maxS vi(S) − p(S)+✏|S|] + p([n])−✏n
˜ O(n · TAD + n3) TAD = O(mn2 · TV )
correct for other values.
pre-processing. O(n2) O(mn) ˆ f(p) = P
i[maxS vi(S) − p(S)+✏|S|] + p([n])−✏n
be computed:
information
˜ O(n)
buyers, … How to update market equilibrium.