Créer une présentation
Télécharger la présentation

Télécharger la présentation
## Cake Cutting is and is not a Piece of Cake

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -

**Cake Cutting is and is not a Piece of Cake**Jeff Edmonds, York University Kirk Pruhs, University of Pittsburgh**Informal Problem Statement**Resource allocation between n self possibly deceitful players**I like**I like 0 1 Classic Problem Definition = [0, 1] • n players wish to divide a cake • Each player p has an unknown value function Vp**v**I like x y 0 1 Classic Problem Definition = [0, 1] • 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]**v**I like x y 0 1 Classic Problem Definition = [0, 1] • 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**1/n**I like 0 1 Classic Problem Definition = [0, 1] • 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.**1/n**I like 0 1 Classic Problem Definition = [0, 1] • 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.**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**I like**I like I’ll take the right. 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. My half cut is here. I am a little jealous but I am happywith the left.**I like**I like O(n log n) Divide and Conquer Algorithm: Evan and Paz • Yp = cut(p, 0, 1/2) for p = 1 … n My half cut is here. My half cut is here.**I like**O(n log n) Divide and Conquer Algorithm: Evan and Paz • Yp = cut(p, 0, 1/2) for p = 1 … n My half cut is here.**O(n log n) Divide and Conquer Algorithm: Evan and Paz**• Yp = cut(p, 0, 1/2) for p = 1 … n • m = median(y1, … , yn)**I like**I like so am happy with the left. so am happy with the right. O(n log n) Divide and Conquer Algorithm: Evan 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)**Problem Variations**• Contiguousness: Assigned pieces must be subintervals • Approximate fairness: A protocol is 1/c-fair if each player is a assured a piece that he gives a value of at least 1/cn • 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]**Problem Variations**(Approximate) • Open: • Remove contiguous requirement for randomized alg, • Algorithm’s failure prob (1) vs 1/n(1) My grad student Jai.**Outline**• Deterministic Ω(n log n) Lower Bound • Definition of Thin-Rich Problem • Ω(log n) lower bound for Thin-Rich • (Skip) Randomized with Approximate Cuts Ω(n log n) Lower Bound • Randomized with Exact Cuts O(n) Upper Bound**At least n/2 players require thin rich piece**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 deterministic complexity of cake cutting is Ω(nlog n).**Alg**Adv • I dynamically choose how to answer • and the value function • so after O(logn) operationsAlg cant find a thin rich piece. • I give sequence of Eval[x,y] & Cut[x,v]operations.**Alg**Adv (log n) ... ... ... ... ... ... • I build a complete 3-ary treewith the n pieces as leaves**Alg**Adv ½ ¼ ½ ¼ ¼ ¼ (log n) ... ... ... ... ... ... • For each node, • I label edges • <½,¼,¼> or <¼,¼,½>**Alg**Adv ½ ¼ ½ ¼ ¼ ¼ ¼ ¼ ½ (log n) ... ... ¼ ¼ ... ... ... ½ ... 1/1024 = ¼×¼×½×¼×¼×½ • Value of each piece isproduct of edge labelsin path.**Alg**Adv ½ ¼ ½ ¼ ¼ ½ ¼ ¼ ½ (log n) ... ... ¼ ¼ ... ... ... ½ ... 1/256 = ½×¼×½×¼×¼×½ To get a rich pieceI need at least 40% of the edge labels in path be ½. Good luck**Alg**Adv 0.4398 0 y • I need to find a yso that V[0,y] = 0.4398. • Cut[0,0.4398]?**Alg**Adv 1/2 0 1 0.4398 0.4398 • I do binary search to find0.4398 • Cut[0,0.4398]? 1/4**Alg**Adv ¼ ½ ¼ 1/4 2/4 0.4398 • I do binary search to find0.4398 • I fix some edge labels • Cut[0,0.4398]?**Alg**Adv ¼ ½ ¼ 0.4398 0.4398 • I do binary search to find0.4398 • I fix some edge labels • Cut[0,0.4398]? 1/4 2/4 6/16 7/16 4/16 8/16**Alg**Adv ¼ ½ ½ ¼ ¼ ¼ 7/16 8/16 0.4398 • I do binary search to find0.4398 • I fix some edge labels • Cut[0,0.4398]?**Alg**Adv ¼ ¼ ½ ½ ½ ¼ ¼ ¼ ¼ 0.4398 29/64 28/64 • I do binary search to find0.4398 • I fix some edge labels • Cut[0,0.4398]?**Alg**Adv ¼ ¼ ¼ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ¼ 0.4398 112/256 113/256 • I do binary search to find0.4398 • I fix some edge labels • Cut[0,0.4398]?**Alg**Adv ¼ ¼ ¼ ½ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ¼ ¼ ¼ 0.4398 450/1024 451/1024 • I do binary search to find0.4398 • I fix some edge labels • Cut[0,0.4398]?**Alg**Adv ¼ ¼ ¼ ½ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ¼ ¼ ¼ 0.4398 1800/4096 1801/4096 ¼ ¼ ½ • I do binary search to find0.4398 • I fix some edge labels • Cut[0,0.4398]?**Alg**Adv ¼ ¼ ¼ ½ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ¼ ¼ ¼ 0.4398 y ¼ ¼ ½ • I find a yso that V[0,y] = 0.4398. • Cut[0,0.4398]?**Alg**Adv ¼ ¼ ¼ ½ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ½ • I learned a path,but all its labels are ¼ • Hee Hee**Alg**Adv ¼ ¼ ¼ ½ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ½ • YesAfter t operationsevery path has only t known ½ labels. • Every path has oneknown ½ label.**Alg**Adv ¼ ¼ ¼ ½ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ¼ ½ y x • I fix labels in path to x & y to ¼. • and give • Eval[x,y] = 0.00928 • Eval[x,y] 0.00928**Alg**Adv ¼ ¼ ¼ ½ ½ ½ ½ ½ ¼ ¼ ¼ ¼ ¼ ¼ ¼ (log n) ¼ ¼ ¼ ¼ ½ ¼ ¼ ¼ ¼ ½ That is bad.To get a rich pieceI need at least 40% of the edge labels in path be ½. • YesAfter t operationsevery path has only t½ known labels.**At least n/2 players require thin rich piece**Deterministic Ω(nlog n) Lower Bound • Theorem: The deterministic complexity of Thin-Rich is Ω(log n). • Theorem: The deterministic complexity of cake cutting is Ω(n log n).**Outline**• Deterministic Ω(n log n) Lower Bound • Randomized with O(n) Upper Bound • As intuition for the power of randomness, given 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**O(1) Complexity Randomized Protocol for Thin-Rich**• Pick an i uniformly at random from 0 … 3n-1 • x = Cut[0,i/3n] • y = Cut[ 0, (i+1)/3n] • Return [x,y] value = 1/3n (ie rich) Exp(width) = 1/3n (ie thin) 3n Candidate Pieces i x=i/3n y=(i+1)/3n**Randomized Protocol for Cake Cutting**Protocol Description: • Each player randomly selects 8 candidate pieces. • For each player, we carefully pick one of these**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. Works with probability Ω(1).**Balls and Bins**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.**Proof on Offline: O(1)-Balls**• 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**• Classic Theorem: If a graph G has n/3 independent edges, then G is acyclic with (1) prob. • Proof: Prob[G contains a cycle C] ≤ ΣC Prob[C is in the graph] ~ Σi (n choose i) * (1/3n)i=(1).**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**I like**I like I like Cake Protocol Ball & Bin Game Different if • Different cake values can make strangely overlapping candidate pieces.**Cake Protocol Ball & Bin Game**Different if • Different cake values can make strangely overlapping candidate pieces.**Vertex**Vertex Vertex Vertex Directed Graph for Cake Cutting (choose 2 not 8 candidate peices) If take Must take Can’t take**Must take**If take Must take Must take 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