893 ISSN 0040-5795, Theoretical Foundations of Chemical Engineering, 2017, Vol. 51, No. 6, pp. 893–909. © Pleiades Publishing, Ltd., 2017. Mathematical Programming Techniques for Optimization under Uncertainty and Their Application in Process Systems Engineering 1 I. E. Grossmann*, R. M. Apap, B. A. Calfa, P. Garcia-Herreros, and Q. Zhang Carnegie Mellon University, Pittsburgh, PA 15213, USA *e-mail: grossmann@cmu.edu Received May 10, 2017 AbstractIn this paper we give an overview of some of the advances that have taken place to address chal- lenges in the area of optimization under uncertainty. We first describe the incorporation of recourse in robust optimization to reduce the conservative results obtained with this approach, and illustrate it with interruptible load in demand side management. Second, we describe computational strategies for effectively solving two stage programming problems, which is illustrated with supply chains under the risk of disruption. Third, we consider the use of historical data in stochastic programming to generate the probabilities and outcomes, and illustrate it with an application to process networks. Finally, we briefly describe multistage stochastic pro- gramming with both exogenous and endogenous uncertainties, which is applied to the design of oilfield infra- structures. Keywords: robust optimization, stochastic programming, exogenous uncertainty, endogenous uncertainty, scenario generation DOI: 10.1134/S0040579517060057 INTRODUCTION Optimization under uncertainty has been an active area of research in process systems engineering [1–3]. A major decision in this area is whether one should rely on a robust optimization approach in which the emphasis is to guarantee feasibility over a specified uncertainty set, or whether one should use a stochastic programming approach in which first -stage decisions are made while anticipating that recourse actions can be implemented once the uncertainties are revealed. The robust optimization approach (or its generaliza- tion, chance constrained optimization) is usually more appropriate for short-term horizon problems in which feasibility is a major concern. On the other hand, stochastic programming is usually more appro- priate for problems with long-term time horizons in which it is expected that recourse actions will be taken. Stochastic programming models, however, tend to be much more expensive to solve compared to robust optimization models. Furthermore, there is the ques- tion of how to specify the uncertainties (e.g., an intui- tive guess or the use of historical data). Finally, it is essential to use as a basis an efficient deterministic model. In this paper, we address the following major ques- tions in optimization under uncertainty: (a) how to incorporate recourse in robust optimization, (b) how to reduce computational time when solving two-stage stochastic optimization problems, (c) how to make use of historical data in the generation of scenarios for sto- chastic programming, (d) how to handle exogenous (decision independent) and endogenous (decision dependent) uncertainties in multi-stage stochastic programming. As opposed to our recent paper in this area [3], we emphasize the modeling and application of specialized solution methods in industrial problems related to demand side management, supply chains, process networks and oilfields. MODELING RECOURSE IN ROBUST OPTIMIZATION Robust optimization [4] is one of the main approaches for incorporating uncertainty in optimiza- tion modeling. The uncertainty is specified in terms of an uncertainty set in which any point is a possible real- ization of the uncertainty. The major goal is to find a solution that is feasible for all possible realizations of the uncertainty while optimizing the objective func- tion. Since the worst case of the uncertainty set is one of the possible realizations, a robust optimization model returns a solution that is optimal for this partic- 1 The article is published in the original.