Stochastic programming
Authors: Gerald Ogbonna (gco27), Hangyu Zhou (hz477), Roohi Menon (rm832), Vikram Raghavan (vr278) (SYSEN 6800 Fall 2021)
Introduction
Stochastic Programming, also referred to as Stochastic Optimization, is a mathematical framework to help decision-making process under uncertainty [1]. With uncertainties being widespread, Stochastic Programming is a risk-neutral mathematical framework that finds application in areas, such as process systems engineering [2]. In process engineering, uncertainties are related to prices, purity of raw materials, customer demands, and yields of pilot reactors, among others. Batch processing has widely been adopted across process industries, and for the stated manufacturing process production scheduling is one of the most crucial decisions to be taken. In a deterministic optimization model, parameters, such as process of raw materials, availability of raw materials, price of different products, operation time and cost, and order demands are considered without factoring uncertainty. However, such assumptions are not realistic because uncertainty doesn’t come with a forewarning. Hence, uncertainty needs to be factored always [4].
In conventional robust optimization, the assumption is made that all decision variables are realized before the realization of uncertainty. Such an approach makes the conventional robust optimization problem overly conservative [4]. Moreover, in manufacturing not all decisions need to be made “in-the-present,” a stagnated approach to decision making [two-stage approach] can also be adopted. Going beyond, Stochastic Programming framework can also be applied to a variety of problems across sectors, such as electricity generation, financial planning, supply chain management, mitigation of climate change, and pollution control [2]. The field has evolved from deterministic linear programming by introducing random variables [7].
Theory, methodology, and/or algorithmic discussion
Two-Stage Stochastic Linear Program with Fixed Recourse:
Modeling through stochastic programming is often adopted because of its proactive-reactive decision-making feature to address uncertainty [1]. Two-stage stochastic programming (TSP) is helpful when a problem requires the analysis of policy scenarios, however, the associated system information is inherently characterized with uncertainty [2]. In a typical TSP, decision variables of an optimization problem under uncertainty are categorized into two periods. Decisions regarding the first-stage variables need to be made before the realization of the uncertain parameters. The first-stage decision variables are proactive for they hedge against uncertainty and ensure that the solution performs well under all uncertainty realizations [1]. Once the uncertain events have unfolded/realized, it is possible to further design improvements or make operational adjustments through the values of the second-stage variables, also known as recourse, at a given cost. The second-stage variables are reactive in their response to the observed realization of uncertainty [1]. Thus, optimal decisions should be made on data that is available at the time the decision is being made. In such a setup, future observations are not taken into consideration [3]. Two-stage stochastic programming is suited for problems with a hierarchical structure, such as integrated process design, and planning and scheduling [1].
Algorithm discussion:
To solve problems related to Two-Stage Linear Stochastic Programming more effectively algorithms, such as Benders decomposition or the Lagrangean decomposition can be used. Benders decomposition was presented by J.F Benders, and is a decomposition method used widely to solve mixed-integer problems. The algorithm is based on the principle of decomposing the main problem into sub-problems. The master problem is defined with only the first-stage decision variables. Once the first-stage decisions are fixed at an optimal solution of the master problem, thereafter, the subproblems are solved and valid inequalities of x are derived and added to the master problem. On solving the master problem again, the algorithm iterates until the upper and lower bound converge [2]. The Benders master problem is defined as being linear or mixed-integer and having fewer technical constraints, while the sub-problems could be linear or nonlinear in nature. The subproblems’ primary aim is to validate the feasibility of the master problem’s solution [8]. Benders decomposition is also known as L-shaped decomposition because once the first stage variables, x, are fixed then the rest of the problem has a structure of a block-diagonal. This structure can be decomposed by scenario and solved independently [2].