of 8

# Pooling optimization problem

Presented in this short document is a description of what is called the (classic) “Pooling Optimization Problem” and was first described in Haverly (1978) where he modeled a small distillate blending problem with three component materials (A, B, C), one pool for mixing or blending of only two components, two products (P1, P2) and one property (sulfur, S) as well as only one time-period. The GAMS file of this exact same problem is found in Appendix A which describes all of the sets, lists, parameters, variables and constraints required to represent this problem. Related types of NLP sub-models can also be found in Kelly and Zyngier (2015) where they formulate other sub-types of continuous-processes such as blenders, splitters, separators, reactors, fractionators and black-boxes for adhoc or custom sub-models.
Published on: Mar 4, 2016
Published in: Technology

#### Transcripts - Pooling optimization problem

• 1. Pooling Optimization Problem Industrial Modeling Framework (Pooling-IMF) i n d u s t r IAL g o r i t h m s LLC. (IAL) www.industrialgorithms.com April 2014 Introduction to Pooling Optimization, UOPSS and QLQP Presented in this short document is a description of what is called the (classic) “Pooling Optimization Problem” and was first described in Haverly (1978) where he modeled a small distillate blending problem with three component materials (A, B, C), one pool for mixing or blending of only two components, two products (P1, P2) and one property (sulfur, S) as well as only one time-period. The GAMS file of this exact same problem is found in Appendix A which describes all of the sets, lists, parameters, variables and constraints required to represent this problem. Related types of NLP sub-models can also be found in Kelly and Zyngier (2015) where they formulate other sub-types of continuous-processes such as blenders, splitters, separators, reactors, fractionators and black-boxes for adhoc or custom sub-models. Figure 1. “Classic” Pooling Optimization Problem Flowsheet. Figure 1 depicts a relatively simple flowsheet problem in our unit-operation-port-state superstructure (UOPSS) (Kelly, 2004b, 2005, and Zyngier and Kelly, 2012). The diamond shapes are called perimeter units where “A”, “B” and “C” stand for the supply of components, “P1” and “P2” for the demand of products. The triangle shape is a pool which may or may not
• 2. have holdup or inventory where for this example the holdup lower and upper bounds are set to zero (0) (see Appendix C for configuration details) . The circles indicate in-ports and out-ports (with an “X” inside) which are known as the unambiguous flow interfaces in to and out of non- port shapes where the entire flowsheet description or UOPS superstructure can be found in Appendix B in the UPS file. The label “S” denotes the sulfur property weight-percent values where for the component materials they are fixed however for the products their upper bounds are shown with zero (0) as an implied lower bounds. The “\$” indicates the costs and prices used to maximize the objective function of profit = product revenues - feed costs. The supplies of components are unlimited whereas the demand flows of product have upper bounds of 100 and 200 weight-units respectively. Industrial Modeling Framework (IMF), IMPL and SIIMPLE To implement the mathematical formulation of this and other systems, IAL offers a unique approach and is incorporated into our Industrial Modeling Programming Language we call IMPL. IMPL has its own modeling language called IML (short for Industrial Modeling Language) which is a flat or text-file interface as well as a set of API's which can be called from any computer programming language such as C, C++, Fortran, Java (SWIG), C#, VBA or Python (CTYPES) called IPL (short for Industrial Programming Language) to both build the model and to view the solution. Models can be a mix of linear, mixed-integer and nonlinear variables and constraints and are solved using a combination of LP, QP, MILP and NLP solvers such as COINMP, GLPK, LPSOLVE, SCIP, CPLEX, GUROBI, LINDO, XPRESS, CONOPT, IPOPT, KNITRO and WORHP as well as our own implementation of SLP called SLPQPE (Successive Linear & Quadratic Programming Engine) which is a very competitive alternative to the other nonlinear solvers and embeds all available LP and QP solvers. In addition and specific to DRR problems, we also have a special solver called SECQPE standing for Sequential Equality-Constrained QP Engine which computes the least-squares solution and a post-solver called SORVE standing for Supplemental Observability, Redundancy and Variability Estimator to estimate the usual DRR statistics found in Kelly (1998 and 2004b) and Kelly and Zyngier (2008a). SECQPE also includes a Levenberg-Marquardt regularization method for nonlinear data regression problems and can be presolved using SLPQPE i.e., SLPQPE warm-starts SECQPE. SORVE is run after the SECQPE solver and also computes the well-known "maximum-power" gross-error statistics (measurement and nodal/constraint tests) to help locate outliers, defects and/or faults i.e., mal-functions in the measurement system and mis-specifications in the logging system. The underlying system architecture of IMPL is called SIIMPLE (we hope literally) which is short for Server, Interfacer (IML), Interacter (IPL), Modeler, Presolver Libraries and Executable. The Server, Presolver and Executable are primarily model or problem-independent whereas the Interfacer, Interacter and Modeler are typically domain-specific i.e., model or problem- dependent. Fortunately, for most industrial planning, scheduling, optimization, control and monitoring problems found in the process industries, IMPL's standard Interfacer, Interacter and Modeler are well-suited and comprehensive to model the most difficult of production and process complexities allowing for the formulations of straightforward coefficient equations, ubiquitous conservation laws, rigorous constitutive relations, empirical correlative expressions and other necessary side constraints.