Stochastic Programming: Formulations, Algorithms, and Applications