Randomized rounding: A technique for provably good algorithms and algorithmic proofs