(41c) Industrial Modeling & Programming Language (IMPL): A Platform for Offline and Online Optimization and Estimation Applications | AIChE

(41c) Industrial Modeling & Programming Language (IMPL): A Platform for Offline and Online Optimization and Estimation Applications

Authors 

Kelly, J. D. - Presenter, Industrial Algorithms
Menezes, B. C., Hamad Bin Khalifa University, Qatar Foundation

IMPL is both a structure-
and semantic-based machine-coded proprietary software language (closed-source) built
upon the computer programming language Fortran to model and solve large-scale
discrete, nonlinear and dynamic (DND) optimization and estimation problems
found in the batch and continuous process industries such as oil and gas,
petrochemicals, specialty and bulk chemicals, pulp and paper, energy, agro-industrial, mining and minerals, food and beverage
just to name a few. The structures are based on modeling the superstructure
(network, routings, flowsheet, etc.) with units, operations, ports and states
(UOPSS) and the semantics (extent, magnitude, capacity, concentration, etc.)
are based on quantity, logic and quality phenomenological (QLQP) variables for
flows, holdups, yields, startups, setups, switchovers, shutdowns, densities,
components, properties and conditions. Most community- and commercial-based
MILP and NLP solvers are connected to IMPL to solve design, planning,
scheduling, operations, control and process coordinating optimization problems
as well as data reconciliation and parameter estimation problems with
diagnostics of observability, redundancy and variability.

With respect to the
variables in the decision-making system, these can be categorized into quantity
(e.g., rates, flows, charge, batch or lot-sizes, yields, etc.), logic (e.g.,
setups, startups, shutdowns, switchovers, etc.) and quality (e.g., densities,
components, properties, conditions, coefficients, etc.) variables. The
quantity-logic-quality (QLQ) provides a suitable phenomenological break-down of
the problem semantics and its complexity serving as a complement to the
structural dimension known as the unit-operation-port-state superstructure
(UOPSS) built-in in IMPL. The well-known approaches in the chemical engineering
literature for the representation of production systems regarding modeling of
materials, tasks, units and utilities, are the state-task network (STN) [1],
[2] and the resource-task network (RTN) [3]. 
As a superset of the STN and RTN superstructures, the UOPSS [4], [5]
built into IMPL provides the arbitrary, ad hoc or anywhere-to-anywhere
connectivity generally referred to as a flowsheet, topology, mapping, routing
or block-diagram of the industrial optimization problem (IOP) and industrial
estimation problem (IEP) in terms of its various shapes, objects or structures
necessary to construct and configure it. Brunaud et al. [6] showed that the
UOPSS formulation was computational superior in complex scheduling cases tested
from the chemical production industry using batch processes.

UOPSS is more than a single
network given that it is comprised of two networks we call the physical network
(unit-port) and the procedural network (operation-state). The physical network
involves the units and ports (equipment, utensils, structural) and the
procedural network involves the operations and states (tasks, activities,
functional). The combination or cross-product of the two derives the
projectional superstructure and it is these superstructure constructs or UOPSS
keys that we apply, attach or associate specific QLQP attributes to where the
IMPL projections are also known as hypothetical, logical or virtual constructs.
Ultimately, when we augment the superstructure with the time or temporal
dimension as well as including multiple scenarios or sites (echelons), i.e.,
sub-superstructures, we essentially are configuring what is known as a hyperstructure. Furthermore, in IMPL, multiple scenarios
may be modeled and solved simultaneously into one problem where certain
variables are communed, linked or tied together to find essentially one solution
to multiple sub-problems simultaneously, i.e., one solution to a family, group
or collection of problems as is referred to as scenario optimization.

The network in Figure 1, a
unitary livestock production system used in poultry planning example found in Kelly
and Menezes [5], is constructed in the UOPSS network and its objects are
defined as: a) unit-operations m for
sources and sinks (

), tanks or inventories (

), batch-processes (

) and continuous-processes (

) and b) the connectivity involving
arrows (→), inlet-ports i (

) and outlet-ports j (

). Unit-operations and arrows have
binary and continuous variables and the ports hold the states as process yields
or qualities. See examples of a complete UOPSS and QLQP formulations in Menezes
et al. [7] and Kelly et al. [8]. To summarize, IMPL may be considered as a
confluence with the scientific disciplines of applied engineering science,
management science, computer science, information science, statistical science
and now data science.

Poultry_SMALL

Figure 1. A unitary livestock production system.

IMPL offers several ways for
the user, modeler or analyst to extend IMPL by including their own custom, ad
hoc, or bespoke linear and nonlinear constraints and variables; these are
listed below in terms of level of sophistication:

1.     
Linear, logical and logistics constraints configured in IML
(Industrial Modeling Language) and IPL (Industrial Programming Language) format
where newly created user constraints may only involve existing IMPL variables
such as flows, holdups, setups, startups, etc.

2.     
Foreign linear and nonlinear sub-models using ILP (Industrial
Linear Programming) and INP (Industrial Nonlinear Programming) flat-files.

3.      Formulas (infix and postfix)
to compute IMPL properties in IML and IPL format for univariate property (blending)
indexes, numbers, transformations, etc., used mostly for nonlinear / non-ideal
property blending such as RVP1.25, etc.

4.      Formulas (infix and postfix)
to compute IMPL unit-operation conditions in IML and IPL format for
unit-operation blackbox
subtypes. These formulas may also involve any IMPL calculations and
coefficients although they are only known to IMPL when the filter flag is set
to quality.

5.      Compiled single-value
extrinsic or external functions XFC1, …, XFC9 and XFCN (C, C++ or Fortran code)
that are known to IML and IPL similar to the other IML
internal / intrinsic functions such as ABS, SQRT, LN, etc.

6.      Compiled single-value
external functions (C, C++ or Fortran code) to compute IMPL dynamic
coefficients such as physical, thermodynamic, cold-flow, etc., properties.
These dynamic coefficients, which are computed using third-party or externally
coded functions, may be dependent on conditions as well as other static and /
or dynamic coefficients.

7.      Compiled multi-value
external functions (C, C++ or Fortran code) for unit-operation blackblox
subtypes where newly created constraints may only involve existing IMPL
variables. This key difference between the XFCN and coefficient single-value
functions is that here we support a system (or sub-system) of equality
constraint or equation residuals instead of just one scalar residual.

8.      Compiled external callback
function (Intel Fortran coded only) called IMPLsupplierlib() for the
unit-operation blackblank
subtypes and for any other non-standard / non-supported UOPSS and QLQP modeling
using our IMPC facility. This compiled function has full access to all of the IMPL Server routines and resource-entities as
well as any newly created sets, catalogs, lists, parameters, variables,
constraints, derivatives, expressions and formulas. This allows the developer
user the same advanced coding capabilities as the developers of IMPL and can be
used to create proprietary and private models distributable in machine-code / binary
files protecting their licensable intellectual property (IP).

[1] Kondili E, Pantelides CC, Sargent
RWH. (1993). A General Algorithm for Short-Term Scheduling Of
Batch Operations – I MILP Formulation. Computers & Chemical Engineering,
17, 211-227.

[2] Shah N, Pantelides CC, Sargent R. (1993). A General Algorithm for
Short-Term Scheduling of Batch Operations – IΙ. Computational Issues.
Computers & Chemical Engineering, 17, 229-244.

[3] Pantelides CC. Unified Frameworks for the Optimal Process
Planning and Scheduling. Proceedings on the Second Conference on Foundations of
Computer Aided Operations. 1994, 253-274.

[4] Kelly JD. (2005). The
Unit-Operation-Stock Superstructure (UOSS) and the Quantity-Logic-Quality
Paradigm (QLQP) for Production Scheduling in The Process Industries. In
Multidisciplinary International Scheduling Conference Proceedings: New York,
United States, 327.

[5] Kelly JD, Menezes BC. (2019).
Industrial Modeling and Programming Language (IMPL) for Off- and On-Line
Optimization and Estimation Applications. In Large Scale Optimization in
Supply Chain & Smart Manufacturing: Theory & Application. Ed.

Marzieh Khaifirooz, Mahdi Fathi,
Jesus Velasquez: New York, United States.

[6] Brunaud B,
Amaran S, Bury S, Wassick
J, Grossmann IE. (2019). Batch scheduling with quality-based changeovers.
Computer & Chemical Engineering. Just Accepted.

 [7] Menezes BC, Kelly JD, Grossmann IE, Vazacopoulos A. (2015). Generalized Capital Investment
Planning of Oil-Refineries using MILP and Sequence-Dependent Setups. Computer
& Chemical Engineering,
80, 140-154.

[8] Kelly JD, Menezes BC, Grossmann
IE. (2018). Successive LP Approximation for Non-Convex Blending in MILP
Scheduling Optimization using Factors for Qualities in the Process Industry.
Industrial Engineering Chemistry Research, 57 (32), 11076-11093.