Lecture Notes on Cake Cutting & Fair Division, Thursday 9/18/2003, CS70

The cake-cutting problem:
  We have a cake, and n people who want to split it amongst themselves.
  However, each person might value different portions of the cake
  differently.  (I like flowers; you hate them.  I hate icing; you
  prefer it.)  What's worse, we don't trust each other!  What can we
  do?

A protocol is *fair* for X if the following property is true:
If X follows the party, then X gets at least 1/n-th of the cake
(by X's measure), no matter how the other parties behave.
The protocol is *fair* if it is fair for all parties.

For n=2: cut-and-choose protocol
1. Alice cuts the cake into two equal pieces (equal by her measure)
2. Bob chooses whichever piece looks larger (by his measure)
3. Alice takes the remaining one
Theorem: Cut-and-choose is fair.
Proof: If Alice follows the protocol, she gets exactly 1/2 (by her
measure), no matter how Bob behaves.
Next Let's consider Bob.  When it is time for him to choose,
he sees two pieces, one worth W and the other worth 1-W (by his measure).
It is guaranteed that either W >= 1/2 or 1-W >= 1/2 (if W < 1/2 and
1-W < 1/2, then 1 = W+1-W < 1/2 + 1/2 = 1, which is impossible).
Therefore, if Bob follows the protocol, he gets at least 1/2 by his
measure.  QED

Puzzle: Is there a general algorithm for fair cake-cutting for n>2?

For general n:
   If n=2, use cut-and-choose.  Otherwise:

   Let first n-1 people divide the cake using a recursive
   call to this procedure.
   Then the nth person steps in and
   asks each of the first n-1 people to divide her share into
   n equal pieces (by her measure).
   Finally, the nth person goes around and collects the
   largest (in his view) of the n pieces from each of the other people.
   
   Does each think they've got at least 1/n of the whole pile
   (by their measure)?
   For first n-1 people, yes, since they get
   >= 1/(n-1) after recursive call, divide this into pieces each of
   size >= 1/n(n-1), and then get n-1 of these pieces.
   For last person, yes, since he gets at least x_i/n from the ith
   person, if ith person's whole share is worth x_i.  Also,
   x_1 + ... + x_{n-1} = 1, so last person's total share is
   x_1/n + ... + x_{n-1}/n >= 1/n.  Therefore:
Theorem: This protocol is fair.
Proof: By induction on n.  We've proved the base case (n=2).
The inductive step is exactly what appears in the previous paragraph. QED.

This general protocol can be implemented as a recursive program.
  Q: What's the running time?
  A: n! > 2^n ... which is exponential. yuck.

Q: Can it be done in time polynomial in n?



Puzzle: Find a fair cake-cutting protocol with running time polynomial in n.
One answer: A moving knife.
Move a knife slowly from left to right.  When area to the left of the knife
covers at least 1/n-th of the cake by your measure, yell "Stop!". First person
to yell "Stop!" gets everything to the left of the knife, and we continue.

However, we might prefer to avoid using moving knifes.
Q: Why not use a moving knife?
A: hard to implement in a distributed system without time synchronization


Puzzle: Find a fair cake-cutting protocol with running time polynomial in n,
with no use of moving knives.
One solution:
  Take the n-party moving knife algorithm, and translate it into
  a non-moving-knife protocol by having each person cut at first
  point they'd yell "Stop!".  Take the smallest piece and give it to
  the person who cut there.  Then, continue dividing up the rest of the
  cake up among the remaining n-1 parties.
Running time: O(n^2) basic operations

A protocol is *envy-free* for X if it has the following property:
if X follows the protocol, then X gets at least as much (by X's measure)
as anyone else gets (by X's measure), no matter how the other parties behave.
A protocol is *envy-free* if it is envy-free for all participants.

Q: Is 2-party cut-and-choose envy-free?
A: Yes  (do you see why?)

Q: Is the recursive algorithm I gave last time envy-free for n=3?
  (i.e., A+B cut-and-choose, then divide their pieces into 3 sub-pieces;
   C gets to choose one sub-piece from A & one from B)
A: No.
  (A+B might conspire to give whole cake to A; then C gets 1/3,
   but A gets 2/3, not envy-free)

Q: Is the 3-party moving knife algorithm envy-free?
  (i.e., move knife slowly to right until someone yells Stop!, repeat)
A: No.
  (suppose A yells Stop! first.  then B+C might conspire to give
   all of remainder to B and none to C, not envy-free)

By the way, this is a non-zero-sum game.
Non-zero sum games often allow everyone to come away with better
than 1/n-th of the cake.

An example of "arbitrage" and a non-zero-sum game:
  Alice believes that Gore will win the election with probability
  5/8. Bob believes that Bush will win the election with probability
  3/4. 

  Assuming that Alice and Bob are both willing to accept any bet
  that gives them a positive expectation of winning, did you know
  that there's a way to place bets with both of them so that you can
  make money for certain? 

  Here's what you can do. Bet with Alice that you'll pay her $2 if
  Gore wins and she'll pay you $3 otherwise. Alice agrees because
  her expectation is: $2(5/8)-$3(3/8)=$1/8. 

  Bet with Bob that you'll pay him $2 if Bush wins, and he'll pay
  you $3 otherwise. Bob agrees because his expectation is
  $2(3/4)-$3(1/4)=$3/4. 

  Alice and Bob both believe they have positive expectation, but
  you will win for certain: if either Bush or Gore wins, you will net
  a dollar!  
Credits: http://www.math.hmc.edu/funfacts/ffiles/30003.6.shtml


An envy-free cake-cutting protocol for n=3 people:
http://www.math.hmc.edu/funfacts/ffiles/30001.4-8.shtml

Problem: polynomial-time envy-free cake-cutting protocol for all n
(This might be open?)