University of Pittsburgh
Market Equilibrium via a
Primal-Dual-Type Algorithm
Written By
Nikhil R. Devanur, Christos H. Papadimitriou,
Amin Saberi, Vijay V. Vazirani
Presented by
Zhouyan Wang
Advised by
Prof. Kirk Pruhs
November 18, 2003
CS 3150
Page 1 out of 20
University of Pittsburgh
Outline
Introduction
Basic Algorithm:
--- Basic Idea
--- High Level Idea
Algorithm with Polynomial Time
CS 3150
Page 2 out of 20
University of Pittsburgh
Introduction
Definition
• Set A --- n Goods with each price pj
• Set B --- n’ Buyers with amount ei budget
• uij --- the utility derived by i on obtaining a
unit amount of goods j
• Buyer will use all his money to buy the
goods with Max (uij / pj ) since he will get
the maximal satisfaction.
CS 3150
Page 3 out of 20
University of Pittsburgh
Introduction
Graph
Buyers
Goods
u11 /p1
e1
u1n
1, 2, …,i,… n’
en’
p1
/pn
1, 2, …,j,… n
un’1/p1
un’n /pn
ei : Budget
pn
pj :Price
CS 3150
Page 4 out of 20
University of Pittsburgh
Introduction
Problem
The question is:
--- How to find the market clearing
prices?
--- Namely, find the prices for goods such
that the buyers will use up all money on
hand to buy goods and there are no goods
left in the market?
CS 3150
Page 5 out of 20
University of Pittsburgh
Introduction
Literature Review
First defined by Irving Fisher in 1891
No Algorithm with polynomial time has
been found
This paper finds such algorithm by
assuming uij is a linear function of the
amount of goods
CS 3150
Page 6 out of 20
University of Pittsburgh
Basic Algorithm
Basic Idea
In the bipartition Graph(A,B), add a source s and
sink t
There is an edge from source to every goods.
Their capacity is pj
For every buyer i and goods j, connect them by an
edge only if goods j can give buyer i the maximal
utility per dollar and its capacity of the edge is infinite
There is an edge from buyer i to sink t and its
capacity is ei
CS 3150
Page 7 out of 20
University of Pittsburgh
Basic Algorithm
New Graph
Buyers
1
Goods
1
Infinite
e1
p1
Sink
j
2, …,i,…
en’
ei : Budget
n’
Source
pj
pn
pj :Price
n
CS 3150
Page 8 out of 20
University of Pittsburgh
Basic Algorithm
Primal Dual Type Algorithm
In order to find the clear price, solve the max
flow problem by:
Keep the price low such that all goods will
always be sold out: (s, A U B U t) is the min cut
--- Invariant Property.
And then increase the prices gradually such that
all buyers have spent all their money.
CS 3150
Page 9 out of 20
University of Pittsburgh
Basic Algorithm
High Level Idea
Define
1. For S B, Define its money as m(S ) iB ei
2. For S A, Define its money as m(S ) iB pi
3. For S A, Define its neighborhood:
N (S ) { j B i S , (i, j ) G}
Lemma: For given prices p, graph satisfies the
Invariant IFF
S A : m( S ) m( N ( S ))
CS 3150
Page 10 out of 20
University of Pittsburgh
Basic Algorithm
High Level Idea,Cont.
Define:
1. Tight Set: a unique maximal set S A, such that
m( S ) m( N ( S ))---
be frozen by the algorithm
2. Active Sub-graph:( A S , B N ( S ))
3. Drop the edges (i,j) with i N ( S ), j ( A S )
Lemma: If the Invariant holds and S A is the tight
set, then each goods j ( A S ) has an edge to certain
buyer i ( B N ( S ))
CS 3150
Page 11 out of 20
University of Pittsburgh
Basic Algorithm
High Level Idea,Cont.
Then gradually raise the prices of all goods in the
active graph by the same pace xp, then:
Event 1: A nonempty set R goes tight. Add it to
the tight set and continue the next iteration.
Event 2: An edge (i,j) with i ( B N ( S )), j S
becomes an equality edge. Suppose j Sl , remove
component (Sl, Tl) into the active subgraph.
CS 3150
Page 12 out of 20
University of Pittsburgh
Basic Algorithm
Find Tight Sets
Let x* denote the value at which a nonempty set goes tight
S* denote the tight set at prices x*p
Lemma: For prices (x p)
If x <= x*, then (s, A U B U t) is a min-cut
If x > x*, then (s, A U B U t) is not a min-cut.
Moreover, if (s U A1 U B1, A2 U B2 U t) is a min-cut in
G(x p), then S* A1
CS 3150
Page 13 out of 20
University of Pittsburgh
Basic Algorithm
Find Tight Sets, Cont.
Lemma: x* and S* could be found using n max-flow
computations.
Proof: Let x = m(B)/m(A). Clearly, x >= x*. If (s, A U B U t) is a
min cut in G(x P), then by the above lemma, we get: x = x* and
S* = A.
Otherwise, let (s U A1 U B1, A2 U B2 U t) be the min cut.
By the above lemma again, S* A1 A. Therefore, it is
sufficient to get S* by at most n recursions on the smaller graph
(A1, N(A1)).
CS 3150
Page 14 out of 20
University of Pittsburgh
Basic Algorithm
Basic Algorithm
Partition the whole algorithm into phases, each
phase terminates with the occurrence of Event 1
Each phase is partitioned into iterations which
conclude with a new edge entering the equality
subgraph (Event 2)
Define M be the total money possessed by the buyers
f be the max flow in the graph at prices P
M – f is the surplus money with buyers.
CS 3150
Page 15 out of 20
University of Pittsburgh
Basic Algorithm
Basic Algorithm, Cont.
Let U max iB , jA{uij } and nU n
Lemma 1: Each phase consists of at most n iterations. At
the termination of a phase, the prices of the goods in the
newly tight set must be rational numbers with
denominator
Lemma 2: Consider two phases P and P’ , not
necessarily consecutive, such that goods j lies in the
newly tight sets at the end of P as well as P’. Then the
increase in the price of j, going from P to P’ is 1 / 2
CS 3150
Page 16 out of 20
University of Pittsburgh
Basic Algorithm
Basic Algorithm, Cont.
Lemma 3: After k phases, f k / 2
Corollary 4: The algorithm will end with market
clearing price in at most M /(1 / 2 ) M2 phases, and
execute n M2 iterations or n 2 M2 times of computations.
CS 3150
Page 17 out of 20
University of Pittsburgh
Advanced Algorithm
Advanced Algorithm
After the each phase in the basic algorithm, instead of
freezing the tight set by prices p, we add one more step:
Let 0 be fixed and ADD to the price of each
active subgraph and find a min cut in graph G that
maximizes the s-side. Let S ' A be the subset of A on
the s-side of the min cut. Freeze ( S ' , N ( S ' )) .
Clearly, S S ' and m( N ( S )) m( S ) S
The algorithm will continue the next phase from the
prices p, so Invariant will be maintained.
CS 3150
Page 18 out of 20
University of Pittsburgh
Advanced Algorithm
Advanced Algorithm,Cont.
However, for the set of goods in the active subgraph
A' :
S A': m( N (S )) m(S ) S
Namely,the next phase must increase f by at least .
Consider the situation when all goods are frozen and call
it as an epoch.
After the 1st epoch, the total surplus is n , set
/ e and run the next epoch…
CS 3150
Page 19 out of 20
University of Pittsburgh
Advanced Algorithm
Advanced Algorithm,Cont.
Consider the epoch that 1 /( n ) .At the end
2
of this epoch, the surplus f 1 / , and we will set 0
for the next epoch.
1st
2
By Lemma 2, the next epoch will be the final epoch
and we will get the market clearing prices.
Lemma: The number of total phases is: O(ln( M2 ))
and the total iterations are O(n(ln( M )))
2
CS 3150
Page 20 out of 20
© Copyright 2026 Paperzz