Approximation Algorithms for Faster Communication and Cheaper Networks Using Linear Programming