Fair Allocation of Indivisible Goods
Suppose we have players, and indivisible goods (i.e., each cannot be further divided into any pieces).
Each player has a value for good .
Unless noted otherwise, assume that valuations are additive (even in the case of additive valuations, this problem is complex enough to warrant an interesting discussion, unlike in the case of auctions). This means that for all .
The advantage of additive valuation is ease of elicitation: now we only need (instead of ) values to describe an agent’s value for any susbet of goods. The disadvantage is that it does not allow for complements (two things that go really well together have more value when they are gotten together, e.g. pen and diary) / susbtitutes (two things that are basically the “same” and you only want one of them e.g. pen and pencil) — basically. it imposes a constraint on the valuation function that might not hold in reality.
An allocation is a partition of goods, where bundle is allocated to player .
Note: Each player has their own valuations for the goods, so it makes no sense to compare the value of and because it’s possible that player 1 values everything 10x more than player 2, but that doesn’t say anything. Always make sure that you’re comparing things that use the same valuation function, i.e., and is comparable because it tells us whether player 1 would prefer over or not.
Fairness Notions
We’re trying to quantify what it means for an allocation to be “fair” — i.e., we’re trying to describe desirable properties that our algorithm should achieve.
Proportionality: for all . That is, everyone should think they’re getting at least their proportional share. e.g. if the total value (according to me) is 10, and there are 2 players, i would like to get a value of at least 5.
Envy-freeness: for all . That is, no envy should envy any other agent. No one should think that they would rather have gotten another bundle. Each person thinks they’re already getting the best (non-strictly) possible deal among everyone else.
For , both proportionality and envy-freeness are equivalent. Because getting at least half the share is the same as saying that you’re getting at least as much as the other person.
For , envy-freeness is a strictly stronger condition than proportionality. That is, envy-freeness impies proportionality but proportionality does not imply envy-freeness. A short proof of this is as follows:
If for all , then we can sum the equations holding fixed, and varying to get:
and so, , which means it satisfies proportionality.
Proportionality Envy-freeness. Example: assume . Player 1 has value 1 for every good, while other players have value 0 for all goods. and are empty. Then, this satisfies proportionality but player 1 would rather get instead of
Intuitively, envy-freeness not only cares about what you got, but what everyone else got too. Proportionality only cares about what you got (relative to the group as a whole).
Envy-freeness or even proportionality cannot always be satisfied. A very simple example is when we only have 1 good, and 2 players (each having positive value for this good). Clearly, no allocation will be envy-free or proportional.
So, we have to relax / weaken our constraints and try some other notions of fairness.
Maximizing Utilitarian Welfare (i.e., the sum of the player’s utilities) — we simply give each good to the player who has the highest value for it (breaking ties arbitrarily) This works because each player’s valuations aree additive. But this does not feel ‘fair” e.g. if player 1 has a value of 9 for all goods, and player 2 has a value of 10 for all goods, this mechanism will allocate all goods to player 2, and player 1 will be left with nothing… yeah, doesn’t feel fair.
Envy-freeness up to one good (EF1): It’s a relaxation of envy-freeness so that each player may envy another player but only up to a single item, i.e., player may envy player , but the envy can be eliminated by removing a good from ’s bundle. Formally, for any , if , then there exists a such that . Notice that this can be different for different players (even for a fixed )!
Round Robin Algorithm
The good news is that we can satisfy EF1 by the round-robin algorithm. Let the players take tunrs choosing their favorite good from the remaining goods, in the order until the goods run out.
This works for any number of agents, and for any additive valuation functions.
The proof is actually really simple:
If is ahead of in the round robin ordering, then in every round, does not envy (because would pick the good that she values more, because had the first choice) — envy-freeness.
If is behind in the ordering, then consider the first round to start with ’s first pick (i.e., for now, ignore ’s first pick). Then, we can pretend as if is ahead of in all these rounds (if we’re ignoring ’s first pick, then we act as if picked frist). So, does not envy up to ’s first good. It’s possible that envies but that’s only because of ’s first good.
As a bonus, the resuting allocation is balanced: that is, the difference in the number of goods is at most 1, between any pair of agents.
Envy-Cycle Elimination Algorithm
Note: this mechanism works for general monotonic (not necessarily additive!) valuations: for any .
We can still get an EF1 allocation (even for a general monotonic valuation function) using this envy-cycle elimination algorithm:
Allocate one good at a time in an arbitrary order.
Maintain an envy graph with the players as its vertices, and a directed edge if envies with respect to the current partial allocation.
At each step, the enxt good is allocated to a player with no incoming edge. Any cycle that arises is eliminated by giving ’s bundle to for every in the cycle.
The key intuition here is this:
If no one envies player , then giving 1 good to player can only make players envy up to at most 1 good in the worst case.
When we have a cycle, it’s an indication that we can make everyone happier by rotating the bundles along the cycle — since it makes every player strictly better off. So, the total utility strictly increases. (Hence, we can’t have infinite cycles, because the total utility of allocating finitely many goods must be finite.)
We prove the correctness of this algorithm (and the fact that it terminates) with the following 3 claims:
Claim 1: At each step, the procedure of eliminating cycles must end.
Each time we eliminate a cycle, we do so by cycling the bundles around so that the new allocation has strictly higher utility. So, the utilitaria welfare strictly increases, because everyone on the cycle gets strictly higher utility.
So, it cannot happen infinitely since the allocation has finite goods and must generate finite utility.
Claim 2: When the procedure of eliminating cycles ends, there is an unenvied player (i.e., a “source” in the envy-graph)
Proof by contradiction: Suppose not. Then, player a is envied by b, b is envied by c, and so on.. But we only have finitely many players. So, we end up with a cycle in the envy graph, which contradicts the fact that we removed all the cycles.
Claim 3: At each step, the partial allocation is EF1.
We only allocate a good to an unenvied player, so any envy towards that player is by at most one good (i.e., the newly allocated good)
Claims 1 and 2 are enough to prove the termination of the algorithm, while claim 3 is required to prove the correctness (since it states that at every step, the allocation is EF1, and so, even at the end, the allocation is EF1).
Notice that we don’t use the “additive”-ness at all! But we do use monotonicity (i.e., when we add a good to a player’s bundle, her valuation cannot decrease — she cannot start to envy others as a result of this allocation!)
Maximum Nash Welfare (MNW)
MNW requires additivity of the valuation functions.
The Nash Welfare of an allocation is the product of the players’ utilities: .
Theorem: An allocation that maximizes the Nash Welfare, called a Maximum Nash Welfare (MNW) allocation, is EF1.
It’s a bit surprising that nash welfare (and not egalitarian welfare) leads to EF1 allocations.
Corner case: If MNW = 0, maximize the number of pllayers with positive utility first, and then maximize the Nash welfare among these players. This is the way to guarantee that the allocation satisifes EF1.
Proof sketch:
Suppose for contradiction that playuer envies player even after removing any good from ’s bundle.
Consider a good in ’s bundle that minimizes the ratio — that is, pick the good such that does not value it much, but does.
Then, moving to ’s bundle can be shown to increase the Nash welfare.
Bonus: The resulting allocation is always Pareto optimal: we cannot make some player better off without making another player worse off. This is almost by definition because if we could, then we would do so and the Nash welfare (product of everyone’s utilities) will strictly increase (and the original allocation wouldn’t be “maximum” Nash welfare).
Quick Summary:
All of Round-Robin, Envy-ycle Elimination, and MNW guarantee EF1
Round-Robin ensures that the allocation is balanced.
Envy-cycle does not require that the valuations are additive, only monotonic.
MNW guarantees Pareto-optimality too.
So, each of them have their distinct advantage and hence, use-case.
EFX
Recall that EF1 means “if a particular good is removed from your bundle, I will no longer envy you”.
Envy-freeness up to any good (EFX) states: For any and ANY , we have . That is, “if ANY good is removed from your bundle, I will no longer envy you.”
Clearly, EFX is a stronger constraint than EF1.
In general, we have: Envy-freeness EFX EF1.
The output of round robin, envy-cycle elimination, and MNW may NOT satisfy EFX.
Wait.. does there always exist an EFX allocation in the first place??
For and , yes, an EFX allocation always exists. The proof for is simple, while proof for is much more complicated.
Proof for : Cut-and-choose algorithm
The first player divides the goods into 2 bundles that are equal as possible in her view.
Then the second player chooses the bundle tha the prefers.
The first player will be EFX, and the second player will be envy-free.
The proof that the first player will be EFX relies on the fact that she divided the goods into 2 “as equal as possible” bundles.
Let .
Every object in must have because otherwise player 1 would’ve moved to the other bundle to make the bundles “more equal”.
So, removing any object from will result in , and hence player 1 is EFX.
For n , this question is open! (there is neither an existence proof nor an impossibility result yet).
Maximin Share (MMS)
Until now, we had been relaxing the constraints of envy-freeness, and we saw that it’s always possible to obtain an EF1 allocation (and we saw multilpe different ways to achieve this, with additional properties of each algorithm).
Now, we hope to relax the proportionality condition (and one such relaxation yields the maximin share value).
A player’s maximin share (MMS) can be computed by performing the following thought experiment: The player divides the goods into bundles so as to maximize the value of the minimum-value bundle, and the value of the minimum bundle in such a partition is called the player’s MMS.
So, MMS means that each player thinks they’re getting at least the worst bundle in a “fair” allocation. Getting less than MMS would make the player doubt whether the allocation was fair (because in her head, she’s getting even less than the worst possible outcome assuming the goods are split so that everyone gets nearly equal value).
Note that maximin share is a relaxation of proportionality, i.e., . The proof by contradiction is quite simple: suppose not, then each bundle in this MMS allocation has value strictly greater than , and so the sum of the valuations (using additivity of player ’s valuations) of each bundle gives: (total value) , which is not possible, since player i’s total value of should be the same, no matter the allocation. Basically, the lowest bundle’s value cannot be strictly greater than the arithmetic mean (which would be obtained when player i can divide all goods exactly equally).
An allocation that gives every player his / her maximin share always exists when there are 2 people, but NOT when there are at least 3 players (known impossibility proof). This shows how hard it is to satisfy MMS (let alone proportionality).
However, for any number of players, we can always give every player more than of his / her maximin share.
The proof that an allocation that gives every player at least his / her maximin share always exists when there are 2 players uses the cut-and-choose algorithm again:
Alice divides the goods into 2 parts that are of as equal value as possible in her view.
Either part yields value at least Alice’s MMS to her (by definition)
Bob chooses a part that he prefers
Bob is envy-free (and therefore, proportional, and therefore he gets his MMS). Recall that for 2 players, envy-freeness proportionality and also, in general, proportionality MMS.
(There’s also such a thing as minimax share — read up about it if you’re interested!)
Query Complexity
It’s a way of comapring how complex different algorithms are. Sort of like the idea of time complexity.
With each query, the algorithm can find out a certain player’s value for a certain set of goods.
Then, the question is: how many tiems do we need to query the players? (How many times do we have to ask “oh hey Bob umm how much do you value this set of goods?”)
This becomes especially relevant when valuations are not additive — because in the worst case, we might have to make queries.
BUT, thankfully, we don’t!
The envy-cycle elimination algorithm can be implemented using queries, even with monotonic (non-additive) valuations:
It suffices to query the value of each agent for the bundles in each partial allocation to construct the envy graph.
Since there are partial allocations, the number of queries is
In each iteration, we add an item to an existing bundle — all other bundles remain unchanged. So, we only need to query the players’ valuations for this new bundle. And even during the cycle-elimination phase, the bundles just move around, they don’t actually change. So, the valuations each player has for the bundles don’t change, and we don’t have to re-query them. (We assume that we store the query results each time we get them).
In fact, if we have just 2 agents with monotonic valuations, queries suffice (even though the total possible allocations is wow!). Proof:
Arrange the goods on a line, and implement cut-and-choose
The first agent can find an EF1 cut using binary search
The same technique does NOT work for EFX (even though an EFX for does exist, it cannot be found this way), as there may not exist an EFX partition on this specific arrangement of items on the line. e.g. if we have 3 goods, 2 players with identical and additive valuations 1, 2, 1 → there’s no way to make it EFX if we arrange them in the order 1, 2, 1 (we’d have to do 1 1 2 or 2 1 1).
In fact, any deterministic EF1 algorithm needs queries. That is, this bound is tight, and hence, we can write it as .
Proof:
We will prove that even for identical additive valuations where each player has value 1 for 2 goods, and 0 for the rest, we need queries. (And here, the mechanism knows that both players have such valuations — 1 for 2 fixed goods (e.g. gold coins), and 0 for the rest (e.g. stones)) And hence, we need at least these many queries for a more general case, since in general, the mechanism doesn’t know the player’s valuations apriori without querying!
Notice that in ANY EF1 allocation, the two valuable goods (with valuation = 1 each) must be separated. So, the goal of the mechanism is to create a partition such that each bundle contains 1 of the valuable good.
We can show that such a mechanism would require queries by making use of an adversary argument → assume an adversary whose job is to respond to the queries so that the mechanism takes the maximum number of querie (i.e., the adversary makes life difficult for the mechanism).
In particular, as the adversary that generates that testcase, we don’t have to decide apriori what the valuable goods are, as long as our answers to the queries are consistent to what we finally declare the valuable goods to be! The mechanism only sees the query results, and only finds out the valuations at the very end (to make sure we weren’t cheating)
Let initially (the mechanism needs to find a way to split the two valuable goods, so we wil play the role of the adversary and track which set contains both the valuable goods in our head).
Suppose the algorithm queries .
If , then we answer 2 and replace by . That is, okay, we told the mechanism that both valuable goods are in , and previously we had told the mechanism that they are in → hence, to be consistent, they must be in now — but we only do this when the set containing both is bigger than the set not containing both, and that’s exactly what we want → we want to force the set containing both the valuable goods to be as large as possible.
Otherwise, we (the adversary) answer 0 and replace by . (obviously we never want to answer 1 if we can avoid it, otherwise the mechanism can simply output as the two partitions and its done)
Since at the beginning, and decreases by a factor of at most 2 after each query, at least queries are needed to “split” the two valuable goods, in this worst case.
Hence, any deterministic EF1 algorithm needs queries.
Any deterministic EFX algorithm needs a number of queries exponential in (not just linear, but exponential! Much much harder than EF1)
Last updated