Round-robin item allocation
Round robin is a procedure for fair item allocation. It can be used to allocate several indivisible items among several people, such that the allocation is "almost" envy-free: each agent believes that the bundle he received is at least as good as the bundle of any other agent, when at most one item is removed from the other bundle. In sports, the round-robin procedure is called a draft. Setting. There are "m" objects to allocate, and "n" people ("agents") with equal rights to these objects. Each person has different preferences over the objects. The  preferences of an agent are given by a vector of values - a value for each object. It is assumed that the value of a bundle for an agent is the sum of the values of the objects in the bundle (in other words, the agents' valuations are an additive set function on the set of objects). Description. The protocol proceeds as follows: It is assumed that each person in his turn picks an unassigned object with a highest value among the remaining objects. Additivity requirement. The round-robin protocol requires additivity, since it requires each agent to pick his "best  item" without knowing what other items he is going to get; additivity of valuations guarantees that there is always a "best item" (an item with a highest value). In other words, it assumes that the items are independent goods. The additivity requirement can be relaxed to weak additivity. Properties. The round-robin protocol is very simple to execute: it requires only "m" steps. Each agent can order the objects in advance by descending value (this takes O("m" log "m") formula_3 time per agent) and then pick an object in time formula_4. The final allocation is EF1 - envy-free up to  one object. This means that, for every pair of agents formula_5 and formula_6, if at most one object is removed from the bundle of formula_6, then formula_5 does not envy formula_6. Additionally, round-robin guarantees that each agent receives the same number of items ("m"/"n", if "m" is divisible by "n"), or almost the same number of items (if "m" is not divisible by "n"). Thus, it is useful in situations with simple cardinality constraints, such as: assigning course-seats to students where each student must receive the same number of courses. Efficiency considerations. Round-robin guarantees approximate fairness, but  the outcome might be inefficient. As a simple example, suppose the valuations are: Round-robin, when Alice chooses first, yields the allocation formula_18 with utilities (24,23) and social welfare 47. It is not Pareto efficient, since it is dominated e.g. y the allocation formula_19, with utilities (25,25). An alternative algorithm, which may attain a higher social welfare, is the "Iterated maximum-weight matching" algorithm. In each iteration, it finds a maximum-weight matching in the bipartite graph in which the nodes are the agents and the items, and the edge weights are the agents' values to the items. In the  above example, the first matching is formula_20, the second is formula_21, and the third is formula_22. The total allocation is formula_23 with utilities (18,32); the social welfare (- the sum of utilities) is 50, which is higher than in the round-robin allocation. Note that even iterated maximum-weight matching does not guarantee Pareto efficiency, as the above allocation is dominated by (xwv, zyu) with utilities (19,36). Round-robin for groups. The round-robin algorithm can be used to fairly allocate items among groups. In this setting, all members in each group consume the same bundle, but different members in each  group may have different preferences over the items. This raises the question of how each group should decide which item to choose in its turn. Suppose that the goal of each group is to maximize the fraction of its members that are "happy", that is, feel that the allocation is fair (according to their personal preferences). Suppose also that the agents have binary additive valuations, that is, each agent values each item at either 1 ("approve") or 0 ("disapprove"). Then, each group can decide what item to pick using "weighted approval voting": The resulting algorithm is called RWAV (round-robin  with weighted approval voting). The weight function "w"("r","s") is determined based on an auxiliary function "B"("r","s"), defined by the following recurrence relation: Intuitively, B("r","s") of an agent represents the probability that the agent is happy with the final allocation. If "s" ≤ 0, then by definition this probability is 1: the agent needs no more goods to be happy. If 0<"s" and "r"<"s", then this probability is 0: the agent cannot be happy, since he needs more goods than are available. Otherwise, B("r","s") is the average between B("r"-1,"s") - when the other group takes a good wanted by the agent , and B("r"-1,"s-1") - when the agent's group takes a good wanted by the agent. The term B("r"-2,"s"-1) represents the situation when both groups take a good wanted by the agent. Once B("r","s") is computed, the weight function "w" is defined as follows: formula_26 When using this weight function and running RWAV with two groups, the fraction of happy members in group 1 is at least B("r", s("r")), and the fraction of happy members in group 2 is at least B("r"-1, s("r")). The function "s"("r") is determined by the fairness criterion. For example, for 1-out-of-3 maximin-share fairness, "s"("r ) = floor(r"/3). The following table shows some values of the function "B", with the values of B(r-1, floor(r/3)) boldfaced: From this one can conclude that the RWAV algorithm guarantees that, in both groups, at least 75% of the members feel that the allocation is 1-out-of-3 MMS fair. Extensions. 1. The round-robin protocol guarantees EF1 when the items are "goods" (- valued positively by all agents) and when they are "chores" (- valued negatively by all agents). However, when there are both goods and chores, it does not guarantee EF1. An adaptation of round-robin called double round-robin guarantees  EF1 even with a mixture of goods and chores. 2. When agents have more complex cardinality constraints (i.e., the items are divided into categories, and for each category of items, there is an upper bound on the number of items each agent an get from this category), round-robin might fail. However, combining round-robin with the envy-graph procedure gives an algorithm that finds allocations that are both EF1 and satisfy the cardinality constraints. See also. Round-robin is a special case of a picking sequence. Round-robin protocols are used in other areas besides fair item allocation. For  example, see round-robin scheduling and round-robin tournament.