gradient-based control