MALE SPEAKER:: So thanks
for coming.
Today, we're very please to have
with us Vijay Vazirani
from Georgia Tech.
Vijay probably needs no
introduction, but I'm going to
give him one anyway,
a brief one.
He got his bachelor's degree
from MIT in '79 and him PhD
from Berkeley in '83.
By the way, we are going to be
taping this for Google Video,
so please keep confidential
questions
outside of the video.
But a couple other things.
V is very well-known for his
work in algorithms, including
combinatorial optimization
approximation algorithms,
randomized algorithms, parallel
algorithms and
mathematical economics.
And some of the more recent work
he's going to be talking
about today.
Many of you probably know his
2001 book on approximation
algorithms is kind of considered
the definitive book
in that area.
He's also fellow of the ACM and
also was recently a McKay
fellow at UC Berkeley.
So we're very pleased
to have Vijay here.
Thank you.
He'll be talking about markets
and the primal-dual paradigm.
VIJAY V. VAZIRANI: Thank you.
It's really a great pleasure
to be here--
in some sense, the mecca of
today's internet explosion
right here in your backyard.
So let me get this
rolling for us.
OK.
So I'm going to talk about
markets, and some of them
should be very familiar
to you.
So the notion of a market,
as you know, is a
very ancient one.
But it has undergone numerous
changes through the ages.
So for instance, when stock
markets got introduced, all of
a sudden we had new markets that
were never there before.
For instance, when stock markets
were introduced, you
could suddenly sell something
that you never owned.
But the only thing is that you
had to buy it back later at a
certain point.
So you could do things that
were inconceivable before.
And with the internet, there's
been another huge revolution
in the definition of a market.
And you folks are some of the
prime suspects here in this
revolution.
And there's also a massive
computational power available
for running these markets that
are internet based, either in
a centralized or distributed
matter.
And so it's really important to
find algorithms for these
markets and new models that
capture these new markets.
And fortunately at this point,
we also have a very powerful,
very well-studied, deep theory
of algorithms with very
powerful techniques.
And we can draw on it in a big
way to help us with our
development of algorithms.
What's really interesting, and
for me the most exciting aspect
of this work, is that
there's also traffic in
the other direction.
So this algorithmic study of
markets has given rise to some
really fundamental insights to
the theory of algorithms, and
I'll talk about those as well.
So can I assume everybody
knows this market?
Yeah?
Normally, my question is, can I
assume that everybody knows
about this company
called Google?
But then I have to talk about
the AdWords market typically.
So anyway, that's really
an incredibly exciting,
incredibly innovative market
which has totally
revolutionized advertising and
made possible Google available
at desktops 24/7 for free.
So these are amazing
developments, probably even
bigger than the stock market.
We'll see.
And there's, of course,
huge promise.
Huge amount of growth is
expected in these markets.
So it's very important to study
them for their own sake.
So let's start from the
beginning, though, of the
study of markets.
And that was really of central
importance in the West,
because the Western economy
was based on a
capitalistic system.
And so pricing mechanism were
doing everything for us.
Every important function was
simply relegated to pricing
mechanisms. Functions that you
would have given to some very
wise and benevolent person in a
more socialist environment--
like determining prices,
determining who's rich, who's
poor, who gets what, whether
the markets are efficient,
fair, stable.
And so mathematical economics
devoted a good part of itself
to the study of markets in a
formal mathematical setting.
And this particular
setting was called
general equilibrium theory.
And without a doubt, this
was the crowned jewel of
mathematical economics.
It was pioneered by a French
economist, Leon Walras.
And it soon moved to the Bay
area, where the central
theorem of this theory
was proven, the
Arrow-Debrey theorem.
And that established the
existence of equilibrium-- and
I'll talk about equilibrium
at length in a moment--
under some very general
conditions using Kakutani's
fixed point theorem, which
is a theorem in topology.
And notice here that it wasn't
sufficient to use Brouwer's
fixed point theorem, which
is based in analysis, but
Kakutani's which is
based in topology.
So it's a very abstract
theorem.
And as a result, there was no
way to translate this theorem
into an algorithm.
But Kenneth Arrow, who is
a professor emeritus at
Stanford, got a Nobel Prize
for this work in '72.
And I was just in Stanford three
days ago and met him for
the first time.
Quite a meeting.
And Gerard Debreu, who was at
Berkeley but passed away a
couple of years ago, was the
other author on that theorem.
So not only is the Arrow-Debreu
theorem itself
highly non-constructive, but
also this entire theory was
almost entirely non-algorithmic,
other than a
few isolated results.
And somehow that should be
expected, because these were
economists.
They were not algorithms
people.
And its our job to do
the algorithmic
version of this theory.
And that's what is needed
today, an inherently
algorithmic theory of market
equilibria and new models to
capture some of these
new markets.
So the beginnings of such a
theory has taken shape over
the last five or six years,
within this relatively nascent
field called algorithmic game
theory, which most of you must
have heard of.
It's really a field more
directed by the internet, and
I'll say more about how these
algorithms and game theory
have come together in such
a big way to make
this new field happen.
And the study of markets within
this field started with
combinatorial algorithms for
some of the traditional market
models given by Walras
and other people.
Yeah?
Oh, no.
Sorry.
But yes, feel free to stop
me at any point.
And new market models
are emerging.
And I'll talk about one.
It's not easy to give such
models, and you'll see why,
because if you have a new
market model, it should
capture one of the new markets
in a very simple way.
But in a way that's precise
enough for it to be useful.
It should also be amenable to
good efficient algorithms, and
it should have some nice
properties that these
traditional market
models have.
And I'll show you what I
consider an example of that.
But you are the final judge
on that really.
So coming back to the notion
of an equilibrium, so the
central tenet in general
equilibrium theory is that
there should be parity between
supply and demand.
And prices should be such that
they maintain this parity.
And these are called
equilibrium prices.
And this is very easy to achieve
if there's only one
good in the market, because you
just look at the demand
and supply curves and see
where they intersect.
And that's what determines
the prices.
Oh, at least this works.
And if you move away from these
equilibrium prices one
way or the other, there'll be
forces that force it back into
equilibrium.
So on the other hand, if you
have multiple goods and
multiple people, then it is
not even easy to define a
clean model that captures this
notion of parity between
supply and demand.
And what we're going to study
today, or rather look at
algorithms for today, is really
a fundamental model
given by Irving Fisher
in 1891.
And he was a PhD student at Yale
when he did this work.
And in some sense, this work was
contemporary with that of
Walras, independent of Walras.
So here's his model.
So imagine a market with some
goods, some given amounts of
these goods.
And these are infinitely
divisible goods, unlike, say,
cars or trucks which you
cannot really divide.
And let's say that a buyer
comes to this market.
That's your favorite Uncle
Scrooge with some money that
he wants to spend
in this market.
Now, he has linear utility
functions for these goods.
And I'm assuming linear just
because that's the easiest
case to consider.
And I'll soon switch
out of that case.
So here's his happiness function
as a function of the
amount of milk that he
gets in this market.
That's how his happiness goes.
And similarly, he has another
linear utility function for
bread and for cheese.
And his total utility given a
bundle of these goods is just
a sum of the utilities on
all these three goods.
And if we fix the prices of
these goods at any value, say
p1, p2, and p3, then we can
also compute what is his
optimal bundle of goods given
this money that he has to
spend in the market.
That's a similar linear
programming problem, and we
can solve that.
So now imagine that many, many
more ducks come to this market
with their own monies and their
own utility functions.
So we have several goods, fixed
amount of each good,
several buyers with their money
and utility functions.
And you want to find
equilibrium prices.
By that I mean that these are
prices such that if each buyer
gets an optimal bundle, then
there's no deficiency of
surplus of any of the goods.
So all the money gets spent and
all to goods get used up
to the last drop.
And there's no deficiency or
surplus of any of the goods.
And that's the condition
of parity
between supply and demand.
That's really a natural way to
capture this notion in the
case of multiple goods
and buyers.
If this model is not clear,
then we should stop.
And really, please feel
free to stop me at
any point for anything.
AUDIENCE: So is the last
commission necessary?
You can always define the cash
good, which is cash.
And then there won't
be any deficiency.
VIJAY V. VAZIRANI: We'll do
it in a different way.
For now, let's say that this
is the definition.
That's a complication and it
might be weaken the whole
definition otherwise.
So let's not go to
that right now.
Let's say that all the money has
to get used up and all the
goods have to be sold.
And we'll bring in utility
of money soon.
You're not happy.
AUDIENCE: No, it's fine.
VIJAY V. VAZIRANI: Oh, OK.
AUDIENCE: I'm wondering--
AUDIENCE: He's never happy.
AUDIENCE: --doesn't the utility
function have to be
[INAUDIBLE] for each
buyer to have--
VIJAY V. VAZIRANI: I'm not
saying that each buyer has a
unique optimal bundle.
In fact, with linear utilities,
each buyer will
have perhaps infinitely
many optimal
bundles, but that's OK.
As long as everybody gets
an optimal bundle.
We give them an optimal
bundle.
And then all the goods
need to clear.
AUDIENCE: Would it be the case
that they usually will buy
just one thing?
VIJAY V. VAZIRANI: Good.
Excellent question.
Excellent question.
Did everybody hear
that question?
So wouldn't it be that because
we have linear utility
functions everybody will
just buy one thing?
And yes, this will typically
be the case.
And that's why I'm saying think
of this as Markets 101.
And linear utilities is
not the place to stop.
But let me tell you that this is
not an easy case to handle
either algorithmically.
So we at least need
to solve this.
OK, so Irving Fisher actually
was way ahead of his times and
actually taught about the
computational aspect of this
question, of finding
equilibrium prices.
And he gave this hydraulic
apparatus for computing
equilibria for three goods
and three people.
So these cisterns
here encode the
particular utility functions.
And he was thinking of concave
utility functions for the
reason that somebody here said,
that the optimal bundle
should be unique.
And there are all these levers
here connected somehow.
And once you fill it with water
up to a certain point
and let all the levers settle
down, then you can read off
the prices of the three goods.
So first of all, this
doesn't scale.
And secondly, Herb Fisher, who's
a very distinguished
economist at Yale tried to
build this machine and he
failed, even though Irving
Fisher in the previous century
had made two of them.
But then Herb Scarf and his
students did a program to
stimulate this machine on a
computer, and that worked.
And you can actually find a
paper on his homepage saying,
How to Compute Equilibrium
Prices in 1891.
That's fairly long ago.
OK, so I'm going to start by
showing you first of all a
combinatorial polynomial time
algorithm for finding
equilibrium prices
for this market--
the linear case of
Fisher's model--
which we found about five years
ago, we being Christos
Papdimitriou, who's on the
faculty at Berkeley, Nikhil
Devanur, who is a student of
mine, just graduated, Amin
Saberi who was a student of
mine, but now is an assistant
professor at Stanford.
And I was on a sabbatical at
Berkeley with these two
students at that time.
And we found this algorithm
based on the primal-dual
paradigm, which you perhaps
know here is a very, very
fundamental algorithm
design technique.
It has led to algorithms these
very, very basic problems in P
and really good algorithms, with
good running times and
good approximation factors,
for all these NP-hard
problems. And you know these
problems have many, many
applications in the industry.
These are all very
famous problems.
In fact, two years ago in
Hungary, they celebrated the
50th anniversary of
the discovery of
this primal-dual schema.
It was given by Harold Kuhn in
a paper that was called The
Hungarian Method for the
Assignment Problem.
And he gave it for this
algorithm for the assignment
problem, which is weighted
bipartite matching.
And he called it the Hungarian
Method because of reverence to
the Hungarian combinators who
had been studying matching for
decades before this.
And of course, it's fitting that
the celebration was in
Budapest.
OK, so in all these algorithms
that I showed you, whether
they were exact or
approximation, the
primal-duals schema is run
in the setting of linear
programming and LP duality.
So you end up solving a
particular linear program,
either exactly or approximately,
getting
integral solutions
to the variables.
The special aspect of our
setting is that there are no
known LPs that capture
equilibrium allocations for
Fisher's model.
So how are we going to use
a primal-dual schema?
Well, it turns out that there
is, though, a nonlinear convex
program whose optimal solution
captures equilibrium
allocations.
And what is needed is an
extension of the primal-dual
schema from its original setting
of linear programming
duality theory to nonlinear
convex programming.
And that involves KKT conditions
and a lot more.
So I will certainly give you
a gist of the algorithm.
And I'll take you as far as you
feel like going into the
deeper aspects of how the
primal-dual schema is adapted
to this new setting.
And there's a lot more
to talk about.
So if you don't want to go into
the technical details,
you can skip those and go into
the new markets, which is
where Google really comes in.
So please, I'd love to get your
feedback on those aspects.
OK, so let me define Fisher's
linear case very formally,
very precisely.
So we have n buyers.
And mi is the money that buyer
i came to the market with.
And we have k goods.
And we can assume that we have
a unit amount of each good
without loss of generality,
because we can just scale the
utility functions
appropriately.
And let's say that uij did is
the utility derived by buyer i
when she obtains one
unit of good j.
And we know these uij's
for all i and j.
So if buyer i's full allocation
is xij for each
value of j--
so i will be buyers and
j will be goods.
So suppose I give you the entire
allocation of buyer i,
so I know xij for
each good j--
and this is a number between 0
and 1 because we have one unit
of each good--
then this linear sum gives me
the total happiness derived by
buyer i from this allocation.
And of course, in the setting
we want to find market
clearing prices, which means
prices such that relative to
them, if each buyer gets an
optimal bundle of goods, all
the goods clear completely,
exactly, and all the money
gets spent.
So that will be the formal
statement of the problem.
So before going into an
algorithm for that problem,
let me show you an algorithm for
an easier question, which
is suppose I give you some
prices, p, for the goods--
p1 through pn.
Tell me if they are equilibrium
prices.
And if so, tell me one way of
making allocations which are
equilibrium allocations so
that the market clears.
All right, that's a
reasonable goal.
Certainly, if we can compute
equilibrium prices, we should
be able to determine at least,
whether or not some given
prices are equilibrium prices.
Just a yes/no question there.
And one interesting fact about
this market is that
equilibrium prices are unique.
And that's a very good property
to have, because
equilibrium means you have
stability, that there are
operating points in the market
where there's parity between
supply and demand.
That's what you would really
like in the market.
You don't want huge changes
and turmoil.
But now if you have two
different equilibria, couldn't
you be oscillating between
these two?
So in this market,
there's only a
unique equilibrium price.
So that's very favorable
for us.
Now, let's define this notion
of bang-per-buck, which is
happiness per dollar spent.
So we are given these prices,
p, which we want to test
whether they are equilibrium
prices.
So for buyer i, let's see what
are her most desirable goods.
So uij is the happiness derived
by buyer i by getting
one unit of good j.
pj is the price of one
unit of good j.
So the ratio is the happiness
derived by buyer i on spending
$1 on good j.
So it's bang-per-buck.
And if you take the max of
this over all the goods--
so whatever are the goods that
achieve this maximum are the
only ones that give buyer i
maximum happiness, and the
only ones that she'll be really
interested in, in the
case of linear functions.
And to take your comment that
they're will typically be only
one good, typically, that
achieves this maximum, unless
there's an accident and
these ratios are
equal for two goods.
So let s be this set of goods
that achieved this maximum.
And any goods worth mi dollars
from the set s constitute
buyer i's optimal bundle.
So let's put down a graph where
we have a vertex for
each buyer, and these are the
monies that they came to the
market with, and a vertex for
each good, and these are the
prices of the goods.
And remember, we have assumed
one unit of each good.
So this is also the
total value of
this good that's available.
p1 is a total value of good 1
available, p2 the total value
of good 2 available and so on.
And we'll put an edge from this
buyer to this good if
this is her bang-per-buck good,
her best possible good.
So this buyer happens to have
two best possibly goods, this
only one, and so on.
Now how do we test whether or
not these prices, p, are
equilibrium prices?
Well, they'll be equilibrium
prices if and only if this
entire value sees this entire
value using only these edges.
So at this point it should be
obvious that we should think
of this as a flow problem.
Put down a [INAUDIBLE] vertex
here, and these edges with
capacities equal to the prices,
make these edges be of
infinite capacity, and put
capacities here equal to the
monies that these people came
to the market with,
and do a max flow.
And if that max flow, both of
these cuts are min-cuts, are
saturated in other words, then
we know that this value sees
this value exactly, using
exactly these edges.
And so these are equilibrium
prices.
Yes, sir.
AUDIENCE: Is that sufficient
[INAUDIBLE]
for it to happen?
VIJAY V. VAZIRANI: Yeah,
it is sufficient also.
The algorithm shows that it is
sufficient and that this will
happen eventually.
That's a good question.
And there could been many
different max flows in this
graph, but any one of them
will give you equilibrium
allocations.
Because you know, once you know
how much flow goes on
each edge, you divide the flow
by the price and you know how
much of this good
this person got.
So that's great.
We managed to solve one easy
problem, at least. But how do
we find prices?
So this was in case you were
given the prices, but how do
we find these prices?
So the idea of the algorithm
is to run
this primal-dual process.
And the primal variables
will be allocations.
So what is flowing on these
edges, that will be the primal
variables at any point in this
iterative algorithm.
And the dual variables
will be the current
prices of the goods.
And what we'll do is that we
will start out with them at
very low prices.
So think of these as
equilibrium prices.
We start with very low prices
which are guaranteed to be
less than the equilibrium
prices at each good.
And then at these prices, of
course, all goods can be sold,
but buyers will have
surplus money left.
And the whole idea of the
algorithm is to keep raising
these prices gradually so that
the surplus keeps depleting.
And when the surplus vanishes,
we'll have equilibrium.
So this is a bit different from
an algorithm that you may
think of where you take some
prices and raise them, and
maybe prices go beyond the
equilibrium price and then you
bring them down.
But if you're going to do that
kind of scheme, where you go
above and below the equilibrium,
then it turns out
that it's very difficult to
prove a good running time for
those kinds of algorithms.
People have tried very, very
hard to bound running times of
those kinds of algorithms and
it just doesn't work.
So that's why we are going to
approach equilibrium prices
from below and never exceed
equilibrium prices.
AUDIENCE: What about the
practice when you
actually run this--
VIJAY V. VAZIRANI: You cannot
prove polynomial termination.
AUDIENCE: Right.
But in practice, you don't
know whether it
will be below or--
VIJAY V. VAZIRANI: Yeah, it may
work out for a few goods
and a few people.
But if you go to more goods,
then it may take forever.
So the idea again
is primal-dual.
So we have these
initial prices.
With respect to this,
we get allocations.
But buyers have surplus money.
But these allocations tell us
how to improve the prices,
increase the price in other
words, and then we get
allocations with respect
to these increased
prices, and so on.
And each of these processes,
there are two processes here
that keep building on
the improvements
of the other process.
And somehow, this is a very,
very powerful paradigm--
that you have two processes and
each is improving on the
improvements made by
the other process.
Just very, very much similar
to when two people start
working on a problem, and that's
much more powerful than
just one person working
on a problem.
Because you can always make some
improvement and then give
it to the other person to
think for themselves.
And they have some other thought
processes which makes
the problem move in some
other direction.
And then you make some other
improvements and so on.
So an amazingly powerful
paradigm, this one.
So to make this paradigm work,
though, I have to tell you a
few things.
First of all, how do you make
sure that the equilibrium
price of a good is
never exceeded?
Because if it's exceeded, then
we have to bring it down.
And we don't know how to then
[? bond ?] the running time.
And for this, we have an
invariant that s should be a
min-cut in this network.
So we have this network relative
to whatever prices we
start with, and we make sure
that this is a min-cut.
So if these send max flow, all
of these goods will be sold
and there may be surplus
money left over here.
And that ensures that you
haven't exceeded the
equilibrium price of any good.
And then there's this motion
of a tight set.
So suppose prices are such that
p1 plus p2 equals m1 plus
m2 plus m3.
In other words, the total value
of these goods equals
the total money possessed
by buyers
interested in these goods.
Then if we increase the prices
any more, we will not be able
to sell these goods.
And in fact, s, this will
not be a min-cut.
The min-cut will go something
like this then.
Like that.
So these called tight sets.
And they indicate the fact that
the min-cut is just about
to get violated.
So when you get a tight
set, then you have to
freeze these prices.
And then there are many other
steps to the algorithm which I
will not get into, unless
the people want it.
And I can give you all the
details in the end.
But we have to make sure
that these steps--
whatever they are, that I have
hidden under the rug--
they happen fast, that rapid
progress is made, that you
don't have exponentially many of
these steps before you find
equilibrium prices.
Yes, sir.
AUDIENCE: I'm a little confused
as to in general
what's going on.
Because we know how
to solve max flow.
So why not just solve it and
look at the flow going through
these infinite capacities.
VIJAY V. VAZIRANI: But the
max flow is not enough.
So what we're going
to do here--
OK, good.
So we start with these very
low prices, then we are
increasing the prices.
As long as this is a min-cut we
can keep increasing prices.
When this is threatened, at that
point, we need to stop
increasing the prices.
So we need to determine
that point.
And also in the meantime, we
need to make sure that these
edges don't run away.
So we increase these prices
proportionately, proportionate
to each other.
That makes sure that those
just remain as they are.
And we do that by multiplying
all these prices by a variable
X, initializing X to 1 and
raising X. That makes sure
that these prices increase
proportionately
so these edges remain.
And at some point, let's say
a tight set happens.
Maybe the sum of those two
prices equals the money of
these three buyers.
Then those two prices
are frozen and we
only increase these.
When we increase these, a
new edge may commence.
Because those prices are not
increasing, those goods are
becoming better and better
for this buyer.
So a new image may come in.
And so these are the kinds of
steps that happen which are
the details that I was not
willing to get into.
And you keep doing these
improvements.
And in each of these iterations,
at least one of
these prices keeps increasing.
And so the surplus of these
buyers keeps decreasing.
And hopefully it terminates with
the zero surplus on the
buyers and then you
have equilibrium.
Yes, sir?
AUDIENCE: Can I ask
a quick question?
So one thing, from the
high-level description, it
seems like it's impossible
to happen.
Sounds like it doesn't, if
the fact of it is you're
approaching these [INAUDIBLE]
prices, your step size is
actually getting smaller
and smaller.
And so what is the intuition as
to why the decrease in the
derivative is smaller
than the--
[INTERPOSING VOICES]
VIJAY V. VAZIRANI: Good point.
Excellent point.
So what we can show is that
when goods freeze, the
denominator of the prices
is bounded.
You cannot have arbitrarily
small denominations.
So the denominator is bounded.
And that shows that between two
freezings, there must be a
certain minimum increase
in the prices.
So there's granularity in the
problem, and the step size
doesn't become smaller
than that.
So that's an excellent
question.
Yeah?
AUDIENCE: This seems to depend
crucially on the assumption
that the utility of a user,
i, for a good, j--
VIJAY V. VAZIRANI: Is linear.
AUDIENCE: Well, you
can't express--
if I go to buy a car, I
might look at Fords, I
might look at Chevys.
But my value for a Ford is
dependent on the fact that I
don't buy a Chevy.
I only want one car, but I'm
looking at two different goods
which are dependent
on each other.
So my utility for these
two goods is
dependent upon each other.
A utility for something like
the sum of these two.
VIJAY V. VAZIRANI: No.
I mean, you would have
some [? a priori ?]
utility for a Ford
and for a Chevy.
And then you go to the market.
And then depending on the price,
you say, OK, this is
bang-per-buck for me, and
then you buy that.
End of story.
That's the process we
are considering.
We are not going into the next
round of thinking that, OK,
now that I have bought
a Chevy, am I also
going to buy a Ford?
And if it is--
whatever.
So the market model was the one
that I gave earlier, the
very simple one where we have
these utilities for goods.
And we will go out and get
an optimal bundle.
And once you get that, the
story ends for us.
There's no second round
of afterthoughts.
AUDIENCE: Right.
But you'd assume that you can
express the utility uniquely
in terms of that good,
independent of all of the--
VIJAY V. VAZIRANI: Look, there
are many different ways to
think about utility.
And I'm going to actually
define for you a very
different way of thinking
about it.
What you're giving me is
yet another way of
thinking about utility.
You can bring in all kinds of
bells and whistles into it.
No question about it.
I'm thinking of a very simple
utility function.
But there's no issue of any
afterthoughts after having
bought something.
The whole question is what
are you going to buy
once and for all.
And so my main presentation here
is that utility function,
really, in some sense.
OK, so to make sure that rapid
progress is made, we have this
notion of a balance flow.
And now, I'm getting
technical.
Please raise your hands if you
don't want me to pursue this
line too much further.
So what's a balance flow?
So this was the network that we
had with crisis and monies
and buyers and goods and these
bang-per-buck edges.
And let's say with respect to
any max flow, f, in this
graph, let's look at the surplus
capacity of this edge,
which is the money that buyer
i came to the market with
minus the flow on this
edge, i to t.
That's a surplus
capacity there.
And the surplus vector is the
vector of surpluses with
respect to this flow, f.
And a balance flow is a max
flow that minimizes the L2
norm of the surplus vector, the
L2 norm being the sum of
the squares of the components
square root, or equivalently,
you could be minimizing
the L2 square norm.
And what on earth does that have
to do with anything here?
Well, there's a fantastic
property that comes with this
balance flow which is critical
in the algorithm, and I will
not go into that because to tell
you how it fits into the
algorithm is a lot of detail.
In any case, this property
characterizes balance flows
with respect to all max
flows in this network.
And these pieces that I've
just introduced, these
bang-per-buck edges, the
invariant, the tight sets, and
these balance flows, these
pieces fit just right and make
the algorithm happen.
And in fact, this property one
of balance flows saves the
moment in a way that
is very scary--
almost thinking that there's a
bug here, but it goes through.
So that was the gist
of the algorithm.
And here's the part where I
wanted to show you if you
wish, how this primal-dual
schema is adapted to this
nonlinear setting.
So what we want is a convex
program whose optimal solution
is equilibrium allocations.
And of course, the constraints
in this convex program should
be packing constraints on
these variables, xij.
But the question is
what should the
objective function be?
And the objective function
should somehow maximize the
utilities of all the buyers.
And here are some conditions
that the objective function
should satisfy.
So here, every duck came with
his or her own utility
function and something that
they, themselves, told us.
Now, if this duck is going to
multiply all of her utilities
by 200, that will still be her
utility function and it hasn't
changed anything.
What is important is how much
this duck wants these goods
relative to each other.
And so if you scale the
utilities by any constant, the
optimal allocations should
remain unchanged.
That should be certainly
satisfied.
Secondly, if we take Uncle
Scrooge here and split his
money among two other ducks,
and their utility functions
are identical to that of Uncle
Scrooge, and we solve this
equilibrium problem, get the
allocations for these two
ducks, and give the union of
these two allocations to Uncle
Scrooge, that should be an
optimal allocation for Uncle
Scrooge also.
That's a reasonable property
that follows from linearity.
And the unique objective
function that helps you do
that is this money-weighted
geometric mean of the utilities.
So this is the total utility
of buyer i, total
money of buyer i.
So if I remove this part,
that's still OK.
And if I take the log of this,
that's still OK, and that's
what we'll use.
So that's the objective
function.
Summation of mi log ui, where
ui is the total happiness of
buyer i and this is the
constraint that only one unit
of good j is sold.
And of course, all of the
allocations have to be
non-negative.
And this was given by
Eisenberg and Gale.
You may have heard
of David Gale.
He's the famous Gale of the
Gale-Shipley algorithm for
stable marriage.
He's a professor at Berkeley.
And Eisenberg was also
a professor at
Berkeley at some point.
AUDIENCE: So geometric
mean [INAUDIBLE]?
VIJAY V. VAZIRANI: It's
sometimes though because of
those two issues.
Those two issues are essentially
one function that
satisfies those properties.
AUDIENCE: So this looks a
little bit like entropy.
Does that mean anything or is
it just a complete fluke?
VIJAY V. VAZIRANI: Not like
entropy, actually.
More like Nash's bargaining
problem.
So the dual [INAUDIBLE]
variables or the Lagrange
variables correspond to these
constraints will be the prices.
And that's how we run the
primal-dual algorithm.
And using these KKT conditions,
we can show that
optimal allocations, so the
optimal values of this will be
equilibrium allocations
for Fisher's model.
And there are just two things
I want to say about it in
order to speed things up, which
is that in this case, in
our algorithm, there are two
big points of departure.
The first one is that whereas
in the normal primal-dual
algorithm, these complementary
slackness are satisfied in a
discreet manner, one
per iteration.
Here, these KKT conditions
are satisfied in
a continuous process.
And after this talk, I can
describe to anybody who's
interested in this part.
And so this question of finding
a strongly polynomial
algorithm for this problem
becomes really a good open
problem, because this continuous
process takes
polynomial time, but not
strongly polynomial time.
And because these KKT conditions
are much more
involved than complementary
slackness conditions of linear
programming, what happens is
that these edges in this
network that I was
talking about,
they appear and disappear.
And that kind of an algorithmic
change also is
difficult to handle in terms
of running time, and that's
the other big hurdle that
we had to cross.
So I will not get into the huge
amount of technicalities
involved here.
Instead, if you want, I
can seek a question.
Or else, I have another plan of
action which is to throw a
few eggs at these linear
utility functions.
Yes?
AUDIENCE: If we want to read,
is that the same paper that
talks about the [INAUDIBLE]
conditions on the utility and
this makes them [INAUDIBLE]?
VIJAY V. VAZIRANI: No, that's
the next paper.
I'll give you the URLs
for the two papers.
Yes, sir?
AUDIENCE: So this primal-dual
thing is really reminiscent of
Gibbs sampling.
I wonder if you've considered
doing a
stochastic variant to this.
VIJAY V. VAZIRANI: No,
that's a little bit
distant from our plan.
But we should talk about it.
So here, we've dealt with linear
utility functions.
But these are very primitive,
because as our friend remarked
here, a buyer typically ends up
spending all her money on
only a single good, unless there
are accidents and two or
more goods give her the same
bang-per-buck at equilibrium.
Also this model doesn't satisfy
the fact that buyers
could get satiated with goods.
They keep getting the same
happiness for any amount of
good received.
So concave utility functions are
very nice from both these
points of view.
And they give rise to very
expressive utility functions.
And the economists love them.
But they do not satisfy this
key monotonicity property
which is actually satisfied by
linear utility functions, and
which is the reason that
that algorithm
that I gave you works.
And getting a polynomial time
algorithm for concave utility
functions remains as a very
key, big open problem.
So after this algorithm got
done, I started working on
piecewise linear and concave
utility functions, just
because a single piece of this
is just linear utilities.
So when you have more than
one piece, you get
something more general.
And the reason also was that if
this gets solved, then we
can approximate any concave
utility functions by this
piecewise linear and concave
and get some kind of an
approximation algorithm
for the concave case.
And these piecewise linear ones
also do not satisfy weak
gross substitutability.
But anyway, after having put
in a fair amount of work, I
though I had the entire
algorithm for this case.
And with a moment of great joy
before, came a moment of great
disappointment when I discovered
a pretty serious
bug in that algorithm, basically
coming out of the
fact that the weak gross
substitutability was not
satisfied, which was not a
notion that I know at that
point five years ago, because
I was picking up general
equilibrium theory as
I was going along.
So I was quite desperate to
salvage whatever I could of
these ideas which had taken
so long to gel.
And then the following
idea came up.
Namely, first of all, let's
differentiate this piecewise
linear curve and--
oops, what do we get?
Yeah.
So if we differentiate
it, we'll get this
step decreasing function.
What does this mean?
So let's say there's this buyer
who's buying chocolates,
and this is the rate at which
she gets happiness per
chocolate eaten for so many
chocolates eaten.
And then she gets happiness at
this rate per chocolate eaten
for so many chocolates eaten.
And then at this rate per
chocolate eaten, and so on.
And we hope she stops
at some point.
But that's what it means.
So there's really no
change right now.
All I've done is differentiate,
and that
doesn't give rise to
any new function.
But now what I want is that
instead of the abscissa being
amount of chocolates, it should
be the amount of money
spent on chocolates.
So I'm asking this buyer to
give me her happiness in a
different form altogether, which
is quite unrelated from
the previous function.
I'm telling her to tell me at
what rate is she deriving
happiness per chocolate eaten as
a function of the amount of
money spent on chocolate.
So she could be deriving
happiness at this rate per
chocolate eaten for the first
$10 spent on chocolates, and
then at this rate for the
next $15 spent on
chocolates and so on.
AUDIENCE: There's a class
scheduled in here at 2:00.
MALE SPEAKER:: We'll be done
in two minutes just
[INAUDIBLE].
VIJAY V. VAZIRANI: Two?
[LAUGHTER]
VIJAY V. VAZIRANI: Can
we go somewhere else?
MALE SPEAKER:: We can try.
AUDIENCE: [INAUDIBLE]
MALE SPEAKER:: Better
keep going.
AUDIENCE: Just to give this
information without knowing
the price--
VIJAY V. VAZIRANI: Without
knowing the price.
If you know the price,
you can translate
between one and the other.
But that's why this
is a totally
different utility function.
But it makes sense.
Let me show you why.
So I call this spending
constraint utility functions.
And the second thing I did was
to extend the model so that
buyers also have happiness for
money, which is a question
that was asked.
And all of that also
works out.
And this guy is very happy
because he's very stingy and
he likes to take back
money home.
So this is good for him.
And with all these changes, I
managed to get a polynomial
time algorithm.
And again, equilibrium
prices are unique.
And what happened really in
retrospect was that--
AUDIENCE: We manage
ten minutes.
VIJAY V. VAZIRANI: OK, great.
Thank you.
So weak gross substitutability,
this key
monotonicity condition
came back somehow.
And that's what made the
algorithm work out.
But in the meantime, everything
became much, much
more complex.
All these pieces that I showed
you became twisted and turned
and new pieces came in.
But still, they managed to
fit just right somehow.
And that's the wonderful
thing.
And that's how the polynomial
time algorithm came about.
And this model, I must say,
is more in the line of Don
Patinkin's work in economics
than Walras's original work.
And then there was an
unexpected fallout.
So this has applications to
Google's AdWords market, and
which is the most important
thing I want
to talk about here.
So I'll leave this diversion
to be very, very small.
Basically, there's this issue
that Monika Henzinger, who was
the CTO of Google here,
gave us this problem.
Find an algorithm
that maximizes
Google's online revenue--
an online algorithm that
maximizes Google's revenue.
So the problem is that--
oops, what's happened--
there are these companies that
have bid for these keywords
and declared their
daily budget.
And a user has just typed
in the query asbestos.
And if Google wanted to just
present one ad to her for
simplicity, which one
should Google pick?
There are these two options,
$70 bid but $5,000 daily
budget, or $50 bid and
$7,000 daily budget?
So that's an online issue that
Google needs to decide within
milliseconds.
And so this can be
presented as an
online algorithms problem.
And in these kinds of
algorithms, you compare
against the best offline
algorithm that knows all the
queries of the day beforehand
and does an optimal allocation
of keywords to advertisers.
And I just wanted to show you
that the Greedy algorithm will
not work here, will give
you only half optimal.
But let's jump right
through that.
And oop-oop-oop-oop-oop.
And this work, with Amin Saberi,
who's at Stanford, and
Aranyak Mehta, who's actually
been offered a job in your
group somewhere, in Shiva
Kumar's group.
And this is Umesh Vazirani,
who is on the faculty at
Berkeley, my brother.
We got a 1 minus 1 over
e factor algorithm.
And this is the optimal
online algorithm for
this particular problem.
You cannot do better.
So let me do this thing.
Tie up the threads for the two
minutes that I have. So assume
tomorrow that Google doesn't
want to do these very
expensive, or very time
consuming elaborate auctions
on a daily basis or on an hourly
basis, but just wants
to announce equilibrium prices
of per-click for keywords,
just so when we go to the
market, we don't do an auction
where somebody says bread is so
much per loaf and cheese is
so much per pound.
So the question is, how should
Adwords advertisers specify
their utility functions so that
Google arrives at the
equilibrium prices?
The advantage of equilibrium
prices, which means parity
between supply and demand,
is that you get pareto
optimality, It's an efficient
allocation in
every possible way.
So you don't want to just
fix arbitrary prices.
You want to do it through
some systematic way.
And so the question is what
kind of a utility function
should you use?
And of course, firstly, it has
to be expressive enough that
the business can specify its
very complex desires.
And that could mean model the
entire economy to find out
what's their optimal
allocation.
But that's not what we want to
do, because after all, we want
efficient computability.
And it should be easy to
specify utilities.
So linear functions are bad
because throughout the day,
the business will get only one
type of query because of the
issue that you raised.
Because typically only one good
is optimal in linear.
Concave, there's no efficient
algorithm, and I cannot
imagine any advertiser giving
you a concave function for a
set of keywords allocations.
And in fact, my central point
here is that it should be
easier for a business to say how
much they want to spend on
each kind of keyword for a given
range of prices on the
keywords rather than giving
any kind of a concave
happiness function.
So now let's assume that there's
this online shoe
business which has two keywords,
men's clogs and
women's clogs.
And they have an advertising
budget of $100 per day.
And through statistical
information, they know that $2
per click is the expected profit
on the first keyword,
and $4 per click on the
second keyword.
And their consideration for
long-term profits are that
they should be able to sell both
the goods on most days.
Not only men's clogs on one
day and women's clogs on
another day.
And in fact, they should have a
presence in the market, even
if both the keywords are not
profitable, just because for
the long-term profit of
the business, these
are important issues.
And so all these traditional
utility functions will not
allow you to do that.
They don't want you
to make a loss.
So they have a very complex
criteria for what's a good
allocation.
So if both keywords are
profitable, and if the better
one is at least twice as
profitable, then spent all
$100 on that.
Otherwise, spend $60 on the
more profitable and $40
on the other one.
If neither keyword is
profitable, then spend $20 on
the more profitable one, even
though it's giving you a loss,
just to have a presence
in the market.
If only one is profitable, and
very profitable, then the
whole $100 on that.
Otherwise $60 on that and
take back $40 home.
So they have some very complex
allocation criteria like that.
And these particular utility
functions and the spending
constraint utilities
will do the job.
So next, suppose that Google
stays with auctions but allows
the user advertisers to specify
their bids in the
spending constraint model,
because then you can have some
decreasing utilities
in these steps.
I just want to end by saying
that you all are perhaps aware
of the fact that algorithms
and game theory had common
origins, certainly in the works
of von Neumann, who's
the founder of game theory.
And he was also the architect
of the stored program
computers and really genuinely
an algorithms
person very early on.
And then some of the biggest
figures in algorithm and game
theory were common people,
people who were doing work in
both areas--
Dantzig, David Gale, Kuhn,
Scarf, Tucker, and so on.
And then years ago, the two
fields started moving along
separate directions with very
little interaction.
And about five or six years ago,
or maybe seven years ago,
things got together again
because of the internet and
all the applications arising
and networking and so on.
And there's a huge synergy
here in this field of
algorithm and game theory.
We have a book coming out.
I'm one of the co-editors.
There are four co-editors.
And there are 29 chapters
from 40 authors.
This will be out in August. And
I just want to say that
the study of markets in
particular has a huge
potential to give rise to new
ideas, certainly in game
theory, like the ones for
Google's AdWords market.
For algorithms, for math
programming, there are some
very interesting open
problems here.
And very recently, together
with the Ramesh Johari of
Stanford and Nick Feamster of
Georgia Tech, we proposed a
new architecture for internet
connectivity, which is based
on a free market principle.
So it turns out that although
the internet hosts all these
fantastic markets, and you've
employed the best economists
in the world to come and give
you the best principles to run
these markets, the underlying
connectivity market of the
internet is run in the most
primitive and in the most
inefficient way.
There's a huge amount of
connectivity that's never
utilized because these two ASs
never got into a dark alley to
shake their hands and form
a business relationship.
Or the routes chosen are
extremely long when they could
have just gotten two routers
that are core-located in the
same building to have a common
link and get a much more
efficient path.
None of these things are
happening because the whole
system is based on a very
primitive, essentially a
bartering kind of a system.
Whereas we could be using some
of these principles from
mathematical economics.
And so what we have proposed
is a new architecture.
And Nick Feamster just gave a
talk on it at Princeton--
that was yesterday--
and got some amazing feedback,
especially from the industrial
folks that were there.
So I just want to say that the
study of markets is really a
key study, key aspect of
algorithms and game theory.
And we can expect a lot
of benefit from it.
So thank you.
