Dividing a Cake Fairly among n players Thomas Yeo

Slides:



Advertisements
Similar presentations
Comp 122, Spring 2004 Order Statistics. order - 2 Lin / Devi Comp 122 Order Statistic i th order statistic: i th smallest element of a set of n elements.
Advertisements

Introduction to Algorithms Quicksort
CSC 421: Algorithm Design & Analysis
Cakes, Pies, and Fair Division Walter Stromquist Swarthmore College Rutgers Experimental Mathematics Seminar October 4, 2007.
Algorithms Analysis Lecture 6 Quicksort. Quick Sort Divide and Conquer.
Better Ways to Cut a Cake Steven Brams – NYU Mike Jones – Montclair State University Christian Klamler – Graz University Paris, October 2006.
Mathematical Induction
Outline. Theorem For the two processor network, Bit C(Leader) = Bit C(MaxF) = 2[log 2 ((M + 2)/3.5)] and Bit C t (Leader) = Bit C t (MaxF) = 2[log 2 ((M.
Quick Sort, Shell Sort, Counting Sort, Radix Sort AND Bucket Sort
CSC 331: Algorithm Analysis Divide-and-Conquer Algorithms.
Induction Lecture 5: Sep 21 (chapter of the book and chapter of the notes)
Spring 2015 Lecture 5: QuickSort & Selection
Selfridge-Conway Fair Division Procedure An Envy-Free Cake Division Procedure.
Lau Ting Sum Samson Suen Wai.  Discuss what fairness is  Describe some methods for fair division: 1. Divide-and-choose 2. Last Diminisher 3. Selfridge-Conway.
NOT JUST A CHILD’S PLAY CAKE CUTTING. How does one fairly divide goods among several people?
Data Structures Data Structures Topic #13. Today’s Agenda Sorting Algorithms: Recursive –mergesort –quicksort As we learn about each sorting algorithm,
CMPS1371 Introduction to Computing for Engineers SORTING.
Sorting Heapsort Quick review of basic sorting methods Lower bounds for comparison-based methods Non-comparison based sorting.
Tirgul 10 Rehearsal about Universal Hashing Solving two problems from theoretical exercises: –T2 q. 1 –T3 q. 2.
Sorting21 Recursive sorting algorithms Oh no, not again!
CS 206 Introduction to Computer Science II 12 / 05 / 2008 Instructor: Michael Eckmann.
Recursion. Objectives At the conclusion of this lesson, students should be able to Explain what recursion is Design and write functions that use recursion.
CS 206 Introduction to Computer Science II 12 / 03 / 2008 Instructor: Michael Eckmann.
This material in not in your text (except as exercises) Sequence Comparisons –Problems in molecular biology involve finding the minimum number of edit.
Induction and recursion
Improved results for a memory allocation problem Rob van Stee University of Karlsruhe Germany Leah Epstein University of Haifa Israel WADS 2007 WAOA 2007.
Copyright © Cengage Learning. All rights reserved.
Algebra Problems… Solutions Algebra Problems… Solutions © 2007 Herbert I. Gross Set 24 By Herbert I. Gross and Richard A. Medeiros next.
10/14/ Algorithms1 Algorithms - Ch2 - Sorting.
Chapter 14: Fair Division Part 4 – Divide and Choose for more than two players.
The Selection Problem. 2 Median and Order Statistics In this section, we will study algorithms for finding the i th smallest element in a set of n elements.
Chapter 14: Fair Division Part 5 – Defining Fairness.
Discrete Structures Lecture 12: Trees Ji Yanyan United International College Thanks to Professor Michael Hvidsten.
By: Lokman Chan Recursive Algorithm Recursion Definition: A function that is define in terms of itself. Goal: Reduce the solution to.
Fair Division Ch. 13 Finite Math. Fair division There are about 1.2 million divorces every year in the U.S. alone. International disputes redefine borders.
CS 206 Introduction to Computer Science II 04 / 22 / 2009 Instructor: Michael Eckmann.
Review 1 Selection Sort Selection Sort Algorithm Time Complexity Best case Average case Worst case Examples.
UNIT 5.  The related activities of sorting, searching and merging are central to many computer applications.  Sorting and merging provide us with a.
ALGORITHMS.
1 Searching and Sorting Searching algorithms with simple arrays Sorting algorithms with simple arrays –Selection Sort –Insertion Sort –Bubble Sort –Quick.
1 Algorithms CSCI 235, Fall 2015 Lecture 19 Order Statistics II.
PROBLEM-SOLVING TECHNIQUES Rocky K. C. Chang November 10, 2015.
Intro To Algorithms Searching and Sorting. Searching A common task for a computer is to find a block of data A common task for a computer is to find a.
The bin packing problem. For n objects with sizes s 1, …, s n where 0 < s i ≤1, find the smallest number of bins with capacity one, such that n objects.
Pass the Buck Every good programmer is lazy, arrogant, and impatient. In the game “Pass the Buck” you try to do as little work as possible, by making your.
Sorting Fundamental Data Structures and Algorithms Aleks Nanevski February 17, 2004.
Instructor: Shengyu Zhang 1. Resource allocation General goals:  Maximize social welfare.  Fairness.  Stability. 2.
Young CS 331 D&A of Algo. Topic: Divide and Conquer1 Divide-and-Conquer General idea: Divide a problem into subprograms of the same kind; solve subprograms.
Quicksort This is probably the most popular sorting algorithm. It was invented by the English Scientist C.A.R. Hoare It is popular because it works well.
Quick Sort Modifications By Mr. Dave Clausen Updated for Python.
Section 1.7. Definitions A theorem is a statement that can be shown to be true using: definitions other theorems axioms (statements which are given as.
Recursion. Objectives At the conclusion of this lesson, students should be able to Explain what recursion is Design and write functions that use recursion.
Chapter 15 Running Time Analysis. Topics Orders of Magnitude and Big-Oh Notation Running Time Analysis of Algorithms –Counting Statements –Evaluating.
Copyright © Cengage Learning. All rights reserved. 4 Integrals.
8.3.2 Constant Distance Approximations
CSC 421: Algorithm Design & Analysis
CSC 421: Algorithm Design & Analysis
Sorting Chapter 13 presents several common algorithms for sorting an array of integers. Two slow but simple algorithms are Selectionsort and Insertionsort.
CSC 421: Algorithm Design & Analysis
Fair Division Introduction.
Intro to the Fair Allocation
Binary Search Back in the days when phone numbers weren’t stored in cell phones, you might have actually had to look them up in a phonebook. How did you.
3.5 Minimum Cuts in Undirected Graphs
Topic: Divide and Conquer
Sorting Chapter 13 presents several common algorithms for sorting an array of integers. Two slow but simple algorithms are Selectionsort and Insertionsort.
CSC 421: Algorithm Design & Analysis
Topic: Divide and Conquer
Copyright © Cengage Learning. All rights reserved.
The Selection Problem.
Presentation transcript:

Dividing a Cake Fairly among n players Thomas Yeo Advisor: Prof. B. Prabhakar Network Group, Electrical Engineering Department, Stanford University

Topics Outline: The Different Definitions of Fairness Simple Fairness, Case n = 2 Simple Fairness, Case n = 3, Finite Algorithm Simple Fairness, Case n = 3, Infinite Algorithm Minimizing the Number of Cuts Required Other Criteria: An Envy-Free Algorithm Example Why Disagreeing might be Better Conclusion: Applicability to Real Life

Different Definitions of Fairness Problem Statement: Given a cake, devise a procedure to divide it fairly among n players Aim: In this presentation, we shall try to provide some intuitive understanding of cake sharing algorithms. For detailed proofs, we recommend the book by Robertson and Webb Examples of definitions of fairness: 1) Simple Fair: Each gets at least 1/n 2) Strong Fair: Each gets more than 1/n 3) Envy-Free: No one thinks another has a strictly larger piece 4) Super Envy-Free: Each thinks everyone else gets less than 1/n 5) Exact: Everyone thinks everyone gets exactly 1/n. Some criteria are subsets of others. For example, Simple Fair is the weakest criterion, implied by all the other four criteria

Simple Fairness, case n = 2 A simple solution is: 1) Player A cuts the cake into what he considers to be two equal halves 2) Player B picks one of the 2 pieces 3) Player A gets the remaining piece Why is this simple fair? Although both A and B are guaranteed a piece which they consider to be at least half, would you rather be player A or B? Note that this algorithm is also envy-free. Why? But, is it strong fair, super envy-free, or exact?

Simple Fairness, n = 3 n = 3 is harder than n = 2, but since we know how to do it for the latter, can we extend the previous method inductively to n = 3? : Perform the previous algorithm for 2 players. Now, players A and B each has at least 1/2 of the cake. Players A and B now divide their shares into 3 equal parts. Player C will choose 1 part from player A and 1 part from player B Why is player C ensured at least 1/3 of the cake? It is fairly straight-forward to extend this algorithm to the general n-players case. However, this algorithm requires many cuts and therefore generates many small pieces of cake for everyone. Is it possible to use lesser number of cuts?

Accomplishing n = 3 With 2 (or n-1) Cuts This can be accomplished by the so-called “Moving Knife Algorithm”: A knife is moved continuously over the cake from left to right. When a player thinks that the cake on the left side of the knife is 1/3 of the whole cake, he calls out, “Stop”, and gets that piece This is repeated for the remaining 2 players. The player who did not call out this time, will get the piece on the right However, this algorithm is not finite, because the players have to make a decision at every instance of time In fact, it is not possible to accomplish the task with n-1 cuts (except for the case of n = 2), unless an infinite algorithm is used What then is the minimum number of cuts that can be attained with a finite algorithm?

Min. Cuts for Finite Simple Fair Algorithms The inspiration comes from a problem commonly encountered in programming: inserting an element into a sorted list of length L. We know that an efficient algorithm is to recursively reduce the size of the problem by half at each step of the algorithm Using this divide and conquer strategy, we can develop a cutting algorithm with O(n)  n x log2n In general, supposed the problem has been reduced to k (assume even) players Then all but one of the k players are told to cut the cake into the ratio k/2. So there are in total k-1 cuts in this iteration The non-cutter now goes to the middle cut and picks the side which he thinks is bigger. He then joins the group of players ((k-2)/2 of them) whose cuts landed on the side he picks We now have a k/2 problem. If k is odd, only a slight modification is required

Other Criteria: An Envy-Free Algorithm Because the simple fair criterion is the subset of the other four criteria mentioned before, it is therefore the easiest to be accomplished. To give everyone a taste of how much harder the other criteria are, an envy-free algorithm for 3 players is shown here (attributed to Selfridge): Player A cuts cake into 3 equal pieces. player B ranks pieces , , , from largest to smallest. Player B trims  from  so that ’ =  -  =  Leaving  out, the three pieces are split among players C, B, A in that order. Player B has to pick ’ if available. Therefore B or C must have picked ’. Call this person P1 and the other P2. P2 now cuts  into 3 equal pieces, and P1, player A, P2 pick the pieces in that order. Why does this work intuitively? Why is everyone happy with step 3? Why is everyone happy with step 4?

Other Criteria: Why Harder? As can be seen, the envy-free algorithm for 3 players is much more complicated than that of the simple fair algorithm. In fact, a finite bounded algorithm for the general case has yet to be found. Why are the other criteria so much harder to accomplish? Intuitively, this is because unlike the simple fair criterion, each player not only cares about what he gets, but also cares about what the other players get. For example, in exact division, each player thinks every other player has the same piece as him. Therefore, each player must be somehow involved in the decision making process throughout the algorithm. So a recursive algorithm (such as that in divide and conquer) which reduces the problem to a smaller size at each step by eliminating some players will not work.

Why Disagreeing might be Better: Part 1 Interestingly, players who have different measures of cake size can both benefit from the disagreement. For example, from the simple fair algorithm mentioned for n = 2: Player A divides Cake into X1 = X2 , in his opinion B might think X1 = 60% and X2 = 40% B takes X1 leaving A with X2 B divides X1 into 12 pieces and A takes one piece B now has 55% and A now has 54% of the cake

Why disagreeing might be Better: Part 2 Notice that we have just achieved super envy-free division for n = 2 In fact super envy-free division is possible for n players if and only if the n measures are independent. The following concluding example once again illustrates how disagreement can make everyone happier. Consider three players A, B and C splitting a family inheritance: a car, boat and painting. The players are told to submit their individual valuation of the three properties, so we will get a matrix like this: Player A Player B Player C Car $15000 $13000 $17000 Boat $30000 $23000 $20000 Painting $5000 $6000 $3000 Fair Share $16667 $14000 $13333

Why disagreeing might be Better: Part 3 3. Each of the three items is given to the players who value them the most and the players pay the difference between their valuation of the items they receive and their fair share of the inheritance to a common pool. Therefore: Player A Player B Player C Gets Boat Painting Car Amount to Pay to Pool +$13333 -$8000 (receives) +$3667 Extra Bonus Beyond Fair Share $3000 Because 13333 – 8000 + 3667 = $9000, there is an excess of $9000 and each player gets an extra $3000 beyond his valuation of a fair share. We have achieve strong fairness. Why does this work? Intuitively, since the person who values an item the most gets the item, the other players will think that he is paying more than he should to the pool. For example, if player B gets the boat instead of the painting, he would only pay 23000 – 14000 = $9000 to the pool instead of $13333.

Conclusion: Applicability to Real Life While the previous example seems promising for solving real life sharing dispute, what might be some of the problems that arise? As the sharing procedure continues, people might change their measures of the shared resource during the procedure. People might also disagree on what the appropriate share should be, for example in a territorial dispute. Player A might want 70% of the land, while player B might want 50% of it. This is much more difficult than the unequal sharing problem which actually has a finite bounded solution. Source: Cake-Cutting Algorithms by Jack Robertson and William Webb