Optimization and learning