The Santa Claus Problem [Extended Abstract] Nikhil Bansal Maxim Sviridenko IBM T.J. Watson Research Center P.O. Box 218 Yorktown Heights, NY 10598 IBM T.J. Watson Research Center P.O. Box 218 Yorktown Heights, NY 10598 bansal@us.ibm.com sviri@us.ibm.com ABSTRACT We consider the following problem: The Santa Claus has n presents that he wants to distribute among m kids. Each kid has an arbitrary value for each present. Let pij be the value that kid i has for present j. The Santa’s goal is to distribute presents in such a way that the least lucky kid is P as happy as possible, i.e he tries to maximize mini=1,...,m j∈Si pij where Si is a set of presents received by the i-th kid. Our main result is an O(log log m/ log log log m)-approximation algorithm for the restricted assignment case of the problem when pij ∈ {pj , 0} (i.e. when present j has either value pj or 0 for each kid). Our algorithm is based on rounding a certain natural exponentially large linear programming relaxation usually referred to as the configuration LP. We also show that the configuration LP has an integrality gap of Ω(m1/2 ) in the general case, when pij can be arbitrary. 1. INTRODUCTION We consider the following maximin resource allocation problem. The Santa Claus has n presents that he wants to distribute among m kids. Each kid has an arbitrary value for each present and let pij denote the value of the j-th present for the i-th kid. The Santa’s goal is to distribute presents in such a way that the least lucky kid P is as happy as possible, i.e he tries to maximize mini=1,...,n j∈Si pij where Si is a set of presents received by the i-th kid. This problem is closely related to the classic problem of makespan minimization on unrelated parallel machines [9]. Our setting is similar, but the objective function is different. In the makespan problem, the goal is to distribute all the presents in a way that minimizes the value of presents received by the luckiest kid. Lenstra, Shmoys and Tardos [9] designed 2-approximation algorithm for the problem and proved that there is no approximation algorithm with performance guarantee better then 3/2 unless P = N P . The Santa Claus problem, that we consider here, has been studied in the literature albeit with different names. The special case of “parallel machines” or the case when Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. STOC’06, May21–23, 2006, Seattle, Washington, USA. Copyright 2006 ACM 1-59593-134-1/06/0005 ...$5.00. all children place the same value on each present was studied in the sequence of papers [2, 4, 5, 13]. Woeginger [13] obtains a polynomial time approximation scheme for that problem. The case of “uniform machines”, i.e. when the value pij = pj /si , was studied in [2, 12] in the online setting. The general case was first considered in [10] in the game theoretic context of fairly allocating goods. Using techniques from [9, 11], Bezakova and Dani [3] give an algorithm that obtains a solution with value at least Opt − pmax where Opt is a value of the optimal assignment and pmax = maxi,j pij . Unfortunately, in the case when pmax ≈ Opt it does not provide us with any provable performance guarantee. Bezakova and Dani [3] also design two algorithms with performance guarantee n − m + 1 (note that wlog we may assume that n ≥ m). Recently, Golovin [6] gave an algorithm which guarantees that at least (1 − 1/k) fraction of the kids receive presents with value at least √ Opt/k, for any integer k. Golovin [6] also gave an O( n) approximation for the so called “Big Goods/Small Goods” case where all pij ∈ {pj , 0} and moreover each pj ∈ {1, X}. Finally, modifying the hardness result of [9] for unrelated parallel machine scheduling, [3] show that there is no approximation algorithm for the Santa Claus problem with performance guarantee better then 2 unless P=NP, even in the restrcited assignment case when pij ∈ {pj , 0}. In the rest of the paper we will use the machine scheduling terminology, i.e. presents correspond to jobs, kids correspond to machines, and the value of a present to a kid corresponds to the processing time of a job on a machine. The goal is to find an assignment of jobs to machines that maximizes the minimal machine load. In the general unrelated machines case, pij can be arbitrary. The case when pij ∈ {pj , 0} is referred to as the restricted assignment case. As we shall see in Section 2, the natural linear programming relaxations for this problem even when combined with the binary search and job size truncation technique of [9] (defined in Section 2) has a large Ω(m) integrality gap even for the restricted assignment case. In Section 2 we consider a stronger LP that we call “the configuration LP”. This linear program has a variable for every possible way to feasibly pack jobs on each machine and resembles the classical configuration LP used for the bin packing problem (see for example [7]). Unfortunately, it turns out that this stronger √ LP has a large Ω( m) integrality gap (the instance is given in Section 3) for the general Santa Claus problem. The main result of this paper is an O(log log m/ log log log m)approximation algorithm for the restricted assignment case of the Santa Claus problem. This is described in Sections 6. Section 4 gives a high level overview of our techniques and we conclude in Section 7. 2. LINEAR PROGRAMMING FORMULATIONS The following linear programming formulation is perhaps the most natural linear program associated with the Santa Claus problem. max T, m X yij = 1, j = 1, . . . , n, pij yij ≥ T, i = 1, . . . , m, i=1 n X j=1 yij ≥ 0, ∀i, j. However, the integrality gap of this formulation is unbounded even for one job instance with identical size p on all machines (i.e. pi1 = p for i = 1, . . . , m). This follows as the LP can distribute one job fractionally between m machines while assigning it integrally leaves m − 1 machines empty. A natural way to deal with the problem above is to use binary search combined with the job truncation idea due to [9]. Fix number T that is our target value of objective function. Define a new instance of the problem p′ij = min{pij , T }. The crucial observation is that any integral solution with value at least T for the original sizes still has value at least T for the instance with truncated sizes. Thus we consider the algorithm, where we do a binary search and find the maximum value T of objective function for which the following linear program has a feasible solution m X yij = 1, j = 1, . . . , n, (1) p′ij yij ≥ T, i = 1, . . . , m, (2) ∀i, j. (3) i=1 n X j=1 yij ≥ 0, This technique eliminates a lot of bad instances (for example the one considered above), and in particular works well when the job sizes are small compared to T . In fact, using a rounding approach similar to that considered by [9, 11], Bezakova and Dani [3] proved the following result. Lemma 1. Given a fractional solution to the assignment LP (1)-(3) with value T , it can be converted to an integral solution with value T − p′max , where p′max = maxi,j p′i,j This implies a good approximation in the case when p′max is not too close to T . However, in the case when p′max is close to T , the integrality gap can be as large as Ω(m) even in the restricted assignment case. Consider the following instance with n = 2m − 1 jobs. There are m small jobs labeled j = 1, . . . , m and m − 1 big jobs labeled j = m + 1, . . . , 2m − 1. Each big job has size exactly m on every machine. For i = 1, . . . , m, each small job i has size 1 on machine i and 0 everywhere else (i.e. pij = 1 if i = j and 0 otherwise). Note that this instance is actually that of the restricted assignment case. For T = m we have that p′ij = pij . Assigning job i to machine i for i = 1, . . . , m and assigning each big job to an extent of 1/m on each machine, the fractional load on each machine is exactly 1 + (m − 1) · (1/m) · m = m. Thus the LP above has a feasible solution for T = m. On the other hand, as there are only m − 1 big jobs, in any integral solution there is some machine that is not assigned any big job. For each machine, as there is exactly one small job has a non-zero size on that machine, this implies that any integral optimal solution has value at most 1. We now define a stronger LP relaxation of the Santa Claus problem. A configuration is a subset of jobs. We say that configuration C has size p on machine i, P if the total sum of the jobs in C on machine i is p, i.e. p = j∈C pi,j . We use p(C, i) to denote the size of C on i. As usual assume that value of the objective T is known by doing a binary search. A configuration C is valid for machine i, if p(C, i) ≥ T . Let C(i, T ) denote the set of all valid configurations for machine i. Sometimes, for notational convenience we will write C(i) when the dependence on T is clear. The configuration LP is defined as follows. There is a variable xi,C for each valid configuration C on machine i. There could possibly be an exponential number of variables. The constraints are: X C∈C(i) XX C∋j i xi,C ≥ 1, ∀i (4) xi,C ≤ 1, ∀j (5) xi,C ≥ 0, ∀i, ∀C ∈ C(i, T ). (6) The first set of constraints ensure that each machine is assigned at least one unit of configurations, and second set of constraints ensure that no job is used in more than one unit of configurations. Assuming that the primal problem has an objective function that should be minimized and has zero coefficients. We define dual variables yi for 1 ≤ i ≤ n corresponding to the first set of constraints, and variables zj for 1 ≤ j ≤ n corresponding to the second set of constraints. Thus the dual of the program above is max m X i=1 yi − X j∈C n X zj , j=1 zj ≥ yi , zj ≥ 0, ∀i, ∀C ∈ C(i, T ) ∀j. We claim that separation problem for this dual program is the regular minimum knapsack problem. Indeed, given a candidate solution (y ∗ , z ∗ ), a violated constraintP consists of finding a machine i and a set of jobs J ′ such that j∈J ′ zj ≤ P yi and j∈J ′ pij ≥ T . As a preprocessing step we can round down the size of each job to the nearest integer multiple of ǫT /n. Since there can be at most n jobs of any machine, this affects the solution by at most ǫT . Thus, we can assume that all jobs have integral sizes in the range [0, n/ǫ], and the knapsack problem above can be solve in polynomial time using the standard dynamic program. Thus the dual can be solved up to arbitrary precision using the ellipsoid method in polynomial time. Solving the primal problem exactly on the subset of variables (columns) that correspond to the inequalities of the dual considered by the ellipsoid method we could find a feasible solution for the linear program (4)-(6) to any desired accuracy in polynomial time. Note that any feasible solution to the configuration LP induces a fractional assignment yij such that the load on each machine is at least T . Moreover, the configuration LP is significantly stronger than the assignment LP defined by 1-3. It is instructive to consider the behavior of the configuration LP on the Ω(m) integrality gap instance (described above) for the LP 1-3. On this instance, the configuration LP is infeasible for any T > 1 and hence gives an exact solution. Unfortunately, as we show next, even the configuration LP has a large integrality gap in the general case of arbitrary pij . 3. THE INTEGRALITY GAP OF CONFIGURATION LP In this section we give a family of instances of the general Santa Claus problem for which the configuration LP has an unbounded integrality gap. In particular, for an arbitrary parameter k, we give an instance with O(k2 ) jobs and O(k2 ) machines such that the configuration LP has a solution with value Ω(k) where as the optimum integral solution has value 1. Moreover all the job sizes in the instance are either 0, 1 or k. Let k be an arbitrary integer, The instance consists of a set of machines M and a set of jobs J. The set M consists of k + 1 groups M0 , . . . , Mk where each group Mi has k machines mi1 , . . . , mik . The set of jobs J consists of three types of jobs, big, small and dummy denoted by Jb , Js and Jd respectively. The set Jb has k − 1 “big” jobs jb,1 , . . . , jb,k−1 , each of which has size exactly k on the machines in M0 and size 0 everywhere else. The set Js consists of k groups of jobs Js,i , where i = 1, . . . , k. Each set Js,i contains k jobs js,i,1 , . . . , js,i,k . The job js,i,l has size k on machine mi,l , has size 1 on machine m0,i and has size 0 everywhere else. In other words, the lth job in group Js,i has only two non-zero sizes: It has size k on the lth machine in group Mi and has size 1 on the ith machine in M0 . Finally, for each i = 1, . . . , k there is a dummy job jd,i that has size exactly k on the machines in the set Mi and 0 everywhere else. We refer the reader to Figure 1 which gives a (partial) configuration LP solution for the case of k = 3. Here each machine is depicted as a bin of width 1 and each configuration is depicted as rectangular slab of height greater than or equal T . The width of the slab denotes the amount of configuration (xi,C ) in the solution, and the height of each piece in the slab is the size of job in that configuration. Lemma 2. For the instance (J, M ) defined above, there exists a fractional feasible solution to the configuration LP defined by (4)-(6) with T = k. Proof. Consider the following fractional solution (partially depicted in Figure 1 for the case k = 3). The k − 1 jobs in Jb are distributed equally among the k machines in M0 . That is, each machine m0,i ∈ M0 is assigned a configuration consisting of the singleton job jb,l to the extent of 1/k for each l = 1, . . . , k − 1. Next, for each i = 1, . . . , k, the machine m0,i is assigned the configuration consisting of k jobs from Js,i to the extent of 1/k. This completes the description on M0 . We now describe the assignment of configurations for machines in M1 , . . . , Mk . For i = 1, . . . , k and j 1111 0000 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 0000 1111 0000 1111 0000 1111 0000 1111 m jb,1 b,2 1111 0000 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 m 111 000 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 j s,1,3 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 j s,1,2 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 js,1,1 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 000 111 111 0,1 js,1,1 1111 0000 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 0000 1111 000 111 m1,1 1111 0000 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 0000 1111 m 111 000 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 000 111 0,2 1111 0000 j 0000 1111 000 111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 s,1,2 m1,2 0,3 j 1111 0000 000 111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 000 111 0000 1111 000 111 0000 1111 m s,1,3 1,3 Dummy Job jd,1 Figure 1: A partial fractional solution to machines M0 = {m0,1 , m0,2 , m0,3 } and machines in M1 = {m1,1 , m1,2 , m1,3 } corresponding to the case k = 3. The big jobs jb,1 and jb,2 are distributed among M0 , and jobs in Js,1 are distributed among m0,1 and M1 . l = 1, . . . , k, the machine mi,l is assigned 1 − 1/k units of configuration consisting of the singleton job js,i,l and 1/k of the configuration consisting of the singleton job jd,i . Figure 1 shows the assignment to machines in M1 . It is easy to verify that the assignment is a valid one. In particular, each configuration has load k, each machine is assigned 1 unit of configurations and each job occurs in at most 1 unit of configurations. Lemma 3. The value of any integral solution on the instance (J, M ) described above is at most 1. Proof. Consider an arbitrary integral solution for the instance (J, M ). Since there are k − 1 jobs in Jb and k machines in M0 , there is some machine m0,i in M0 that is not assigned any job in Jb . By our construction, other than jobs in Jb , only jobs from Js,i have nonzero processing times on the machine m0,i , and each of these jobs has size 1 on m0,i . If one or fewer jobs from the set Js,i are assigned to the machine m0,i , then clearly it has load at most 1 and the result follows. Thus, suppose that there are at least two jobs from Js,i that are assigned to m0,i . In this case we will show that there is some machine to which no job is assigned. As the set Js,i contains exactly k jobs, and at least two of these are assigned to m0,i , there are at most k − 2 jobs in Js,i that can be assigned to machines in Mi . As the only other job (other than jobs in Js,i ) that can be assigned to a machine in Mi is the dummy job jd,i , it follows that are at most k − 1 jobs available to be assigned to the k machines in Mi which implies that some machine in Mi must be empty. 4. ALGORITHM OVERVIEW AND ROADMAP idea for the improved approximation is that we can relax the “worst case congestion” requirement for small jobs. In particular we show that for each cluster Mi , we can choose a configuration Ci that can be assigned to some machine in Mi with the property that after we throw away some constant fraction of jobs from each chosen Ci , no job occurs in more than O(log log m/ log log log m) sets Ci . We call this the congestion with outliers property. This gives us a pseudo-schedule where each machine has load Ω(T ) and no job is assigned to more than O(log log m/ log log log m) machines, which implies the desired approximation. We show that the “congestion with outliers” property on arbitrary configurations is closely related to the “worst case congestion” property in an instance where each configuration has only poly-logarithmic jobs. This allows us to use the known results that give better guarantees than randomized rounding for worst case congestion when the configurations have few jobs. Given Lemma 1, it follows that the hard case is when some jobs have size close to the optimum solution T , and hence the load on some machines can essentially be due to a single job. We call such jobs big. Throughout this paper, the reader can only focus on the special case where the job sizes are either T (which is a big number), or 1 (small). We make the reason for this precise in Section 6.1. In this case, the main problem reduces to determining the subset of machines on which big jobs should be placed. Clearly, this choice of machines must be such that it should be possible to load each of the remaining machines reasonably well using only small jobs. Consider for example the bad integrality gap instance for the LP defined by (1)-(3). Here, there is a 5. SIMPLIFICATION OF THE RESTRICTED group of m machines and m − 1 big jobs with the property that these jobs can be placed on any m − 1 machines. Thus ASSIGNMENT CASE one machine needs to be loaded using small jobs. However As all pij ∈ {0, pj } in the restricted assignment case, withthe problem in this instance was that no machine could be out any ambiguity, we will call pj the size of job j. Throughassigned more than one small job. put, we use m to denote the number of machines and n for Our proof is organized into two parts: In Sections 5.1 and the number of jobs. 5.2, we make the underlying structure of the problem (mentioned above) explicit. Starting with a feasible solution of 5.1 Rounding Big Jobs and Relaxing Feasibilthe configuration LP, we give a transformation procedure ity which makes the LP solution more structured at the loss of Let I be an instance of the problem. Let T denote the an O(1) factor in the approximation ratio. After this procelargest value for which the configuration LP has a feasible dure, the machines and big job can be clustered into groups solution, and we assume (by doing a binary search) that M1 , . . . , Mp and J1 , . . . , Jp respectively with the following our algorithm knows T . Clearly, T is an upper bound on property. For each i = 1, . . . , p, the group Ji contains exthe optimum integral solution. We modify the instance I as actly |Mi | − 1 big jobs such that they can be assigned to any follows. Consider a parameter α > 1, which will be related subset of |Mi | − 1 machines in Mi . More precisely, for each to the desired approximation ratio (it is convenient to think i, the big jobs in Ji make up |Mi | − 1 units of configurations of α as a large constant, say 10, though in Sections 5.3 and that are distributed among machines in Mi . The remaining 6, we will choose super-constant values of α). We round all one unit of configuration in Mi , consists of various small-job pj ≥ T /α to T , and leave all pj < T /α unchanged. A job configurations that are distributed across the different maj with pj = T is called big, otherwise we call it a small job. chines in Mi . This transformation allows us to completely We call this modified instance I ′ an α-gap instance. ignore the big jobs. In particular, the problem reduces to Since the sizes are rounded up, the instance I ′ has a soluchoosing exactly one machine mi from each Mi on which tion at least as large as I. Moreover, as any big job has size small jobs must be placed (the machines in Mi \ {mi } can T , we can assume that in any solution to I ′ , a machine is be filled with Ji ). The group of machines M0 and jobs Jb in either assigned a single big job, or else it is assigned multiple Figure 1 is a good example of a cluster. small jobs. Given the above structural properties, an O(log n/ log log n) We claim that if there is a solution S with value at least approximation follows easily by randomized rounding (this T /α for I ′ , then the same solution when considered on the is shown in Section 5.3). For each cluster Mi , there are one instance I will guarantee that each machine has load at least unit of small-job configurations distributed among machines T /α. To see this, if S assigns a big job to a machine, then ∗ in Mi by the configuration LP solution x . We choose one of that machine has load at least T /α for I (as each big job has these configurations at random according to probablity desize at least T /α in I), and if S assigns small jobs with total termined by x∗ and assign it to the corresponding machine load T ′ to a machine, then that machine also has load T ′ in m(i) ∈ Mi . This gives a pseudo-assignment where each maI (as the size of small jobs is same in I and I ′ ). Henceforth, chine has load T , and by standard Chernoff bounds, each we will assume that the input instance is an α-gap instance small job is assigned to no more than O(log n/ log log n) mawith largest job size T and is guaranteed to have a feasible chines (or equivalently, the worst case congestion for small solution to the configuration LP with load T . jobs is O(log n/ log log n)). Since the multiply assigned jobs Consider the assignment LP defined by 1-3. For β ≥ 1, are small, a simple argument (Lemma 4) shows that this suppose we relax the condition 1 for small jobs to pseudo-solution can be used to obtain a proper solution m X where each machine has load Ω(T log log n/ log n). yij ≤ β In Section 6, we improve the approximation ratio to O(log log m/ log log log m). i=1 Note that here we have a guarantee in m (instead of that in n above), which is only better as m ≤ n. The main Let y ∗ be the solution to this relaxed LP. We call y ∗ a β- relaxed assignment. Note that we do not allow a big job to occur more than once. The following is a simple but useful property of β-relaxed solutions. Lemma 4. Let I be an α-gap instance, and S be a βrelaxed assignment for I with value at least T /γ, for some γ > 1. If βγ < α, then there exists a proper integral solution (where each job can be assigned at most once) with value at least T /γβ − T /α. Proof. As I is an α-gap instance, each machine is assigned either a single big job, or many small jobs. Let Ms denote the set of machines which are assigned small jobs by S, and let Js denote the set of all small jobs. By definition, S yields a feasible solution y ∗ to X pij yij ≥ T /γ ∀i ∈ Ms Since G is bipartite, C has even length. We decompose C into two matchings P1 and P2 . We continuously and simultaneously increase the weights yij on edges of P1 and simultaneously decrease the weights on the edges of P2 until some yij is 0 or 1. If some yij reaches 0, we remove the edge (i, j) from the graph. If some yij = 1 for some big job j, we assign job j to machine i forever and delete both i and j from the instance. Note that no big job is assigned to more than one unit of machines machine. Similarly, the amount of small configurations assigned to a machine can only decrease during this procedure (this happens only in the step when we assign a big job to a machine permanently, since in this case we might throw away some small job configurations). j∈Js X i∈Ms ∗ yij yij ≤ β ∀j ∈ Js 0 ≤ yij ≤ 1 Scaling each down by β gives a feasible solution to X pij yij ≥ T /(γβ) ∀i ∈ Ms j∈Is X i∈Ms yij ≤ 1 ∀j ∈ Js 0 ≤ yij ≤ 1 Since each job in Js has size at most T /α, by Lemma 1, this solution can be transformed to an integral assignment of jobs in Is to machines in Ms with value at least T /(βγ) − T /α. The algorithm begins by solving the configuration LP for the α-gap instance. Let x∗ = {. . . , xi,C , . . .} be a fractional assignment of configuration to machines. We call a configuration on a machine big if it consists of a single big job, and small otherwise. Let B(i) denote the set of valid big configurations for machine i. Given the solution x∗ , P consider the induced assignment yij . For job j, let y(j) = m i=1 yij denote the cumulative amount of job j assigned in the solution. Clearly, the constraints (5) in the configuration LP ensure that y(j) ≤ 1 for each job j. In the next section, we will modify the solution x∗ in various ways. In the process the value of y(j) will be allowed to increase up to η = 3 for small jobs. However, we will ensure that y(j) never exceeds 1 for big jobs. 5.2 Transforming the Solution In this section we show that any solution x∗ can be transformed into another 3-relaxed solution x′ with certain “good” structural properties (stated in Lemma 6). We begin by simplifying the assignment of big jobs is x∗ . Let Jb denote the set of big jobs. Consider the bipartite graph G with machines M on the left and the big jobs Jb on the right. We put an edge of weight yij between machine i and big job j, if yij > 0. Lemma 5. The solution x∗ can be transformed into another (1-relaxed) configuration LP solution where the graph G is a forest. Proof. We apply the following procedure until the graph G becomes acyclic. Consider an arbitrary cycle C in G. Let G′ denote the forest obtained after the above procedure, and let x∗ (abusing the notation slightly) denote the corresponding configuration LP solution. We now show how this forest structure can be exploited to form clusters of machines and big jobs. Lemma 6. The solution x∗ can be transformed into another (relaxed) configuration LP solution x′ and the machines and big jobs can be clustered into groups M1 , . . . , Mp and J1 , . . . , Jp respectively with the following properties: 1. For each i = 1, . . . , p, the number of jobs in group Ji is exactly |Mi | − 1. The group Ji could be possibly empty. 2. Within a group the assignment of big jobs is completely flexible in the sense that they can be placed feasibly on any |Mi | − 1 out of the |Mi | machines. 3. For each group Mi , the solution x′ assigns exactly 1 unit of small configurations to machines in Mi and all the |Mi | − 1 units of configurations corresponding to big jobs in Ji . The assignment LP solution induced by x′ is 2-relaxed. Proof. Consider the forest G′ obtained at the end of Lemma 5. We apply the following procedure to each tree in this forest. 1. Any isolated machine node in G′ is a machine that has only small job configurations assigned to it by x∗ . Such a node trivially forms a cluster by itself with the corresponding job cluster being the empty set. 2. If a big job j is a leaf, assign it to its parent node (that is a machine) m and delete both m and j from G′ (i.e. the job j is assigned to machine m permanently). Observe that this step keeps the solution 1-relaxed. Continue applying this step until no job node is a leaf (and hence each job node has degree at least two). 3. If each job node has degree exactly two, form a machine cluster Mi consisting of machines in this tree and another job cluster Ji consisting of big jobs in this tree. Note that by the degree property, |Ji | = |Mi | − 1. 4. Otherwise, root the tree arbitrarily at some machine node. Consider some job node j ∗ with at least two children, and with the minimality property that every other job node in the subtree rooted at j ∗ has exactly one child. Suppose j ∗ has l ≥ 2 children and let m1 , m2 , . . . , ml denote the machine nodes corresponding to these children. In the solution x∗ , at most one unit of j ∗ is assigned to m1 , . . . , ml . As l ≥ 2, at least one of these machine nodes (call it m1 ) must have less than 0.5 units of j ∗ assigned to it. Consider R the subtree rooted at m1 . By the minimality property of j ∗ , each job node in R has exactly one machine node child. Let M (R) and J(R) be the set of machine nodes and job nodes in R respectively. Clearly, |J(R)| = |M (R)| − 1. As each job in J(R) is assigned at most one unit to nodes in M (R) and as j ∗ is assigned at most 0.5 units to M (R), it follows that the cumulative amount of small configurations assigned by x∗ to M (R) is at least 0.5. We form the cluster M (R) and corresponding cluster J(R), remove the subtree R from G and repeat the procedure. During the above procedure, some big jobs get assigned to machines permanently (step 2). At the end, we are left with a collection of groups M1 , . . . , Mp and J1 , . . . , Jp . By construction we have that |Ji | = |Mi | − 1, and hence they satisfy the first property of the lemma. The second property follows by observing that for any node m ∈ Mi , we can root the tree corresponding to Mi ∪ Ji at m and assign each job node j ∈ Ji to its child machine ( this can always be done as no job j is a leaf). The third property follows as the cumulative amount of small configurations assigned by the solution x∗ to the machine nodes in Mi is at least 0.5. For each machine m ∈ Mi we can scale the small configurations xi,C uniformly (possibly adjusting the assignment of big configurations, to ensure constraints (4) in the configuration LP) such that the amount of small configurations in Mi is exactly 1. The resulting solution is clearly 2-relaxed. Lemma 6 implies that the assignment of big jobs to machines within a group is completely flexible and can be ignored. Henceforth given a group Mi , we will only care about the small configurations assigned to machines in Mi by the configuration LP. We will call Mi a super-machine. If the solution x′ assigns xm,C amount of small configuration C to machine m ∈ Mi , we say that Mi contains a configurationmachine pair (C, m) to an extent xm,C . Finally, we can make another (minor) simplification. Lemma 7. We can round the solution x′ such that each xm,C is an integral multiple of 1/(n + m), and the resulting solution is 3-relaxed. Proof. The total number of nonzero variables xi,C in any basic feasible solution to the configuration LP 4-6 is at most n + m. Thus we can round each xi,C either up or down to the nearest multiple of 1/(n + m) while keeping the total of small configurations for each super-machine equal to 1. Since each variable xi,C is increased by at most 1/(n + m) the new solution is 3-relaxed. 5.3 The Algorithmic Framework and a Simple Algorithm The underlying idea of our algorithms is the following. Suppose we could find a (relaxed) assignment of small jobs to super-machines with the following properties: 1. For each super-machine Mi , there is some machine m(i) ∈ Mi that is assigned small jobs with total load load at least T /γ. 2. No job is assigned to more than β machines (i.e. the assignment is β-relaxed). Then, by Lemma 6 for each super-machine Mi , we assign we can assign the big jobs in Ji to machines other than m(i). For the machines m(i), by Lemma 4, there is a proper assignment where each machine has load at least T /(βγ) − T /α. So, if βγ < α/2, we are guaranteed that each machine has load at least T /α. This will give us an α = O(βγ) approximation, In Section 6.5, we will show that we can always choose γ = O(1) and η = O(log log m/ log log log m), which will imply our main result. In fact, we will always guarantee a somewhat stronger guarantee than property (1) above. We will ensure all the small jobs assigned to Mi belong to some single configuration machine pair (m, C) where m ∈ Mi . We begin by showing a simple O(log n/ log log n) approximation. Theorem 1. A simple randomized rounding based algorithm has an approximation guarantee of O(log n/ log log n). Proof. For each super-machine Mi , by Lemma 6 we have that exactly one unit of small configurations are assigned to Mi . We choose exactly one configuration-machine pair (m, C) with probability xm,C and assign the jobs in the configuration to C to machine m. Since the solution x′ is 3relaxed, a direct application of Chernoff Bounds (Lemma 13) shows that no job is assigned to more than O(log n/ log log n) machines with high probability. Since each configuration has load T , whp this gives a β-relaxed assignment with γ = 1 and β = O(log n/ log log n). By the framework discussed above this implies the claimed approximation. 6. IMPROVING THE GUARANTEE The goal in the rest of the paper will be to improve the approximation guarantee to O(log log m/ log log log m). In the proof of Theorem 1, choosing β = O(log n/ log log n) ensured that with high probability no job is assigned to more than β machines and hence γ = 1. In this section, we will show how to reduce β significantly by allowing γ to be a constant larger than 1. We begin by showing that at the expense of an O(γ) = O(1) factor loss in the approximation ratio, we can assume that every small job has the same size. This will allow us to recast our problem as that about certain set-systems. We will define this problem formally in Section 6.2 and study it in Sections 6.3 -6.5. 6.1 Making small job sizes uniform Lemma 8. Given our algorithmic framework described in Section 5.3, at the loss of an O(γ) factor in the approximation ratio, we can assume that all small jobs have an identical size of ǫT /n. Proof. First, we can assume that the size of each job is an integral multiple of ǫT /n for a small enough ǫ. This affects the load on any machine by at most ǫT . We now split each job into atoms each of which has size ǫT /n and treat each atom as a separate job. Now suppose we are given a β-relaxed assignment of atoms to super-machines, and some machine in each super-machine is assigned a load of at least T /γ atoms. To map this solution back to the original instance, we assign a job j to machine m if it contains more than 1/(2γ) fraction of atoms of j. Clearly, no job j is assigned to more than 2γβ machines otherwise there would some atom of j that is assigned to more than β machines, contradicting our assumption that we had a β-relaxed assignment of atoms. Moreover, if a machine m is assigned atoms with cumulative load at least T /γ, a simple averaging argument shows that at least T /(2γ) of the load on m will be made up by atoms of jobs j which have more than 1/(2γ) fraction of atoms assigned to m. Thus the procedure for assigning jobs above gives a 2βγ relaxed assignment of jobs where each machine has load at least T /(2γ). Thus by the framework in Section 5.3, this solution can be converted to a valid assignment with value T /(2γβ · 2γ) − T /α, which implies as O(γ 2 β) approximation. 6.2 Auxiliary Problem Given Lemma 8 above, each small job has the same size and hence we will ignore its size and treat it as an element of some set. We will now recast the problem above as one about certain systems. Once we complete this description, we will completely abandon the notion of machines, job and configurations. Let k, l, p and η be positive integers. Let Si,j be a collection of sets indexed by i and j, where i = 1, . . . , p and j = 1, . . . , l over some ground set U of elements. We say that these sets define a (k, l, p, η)-system if the following properties hold: 1. Each set Si,j has cardinality k. 2. The sets are partitioned into m collection C1 , . . . , Cm , where Ci = {Si,1 , . . . , Si,l } 3. Each element u ∈ U occurs in at most βl of the sets S1,1 , . . . , Sm,l . We claim that the configuration LP solution corresponding to super-machines can be viewed as a (k, l, p, η) system. Observation 1. The configuration LP solution corresponding to super-machines can be viewed as a (k, l, p, η) system with k = n/ǫ, l = n + m, p equal to the number of supermachines and η = 3. Proof. We view each small job as an element u of the ground set U , each super-machine Mi as the collection Ci , and each configuration-machine pair that occurs to an extent of 1/(n + m) (by Lemma 7) in Mi as a set Sij . That η = 3, also follows from Lemma 7. We now recast our problem. Definition 1 ((γ, β)-good function). Let f be a function from {1, . . . , p} → {1, . . . , l}. For γ ≥ 1 and β ≥ 1, we say that f is (γ, β)-good if it satisfies the following properties: ′ 1. For each i = 1, . . . , p, there is subset Si,f (i) of Si,f (i) ′ such that |Si,f (i) | ≥ k/γ. 2. No element u ∈ U appears in more than β elements in the collection {S1,f (1) , S2,f (2) , . . . , Sp,f (p) }. Note that by Lemma 8 and the framework in Section 5.3, finding a (γ, β)-good function f and the associated sets Si,f (i) gives an O(γ 2 β) approximation to the Santa Claus problem. Our main theorem (proved later) is the following: Theorem 2. Given any (k, l, p, η)-system, and any ǫ > 0, there exists an (1/(1−ǫ), O(η log log p/ log log log p))-good function f . Moreover, f and the subsets Si,f (i) for i = 1, . . . , p can be found in polynomial time with high probability. In our setting, as the number of super-machines p is no more than the number of machines m and η = 3, and hence the theorem implies an O(log log m/ log log log m) approximation for the restricted assignment case. 6.3 Certifying properties (γ, β)-good functions and their Note that to determine if a function f is (γ, β)-good, we ′ need to find the subsets Si,f (i) that satisfy the properties in Definition 1. In this section, we first show that this can be done in polynomial time by solving a max-flow problem. In particular, Lemma 9. Given a function f : {1, . . . , p} → {1, . . . , l}, and parameters γ and β, there is a polynomial time algorithm to determine whether f is (γ, β)-good. Moreover, we ′ can determine the sets Si,f (i) in polynomial time. Proof. We construct the following network (please see Figure 2) corresponding to f and the set system: We have a directed bipartite graph with the vertex sets V = {1, . . . , p} corresponding to C1 , . . . , Cp and U = {1, . . . , |U |} corresponding to the ground elements. There is a directed edge with capacity 1 from v ∈ V to u ∈ U if u ∈ Sv,f (v) . There is a source vertex s and sink vertex t. For each vertex v ∈ V , there is a edge (s, v) with capacity k/γ and for each vertex u ∈ U there is a directed edge (u, t) with capacity β. Consider the maximum flow from s to t subject to the edge capacities. We claim that this network has a maximum flow of value exactly kp/γ if and only if f is (γ, β)-good. If f is (γ, β)-good, then consider the solution that transmits one unit of flow on each edge (v, u) such that v ∈ V and ′ u ∈ Sv,f (v) . The flows on the sets of edges (s, v) and (u, t) are determined by the flow conservation constraints. Since f is (γ, β)-good, by definition, it follows that no edge (u, t) has flow more than β and that each edge (s, v) has flow exactly k/γ and hence the flow is feasible. Conversely, consider a flow with value kp/γ. As there are p vertices of the type (s, v), each edge (s, v) must have flow exactly equal to its capacity k/γ. Since the flow is integral, for each v there are exactly k/γ edges corresponding ′ Sv,f (v) with flow 1. Let Sv,f (v) be the subset corresponding to these edges. The capacity constraints on the edges (u, t) ensure that no ground element u appears more than β times ′ ′ ′ {S1,f (1) , S2,f (2) , . . . , Sp,f (p) }. The network characterization in the proof of Lemma 9 above also gives the following important characterization of functions that are not (γ, β)-good. Lemma 10. Let f be a function {1, . . . , p} :→ {1, . . . , l}. If f is not (γ, β)-good, then there exists a subset of configurations Ṽ ⊂ V = {1, . . . , p} and a subset Ũ of ground elements such that 1. Each element in Ũ occurs at least (1 − 1/γ)β/2 times in {Si,f (i) : i ∈ Ṽ }. 2. The size of Ũ is at least (1 − 1/γ)2 βk|Ṽ |/(2η 2 l2 ). In particular, the number of vertices in Ũ is linear in the number of elements in Ṽ . Proof. Consider the network graph in Lemma 9 corresponding to γ, β and f . Since f is not (γ, β)-good, by Lemma 9 the maximum flow in the network above is strictly less than kp/γ. Thus there is some mincut (C, C) with value strictly less then kp/γ. Let C be side of the cut that contains the source s. Let V ′ = V ∩ C and U ′ = U ∩ C. We refer the reader to Figure 2 for clarity. Note that V ′ 6= ∅ otherwise each of the edges (s, v) must lie in the cut and hence the cut has size at least kp/γ which contradicts that C is a mincut. Similarly, U ′ 6= ∅ otherwise any such cut must contain kp/γ edges (because each vertex v contributes the edge (s, v) or all the edges (v, u), both of which contribute at least k/γ to the cut size). Let v be an arbitrary vertex in V ′ . Suppose we remove v from C and move it to C. This adds k/γ capacity due to the edge (s, v) to the cut and removes e(v, U \ U ′ ) capacity from the cut. Here e(v, U \ U ′ ) denotes the number of edges from v to the set U \ U ′ . As (C, C) is a mincut, it must be that k/γ − e(v, U \ U ′ ) ≥ 0. Summing over all v in V ′ , it follows that U’ Cut C V’ t s δk β k|V ′ |/γ − e(V ′ , U \ U ′ ) ≥ 0 Here e(V ′ , U ′ ) denotes the number of edges from V ′ to U ′ . As each v ∈ V has exactly k edges to U it follows that e(v, U \ U ′ ) = k − e(v, U ′ ) and hence the above inequality can be written as ′ ′ ′ e(V , U ) ≥ (1 − 1/γ)k|V | (7) Moreover as any vertex in U has in-degree at most ηl, it follows that |U ′ | ≥ e(V ′ , U ′ ) (1 − 1/γ)k|V ′ | ≥ ηl ηl (8) We now apply a similar argument to U ′ . Let u be an arbitrary vertex in U ′ and suppose we remove u from C. This reduces the capacity by β as the edge (u, t) is no longer in the cut, and it increases the cut capacity by e(V ′ , u). As C is a mincut, it must be that β − e(S, u) ≤ 0. Summing over all u ∈ U ′ , we get that β|U ′ | − e(V ′ , U ′ ) ≤ 0 As each v ∈ V has k outgoing edges to U , it follows that e(V ′ , U ′ ) ≤ k|V ′ | and hence |U ′ | ≤ e(V ′ , U ′ )/β ≤ k|V ′ |/β ′ (9) ′ ′ By equations 7 and 9 it follows that e(V , U )/|U | ≥ β(1 − 1/γ) and hence a vertex in U ′ has on the average at least β(1 − 1/γ) incoming edges from V ′ . Since the maximum in-degree of any vertex in U is at most ηl, by a simple averaging argument it follows that there are at least (1 − 1/γ)β|U ′ |/(2ηl) vertices in U ′ that have at least (1−1/γ)β/2 incoming edges from V ′ . By equation 8 the number of such vertices is at least (1 − 1/γ)2 βk|V ′ |/(2η 2 l2 ). The desired claim follows by choosing Ũ to be the set of these vertices and choosing Ṽ = V ′ . 6.4 Further properties of the auxiliary problem Before we can prove our main result, we need two other facts. V U Figure 2: The network corresponding to the proofs of Lemma 9 and 10 Lemma 11. Let ǫ < 1/2. Without loss of generality, we can assume that l = O(log p). In particular, given a (k, l, p, η)system G, we can construct a ((1−ǫ)k, log p/ǫ2 , p, 6η)-system G′ with high probability. Proof. For each Ci , choose log p/ǫ2 sets Si,j randomly ′ with repetition. Let these sampled sets be denoted by Si,j and call this set system G′ . Consider an element u ∈ U . ′ The expected number of occurences of u in Si,j is η log p/ǫ2 . We call u bad if it is lies in to more than 6η log p/ǫ2 sets ′ Si,j . By Chernoff Bounds 13, the probability that u is bad 2 2 is at most e−5η log p/ǫ ·1/5 = e−η log p/ǫ < 1/p4 . ′ ′ ′ Consider a particular set Si,j in G . As |Si,j | = k, the ex′ pected number of bad elements in Si,j is at most k · (1/p4 ). ′ Thus by Markov’s inequality the probability that Si,j con4 tains more than ǫk bad elements is at most 1/(ǫp ). As there ′ are at most p log p/ǫ2 sets Si,j , it follows that with high prob′ ability (inversely polynomial in p) each set Sv,i contains at least (1 − ǫ)k non-bad elements. By the properties above, G′ is a ((1 − ǫ)k, log p/ǫ2 , p, 6η) system. Next we state a result due to Leighton et al. [8] about good functions with γ = 1. This result is useful when k is small (for large k the guarantee is essentially similar to that obtained by randomized rounding). The existential statement of this result follows by applying Lovasz Local Lemma to the set system where we define two sets Si,j and Sk,l to be dependent if they share an element. [8] showed how this can be derandomized to give a polynomial time algorithm. Their result was originally stated in the context of low congestion routings, but it can be rephrased as the following in our context. Theorem 3 (Leighton et al.,Theorem 3.1 in [8]). For every (k, l, p, η)-system, there exists a polynomial time algorithm to find a (1, O(η log kl/ log log kl))-good function f. 6.5 The Algorithm We are now ready to prove Theorem 2. Let G be a (k, l, p, η)-system. By Lemma 11, we can assume that l = O(log p). We also note that the interesting case is only when η ≤ log p, the result easily follows for η > log p by randomized rounding. Recall that for our application η = 3. Our algorithm chooses a small random sample Us of the ground elements U , such that if we restrict G to Us , we obtain a (k′ , l, p, η) system where k′ is polylogarithmic in p. We apply Theorem 3 to obtain a good function f with γ = 1. We then show that with high probability (over the random choice of Us ), the function f is also good for G with γ = 1/(1 − ǫ). Our algorithm is the following: 1. Obtain a random set Us by sampling each element u ∈ U with probability η 2 l2 log2 p/k. Let Gs by the system obtained by restricting G to Us . For each set Si,j , the expected size of Si,j ∩ Us is η 2 l2 logp . Thus, with high probability Gs is a (ks , l, p, β)-system where ks is polylogarithmic in p. We will show that with high probability, the event stated above does not happen. In particular, with high probability, for every possible bad witness S̃, some bad element corresponding to S̃ appears in Us . Consider a particular bad witness S̃ of size x. By Lemma 10, the witness S̃ has at least ǫβkx/(η 2 l2 ) bad elements Ũ . Since Us is obtained by sampling each of these elements independently and uniformly at random with probability q = η 2 l2 log2 p/k from U , the probability that none of the elements in Ũ is chosen is at most (1−q)ǫβkx/(η 2 2 l ) = (1−η 2 l2 log2 p/k)ǫβkx/(η 2 2 l ) ≤ e−ǫβx log 2 p Since there are at most pl sets Si,j in the set system G,¡ the ¢ total number of possible bad witness of size x is at most pl . x Thus, the probability that our algorithm fails is at most à ! X pl −ǫβx log2 p X 2 e ≤ (pl)x e−ǫβx log p x x≥1 x≥1 In our setting, since l = O(log p) and β = Θ(log log p/ log log log p) and hence greater than 1/ǫ, the quantity above can be bounded by X −(log2 p−2 log p)x e x≥1 2. Apply the algorithm of Leighton et al, Theorem 3 to the system Gs . Since ks = polylog p, this gives a (1, dη log log p/ log log log p))-good function f for Gs , where d is some constant. 3. Using the algorithm in Lemma 9, check whether the function f is (1/(1 − ǫ), 2dη log log p/(ǫ log log log p))′ good for G. If yes, obtain the corresponding sets Si,j by applying Lemma 9. Otherwise reject. We show that above procedure succeeds with high probability which implies Theorem 2. Lemma 12. The algorithm above succeeds with high probability. Proof. Let F denote the set of all functions f from {1, . . . , p} :→ {1, . . . , l}. Let β ≥ 1 be an arbitrary parameter. It suffices to show that with high probability, every f ∈ F that is not (1/(1 − ǫ), 2β/ǫ)-good for G, is also not (1, β)-good for the random instance Gs . If some f is not (1/(1 − ǫ), 2β/ǫ)-good for G, then by Lemma 10, there is a subset Ṽ of V and a subset Ũ of U , such that |Ũ | ≥ ǫ2 (2β/ǫ)k|Ṽ |/(2η 2 l2 ) and each element in Ũ appears at least (ǫ/2) · (2β/ǫ) = β sets in {Sv,f (v) : v ∈ Ṽ }. We call the collection S̃ = {Si,f (i) : i ∈ Ṽ } a bad witness for f , and the set Ũ as the bad elements corresponding to this witness. We also say that the size of the bad witness S̃ is |Ṽ |. Note that the bad elements Ũ are completely determined by S̃. The crucial observation is the following: Suppose f is not (1+ǫ, 2β/ǫ)-good for G, but is (1, β)-good for Gs (and hence the algorithm might reject and fail). Consider some bad witness S̃ for f , then it must be the case that none of the bad elements Ũ corresponding to S̃ were chosen in the sample Us . Because, if some bad element in Ũ was chosen in the sample Us , then it would appear in more than β sets in {Sv,f (v) ∩ Us : v ∈ Ṽ }, and hence would ensure that f is not (1, β)-good for Gs . which is less than inversely polynomial in p. Thus with high probability, if f is (1, β)-good for Gs , then it is (1 − ǫ, 2β/ǫ)good for G, which completes the proof. 7. CONCLUDING REMARKS The Santa Claus problem remains poorly understood in the general case, and a huge gap remains between the known upper bound of O(n) and the lower bound of 2 on the approximation ratio. Another natural question is whether there is an O(1) approximation in the restricted assignment case. Based on the results of our paper, it suffices to show the following relation between fractional and integral congestion: Let C1 , . . . , Cp be collections of sets, Ci = {Si1 , . . . , Sil } for i = 1, . . . , p, where each set Sij is k-element subset of some ground set such that each element appears in at most l sets Sij (i.e. fractional congestion is 1). Then, can we choose some set Si,f (i) ∈ Ci for each i = 1, . . . , p, such that we can find Si′ ⊆ Si,f (i) with the property that |Si′ | = Ω(k) and that each element occurs in at most O(1) sets in {S1′ , . . . , Sp′ }? 8. ACKNOWLEDGMENTS We would like to thank Tracy Kimbrel for suggesting the problem name, and Nicole Immorlica and Vahab Mirrokni for bringing the problem to our attention. We would also like to thank Don Coppersmith for stimulating discussions about the problem. 9. REFERENCES [1] N. Alon and J. Spencer. The Probabilistic Method. John Wiley and Sons, New York, 2000. [2] Y. Azar and L. Epstein. On-line machine covering. Journal of Scheduling, 1(2):67–77, 1998. [3] I. Bezakova and V. Dani. Allocating indivisible goods. SIGecom Exchanges, 5.3, 2005. [4] J. Csirik, H. Kellerer, and G. Woeginger. The exact lpt-bound for maximizing the minimum completion time. Operations Research Letters, 11(5):281–287, 19982. [5] B. Deuermeyer, D. Friesen, and M. Langston. Scheduling to maximize the minimum processor finish time in a multiprocessor system. SIAM J. Algebraic Discrete Methods, 3(2):190–196, 1982. [6] D. Golovin. Max-min fair allocation of indivisible goods. Technical Report, Carnegie Mellon University, CMU-CS-05-144, 2005. [7] N. Karmarkar and R. M. Karp. An efficient approximation scheme for the one-dimensional bin-packing problem. In Procedeeings of Foundations of Computer Science (FOCS), pages 312–320, 1982. [8] T. Leighton, C. Lu, S. Rao, and A. Srinivasan. New algorithmic aspects of the local lemma with applications to routing and partitioning. SIAM J. Comput., 31(2):626–641, 2001. [9] J. K. Lenstra, D. B. Shmoys, and E. Tardos. Approximation algorithms for scheduling unrelated parallel machines. Mathematical Programming, Series A, 46(2):259–271, 1990. [10] R. Lipton, E. Markakis, E. Mossel, and A. Saberi. On approximately fair allocations of indivisible goods. ACM Conference on Electronic Commerce, 2004. [11] D. B. Shmoys and E. Tardos. An approximation algorithm for the generalized assignment problem. Mathematical Programming, Series A, 62:461–474, 1993. [12] Z. Tan, Y. He, and L. Epstein. Optimal on-line algorithms for the uniform machine scheduling problem with ordinal data. Information and Computation, 1196(1):57–70, 2005. [13] G. Woeginger. A polynomial-time approximation scheme for maximizing the minimum machine completion time. Oper. Res. Lett., 20(4):149–154, 1997. Technical Facts We use the following version of Chernoff bounds as given on page 267, Corollary A.1.10 and Theorem A.1.13, in [1]. Lemma 13. Suppose X1 , . . . , Xn , are 0-1 random variPn ables,Psuch that P r[Xi = 1] = pi . Let µ = i=1 pi and X= n i=1 Xi . Then for any a > 0 P r[X − µ ≥ a] ≤ ea−(a+µ) ln(1+a/µ) Moreover, for any a > 0, P r[X − µ ≤ −a] ≤ e−a 2 /2µ We will also need the following corollary. Lemma 14. P r[X − µ ≥ a] ≤ e−a min(1/5,a/4µ) Proof. Let x = µ/a. Then the right-hand side can be written as e−a((x+1) ln(1+1/x)−1) . Now, (x + 1) ln(1 + 1/x) − 1 is decreasing in x. At x = 2, its value is 3 ln 3/2 − 1 ≥ 1/5. For x > 2, it is at least (x + 1)(1/x − 1/2x2 ) − 1 = 1/(2x) − 1/(2x2 ) ≥ 1/(4x).