  In this paper, we will formalize the method of dual fitting and the idea of
factor-revealing LP. This combination is used to design and analyze two greedy
algorithms for the metric uncapacitated facility location problem. Their
approximation factors are 1.861 and 1.61, with running times of O(mlog m) and
O(n^3), respectively, where n is the total number of vertices and m is the
number of edges in the underlying complete bipartite graph between cities and
facilities. The algorithms are used to improve recent results for several
variants of the problem.
