Gross Substitutes Tutorial
Part I: Combinatorial structure and algorithms (Renato Paes Leme, Google) Part II: Economics and the boundaries of substitutability (Inbal Talgam-Cohen, Hebrew University)
Gross Substitutes Tutorial Part I: Combinatorial structure and - - PowerPoint PPT Presentation
Gross Substitutes Tutorial Part I: Combinatorial structure and algorithms (Renato Paes Leme, Google) Part II: Economics and the boundaries of substitutability (Inbal Talgam-Cohen, Hebrew University) Three seemingly-independent problems Three
Part I: Combinatorial structure and algorithms (Renato Paes Leme, Google) Part II: Economics and the boundaries of substitutability (Inbal Talgam-Cohen, Hebrew University)
[Kelso-Crawford ’82] necessary /“sufficient” condition for price adjustment to converge gross substitutes
[Kelso-Crawford ’82] necessary /“sufficient” condition for price adjustment to converge gross substitutes [Dress-Wenzel ’91] generalize Grassmann-Plucker relations valuated matroids matroidal maps
[Kelso-Crawford ’82] necessary /“sufficient” condition for price adjustment to converge gross substitutes [Dress-Wenzel ’91] generalize Grassmann-Plucker relations valuated matroids matroidal maps [Murota-Shioura ’99] generalize convexity to discrete domains M-discrete concave
[Kelso-Crawford ’82] necessary /“sufficient” condition for price adjustment to converge gross substitutes [Dress-Wenzel ’91] generalize Grassmann-Plucker relations valuated matroids matroidal maps [Murota-Shioura ’99] generalize convexity to discrete domains M-discrete concave
Discrete Convex Analysis
[n] = {1, . . . , n} v : 2[n] → R p ∈ Rn vp(S) = v(S) − p(S) D(v; p) = argmaxS vp(S) OD(v, p) ∈ D(v; p) v(S|T) = v(S ∪ T) − v(T) OV (v, S) = v(S)
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) When do equilibria exist ? How do markets converge to equilibrium prices ? How to compute a Walrasian equilibrium ?
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏ ✏ ✏
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏ ✏ ✏
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏ ✏ ✏
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏ ✏ ✏ ✏ 2
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏ ✏ ✏ ✏ 2
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏ ✏ ✏ ✏ 2
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏ ✏ ✏ ✏ 2 2
to i and increase the prices in by .
n goods m buyers v1 v2 v3 v4 S1 = [n], Si = ∅ pj = 0 Si / ∈ D(vi, pi)
pi
j = pj if j ∈ Si
pi
j = pj + ✏ if j /
∈ Si
Xi ∈ D(vi; pi
i)
Xi \ Si ✏ ✏ ✏ ✏ 2 2
Si ∈ D(vi; pi)
✏ → 0 Si ∈ D(vi; p)
✏ → 0 Si ∈ D(vi; p)
✏ → 0 Si ∈ D(vi; p)
∪iSi = [n] Si ⊆ Xi ∈ D(vi; pi)
✏ → 0 Si ∈ D(vi; p)
∪iSi = [n] Si ⊆ Xi ∈ D(vi; pi)
all prices and there is s.t. p ≤ p0 S ∈ D(v; p) X ∈ D(v; p0) S ∩ {i; pi = p0
i} ⊆ X
✏ → 0 Si ∈ D(vi; p)
∪iSi = [n] Si ⊆ Xi ∈ D(vi; pi)
all prices and there is s.t. p ≤ p0 S ∈ D(v; p) X ∈ D(v; p0) S ∩ {i; pi = p0
i} ⊆ X
valuations, then Walrasian equilibrium always exists.
valuations, then Walrasian equilibrium always exists.
v(S) = P
i∈S v(i)
v(S) = maxi∈S v(i) v(S) =
valuations, then Walrasian equilibrium always exists.
v(S) = P
i∈S v(i)
v(S) = maxi∈S v(i) v(S) =
valuations, then Walrasian equilibrium always exists.
v(S) = P
i∈S v(i)
v(S) = maxi∈S v(i) v(S) =
valuations, then Walrasian equilibrium always exists.
v(S) = P
i∈S v(i)
v(S) = maxi∈S v(i) v(S) =
valuations, then Walrasian equilibrium always exists.
v(S) = P
i∈S v(i)
v(S) = maxi∈S v(i) v(S) =
valuations, then Walrasian equilibrium always exists.
v(S) = P
i∈S v(i)
v(S) = maxi∈S v(i) v(S) =
valuations, then Walrasian equilibrium always exists.
v(S) = P
i∈S v(i)
v(S) = maxi∈S v(i) v(S) =
valuations, then Walrasian equilibrium always exists.
v(S) = P
i∈S v(i)
v(S) = maxi∈S v(i) v(S) = Open: GS ?= matroid-matching
valuations, then Walrasian equilibrium always exists.
contains all unit-demand valuations and Walrasian equilibrium always exists then C ⊆ GS C
for prime .
degenerate set and go over each items and replace it by the one that minimizes .
v1, . . . , vm ∈ Qn ψp(v1, . . . , vn) = n if det(v1, . . . , vn) = p−n · a/b p a, b, p ∈ Z min
vi∈V ψp(v1, . . . , vn) s.t. det(v1, . . . , vn) 6= 0
ψp(v1, . . . , vn)
matroid if the “Greedy is optimal”. v : [n]
k
for every a set in can be obtained by the greedy algorithm : and v : 2[n] → R p ∈ Rn D(v; p) S0 = ∅ St = St−1 ∪ {it} for it ∈ argmaxi vp(i|St)
for every a set in can be obtained by the greedy algorithm : and v : 2[n] → R p ∈ Rn D(v; p) S0 = ∅ St = St−1 ∪ {it} for it ∈ argmaxi vp(i|St)
for every the problem can be solved by the greedy algorithm. M ⊆ 2[n] p ∈ Rn max
S∈M p(S)
local minimum of is a global minimum.
hypercube: (or lattice
f : Rn → R p ∈ Rn fp(x) = f(x) hp, xi v : 2[n] → R v : Z[n] → R
local minimum of is a global minimum.
hypercube: (or lattice
f : Rn → R p ∈ Rn fp(x) = f(x) hp, xi v : 2[n] → R v : Z[n] → R
local minimum of is a global minimum.
hypercube: (or lattice
f : Rn → R p ∈ Rn fp(x) = f(x) hp, xi v : 2[n] → R v : Z[n] → R
all local minima of are global minima. I.e. then . In particular local search always converges.
[Murota-Shioura ’99] -concave functions v : 2[n] → R p ∈ Rn vp vp(S) ≥ vp(S ∪ i), ∀i / ∈ S vp(S) ≥ vp(S \ j), ∀j ∈ S vp(S) ≥ vp(S ∪ i \ j), ∀i / ∈ S, j ∈ S vp(S) ≥ vp(T), ∀T ⊆ [n] M \
substitutes iff it is a matroidal map iff it is discrete concave. v : 2[n] → R
[Kelso-Crawford ’82] necessary /“sufficient” condition for price adjustment to converge gross substitutes [Dress-Wenzel ’91] generalize Grassmann-Plucker relations valuated matroids matroidal maps [Murota-Shioura ’99] generalize convexity to discrete domains M-discrete concave
substitutes iff it is a matroidal map iff it is discrete concave. v : 2[n] → R
[Kelso-Crawford ’82] necessary /“sufficient” condition for price adjustment to converge gross substitutes [Dress-Wenzel ’91] generalize Grassmann-Plucker relations valuated matroids matroidal maps [Murota-Shioura ’99] generalize convexity to discrete domains M-discrete concave
S ∈ D(v; p)
substitutes iff it is a matroidal map iff it is discrete concave. v : 2[n] → R
[Kelso-Crawford ’82] necessary /“sufficient” condition for price adjustment to converge gross substitutes [Dress-Wenzel ’91] generalize Grassmann-Plucker relations valuated matroids matroidal maps [Murota-Shioura ’99] generalize convexity to discrete domains M-discrete concave
S ∈ D(v; p)
derivative with respect to as the function which is given by:
(another name for the marginal) v : 2[n] → R i ∈ [n] ∂iv : 2[n]\i → R ∂iv(S) = v(S ∪ i) − v(S)
derivative with respect to as the function which is given by:
(another name for the marginal) v : 2[n] → R i ∈ [n] ∂iv : 2[n]\i → R ∂iv(S) = v(S ∪ i) − v(S)
∂ijv(S) := ∂j∂iv(S) = v(S ∪ ij) − v(S ∪ i) − v(S ∪ j) + v(S)
∂ijv(S) ≤ 0
is in gross substitutes iff it satisfies:
condition on the discrete Hessian. v : 2[n] → R ∂ijv(S) ≤ max(∂ikv(S), ∂kjv(S)) ≤ 0
If v is not submodular, we can construct a price of the first type. If then we can find a certificate of the second type. D(v; p) = {S, S ∪ ij} D(v; p) = {S ∪ k, S ∪ ij} ∂ijv(S) > max(∂ikv(S), ∂kjv(S))
find a partition of maximizing
find whether it is optimal.
find a price such that v1, . . . , vm : 2[n] → R S1, . . . , Sm [n] P
i vi(Si)
(S∗
1, . . . , S∗ m)
S∗
i ∈ argmaxS vi(S) − p(S)
S1, . . . , Sm
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1] {0, 1}
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1]
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1] min P
i ui + P j pj
ui ≥ vi(S) − P
j∈S pj∀i, S
pj ≥ 0, ui ≥ 0 primal dual
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1] min P
i ui + P j pj
ui ≥ vi(S) − P
j∈S pj∀i, S
pj ≥ 0, ui ≥ 0 primal dual
prices and u the agent utilities. Then it is a solution to the dual, so: WIP ≤ WLP = WD-LP WD-LP ≤ Weq = WIP
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1] min P
i ui + P j pj
ui ≥ vi(S) − P
j∈S pj∀i, S
pj ≥ 0, ui ≥ 0 primal dual
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1] min P
i ui + P j pj
ui ≥ vi(S) − P
j∈S pj∀i, S
pj ≥ 0, ui ≥ 0 primal dual
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1] min P
i ui + P j pj
ui ≥ vi(S) − P
j∈S pj∀i, S
pj ≥ 0, ui ≥ 0 primal dual
is the demand oracle problem. ui ≥ max
S
vi(S) − p(S)
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1] min P
i ui + P j pj
ui ≥ vi(S) − P
j∈S pj∀i, S
pj ≥ 0, ui ≥ 0 primal dual
max P
i vi(S)xiS
P
S xiS = 1, ∀i ∈ [m]
P
i
P
S3j xiS = 1, ∀j ∈ [n]
xiS ∈ [0, 1] min P
i ui + P j pj
ui ≥ vi(S) − P
j∈S pj∀i, S
pj ≥ 0, ui ≥ 0 primal dual
= Welfare problem in poly-time
show non-existence of equilibrium, e.g. budget additive.
following convex potential function: φ(p) = P
i maxS[vi(S) − p(S)] + P j pj
are the set of minimizers of . φ ∂jφ(p) = 1 − P
i 1[j ∈ Si]; Si ∈ D(vi; p)
and decrease price of over-demanded items.
method
running-time
Value oracle: given i and S: query . vi(S)
Value oracle: given i and S: query . vi(S) Demand oracle: given i and p: query .
S ∈ D(vi, p)
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)
method
running-time
tatonnement/GD
aggreg demand pseudo-poly
method
running-time
tatonnement/GD
aggreg demand pseudo-poly linear program demand/value weakly-poly
with calls to an aggregate demand oracle. ˜ O(n) method
running-time
tatonnement/GD
aggreg demand pseudo-poly linear program demand/value weakly-poly cutting plane aggreg demand weakly-poly
method
running-time
tatonnement/GD
aggreg demand pseudo-poly linear program demand/value weakly-poly cutting plane aggreg demand weakly-poly
method
running-time
tatonnement/GD
aggreg demand pseudo-poly linear program demand/value weakly-poly cutting plane aggreg demand weakly-poly combinatorial value strongly-poly
method
running-time
tatonnement/GD
aggreg demand pseudo-poly linear program demand/value weakly-poly cutting plane aggreg demand weakly-poly combinatorial value strongly-poly
for gross susbtitutes in time. ˜ O((mn + n3)TV )
find a partition of maximizing
find whether it is optimal.
find a price such that v1, . . . , vm : 2[n] → R S1, . . . , Sm [n] P
i vi(Si)
(S∗
1, . . . , S∗ m)
S∗
i ∈ argmaxS vi(S) − p(S)
S1, . . . , Sm
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items.
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items.
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items. wjk = vi(Si) − vi(Si ∪ k \ j)
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items. wφik = vi(Si) − vi(Si ∪ k)
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items. wjφi0 = vi(Si) − vi(Si \ j)
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items. wφiφi0 = 0
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items.
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items.
such that S1, . . . , Sm Si ∈ argmaxS vi(S) − p(S)
add, remove or swap items.
graph has no negative cycle.
So let then: And since is locally-opt then it is globally opt. Conversely: Walrasian prices are a dual certificate showing that no negative cycles exist. pj = − dist(φ, j) vi(Si) ≥ vi(Si ∪ k \ j) − pk + pj dist(φ, k) ≤ dist(φ, j) + wjk Si
graph has no negative cycle.
So let then: And since is locally-opt then it is globally opt. Conversely: Walrasian prices are a dual certificate showing that no negative cycles exist. pj = − dist(φ, j) vi(Si) ≥ vi(Si ∪ k \ j) − pk + pj dist(φ, k) ≤ dist(φ, j) + wjk Si
find a partition of maximizing
find whether it is optimal.
find a price such that v1, . . . , vm : 2[n] → R S1, . . . , Sm [n] P
i vi(Si)
(S∗
1, . . . , S∗ m)
S∗
i ∈ argmaxS vi(S) − p(S)
S1, . . . , Sm
find a partition of maximizing
find whether it is optimal.
find a price such that v1, . . . , vm : 2[n] → R S1, . . . , Sm [n] P
i vi(Si)
(S∗
1, . . . , S∗ m)
S∗
i ∈ argmaxS vi(S) − p(S)
S1, . . . , Sm
find a partition of maximizing
find whether it is optimal.
find a price such that v1, . . . , vm : 2[n] → R S1, . . . , Sm [n] P
i vi(Si)
(S∗
1, . . . , S∗ m)
S∗
i ∈ argmaxS vi(S) − p(S)
S1, . . . , Sm
and a certificate = maximal Walrasian prices.
m W1 p
S1, . . . , Sm
wφik = vi(Si) − vi(Si ∪ k)+pk
wjφi0 = vi(Si) − vi(Si \ j)−pj
wjk = vi(Si) − vi(Si ∪ k \ j)+pk − pj
t = 1..n
Wt
[t] = {1..t}
Wt
and a certificate = maximal Walrasian prices.
m W1 p
S1, . . . , Sm t = 1..n
Wt
[t] = {1..t}
Wt
and a certificate = maximal Walrasian prices.
m W1 p
S1, . . . , Sm t = 1..n
Wt
[t] = {1..t}
Wt
φ t + 1
φ t + 1
φ t + 1
φ t + 1
O(t2 + mt) ˜ O(n3 + n2m)
˜ pj = − dist(φ, j) ˜ S1 . . . ˜ Sm S1 . . . Sm vi(Si) − ˜ p(Si) = vi( ˜ Si) − ˜ p( ˜ Si) ˜ S1 . . . ˜ Sm ˜ p
v1, v2 ∈ GS v1 + v2 ∈ GS
v1, v2 ∈ GS v1 + v2 ∈ GS
˜ v(S) = v(S) + p0 − P
i∈S pi
v1 ∗ v2(S) = maxT ⊆S v1(T) + v2(S \ T) ˜ v(S) = v(S|X)
v1, v2 ∈ GS v1 + v2 ∈ GS
˜ v(S) = v(S) + p0 − P
i∈S pi
v1 ∗ v2(S) = maxT ⊆S v1(T) + v2(S \ T) ˜ v(S) = v(S|X)
from matroid rank functions and those operations ?