Dual Fitting Analysis of Mettu-Plaxton algorithm: ================================================= (1) Dual LP. Recall that the dual LP is the following: maximize Sum_i v_i s.t. v_i - w_{ij} <= c_{ij} for all i,j sum_j w_{ij} <= f_j for all j (2) Dual solution. We can obtain a dual solution from the Mettu-Plaxton algorithm as follows. For each client i, facility j, set w_{ij} = r_j - c_{ij}, if i in B_j, and 0 otherwise. For each client i, set v_i = min_j (w_{ij} + c_{ij}) (3) Feasibility. -- For each facility j, Sum_{i} w_{ij} = Sum_{i in B_j} r_j - c_{ij} = f_j -- For each client i, facility k, v_i = min_j (w_{ij} + c_{ij}) <= w_{ik} + c_{ik} (4) Cost bound Let F denote the set of facilities selected by the Mettu-Plaxton algorithm. The cost of solution F can be written as the sum of two terms: (a) Sum, over all facilities j in F, of the sum over all clients i in B_j, of w_{ij} + c_{ij} (b) Sum, over clients i that do not belong to any B_j, j in F, over c_{i s(i)}, where s(i) is the facility in F nearest to i. Note that the clients that contribute to (a) are disjoint from the clients that contribute to (b). Consider any client i. Let k be the facility such that v_i = w_{ik} + c_{ik}. We will show that the client's contribution to the cost of F is at most 3v_i. We will prove this by considering cases. First, by the construction of our solution, there exists p in F such that r_p <= r_k and c_{pk} <= 2r_k. We thus have (*) c_{ip} <= c_{ik} + c_{kl} <= c_{ik} + 2r_k Case A: There exists j in F such that i is in B_j, then r_j <= 3v_i. Case A.1: If j = p, then r_j = r_p <= r_k <= v_i. Otherwise, we have from (*) r_j <= c_{ip} <= c_{ik} + 2r_k Case A.2: If i is in B_k, then r_j <= c_{ik} + 2r_k <= 3r_k = 3v_i Case A.3: If i is not in B_k: r_j <= c_{ik} + 2r_k <= 3c_{ik} = 3v_i Case B: There does not exist j in F such that i is in B_j. So in this case, i's contribution to the cost of F is c_{i s(i)}. Case B.1: If i is in B_k, then using (*) c_{i s(i)} <= c_{ip} <= c_{ik} + 2r_k <= 3r_k = 3v_i Case B.2: If i is not in B_k, then using (*) c_{i s(i)} <= c_{ip} <= c_{ik} + 2r_k <= 3c_{ik} = 3v_i