Gradient-based Methods for Production Optimization of Oil Reservoirs