New rounding techniques for the design and analysis of approximation algorithms