Cake Cutting is and is not a Piece of Cake
description
Transcript of Cake Cutting is and is not a Piece of Cake
![Page 1: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/1.jpg)
Cake Cutting is and is not a Piece of Cake
Jeff Edmonds, York UniversityKirk Pruhs, University of Pittsburgh
Jaisingh Solanki, York University
![Page 2: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/2.jpg)
Toronto Star
![Page 3: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/3.jpg)
Informal Problem StatementResource allocation between n self possibly deceitful players
![Page 4: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/4.jpg)
Classic Problem Definition• n players wish to divide a cake • Each player p has an unknown value function
Vp
0 1
I like I like
= [0, 1]
![Page 5: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/5.jpg)
Classic Problem Definition• n players wish to divide a cake • Each player p has an unknown value function
Vp
• Allowed Operations :– Eval[p, x, y]: returns how much player p
values piece/interval [x, y]
0 1
I like
= [0, 1]
x y
v
![Page 6: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/6.jpg)
Classic Problem Definition• n players wish to divide a cake • Each player p has an unknown value function
Vp
• Allowed Operations :– Eval[p, x, y]: returns how much player p
values piece/interval [x, y] – Cut[p, x, v]: returns a y such Eval[p,x, y] = v
0 1
I like
= [0, 1]
yx
v
![Page 7: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/7.jpg)
Classic Problem Definition• n players wish to divide a cake • Each player p has an unknown value function
Vp
• Goal: Fair cut Each honest player p is guaranteed a piece
of value at least 1/n.
0 1
I like
= [0, 1]
1/n
![Page 8: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/8.jpg)
Classic Problem Definition• n players wish to divide a cake • Each player p has an unknown value function
Vp
• Goal: Fair cut Each honest player p is guaranteed a piece
of value at least 1/n.
0 1
= [0, 1]
I like
1/n
![Page 9: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/9.jpg)
History• Originated in 1940’s school
of Polish mathematics• Picked up by social scientists
interested in fair allocation of resources
• The subject of a handful of books (e.g Brams and Taylor, and Robertson and Webb) and many papers
• A quick Google search reveals cake cutting is used as a teaching example in many algorithms courses, e.g CMU CS 15-451 and CMU CS 15-750
![Page 10: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/10.jpg)
Continuous Moving Knife Algorithm
• Protocol moves the knife continuously across the cake until the some player say stop.
• This player gets this piece.• The rest of the players continue
StopI’ll take it.
We did not likethat piece anyway.•Moving knife
considered cheating by discrete alg.We do not consider them here.
![Page 11: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/11.jpg)
Classic Alg: Cut and Choose (n=2)
• Person A cuts the cake into two pieces• Person B selects one of the two pieces,
and person A gets the other piece Careful.
I like
My half cut is here.I am a little jealous
but I am happywith the left.
I like
I’ll take the right.
![Page 12: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/12.jpg)
O(n log n) Divide and Conquer Algorithm: Even and Paz
• Yp = cut(p, 0, 1/2) for p = 1 … n
I like
My half cut is here.
I like
My half cut is here.
![Page 13: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/13.jpg)
O(n log n) Divide and Conquer Algorithm: Even and Paz
• Yp = cut(p, 0, 1/2) for p = 1 … n
My half cut is here.
I like
![Page 14: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/14.jpg)
O(n log n) Divide and Conquer Algorithm: Even and Paz
• Yp = cut(p, 0, 1/2) for p = 1 … n
• m = median(y1, … , yn)
![Page 15: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/15.jpg)
O(n log n) Divide and Conquer Algorithm: Even and Paz
• Yp = cut(p, 0, 1/2) for p = 1 … n
• m = median(y1, … , yn)
• Recurse on [0, m] with those n/2 players p for which yp < m
• Recurse on [m, 1] with those n/2 players p for which yp > m
• Time O(nlogn)
so am happy with the left.
I like I like
so am happy with the right.
![Page 16: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/16.jpg)
Problem Variations
• Contiguousness: Assigned pieces must be subintervals
• Approximate fairness: A protocol is c-fair if each player is a assured a piece that he gives a value of at least c/n
• Approximate queries (introduced by us?):– AEval[p, ε, x, y]: returns a value v such that
Vp[x, y]/(1+ε) ≤ v ≤ (1+ ε) Vp[x, y]– ACut[p, ε, x, v]: returns a y such
Vp[x, y]/(1+ε) ≤ v ≤ (1+ ε) Vp[x, y]
![Page 17: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/17.jpg)
Problem Variations
Deterministic vs. Randomized
Exact vs. Approximate Queries
Exact vs. O(1) Fairness
Contiguous vs. General Pieces
Complexity = number of queries
Reference
* Exact * * O(n log n) Even and Paz 1984
* * Exact Contiguous Ω(n log n) Sgall and Woeginger 2003
Deterministic * * * Ω(n log n) Edmonds and Pruhs
* Approximate * * Ω(n log n) Edmonds and Pruhs
Randomized Exact Approximate General O(n) Edmonds and Pruhs
Edmonds and Solanki
(Approximate)
Open: Remove contiguous requirement for randomized alg
failure prob O(1) vs 1/nO(1)
![Page 18: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/18.jpg)
Outline
• Deterministic Ω(n log n) Lower Bound– Definition of Thin-Rich Problem– Ω(log n) lower bound for Thin-Rich
• Randomized with Approximate Cuts Ω(n log n) Lower Bound
• Randomized with Exact Cuts O(n) Upper Bound
![Page 19: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/19.jpg)
Thin-Rich Game• Game Definition:
Single player must find a thin rich piece.– A piece is thin if it has width ≤ 2/n
– A piece is rich if it has value ≥ 1/2n
• Theorem: The deterministic complexity of Thin-Rich is Ω(log n).
• Theorem: The deterministic complexity of cake cutting is Ω(nlog n).
–At least n/2 players require thin rich piece
![Page 20: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/20.jpg)
Adv
I give sequence of Eval[x,y] & Cut[x,v]
operations.
Oh!
I dynamically choose how to answer
and the value functionso after O(logn) operations
Alg cant find a thin rich piece.
Alg
![Page 21: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/21.jpg)
AdvAlg
I can choose any non-continuous
thin piece,but W.L.G.
I choose one of these.
I cut the cake in to n thin pieces.
![Page 22: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/22.jpg)
AdvAlg
I build a complete 3-ary treewith the n pieces
as leaves
... ... ... ...
......
![Page 23: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/23.jpg)
AdvAlg
For each node,I label edges
<½,¼,¼> or <¼,¼,½>
½¼ ¼½ ¼¼
... ... ... ...
......
![Page 24: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/24.jpg)
AdvAlg
Value of each piece isproduct of edge labels
in path.
½¼ ¼½ ¼¼
... ... ... ...
......
½
¼
¼
¼¼
½1/1024 = ¼×¼×½×¼×¼×½
![Page 25: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/25.jpg)
AdvAlg
½¼ ¼½ ¼¼
... ... ... ...
......
½
½
¼
¼¼
½
To get a rich pieceI need at least 40% of the edge labels
in path be ½.
Good luck
1/256 = ½×¼×½×¼×¼×½
![Page 26: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/26.jpg)
AdvAlgCut[0,0.4398]?
I need to find a yso that
V[0,y] = 0.4398.
y0
0.4398
![Page 27: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/27.jpg)
AdvAlgCut[0,0.4398]?
1/40 1/2 1
I do binary search to find0.4398
0.43980.4398
![Page 28: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/28.jpg)
AdvAlgCut[0,0.4398]?
½¼ ¼1/42/4
0.4398
I do binary search to find0.4398
I fix some edge labels
![Page 29: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/29.jpg)
AdvAlgCut[0,0.4398]?
½¼ ¼1/42/4
4/166/16
7/168/16
0.43980.4398
I do binary search to find0.4398
I fix some edge labels
![Page 30: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/30.jpg)
AdvAlgCut[0,0.4398]?
½¼ ¼¼½ ¼
7/16
0.4398
8/16
I do binary search to find0.4398
I fix some edge labels
![Page 31: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/31.jpg)
AdvAlgCut[0,0.4398]?
½¼ ¼¼½ ¼
½¼ ¼28/6429/64
0.4398
I do binary search to find0.4398
I fix some edge labels
![Page 32: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/32.jpg)
AdvAlgCut[0,0.4398]?
½¼ ¼¼½ ¼
½¼ ¼½¼ ¼
0.4398
112/256113/256
I do binary search to find0.4398
I fix some edge labels
![Page 33: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/33.jpg)
AdvAlgCut[0,0.4398]?
½¼ ¼¼½ ¼
½¼ ¼½¼ ¼
¼½ ¼450/1024
451/1024
0.4398
I do binary search to find0.4398
I fix some edge labels
![Page 34: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/34.jpg)
AdvAlgCut[0,0.4398]?
½¼ ¼¼½ ¼
½¼ ¼½¼ ¼
¼½ ¼
¼ ½¼
0.4398
1800/40961801/4096
I do binary search to find0.4398
I fix some edge labels
![Page 35: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/35.jpg)
AdvAlgCut[0,0.4398]?
½¼ ¼¼½ ¼
½¼ ¼½¼ ¼
¼½ ¼
¼ ½¼
0.4398
I find a yso that
V[0,y] = 0.4398.
y
![Page 36: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/36.jpg)
AdvAlgI learned a path,
but all its labels are ¼
½¼ ¼¼½ ¼
½¼ ¼½¼ ¼
¼½ ¼
¼ ½¼
Hee Hee
![Page 37: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/37.jpg)
AdvAlg
½¼ ¼¼½ ¼
½¼ ¼½¼ ¼
¼½ ¼
¼ ½¼
Every path has one
known ½ label.
YesAfter t operations
every path has only t known ½ labels.
![Page 38: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/38.jpg)
AdvAlg
½¼ ¼¼½ ¼
½¼ ¼½¼ ¼
¼½ ¼
¼ ½¼
Eval[x,y]
¼ ¼¼
¼¼
¼
x y
I fix labels in path to x & y to ¼.
and giveEval[x,y] = 0.00928
0.00928
![Page 39: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/39.jpg)
AdvAlg
½¼ ¼¼½ ¼
½¼ ¼½¼ ¼
¼½ ¼
¼ ½¼
¼ ¼¼
¼¼
¼ ½
YesAfter t operations
every path has only t ½ known labels.
That is bad.To get a rich pieceI need at least 40% of the edge labels
in path be ½.
![Page 40: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/40.jpg)
Deterministic Ω(log n) Lower Bound
• Theorem: To win at Thin-Rich, the alg has to get a rich piece with at least 40% of the edge labels in path be ½.
• Theorem: After t operations, every path has only t ½ labels.
• Theorem: The deterministic complexity of Thin-Rich is Ω(depth) =Ω(log n)
![Page 41: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/41.jpg)
• Theorem: The deterministic complexity of Thin-Rich is Ω(log n).
• Theorem: The deterministic complexity of cake cutting is Ω(n log n).
–At least n/2 players require thin rich piece
Deterministic Ω(nlog n) Lower Bound
![Page 42: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/42.jpg)
Outline
• Deterministic Ω(n log n) Lower Bound
• Randomized with Approximate Cuts Ω(n log n) Lower Bound
• Randomized with Exact Cuts O(n) Upper Bound
Done
Randomized Approximate Cuts
![Page 43: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/43.jpg)
AdvRand Alg
I define a randomized algorithm
I must choose the value functions
Show after O(nlogn) operations Alg fails whp.
I flip coins to give sequence of
Eval[x,y] & Cut[x,v]operations.
i.e. not dynamically
![Page 44: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/44.jpg)
AdvRand Alg
I define a randomized algorithm
I flip coins to give sequence of
Eval[x,y] & Cut[x,v]operations.
I deterministically give sequence of
Eval[x,y] & Cut[x,v]operations.
I specify a distribution on value functions.
I flip coins.Show after O(nlogn)
operations Alg fails whp.
RandAdv
Alg
Yao
I must choose the value functions
Show after O(nlogn) operations Alg fails whp.
![Page 45: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/45.jpg)
AdvRand
Alg
½¼ ¼½ ¼¼
... ... ... ...
......
For each node,I randomly label edges
<½,¼,¼>, <¼,½,¼>, or <¼,¼,½>
¼¼ ½
![Page 46: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/46.jpg)
AdvAlg
Consider path to x and y.
Flip coins for labels.
33% of labels will be ½.
¼
¼
¼
¼
¼
½¼
¼
¼
¼
¼
½
½
¼
½
½
Eval[x,y]
But I need 40%!
x y
½ ¼
![Page 47: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/47.jpg)
AdvAlgI flip coins for path to x’
and get 33% ½.
¼
¼
¼
¼
¼
½¼
¼
¼
¼
¼
½
½
¼
½
½
x y
½ ¼
Cut[x’,0.4398]?
x’
¼
¼
¼¼
¼
½
½
½
![Page 48: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/48.jpg)
AdvAlg
I do binary search for 0.4398,
but for some odd reasonit finds 40% ½ labels.
¼
¼
¼
¼
¼
½¼
¼
¼
¼
¼
½
½
¼
½
½
x y
½ ¼
Cut[x’,0.4398]?
x’
¼
¼
¼¼
¼
½
½
½
½½
½¼
¼
![Page 49: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/49.jpg)
AdvAlg
Luckily I can give error
and this hides most of the labels.
¼
¼
¼
¼
¼
½¼
¼
¼
¼
¼
½
½
¼
½
½
x y
½ ¼
Cut[x’,0.4398]?
x’
¼
¼
¼¼
¼
½
½
½
½½
½¼
¼
![Page 50: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/50.jpg)
Outline
• Deterministic Ω(n log n) Lower Bound
• Randomized with Approximate Cuts Ω(n log n) Lower Bound
• Randomized with Exact Cuts O(n) Upper Bound
Done
Done
Randomized Exact CutsUpperO(n)
![Page 51: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/51.jpg)
Outline
• Randomized with O(n) Upper Bound– As intuition for the power of randomness, give
a randomized algorithm for Thin-Rich with O(1) complexity
– Describe “Balls and Bins” special case of cake cutting
– Give “random graph” proof of “Balls and Bins” case
– Give the flavor of the “random graph” proof for Cake Cutting
– Decrease failure probability
![Page 52: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/52.jpg)
Thin-Rich Game• Game Definition:
Single player must find a thin rich piece.– A piece is thin if it has width ≤ 3/n
– A piece is rich if it has value ≥ 1/3n
• Theorem: The deterministic complexity of Thin-Rich is Ω(log n).
• Theorem: The randomized complexity of Thin-Rich is O(1).
• Must make sure the player’s thin pieces don’t over lap too much.
![Page 53: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/53.jpg)
1. Pick an i uniformly at random from 1 … 3n
2. x = Cut[0,(i-1)/3n]
3. y = Cut[ 0, i/3n]
4. Return [x,y]value = 1/3n (ie rich)
Exp(width) = 1/3n << 3/n (ie thin)
O(1) Complexity Randomized Protocol for Thin-Rich
i
x=(i-1)/3n y=i/3n
3n Candidate Pieces
![Page 54: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/54.jpg)
Randomized Protocol for Cake Cutting
Protocol Description:• Each player randomly selects 8 candidate
pieces.• For each player, we carefully pick one of these
![Page 55: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/55.jpg)
Randomized Protocol for Cake Cutting
Protocol Description:• Each player randomly selects 8 candidate
pieces.• For each player, we carefully pick one of these
– so that every point of cake is covered by at most O(1) pieces.
• Where there is overlap, recurs.Fails with probability 0(1).1/nO(1).
O(1)
![Page 56: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/56.jpg)
Two Random Choices: n balls, 3n bins each ball randomly chooses two bins.# Hits: Whp no bin has more than O(logn) balls.Choice: Select one of two bins for each ball.Online: Whp no bin has more than O(loglogn)
balls.
Balls and Bins
![Page 57: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/57.jpg)
Two Random Choices: n balls, 3n bins each ball randomly chooses two bins.# Hits: Whp no bin has more than O(logn) balls.Choice: Select one of two bins for each ball.Online: Whp no bin has more than O(loglogn)
balls.
O(loglogn) balls per bin
Balls and Bins
![Page 58: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/58.jpg)
Two Random Choices: n balls, 3n bins each ball randomly chooses two bins.# Hits: Whp no bin has more than O(logn) balls.Choice: Select one of two bins for each ball.Online: Whp no bin has more than O(loglogn)
balls.Offline: Whp no bin has more than O(1) balls.
O(1) balls per bin
Balls and Bins
![Page 59: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/59.jpg)
• Consider a graph G– Vertices = bins– One edge for each ball connecting the
corresponding vertices– Important: Edges are independent
• Lemma: If G is acyclic then the maximum load is 1
Proof on Offline: O(1)-Balls
![Page 60: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/60.jpg)
• Classic Theorem: If a graph G has n/3 independent edges, then G is acyclic with prob.
• Proof: Prob[G contains a cycle C]
≤ ΣC Prob[C is in the graph] ~ Σi (n choose i) * (1/3n)i
= (1).
Proof on Offline: O(1)-Balls
![Page 61: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/61.jpg)
Cake Protocol Ball & Bin Game Same if• Each player has uniform value on cake, so all candidate pieces are the same.• Each player randomly selects 2 (or 8)
candidate pieces.• For each player, pick one of these.• O(1) over lap = O(1) balls per bin
![Page 62: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/62.jpg)
Cake Protocol Ball & Bin Game Different if• Different cake values can make strangely overlapping candidate
pieces.
I like I like I like
![Page 63: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/63.jpg)
Cake Protocol Ball & Bin Game Different if• Different cake values can make strangely overlapping candidate
pieces.
![Page 64: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/64.jpg)
Cake Protocol Ball & Bin Game Different if• Different cake values can make strangely overlapping candidate
pieces.
![Page 65: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/65.jpg)
Directed Graph for Cake Cutting (choose 2 not 8 candidate peices)
VertexVertex
Vertex Vertex
If take
Can’t take Must take
![Page 66: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/66.jpg)
One Difficulty
Theorem: Sufficient Condition • If there is not directed path between
the two pieces of the same person• then maximum load is at most 1
If take
Must take
Must take
Must take
![Page 67: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/67.jpg)
Another Difficulty:
Edges May Not be Independent
VertexVertex
Vertex Vertex
Vertex Vertex
Theorem: If we select 8 candidate pieces
and narrow these down to 2,
then likely, there are not many dependent edges.
![Page 68: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/68.jpg)
Example: Too many Vees
•If independent,
•Exp(# of Vees) = n3 × 1/n × 1/n = (n)
•Choose 2 candidate pieces
•Exp(# of Vees) = n3 × 1/n × 1 = (n2)
Vee
![Page 69: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/69.jpg)
Example: Too many Vees
•Choose 2 candidate pieces
•Exp(# of Vees) = n3 × 1/n × 1 = (n2)
n/2
n/2
Vee
![Page 70: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/70.jpg)
Example: Too many Vees
•Choose 2 candidate pieces
•Exp(# of Vees) = n3 × 1/n × 1 = (n2)
•Choose 8 candidate pieces•Exp(# of Vees) = … = (n)
n/2
n/2
and narrow these down to 2
Vee
![Page 71: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/71.jpg)
Too many Self Paths
Independent
•If independent, •Exp(# of self paths) = like in balls & bins = (1)
•Choose 2 candidate pieces •Exp(# of self paths) = (n)
•Choose 8 candidate pieces and narrow these down to 2•Exp(# of self paths) = … = (1)
Vee
Prob(none) (1)
![Page 72: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/72.jpg)
Theorem: With O(1) probability,there is not directed path between the two pieces of the same person
Conclusions
For each player, can pick one of these 8.• so that every point of cake
is covered by at most O(1) pieces. Where there is overlap, recurs.
![Page 73: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/73.jpg)
Problem Variations
Deterministic vs. Randomized
Exact vs. Approximate Queries
Exact vs. O(1) Fairness
Contiguous vs. General Pieces
Complexity = number of queries
Reference
* Exact * * O(n log n) Even and Paz 1984
* * Exact Contiguous Ω(n log n) Sgall and Woeginger 2003
Deterministic * * * Ω(n log n) Edmonds and Pruhs
* Approximate * * Ω(n log n) Edmonds and Pruhs
Randomized Exact Approximate General O(n) Edmonds and Pruhs
Edmonds and Solanki
(Approximate)
failure prob (1) vs 1/n(1)
A piece of cake.
![Page 74: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/74.jpg)
Theorem: With O(1/n) probability,there is not directed path between the two pieces of player Pi. If so Pi is “bad”.
Conclusions
Run the algorithm twice, independently. Each player stays in one run in which it is
“good”.Pr[Pi is bad in both runs] = O(1/n2)
Pr[Some player is bad in both runs] = n × O(1/n2)
![Page 75: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/75.jpg)
Conclusions
For each run, each of its good playerscan pick one of these 8 so that every point of cake is covered by at most O(1) pieces.
Run 1
Run 2
Theorem: With O(1/n) probability,each run has no bad directed paths.
Where there is overlap, recurs.
![Page 76: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/76.jpg)
ConclusionsTheorem: Alg fails with prob O(1/n).
Theorem: Alg fails k times with prob O(1/nk).
Repeat k times.
![Page 77: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/77.jpg)
Outline
• Deterministic Ω(n log n) Lower Bound
• Randomized with Approximate Cuts Ω(n log n) Lower Bound
• Randomized with Exact Cuts O(n) Upper Bound
Done
Skipped
Done
A piece of cake.
![Page 78: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/78.jpg)
Future Directions
• Determine whether randomization makes sense with cheaters
• The complexity of several variations of fair division is still not completely nailed down
• Complexity of envy free division is quite wide open– Exponential difference in upper and
lower bounds– Current project
![Page 79: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/79.jpg)
End
![Page 80: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/80.jpg)
Informal Problem StatementResource allocation between
n self-interested players
![Page 81: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/81.jpg)
AdvRand Alg
I flip coins to give sequence of
Eval[x,y] & Cut[x,v]operations.
I dynamically choose error in answers
so after O(nlogn) operationsAlg fails whp.
![Page 82: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/82.jpg)
AdvRand Alg
I deterministically give sequence of
Eval[x,y] & Cut[x,v]operations.
I flip coins to choose value function.
I dynamically choose error in answers
so after O(nlogn) operationsAlg fails whp.
RandAdv
Alg
Yao
I flip coins to give sequence of
Eval[x,y] & Cut[x,v]operations.
I dynamically choose error in answers
so after O(nlogn) operationsAlg fails whp.
![Page 83: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/83.jpg)
O(1) Complexity Randomized Protocol for Thin-Rich
For i=0…n, xi = Cut[0,i/n], Cuts cake into n “candidate” pieces.
Each piece has value 1/n for player.
Different widths, but average is 1/n.
We will choose a random one for player. It is likely has width 2/n.
i.e. thin and rich. Constant time?
![Page 84: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/84.jpg)
Example: Too many Vees
Exp(# of Vees) = n3 × 1/n × 1/n = (n)
n/2
Exp(# of Vees) = (1) × (n2)
n/2
![Page 85: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/85.jpg)
Example: Too many Vees
If independent,
Exp(# of Vees) = n3 × 1/n × 1/n = (n)
![Page 86: Cake Cutting is and is not a Piece of Cake](https://reader036.fdocuments.us/reader036/viewer/2022062806/56814f05550346895dbc994c/html5/thumbnails/86.jpg)
Another Difficulty:
Forks
Fork of depth 3
Theorem: If we select 2d candidate pieces
and narrow these down to 2,
then likely, there are none of these.