Gradient Estimation Via Perturbation Analysis