Fair Algorithm Design: Fair and Efficacious Machine Scheduling

Motivated by a plethora of practical examples where bias is induced by automated-decision making algorithms, there has been strong recent interest in the design of fair algorithms. However, there is often a dichotomy between fairness and efficacy: fair algorithms may proffer low social welfare solutions whereas welfare optimizing algorithms may be very unfair. This issue is exemplified in the machine scheduling problem where, for $n$ jobs, the social welfare of any fair solution may be a factor $\Omega(n)$ worse than the optimal welfare. In this paper, we prove that this dichotomy between fairness and efficacy can be overcome if we allow for a negligible amount of bias: there exist algorithms that are both"almost perfectly fair"and have a constant factor efficacy ratio, that is, are guaranteed to output solutions that have social welfare within a constant factor of optimal welfare. Specifically, for any $\epsilon>0$, there exist mechanisms with efficacy ratio $\Theta(\frac{1}{\epsilon})$ and where no agent is more than an $\epsilon$ fraction worse off than they are in the fairest possible solution (given by an algorithm that does not use personal or type data). Moreover, these bicriteria guarantees are tight and apply to both the single machine case and the multiple machine case. The key to our results are the use of Pareto scheduling mechanisms. These mechanisms, by the judicious use of personal or type data, are able to exploit Pareto improvements that benefit every individual; such Pareto improvements would typically be forbidden by fair scheduling algorithms designed to satisfy standard statistical measures of group fairness. We anticipate this paradigm, the judicious use of personal data by a fair algorithm to greatly improve performance at the cost of negligible bias, has wider application.


Introduction
The boom in automated decision-making is producing transformative effects on society. In principle, automation should produce lower cost and higher performance outcomes. Moreover, a common presumption was that the use of algorithms based upon big data sets would eliminate the inherent bias in human decision-making. Unfortunately, that has not been the case. Indeed, it appears that in many instances automated decision-making has allowed bias to emerge on a huge scale and also to institutionalize partiality. A particularly nefarious example concerns judicial sentences based upon algorithms that predict the risk of reoffending [18,26]; these risk scores have been claimed to exhibit strong racial bias. Two more classical examples concern bias in the assignment of credit scores [21,32] and in automated hiring systems [37]. Indeed, as technology advances further, such as in facial recognition, the scope and potential dangers of automated decision-making are expanding dramatically [9,38]. Consequently, the issue of fair algorithms is now receiving a considerable amount of attention in the law, politics, philosophy, statistics and, especially, machine learning communities.
But what do we mean by a fair algorithm? There is a subtlety here. There are two predominant, but quite distinct, ways to view fairness. First, an algorithm may be considered fair if it produces outcomes that are unbiased across groups. This is the underlying framework when fairness measures based on statistical criteria are applied. Second, an algorithm may be considered fair if its internal workings are unbiased. In particular, such an algorithm cannot use any personal or type information (such as race, sex, sexual orientation, wealth, class, etc.) nor use any correlated attributes. Our approach is to combine these two viewpoints: we present a measure to assess fairness across groups (including at the level of an individual); furthermore, this measure is calibrated against the fairest outcome achievable by a mechanism that is not allowed to use personal information.
But our purpose is not to proffer a new measure of fairness; there is already an abundance of such definitions in the literature [4]. Nor is our aim simply to design an algorithm that computes fair solutions with respect to the measure. Our objective is more ambitious. We desire fair algorithms that also guarantee high performance. The grail is an algorithm that produces outcomes that are both unbiased and efficacious (that is, of high social welfare). Specifically, we are searching for an algorithm A that outputs solutions that are (i) comparable in performance to those produced by the social welfare maximizing algorithm A * , and (ii) comparable in fairness to those produced by the fairest algorithm A f . The reason that our proposed measure is useful is because it will naturally allow us to make such bicriteria comparisons.
The reader may question whether this objective is achievable since there is often a dichotomy between fairness and social welfare. For proof of concept, in this paper we examine the machine scheduling problem. In machine scheduling, personal type data concerns properties of the job to be scheduled, specifically, size. (We remark that whilst size may appear a somewhat trifling characteristic in comparison to race or sex it does have important real-world consequences. For example, net-neutrality is based upon the idea that bandwidth allocation algorithms should not discriminate against agents based upon their size.) Unfortunately, we will see that machine scheduling does indeed suffer from the aforementioned dichotomy: a fair scheduling algorithm that does not use the type data of an agent can produce arbitrarily poor outcomes from a social welfare perspective. Conversely, an optimal scheduling algorithm for social welfare can be arbitrarily unfair. This result appears fatal for our project. But, amazingly, this dichotomy can be circumvented by allowing for a negligible amount of bias. Specifically, we prove that very good social outcomes (within a constant factor of optimal) can be obtained by algorithms that are near-perfectly fair (within a 1 + ǫ factor of perfect fairness, for any constant ǫ > 0).

Overview and Results
In Section 2 we provide a brief history concerning the need for fair algorithm design and discuss related works in the field.
In Section 3 we present the classical machine scheduling problem with n jobs (agents). We first explain how the optimal algorithm for social welfare A * and the fairest algorithm A f perform in the special case of a single machine. We then prove a strong dichotomy between fairness and efficacy by showing the fairest solution can have social cost a factor Ω(n) worse than that of the optimal solution (see Example I). This motivates the study of ǫ-fair mechanisms. These mechanisms have the property that no individual is allowed to be more than an ǫ fraction worse off than they would be if the fairest algorithm was used. Since the guarantee applies at the individual level it also applies to any group as a whole.
In Section 4 we present a class of scheduling algorithms called priority scheduling mechanisms. We prove that it suffices to consider only a sub-class of these mechanisms, namely Pareto scheduling mechanisms, when searching for an algorithm that is both fair and efficacious. Specifically, these mechanisms can be used to output Pareto optimal solutions. 1 Indeed, the focus on Pareto solutions is also necessary: algorithms based upon statistical group fairness measures may output poor social solutions precisely because they are, typically, forced to output solutions that are Pareto dominated.
Then in Section 5, given a target fairness ǫ > 0, we prove that there is always a Pareto optimal scheduling mechanism that is both ǫ-fair and provides social cost within a factor of 1 4ǫ of optimal. Furthermore, we show that these bicriteria guarantees are the best possible. Thus, by allowing a negligible amount of bias, high quality social outcomes can be guaranteed. This is somewhat analogous to differential privacy where, essentially, an individual's data can be included in a database if it does not comprise her individual privacy by more than an ǫ fraction, but with the bonus here that (in using personal data judiciously) we also obtain strong social welfare guarantees.
Finally, in Section 6 we show how to extend these results to the setting of multiple machines with exactly the same bicriteria guarantees.

Background and Related Work
The potential for bias in automated decision-making systems has become a critical issue recently in a range of disparate applications. Prominent examples include credit score evaluations [7,21,32], automated recruitment [30,37], judicial sentencing [2,18,26,31], community policing [19,33], advertising [30], medical treatments [24,36], social services [12], etc. Moreover, these issues have arisen in even the largest and most influential technology companies. For example, Amazon's recruitment engine was found to prefer men over women [15] and its same-day delivery algorithms produced outcomes that disadvantaged communities with large ethnic minority groups [25]. Gender stereotypes abound in Google News [8]. Topically, Twitter recently announced that its amplification algorithms are severely biased in favour of right-wing politicians (with the strongest bias in Canada!) [23]. Bias in facial recognition software could in the future have calamitous ramifications. So it is worrying that the commercial gender classifiers of IBM, Microsoft, and Megvii (Face++) perform the worst with darker skin females and better with males than females [9,38]. Another example is given by the advertisement algorithms of Facebook; these are specialized for target audiences, leading to lawsuits for violations of multiple civil rights laws [41].
Given the breadth and importance of these applications, the issue of algorithmic fairness has consequently received a considerable amount of attention in the law, politics, philosophy, statistics and, especially, machine learning communities. In this section we will provide only a sample overview of the literature and also highlight the prior research most pertinent to our work; we refer the curious reader to the the book Fairness and Machine Learning by Barocas, Hardt and Narayan [4] for a much more extensive and technical guide to the existing literature.
The first problem facing the academic community is to decide whether or not an algorithm is fair. Therefore, a major focus has been to devise tests based upon measures of fairness. These have been predominantly group-based statistical measures including the influential measures of independence, separation and sufficiency. The origins of these criteria date back to the works of Darlington [14] and Cleary [13]. These measures are commonly termed group fairness/statistical parity (Dwork et al. [17]), equalized odds (Hardt et al. [20]), and calibration within groups (Chouldechova [11]), respectively. Furthermore, there are now dozens of fairness criteria in the computer science literature closely related to just independence, separation and sufficiency alone; see [4]. Other measures based on causal reasoning and the use of counterfactuals have also been proposed [27,29,35].
A consequence of the abundance of tests is that these measures may be mutually incompatible (Darlington [14]); see also Kleinberg et al. [28] and Chouldechova [11]. This can make assessments of bias somewhat subjective. Consider, for example, risk assessment scores. These are widely used in the criminal justice system in the US in assigning bail or remand (pre-trial detention) [26]. ProPublica [2,31] found that compas risk scores, generated using software by Northpointe, were strongly biased against African-Americans. Specifically, African-Americans were twice as likely to be falsely flagged as high risk, while Caucasian defendants were more often mislabeled as low risk. Northpointe [16] counterargued these findings by claiming that the compas risk scores were fair because they satisfy the sufficiency criteria. More detailed discussion on this case and on the incompatibilities and trade-offs between popular statistical fairness criteria can be found in Berk et al. [5].
The shift from human to automated decision-making has also added a degree of opacity, as most predictors lack interpretability, tracability and auditability. We tend to view technology as an impartial prediction tool that is less prone to making mistakes than the human judgments it replaces and, consequently, assign it unwarranted legitimacy. Another major issue with black-box predictors is the diffusion of responsibility and the loss of accountability that ensues from a lack of clarity in the automated decision process [33]. The trade-offs between different predictors with respect to interpretability, accuracy and fairness are discussed in [12] for the case of child maltreatment hotline screening processes.
In addition to modelling and assessing fairness, a major research agenda concerns the practical issues that arise with real-world data. These include the collection, appropriate usage, and dynamic maintenance of data. Consider the findings of Holstein et al. [22] based upon interviews with ML industrial practitioners. In practice, datasets are often both incomplete and inappropriate for assessing fairness. Thus guidance is needed in the data collection stage. Moreover, even if important sensitive data (such as type data) has been collected, it may be withheld from the industrial teams actually developing and running the algorithms, making accurate auditing impossible. Furthermore, humans are involved throughout the development pipeline (including in data collection and data labelling for training) leading to the possible incorporation of human bias. Also, unlike in hiring or judicial sentencing, in many industrial applications the outcomes and objectives are more fuzzy and opaque (e.g. chatbots, tutoring, etc) so are less conducive for evaluation by standard statistical fairness measures. For such practical reasons, thorough auditing and documentation is proposed as essential in remedying bias in computer programs [34,37].
As alluded to, great care has to be taken with real-world data because there may be many components that are highly correlated with a critical or protected attribute. In particular, the naive approach of "fairness through unawareness", where the protected attribute is removed, is insufficient to guarantee fair treatment [39]. The dynamic nature of data collection can itself be problematic, for example, in causing negative feedback loops, which can amplify the bias contained in the data sets. Consider a case study on predictive policing in Oakland conducted by Lum and Isaac [33]: a software recommendation of increased policing in a region will lead to an increase in recorded crimes in the dataset; this, in turn, can lead to a recommendation of further increases in policing for that area, etc.; see Enseign et al. [19] for a mathematical model of this phenomenon. Negative feedback loops may also arise in automated hiring systems, where positive information may be added to the database for successful candidates whereas no or negative information may be added for candidates the software rejected [43]. Similar feedback-loop effects have also been observed in credit score calculations [7] and in the polarization of social networks [40].
Let us conclude this overview by discussing the fairness literature most pertinent to our work. Dwork et al. [17] highlight two aspects of particular relevance here. One, they emphasize the importance of fairness measures that extend beyond group fairness and apply at the level of an individual. They do this using a Lipschitz condition on the classifier. Two, they propose a bicriteria approach, namely utility optimization subject to a fairness constraint. Our approach follows this framework. In essence, we wish to optimize welfare (minimize social cost) subject to individual fairness constraints, namely ǫ-fairness.
Moreover, we further desire quantitative bicriteria performance guarantees. This is analogous to the concept of the price of fairness introduced independently by Caragiannis et al. [10] and Bertsimas et al. [6]. The price of fairness quantifies the loss in social welfare (economic efficiency) incurred under the fairness scheme. Specifically, for a minimization problem, it is the worst case ratio between the cost of the "best" fair solution and the cost of the most efficient solution. 2 We remark that this approach has wide application depending upon the definition of fairness used. For example, in [10] the problem studied is the classical economic problem concerning the fair allocation of a collection of goods, where an outcome is deemed fair if it satisfies the properties of proportionality, envy-freeness, or equitability. For proof of concept, we have chosen to study the machine scheduling problem with n agents and m machines. The price of fairness in machine scheduling has previously been studied for the special case of two-agents on a single machine [1,44].
To see that our work can be viewed through the price of fairness lens, our main result can be interpreted as follows. For machine scheduling, the price of fairness for the class of perfectly fair (0-fair) schedules is Ω(n) but the price of fairness for the class of near-perfectly fair (ǫ-fair) schedules is only Θ( 1 ǫ ) for any ǫ > 0.

The Machine Scheduling Problem
In the machine scheduling problem there are n agents who wish to schedule a single job each on one of m machines. Agent i has a job of size (duration) d i ≥ 0 and its objective is to minimize the completion time c i (A) of its job, which is a function of the (possibly, randomized) assignment mechanism A used to assign the jobs to the machines. The social cost of an assignment is the sum of the (expected) completion times. Our objective is to design a fair allocation mechanism that performs well in comparison to the optimal mechanism for social cost. To begin, in Sections 3 to 5, we will focus on the case of a single machine, namely m = 1. Using the lessons derived from the single machine case, we will study the general case of multiple machines, that is m ≥ 2, in Section 6.

Fair Schedules and Optimal Schedules
So consider the case of a single machine. Here the completion time for agent i is simply the sum of its size plus the sizes of the jobs that are scheduled on the machine before it is. It is now easy to compute both the fairest schedule and the optimal schedule. The optimal mechanism A * for social cost is given by Smith's Rule [42]: schedule the jobs in increasing order of size. On the other hand, recall that a fair mechanism may not use any private characteristic of the agent. In this case, the only such characteristic is size. Thus, for machine scheduling a fair mechanism must treat the agents identically. In particular, for any pair of jobs, job i should be equally likely to appear before or after job ℓ. Ergo, the fair solution is given by the Random Assignment Rule: schedule the jobs in random order. We remark that for machine scheduling on a single machine there is a unique fair solution. Hence for this application it makes sense to refer to the random assignment rule as the fairest mechanism A f . (For the multiple machine setting we will see that there is more than one fair mechanism. So, for the purpose of comparison, there we define the fairest mechanism A f to be the mechanism with the best social welfare among the set of all fair mechanisms. ) We may now calculate the social cost of the optimal assignment mechanism A * . Without loss of generality, label the agents such that d 1 ≤ d 2 ≤ · · · ≤ d n . Then, under Smith's Rule, agent i has completion time It follows immediately that the social cost of the optimal assignment is Next, let's compute the expected social cost of the fairest mechanism A f . Define D = n i=1 d i to be the sum of the job sizes. Under the randomized assignment mechanism, job ℓ will appear before job i with probability exactly 1 2 . Thus the expected completion time of job i is exactly Consequently, the expected social cost of the fairest mechanism is We can now formalize how to measure the trade-off between fairness and efficacy. A standard approach to do this is via the price of fairness, due to Caragiannis et al. [10]; see also Bertsimas et al. [6]. This is the worst case ratio, over all possible instances, of the social cost of the best fair solution compared to that of optimal solution S * . Formal, let I be the set of instances and let F(I) be the set of solutions that satisfy the proscribed fairness criteria for an instance I ∈ I. Then the price of fairness is We may also the define the price of fairness of a mechanism A as the worst case ratio, over all possible instances, of the social cost of the solution output by the mechanism compared to that of the optimal mechanism A * .
We also call Φ(A) the efficacy ratio (or social welfare ratio) of the mechanism A. For the application of machine scheduling, we will see in Section 4 that we can compute (3) from (4). That is, under the fairness measure considered, we can find a mechanism A that for any instance I outputs the best fair solution in F(I).

The Dichotomy between Fairness and Efficacy
Unfortunately, the following example shows that the ideal of an assignment mechanism that is both fair and efficacious is a chimera.
Example I. Let there be n − 1 small jobs of size 1 and one large job of size d n ≫ 1. By (1), the optimal social cost is In contrast, by (2), the social cost of the fairest mechanism is But, for large d n , we see from (5) and (6) that c(A f ) c(A * ) tends to 1 2 (n + 1). Thus the price of fairness for machine scheduling is at least 1 2 (n + 1).
This example is troubling as a price of fairness of Ω(n) is the worst possible. Seemingly, one may conclude that this rules out any possibility of designing a mechanism for scheduling that is both fair and effective. The remainder of the paper is devoted to proving that this conclusion is emphatically incorrect!

Near-Fair Mechanisms
To show the existence of a fair and efficacious scheduling mechanism, our task is two-fold. First, we desire a scheduling algorithm A that outputs a solution whose social cost is comparable to that given by the optimal algorithm A * . Second, the fairness of the solution output by A must also be comparable to that given by the fairest algorithm A f .
For the former desiderata it suffices to prove that the efficacy ratio Φ(A) is small, in particular, our target is a constant efficacy ratio. For the latter desiderata we require a measure of fairness. Our measure will be at the level of the individual. Specifically, for a given instance I ∈ I, we say that the fairness f i (A) of the mechanism to agent i is the ratio between the expected completion time c i (A) and the completion time c i (A f ) it receives in the fairest solution. We then define the fairness ratio f (A) for the mechanism A to be the worst case fairness over all agents and over all instances.
For ǫ ≥ 0, we say the mechanism A is ǫ-near-fair, or more concisely ǫ-fair, if f (A) ≤ 1 + ǫ. This implies that an ǫ-fair algorithm can never output a solution in which the cost to any agent i is more than a ǫ fraction greater than the cost it pays in the fairest solution. Thus if ǫ is large the use of type-data by the algorithm A significantly harms at least one individual; if ǫ is small the use of type-data does not significantly harm any individual.
In this paper, our target is for ǫ-fair mechanisms where ǫ is close to zero. We call such an algorithm almost perfectly fair. Observe that a 0-fair algorithm A is perfectly fair -every agent does at least as well under A as under the fairest mechanism A f . Unfortunately, Example I extends to all perfectly fair algorithms. Ergo, all 0-fair algorithms have extremely poor efficacy ratios, namely Ω(n). Remarkably, we can circumvent this negative result by proving that if we allow for an arbitrarily small amount of unfairness then the efficacy ratio falls to a constant! Specifically, we will show that an ǫ-fair algorithm exists for which the the worst case efficacy ratio is Θ( 1 ǫ ). Our result then implies the existence of an algorithm that is able to use type-data in such as way as to massively improve the social performance of the algorithm whilst harming no individual more than a negligible amount.
We remark that, even without the social welfare guarantee, ǫ-fairness itself is an extremely strong guarantee. Because it applies at the individual level it automatically applies at the group level. Moreover, it simultaneously applies to every group no matter how they are defined; in particular this includes groups that a particular study may not even be investigating!

Pareto Optimal Schedules
In this section, we show that we can refine our search space when looking for a scheduling mechanism that is both fair and efficacious. To wit, we define the class of priority scheduling mechanisms and prove it has a subclass, namely Pareto scheduling mechanisms, that correspond exactly to algorithms that output Pareto optimal solutions. Ergo, it will suffice in Section 5 to study only Pareto scheduling mechanisms to obtain the best possible performance guarantees with respect to fairness and efficacy.

Priority Scheduling Mechanisms
The most general scheduling mechanism assigns a probability p π to each permutation π of the agents and then schedules the agents in the order π with probability p π . For our purposes it will suffice to consider only the class of priority scheduling mechanisms. A priority scheduling mechanism partitions the jobs into priority groups. Every job of priority (group) k must be scheduled before every job of priority k + 1. Jobs of the same (priority) group are scheduled in random order. For example, both Smith's rule and the randomized assignment rule are priority scheduling mechanisms. For the former, there are n priority groups with job i alone in priority group i. For the latter, there is just one priority group, that is, every job has the same priority.
Our task now is to show that the priority scheduling mechanisms include the optimal mechanisms in terms of the trade-off between fairness and efficacy.

Pareto Optimal Mechanisms
We say that scheduling mechanism A 1 Pareto dominates A 2 if f (A 1 ) ≤ f (A 2 ) and c(A 1 ) ≤ c(A 2 ) (with at least one inequality strict). That is, A 1 is both fairer and more efficacious than A 2 . To begin, we wish to characterize the mechanisms that are not Pareto dominated. These are the Pareto optimal mechanisms -no mechanism exists which yields better fairness and better efficacy. Thus these mechanisms lie on the Pareto frontier of all scheduling mechanisms (we will give an illustration of this later in Figure 1). Our aim is to show this Pareto frontier consists only of the Pareto optimal mechanisms. To do this, we proceed by proving a series of properties held by Pareto optimal mechanisms. Lemma 4.1. For any priority scheduling mechanism, the worst fairness applies to a job in the lowest priority group.
Proof. Take any pair of jobs i and j where j has lower priority than i. We wish to show that j has worse fairness than i. It will become apparent from the subsequent proof that we may assume that j is in the last priority group and i is in the penultimate priority group. Let A be the total duration of all jobs before the penultimate group, i.e. the starting time of the penultimate group. Let B denote the total duration of all jobs in the penultimate group, and L the duration of all jobs in the last group. Hence, A + B + L = D. Take any job i in the penultimate group. The fairness for i is: Next take any job j in the last group. The fairness for j is: From (7) and (8), to show that f j > f i it suffices to verify that ( Rearranging, we require that Ad i + B(D + d i ) + L(D + d j ) > Ad j . To see this, observe that d j ≤ L, since d j is the duration of a single task in the last group, and that A < D. Hence, It follows that fairness strictly increases between groups and, in particular, that jobs in the last priority group have the worst fairness. Lemma 4.1 has an important consequence. Because, the overall fairness of the schedule is determined only by the lowest priority grouping, we obtain a Pareto improvement if every job of higher priority is ordered by size in its own singleton priority group. As this coincides with Smith's rule for those items, this can only decrease the social cost. Further, by Lemma 4.1, because it has no effect on the lowest priority grouping, the fairness of the schedule remains the same.
Henceforth, we need only consider schedules where the lowest priority group has a random ordering and, before them, all other items are ordered by Smith's rule. For ease of exposition, we will also partition the jobs into two sections. The second section consists of jobs in the lowest priority group; the first section consists of all the other jobs. Thus jobs in the first section are ordered by Smith's rule and after them the jobs in the second section are ordered randomly.
Now we have seen that the jobs in the lowest priority group have the worst fairness. Amongst them, the smallest job has the worst fairness. Proof. Let A denote the starting time of the last group. Take any job i in this lowest priority group. The fairness for i is: But this is largest when d i is smallest. Consequently, the worst case fairness is achieved by the smallest job in the lowest priority group.
Lemma 4.2 also has an important consequence. It implies that the lowest priority group must contain the largest jobs. More specifically, a smaller job should never have higher priority than a larger job. Lemma 4.3. In any Pareto optimal schedule, a smaller job can never have higher priority than a larger job.
Proof. We have already shown jobs in the first section must be ordered by Smith's rule. Thus, for a contradiction, let d i > d j where job j is in the second section and job i is in the first section. We may assume that j is the smallest job in the second section and that i is the largest job in the first section. We will show that swapping jobs i and j leads to a Pareto improvement.
First consider the change in social cost caused by this swap. Observe that the completion times of the jobs in section one (except i) are unaffected by the swap. Indeed these jobs just delay the other jobs by a fixed amount (the sum of their sizes). Thus, for the purpose of comparison, we may assume that their sizes sum to zero, indeed that there are no such jobs. It then follows that social cost before the swap is: The social cost after the swap is: By assumption, d i > d j , and so the social cost decreases after swapping the jobs. Next consider the change in fairness after the swap. Before the swap, by Lemma 4.2 and (9), the fairness is: After the swap, the fairness of any job k of lowest priority is Here the strict inequality follow as d i > d j . The inequality holds as every other job k in section two after the swap (possibly k = i) is at least as large as j. Thus the fairness also improves after the swap and we have a Pareto improvement, a contradiction.
Our arguments imply that there are only n Pareto optimal scheduling mechanisms. Proof. By Lemma 4.3, any Pareto optimal schedule must be consistent with the order of the job sizes. Further, by Lemma 4.1, every priority group is a singleton except for the lowest priority group. Thus to define a Pareto optimal schedule we may simply select any number 0 ≤ k < n. Then let each job i ≤ k form a singleton group with priority i, and let jobs {k + 1, k + 2, . . . n} form a group with (lowest) priority k + 1. We call this the k-th Pareto optimal schedule which we denote by A k . It follows that there are n Pareto optimal schedules: A 0 , A 1 , . . . , A n−1 .

The Pareto Frontier
We conclude this section with an example illustrating how the n Pareto scheduling mechanisms lie on the Pareto frontier. Figure 1 shows the trade-off between fairness and social cost for an example with 2 9−ℓ jobs of size 2 ℓ , for all 0 ≤ ℓ ≤ 9. That is, there are ten job sizes 1, 2, 4, . . . , 512 with 512, . . . , 4, 2, 1 jobs of each size, respectively. In particular, the total duration of all the jobs of each size is constant (512). The y-axis gives the fairness guarantee, ǫ, and the x-axis gives the efficacy ratio for the instance. Each point represents the performance of a given priority scheduling mechanism. But as there are an exponential number of priority scheduling mechanisms and we have n = 1023 agents, we have not plotted them all in Figure 1. Specifically, shown are only those priority scheduling mechanisms that did not place two jobs of identical size in different sections (that is, in both the first section and the second section). Of the 1023 Pareto optimal mechanisms, ten satisfy this property and they are shown in red; observe that these do lie on the Pareto frontier. We remark that Lemma 4.1 explains why many of the mechanisms share the same fairness guarantee and, hence, are plotted on the same horizontal line. In addition, in Figure 1, Smith's rule corresponds to the leftmost red Pareto schedule A n−1 and the random assignment rule corresponds to the rightmost red Pareto schedule A 0 .

Fair and Efficacious Scheduling
We must now decide on the appropriate trade-off between fairness and social cost. By the results in Section 4, it suffices to analyze only the n Pareto optimal mechanisms {A 0 , A 1 , . . . , A n−1 }. If we run A n−1 then this is Smith's rule and thus, trivially, we can obtain the optimal solution. But this gives a fairness guarantee where ǫ can be as large as 1, which is extremely unfair. Consequently, our interest lies in smaller values of ǫ. If we run A 0 then this is the random assignment rule. So we have ǫ = 0 giving a perfectly fair assignment. But now we have the opposite problem, the social cost may be extremely high. Specifically, from Example I, the efficacy ratio of this mechanism is Ω(n). Can we get the best of both worlds? In particular, for a fixed ǫ > 0 what is the best social cost we can guarantee?

The Fairness of Pareto Scheduling
Let's commence by computing the fairness of each Pareto optimal scheduling mechanism, A k . Take an instance I with sizes d 1 ≤ d 2 ≤ · · · ≤ d n and define Theorem 5.1. The k-th Pareto optimal scheduling mechanism A k is ǫ-fair, where ǫ = ǫ k .
Proof. Let job i = k + 1 be the smallest job in the second section and set ǫ = ǫ k . Then by Lemma 4.2 the fairness of the k-th Pareto optimal schedule to agent i is Thus the schedule is indeed ǫ-fair.

The Efficacy of Pareto Scheduling
So the k-th Pareto optimal schedule A k is ǫ-fair, for But what is its efficacy ratio?
Take a worst-case instance I with sizes To find its efficacy, we will transform I into an auxiliary instanceÎ whose efficacy is at least as bad as I, but which is easier to analyze. To begin, by scaling, we may assume d k = 1. We say that a job i is small if d i < 1, is medium if d i = 1, and is large if d i > 1. Then, given I, define the following parameters: • Let S be the total size of the small jobs: i.e. S = j:d j <1 d j .
• Let M be the total size of the medium jobs, i.e. M = j:d j =1 d j = |{j : d j = d k = 1}|.
• Let L be the total size of the large jobs, i.e. L = j:d j >1 d j .
• Let λ ∈ [0, 1] be the fraction of the medium jobs in the first section.
These definitions are illustrated in Figure 2. Observe that, for the k-th Pareto optimal schedule, the jobs corresponding to S are all in the first section and the jobs corresponding to L are all in the second section. Of course, Smith's rule will simply order the jobs by size. We are now ready to transform I into an auxiliary instanceÎ. Furthermore,Î will satisfy two properties that will simplify our analyses. Property 1. Every small job inÎ has size 0. Property 2. There is exactly one large job inÎ. Let's begin by proving Property 1.
Lemma 5.2. We may assume every small job inÎ has size 0.
Proof. Take any small job i in I. Then inÎ set d i = 0. We need to prove this change cannot decrease the efficacy ratio. To do this we require the following definitions. For the original instance I, let n S , n M = M and n L be the number of small, medium and large jobs, respectively. In addition, let c * (S) be the social cost if we apply Smith's rule only on the small items. Similarly, let c * (M ) and c * (L) be the social cost incurred under Smith's rule if we only have the medium items or only have the large items, respectively. So, for the original instance, the social cost of the optimal mechanism A * is, by Smith's rule, Furthermore, for the original instance, the social cost of the k-th Pareto optimal scheduling mechanism is: Here the last term follows by (4). Hence the welfare ratio is: The strict inequality follows from the fact that α+γ β+γ < α β , for any non-negative α, β, γ with α > β. But recall S = 0 inÎ. Thus the denominator of (10) is just the cost of the optimal schedule forÎ. Similarly, the numerator is the social cost of the k-th Pareto schedule forÎ. Thus, as claimed,Î has a worse welfare ratio than I and every small job it contains has size 0.
Next let's prove Property 2. Proof. Recall we may assume every small job inÎ has size 0 by Property 1. But then these small jobs have no effect on the social cost (if they are scheduled first). Thus the welfare ratio (10) is unaffected by assuming there are no small jobs, that is n A = 0.
Then to maximize the efficacy ratio, we may minimize the denominator whilst keeping the numerator fixed. To do this, further constructÎ as follows. Among the n L large jobs, take the n L − 1 smallest of them and change their sizes to 1. That is, they become medium jobs. Let the size of the remaining large job increase to L − (n L − 1). Observe that these transformations imply the sizes of these jobs still sum to L. In particular, this implies that the numerator of (10) does remain the same, as desired. The original optimal social cost is Here the final two terms follow by (1). After the transformation, the optimal social cost is: Since d i > 1 for each job, (12) is smaller than (11). Thus, the optimal social cost has fallen, completing the proof.

The Efficacy Ratio
So to calculate the worst case efficacy ratio it suffices to consider an instanceÎ where every job is of medium size, that is 1, except for one large job of size d n = L, say. Now let n 0 = M be the number of medium jobs. Thus n = n 0 + 1 and D = n 0 + L. In addition, letǫ = n 0 D be the proportion of the total sum of the job sizes due to the medium jobs. Finally, recall that k of the medium jobs are in the first section for the k-th Pareto optimal schedule A k , and n 0 − k of the medium jobs are in the second section. Let ǫ = ǫ k = k D signify the dividing point between the first section and the second section; observe 0 ≤ ǫ ≤ǫ. Theorem 5.4. The efficacy ratio of A k is at most 1 4ǫ + 1 + ǫ 4 , where ǫ = ǫ k . Proof. The social cost of the k-th Pareto schedule is: But n =ǫD + 1, so rearranging we have: On the other hand, the social cost of the optimal solution is: Then, from (13) and (14), the efficacy ratio is: Now recall that ǫ ≤ǫ. So assume r · ǫ =ǫ for some r ≥ 1. Thus To optimize this efficacy ratio, we must find the factor r = r max that maximizes this upper bound. We first take the derivative of the ratio with respect to r: Setting the derivative to 0 and solving for r with D > 1 and 0 < ǫ < D−1 D gives: Plugging r max into the efficacy ratio (15), we find that the efficacy ratio is at most We claim that Eff max < (1+ǫ) 2 4ǫ + 1 2 = 1 4ǫ + 1 + ǫ 4 . However, Eff max is non-monotonic and awkward to analyze directly. So we will study it indirectly via Eff max − γ where γ := 1 r 2 max ǫD + r max We will now show that First, let's prove the lower bound in (16). It suffices to show f < (1+ǫ) 2 4ǫ , which is equivalent to showing: So to show (17) holds it suffices to show that 4 < (1 + ǫ)(r 2 max ǫD + r max ). But (In fact a more detailed argument shows that γ < (1+ǫ) 2 4ǫ for D > 11+8 √ 2 7 ≈ 3.19 and 0 < ǫ < 1.) Next let's prove the upper bound in (16). For D > 1.41 and 0 < ǫ < 1, the function Eff max − γ is monotonically increasing in both ǫ and D. Therefore, an upper bound on Eff max − γ can be obtained by letting ǫ = 1 and D → ∞. In this case,ǫ = r = 1. So we have The theorem follows.

Lower Bound on the Efficacy Ratio
So there is always a priority scheduling mechanism that is both ǫ-fair and produces a solution whose social cost is within a factor 1 4ǫ + 1 + ǫ 4 of optimal. This upper bound is tight to within an additive term of one half. In particular, the dominant term 1 4ǫ cannot be improved. To see this we present an example for which any priority scheduling mechanism that is ǫ-fair must output a solution whose social cost is at least a factor 1 4ǫ + 1 2 greater than optimal. Theorem 5.5. The efficacy ratio of A k is at least 1 4ǫ + 1 2 , where ǫ = ǫ k . Proof. To prove this lower bound, it suffices to present an example obtaining this bound. We attempt to construct the example in a way that forces the inequalities arising in the proof of the upper bound, namely Theorem 5.4, to be tight. To do this, for any sufficiently large value of D and arbitrary ǫ, we can choose explicitly r = 2 such that M = 2ǫD and L = D − M > 1. This means that exactly half of the medium jobs will be in the first section and the remainder will be in the second section; see Figure 3. We then obtain: When D is sufficiently large, this tends to: Theorem 5.4 and Theorem 5.5 apply for the case ǫ = ǫ k . But the bound of 1 4ǫ is tight for any ǫ > 0. In particular, we can choose any target value ǫ > 0 to be our fairness guarantee. Then we can still apply our worst case analysis. This is because we defined ǫ k = k D . Hence for any small ǫ, there is a k such that ǫ < ǫ k + 1 D . But recall D ≥ n. Therefore, if we set a target fairness of ǫ then we can obtain an even better fairness guarantee of ǫ k < ǫ for no loss in the dominant term of 1 4ǫ in the efficacy ratio (there is an insignificant loss only in the minor terms).

Scheduling on Multiple Machines
Ergo, for a single machine there is a scheduling algorithm that is both fair and efficacious. In this section we will extend this result to the case of multiple machines. Indeed, in this more complex setting, we will prove that exactly the same performance guarantees still hold.

Optimal Scheduling on Multiple Machines
Our first task is to compute an optimal scheduling mechanism A * for minimizing the social cost with multiple machines. We will see that there is a simple algorithm to achieve this: order the jobs by size and place the next job on the least crowded machine.
For the purposes of designing a fair algorithm, however, it is important to note that there is a class of randomized algorithms that also guarantee an optimal scheduling. Begin by adding dummy jobs of size zero to ensure there are exactly n = m · τ jobs. Next, order the jobs by size and then group them into blocks of size m. Finally, for each block, independently generate a random perfect matching to assign the m jobs in the block to the m machines.
To analyze this, let M r be the total size of the jobs in the rth block. The social cost is then This is because the jobs in block r are delayed in total by the jobs before them. That this randomized algorithm is optimal follows from the fact its deterministic version is optimal, a fact observed by Baker [3]. We include a proof for completeness.
Proof. Take the optimal solution A * . We must ensure that A * assigns each job in the last block (call these large jobs) to a different machine. Suppose not then, without loss of generality, Machine 1 has two large jobs (of size d 1 and d 2 ) and Machine 2 has no large jobs. Let the largest job on Machine 2 have size d 0 ; this job exists or the schedule is evidently non-optimal. So d 0 < d 1 ≤ d 2 ; observe that the first inequality is strict otherwise we could have used job 0 as a large job instead of job 1. Now swap the assignment of job 0 and job 1 to create a new scheduleÂ. The change in social cost is exactly d 0 − d 1 because job 2 is now delayed by a shorter job. Indeed, let t 1 denote the finishing time of Machine 1 without considering jobs 1 and 2, and let t 2 denote the finishing time of Machine 2 without considering job 0. The sum of social costs of these three jobs before the swap is given by: After the swap this becomes: Schedule A * before the swap This argument is illustrated in Figure 4. We conclude that c(Â) < c(A * ), since d 0 − d 1 < 0, contradicting the optimality of A * .
We can now apply induction to show each other block also has its jobs assigned to different machines. Thus the cost of the optimal solution is also τ · M 1 + (τ − 1) · M 2 + · · · + 2 · M τ −1 + M τ .
As alluded to, Theorem 6.1 implies that there is a simple greedy algorithm A * to output the optimal schedule. Simply order the jobs by size and, at each step, place the next job on the least crowded machine. Observe this greedy algorithm has the property of assigning the jobs in a block to different machines. This is because when a job is assigned to a machine with the lowest load, that machine now has the highest load because the jobs are ordered by size. This can be shown inductively. Indeed, let Machine 1 be the machine with the lowest load denoted ℓ 1 . Let Machine 2 be the machine with the highest load to which we have just added a job of size d 2 and which previously had the lowest load ℓ 2 . So in particular, we have that ℓ 2 ≤ ℓ 1 . After adding the next job of size d 1 ≥ d 2 to Machine 1, it must have higher load than Machine 2, since ℓ 1 + d 1 ≥ ℓ 2 + d 2 . Consequently, Machine 1 now has the highest load. It follows that every other machine must then receive a job before that machine receives another job. Hence the greedy algorithm can be viewed as scheduling the blocks in order via perfect matchings and thus outputs an optimal schedule.

Fair Scheduling on Multiple Machines
Of course, as with a single machine, the optimal schedules for multiple machines may be very unfair. But, we can use the ideas developed for the single machine case to design a fair and efficacious algorithm for the multiple machine case. First we must define the fairest scheduling mechanism A f . Recall a mechanism is fair if it does not use type data. But now, for the multiple machine setting, there is no longer a unique fair mechanism. For example, scheduling all the jobs (in random order) on just one of the m machines is fair! Thus, we define the fairest mechanism A f to be the mechanism that minimizes social cost over the set of all fair mechanisms. In particular, A f will assign each job to a random machine and then, for each machine, order the jobs assigned to it at random.
Next we must define our scheduling mechanism A. Specifically, we use the randomized perfect matching algorithm to assign τ jobs to each machine but not to order the jobs on those machines. Instead to order the jobs on each individual machine, we use the ǫ-fair scheduling algorithm developed in Section 5 for a single machine. We claim A is ǫ-fair and has efficacy ratio Θ( 1 ǫ ) for the multiple machine-scheduling problem.
Let's first show that the ǫ-fairness guarantee still applies.
Theorem 6.2. The multiple-machine scheduling mechanism A is ǫ-fair.
Proof. Take any job i belonging to block r which, recall, has total size M r . Let j(i) be the machine that job i is assigned to by the mechanism. By construction, no jobs in the block r can delay job i, because they must be assigned to a different machine. Furthermore, by the randomization, any job in a lower or higher block is on machine j(i) with probability exactly 1/m. Hence, the expected load on machine j(i) is D−Mr m + d i . By Lemma 4.1, for the worst case fairness we may assume job i = k + 1 is the ith smallest job on machine j and we use the k-th Pareto schedule A k where ǫ = ǫ k = k ℓ=1 d ℓ τ ℓ=1 d ℓ . Thus the expected cost for job i is On the other hand, under the fairest mechanism A f each task will be assigned to a random machine in a random order. The expected cost for job i with this optimal fairness scheme is Thus the fairness of mechanism A to agent i is Here the first inequality holds because d i ≤ M r , as job i belongs to block r. Consequently, the mechanism is ǫ-fair.

The Efficacy Ratio for Multiple Machines
So the proposed scheduling mechanism is A is ǫ-fair. Let's now prove that dominant term in the efficacy ratio for A is again exactly 1 4ǫ . Theorem 6.3. For machine scheduling on multiple machines, the mechanism A has efficacy ratio at most 1 4ǫ + 1 + ǫ 4 .
Proof. By Theorem 5.4, applying the Pareto optimal scheduling increases the social cost on each machine by a factor at most 1 4ǫ + 1 + ǫ 4 . But the initial assignment of jobs to machines was optimal by Theorem 6.1. Thus mechanism outputs a schedule whose total social cost over all machines is at most a factor 1 4ǫ + 1 + ǫ 4 greater than optimal.
Again the dominant term 1 4ǫ applies even when the targeted fairness guarantee ǫ does not coincide with any of the ǫ k . (Note, given a target fairness of ǫ, the mechanism A k used may vary on different machines.) Furthermore, this efficacy ratio is tight. This follows as the single-machine setting is a special case of the multiple-machine setting; so the lower bound of 1 4ǫ + 1 2 from Theorem 5.5 also applies for the multiple-machine setting.

Conclusion
For the machine scheduling problem, we have shown that the dichotomy between fairness and efficacy can be overcome by allowing for a negligible amount of bias in the mechanism. We conjecture that this paradigm extends to a much broader range of applications. Accordingly, investigating this hypothesis is the most important line of research arising from this paper.