This document discusses advanced modeling techniques for industrial optimization problems using the IMPRESS modeling system. It describes modeling objects like unit operations and port states to represent the problem structure. It also describes modeling attributes like quantities, logic, and qualities to represent phenomena like flows, sequences, and properties. The IMPRESS system allows problems to be configured interactively rather than coded, and provides capabilities like automatic derivative calculation and presolving to simplify problems.
Presented in this short document is a description of modeling and solving partial differential equations (PDE’s) in both the temporal and spatial dimensions using IMPL. The sample PDE problem is taken from Cutlip and Shacham (1999 and 2014) and models the process of unsteady-state heat transfer or conduction in a one dimensional (1D) slab with one face insulated and constant thermal conductivity as discussed by Geankoplis (1993).
Presented in this short document is a description of modeling and solving partial differential equations (PDE’s) in both the temporal and spatial dimensions using IMPL. The sample PDE problem is taken from Cutlip and Shacham (1999 and 2014) and models the process of unsteady-state heat transfer or conduction in a one dimensional (1D) slab with one face insulated and constant thermal conductivity as discussed by Geankoplis (1993).
Presented in this short document is a description of what we call "Phasing" and "Planuling". Phasing is a variation of the sequence-dependent changeover problem (Kelly and Zyngier, 2007, Balas et. al., 2008) except that the sequencing, cycling or phasing is fixed as opposed to being variable or free. Planuling is a portmanteau of planning and scheduling where we "schedule" slow processes and we "plan" fast processes together inside the same time-horizon and can also be considered as "hybrid" planning and scheduling.
Advanced Production Accounting of an Olefins Plant Industrial Modeling Framew...Alkis Vazacopoulos
Presented in this short document is a description of what we call "Advanced" Production Accounting (APA) applied to a small Olefins Plant found in Sanchez and Romagnoli (1996). APA is the term given to the technique of vetting, screening or cleaning the past production data using statistical data reconciliation and regression (DRR) when continuous-processes are assumed to be at steady-state (Kelly and Hedengren, 2013) i.e., there is no significant material accumulation. For this case, the model and data define a simultaneous mass or volume linear DRR problem. Figure 1a shows the Olefins Plant using simple number indices for both the nodes and streams where Figure 1b depicts the same problem configured in our unit-operation-port-state superstructure (UOPSS) (Kelly, 2004, 2005; Zyngier and Kelly, 2012).
Presented in this short document is a description of what is called Advanced Process Monitoring (APM) as described by Hedengren (2013). APM is the term given to the technique of estimating unmeasured but observable variables or "states" using statistical data reconciliation and regression (DRR) in an off-line or real-time environment and is also referred to as Moving Horizon Estimation (MHE) (Robertson et. al., 1996). Essentially, the model and data define a simultaneous nonlinear and dynamic DRR problem where the model is either engineering-based (first-principles, fundamental, mechanistic, causal, rigorous) or empirical-based (correlation, statistical data-based, observational, regressed) or some combination of both (hybrid).
Presented in this short document is a description of what we call "Advanced" Property Tracking or Tracing (APT). APT is the term given to the technique of predicting, simulating, calculating or estimating the properties (i.e., densities, compositions, conditions, qualities, etc.) in a network or superstructure with significant inventory using statistical data reconciliation and regression (DRR)
Accelerating the Development of Efficient CP Optimizer ModelsPhilippe Laborie
The IBM Constraint Programming optimization system CP Optimizer was designed to provide automatic search and a simple modeling of discrete optimization problems, with a particular focus on scheduling applications. It is used in industry for solving operational planning and scheduling problems. We will give an overview of CP Optimizer and then describe in further detail a set of features such as input/output file format, warm-start or conflict refinement that help accelerate the development of efficient models.
Advanced Parameter Estimation (APE) for Motor Gasoline Blending (MGB) Indust...Alkis Vazacopoulos
Presented in this short document is a description of how to model and solve advanced parameter estimation (APE) problems in IMPL. APE is the term given to the application of estimating, fitting or calibrating parameters in models involving a network, topology, superstructure or flowsheet. When estimating parameters with multiple linear regression (MLR), ordinary least squares (OLS), ridge regression (RR), principal component regression (PCR) and partial least squares (PLS) there is no explicit model but simply an X-block and Y-block of data. Hence, these methods are referred to as “non-parametric” or “data-based” methods as opposed to the “parametric” or “model-based” method used here. To solve these types of problems we use what is commonly referred to as “error-in-variables” (EIV) regression which is conveniently implemented as nonlinear data reconciliation and regression (NDRR) using the technology found in Kelly (1998a; 1998b; 1999) and Kelly and Zyngier (2008a). The primary benefit of using EIV (NDRR) over the other regression methods is that we can easily handle the inclusion of conservation laws and constitutive relations, explicitly, a must for any industrial estimation problem (IEP).
Overview of the structured data science domain, OSS machine learning platforms and algorithms. Using the JPMML family of libraries to implement a unified, production-oriented workflow.
This presentation introduces CP Optimizer a model & run optimization engine for solving discrete combinatorial problems with a particular focus on scheduling problems.
Time Series Estimation of Gas Furnace Data in IMPL and CPLEX Industrial Model...Alkis Vazacopoulos
Presented in this short document is a description of how to estimate a deterministic and stochastic time-series transfer function models in IMPL using IBM’s CPLEX applied to industrial gas furnace data. The methodology of time-series analysis involves essentially three (3) stages (Box and Jenkins, 1976): (1) model structure identification, (2) model parameter estimation and (3) model checking and diagnostics. We do not address (1) which requires stationarity and seasonality assessment, auto-, cross- and partial-correlation, etc. to establish the transfer function polynomial degrees. Instead we focus only on the parameter estimation and diagnostics. These types of parameter estimation problems involve dynamic and nonlinear relationships shown below and we solve these using IMPL’s nonlinear programming algorithm SLPQPE which uses CPLEX 12.6 as the QP sub-solver.
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.
Similar to Advanced Modeling of Industrial Optimization Problems (20)
We tested ODH|CPLEX 4.24 on Miplib Open-v7 Models, a public collection of 286 models to which and optimal solution has not been proven. 257 of these are known to have a feasible solution.
ODH|CPLEX proved optimality on 6 models and found better solutions in 2 hours, to 40% of the models with 12 threads and 35% with 8 threads. ODH|CPLEX matched on 21% of the models.
EX Optimization Studio* solves large-scale optimization problems and enables better business decisions and resulting financial benefits in areas such as supply chain management, operations, healthcare, retail, transportation, logistics and asset management. It has been applied in sectors as diverse as manufacturing, processing, distribution, retailing, transport, finance and investment. CPLEX Optimization Studio is an analytical decision support toolkit for rapid development and deployment of optimization models using mathematical and constraint programming. It combines an integrated development environment (IDE) with the powerful Optimization Programming Language (OPL) and high-performance ILOG CPLEX optimizer solvers. CPLEX Optimization Studio enables clients to: Optimize business decisions with high-performance optimization engines. Develop and deploy optimization models quickly by using flexible interfaces and prebuilt deployment scenarios. Create real-world applications that can significantly improve business outcomes. Optimization Direct has partnered with and entered into a technology licensing and distribution agreement with IBM. By combining the founders' industry and software experience and IBM’s CPLEX Optimization Studio product with the arsenal of Optimization modeling and solving tools from IBM provides customers the most powerful capabilities in the industry.
Missing-Value Handling in Dynamic Model Estimation using IMPL Alkis Vazacopoulos
Presented in this short document is a description of how IMPL handles missing-values or missing-data when estimating dynamic models which inherently involve time-lagged or time-shifted input and output variables. Missing-values in a data set imply that for some reason the data is not available most likely due to a mal-functioning instrument or even lack of proper accounting. Missing-data handling is relatively well-studied especially for time-series or dynamic data given that it is not as easy as removing, ignoring or deleting bad sections of data when static or steady-state models are calibrated (Honaker and King, 2010; Smits and Baggelaar, 2010; Fisher and Waclawski, 2015). Unfortunately, all of their methods involve what is known as “imputation” i.e., replacing or substituting missing-data with some reasonably assumed value which is at the very least is a biased estimate. When regression techniques such as PLS and PCR are used (Nelson et. al., 2006) then missing-data can be handled without imputation by computing the input-output covariance matrices excluding the contribution from the missing-values given the temporal and structural redundancy in the system. However, it is shown in Dayal (1996) that using PLS and other types of regression techniques such as Canonical Correlation Regression (CCR) and Reduced Rank Regression (RRR) to fit non-parsimonious and non-parametric finite impulse/step response models (FIR/FSR), that this is not as reliable as fitting lower-ordered transfer functions especially considering the robust stability of the resulting model predictive controller if that is its intended use.
Finite Impulse Response Estimation of Gas Furnace Data in IMPL Industrial Mod...Alkis Vazacopoulos
Presented in this short document is a description of how to estimate deterministic and stochastic non-parametric finite impulse response (FIR) models in IMPL applied to industrial gas furnace data identical to that found in TSE-GFD-IMF using parametric transfer-functions. The methodology of time-series analysis or system identification involves essentially three (3) stages (Box and Jenkins, 1976): (1) model structure identification, (2) model parameter estimation and (3) model checking and diagnostics. We do not address (1) which requires stationarity and seasonality assessment/adjustment, auto-, cross- and partial-correlation, etc. to establish the parametric transfer function polynomial degrees especially when we are using non-parametric FIR estimation. Instead we focus only on the parameter estimation and diagnostics. These types of parameter estimation problems involve dynamic and nonlinear relationships shown below and we solve these using IMPL’s Sequential Equality-Constrained QP Engine (SECQPE) and Supplemental Observability, Redundancy and Variability Estimator (SORVE). Other types of non-parametric identification known as Subspace Identification (Qin, 2006) and can used to estimate state-space models.
Our Industrial Modeling Service (IMS) involves several important (but rarely implemented) methods to significantly improve and advance your existing models and data. Since it is well-known that good decision-making requires good models and data, IMS is ideally suited to support this continuous-improvement endeavour. IMS is specifically designed to either co-exist with your existing design, planning, scheduling, etc. applications or these same models and data can be used seamlessly into our Industrial Modeling and Programming Language (IMPL) to create new value-added applications. The following techniques form the basis of our IMS offering.
This short note describes a relatively simple methodology, procedure or approach to increase the performance of already installed industrial models used for optimization, control, simulation and/or monitoring purposes. The method is called Excess or X-Model Regression (XMR) where the concept of “excess modeling” or an X-model is taken from the field of thermodynamics to describe the departure or residual behaviour of real (non-ideal) gases and liquids from their ideal state (Kyle, 1999; Poling et. al., 2001; Smith et. al., 2001). It has also been applied to model the non-ideal or nonlinear behaviour of blending motor gasoline octanes with its synergistic and antagonistic interactional effects (Muller, 1992).
The fundamental idea of XMR is to calibrate, train, fit or estimate, using actual data and multiple linear regression (MLR) or ordinary least squares (OLS), the deviations of the measured responses from the existing model responses. The existing model may be a glass, grey or black-box model (known or unknown, linear or nonlinear, implicit/open or explicit/closed) depending on the use of the model. That is, for optimization and control the model structure and parameters are available given that derivative information is required although for simulation and monitoring, the model may only be observed through the dependent output variables given the necessary independent input variables.
Presented in this short document is a description of how to model and solve multi-utility scheduling optimization (MUSO) problems in IMPL. Multi-utility systems (co/tri-generation) are typically found in petroleum refineries and petrochemical plants (multi-commodity systems) especially when fuel-gas (i.e., off-gases of methane and ethane) is a co- or by-product of the production from which multi-pressure heating-, motive- and process-steam are generated on-site. Other utilities include hydrogen, electricity, water, cooling media, air, nitrogen, chemicals, etc. where a multi-utility system is shown in Figure 1 with an intermediate or integrated utility (both produced and consumed) such as fuel-gas, steam or electricity. Itemized benefit areas just for better management of an integrated steam network can be found in Pelham (2013) where his sample multi-pressure steam utility flowsheet is found in Figure 2.
Advanced Modeling of Industrial Optimization Problems
1. Advanced Modeling of Industrial
Optimization Problems:
Beyond Algebraic & Algorithmic Modeling Languages
J.D. Kelly & A. Vazacopoulos
Industrial Algorithms
jdkelly@industrialgorithms.ca & alkis@industrialgorithms.com
September 10, 2012
2. UOPSS: Modeling the Objects
● UOPSS = Unit-Operation-Port-State Superstructure.
● Unit-operations are the structural objects combining
"physical" units with "procedural" operations (eg.
Equipment x Activities or Machine x Job).
● Port-states are the structural points where
resources, etc. are consumed & produced.
● UOPS superstructure models the hyper-network of
UOPS to PSUO connectivity.
● UOPSS objects define the "keys" of the problem or
model.
4. UOPSS: Modeling the Objects
● UOPSS is designed for batch, continuous and
dimensional process industries and has the
following types & sub-types:
● ProcessB, ProcessC, ProcessD, Perimeter,
Pool, Pipeline, Pileline, Parcel & Port (In/Out).
● Blender, Splicer, Splitter, Separator, Reactor,
Fractionator & Blackbox for Processes.
● Stock, Utility, Utensil, Time & Task for Ports.
5. QLQP: Modeling the Attributes
● QLQP = Quantity-Logic-Quality Phenomena.
● Phenomenological is different from/orthogonal to
hierarchical, structural, spatial & temporal dimensions.
● Quanties = rates, flows, holdups, yields, durations,
● Logic = setups, startups, switchovers, shutdowns,
sequences, slots,
● Qualities = densities, components, properties,
conditions, coefficients,
● Logistics is the combination of Quanity & Logic
(MILP) and Quality is the combination of Quantity &
Quality (NLP).
6. QLQP: Modeling the Attributes
U O U O U O O U Attributes
Attributes Phenomenological Attributes of
Quantity, Logic and Quality
P S P S Attributes P S S P
8. Advanced Modeling
● Philosophy = "Configure v. Code".
● Allows the modeler or user the ability to focus on
the important aspects of the industrial optimization
problem (IOP) instead of its algebra & algorithms.
● Most of the variables and constraints found in an
IOP can be generalized or formalized using
UOPSS objects and QLQP attributes.
● We currently have over 125 different variable-types &
over 185 different constraint-types including over 100
sets/lists & 150 parameters (and counting ...).
9. Advanced Modeling System: IMPRESS
● IMPRESS = Industrial Modeling & Presolving
System.
● Problems are configured either interfacing with a
flat-file language (IML = Industrial Modeling
Language) or interactively using a programming
language such as Python, Java, C#, C++, C or
Fortran (IMI = Industrial Modeling Interchange).
● We currently have bindings to several linear and
nonlinear programming solvers such as COINMP,
GLPK, LPSOLVE, SCIP, XPRESS, XPRESS-SLP,
CONOPT, IPOPT, KNITRO, NOVA & SLPQP.
10. Advanced Modeling System: IMPRESS
● IMPRESS uses the following resources or entities
to formulate or model the IOP:
– SETS & LISTS = integer- & string-keyed to store integers.
– CATALOGS = integer-keyed to store strings.
– PARAMETERS = integer-keyed to store reals.
– VARIABLES = integer-keyed to store complexes (Re/Im).
– CONSTRAINTS = integer-keyed to store complexes.
– DERIVATIVES = 2 integer & 1 real parallel vectors.
– EXPRESSIONS = 1 integer & 1 real parallel vectors.
– FORMULAS = integer-keyed to store 1 integer & 1 complex
parallel vectors.
11. Key Differences with AML's
● AML's use sorted database table technology to store
and manipulate sparse data.
● IMPRESS also stores the sparse data in a database
table format (i.e., coordinate, triplets, ordered-pairs, non-
zeros, etc.) but manipulates the data using a proprietary
referencing technique for spot or random-access.
● AML's manage the time-period dimension like any
other key, index or cursor in the sparse data table.
● IMPRESS inherently manages the time-period dimension
as a separate appendable-array or vector which is
manipulated using whole-array or vectorized processing
(much faster as the number of time-periods increases).
12. Key Differences with AML's
● AML's always export each nonlinear constraint
instance as a prefix/postfix (RPN) tokenized
expression in byte-code.
● IMPRESS also does this for nonlinear solvers such as
XPRESS-SLP & LINDO-SLP but can also be embedded
directly into function callbacks required by CONOPT,
IPOPT, KNITRO, NOVA & SLPQP in machine-code
(requires substantially less memory).
● Some AML's perform their own mostly linear
presolving calculations (AMPL & AIMMS).
● IMPRESS performs LP primal presolving as well as
nonlinear presolving such as detecting if nonlinearly
declared constraints are linear after presolve.
13. Important Features
● Digitization Engine:
● All time-varying data such as orders, transactions or
events are entered in continuous-time where they are
either discretized (uniform) or distributed (non-
uniform) into time-periods over the time-horizon.
– This also includes a compression & continuosization on the
solution data to remove temporal redundancy.
● Differentiation Engine:
● All 1st-order partial derivatives are either supplied
analytically or computed numerically of analytical
quality using complex-step differencing & graph-
colouring. * The modeler or user is not responsible
for providing derivatives.
14. Important Features
● Documentation Engine:
● All constraints are externalized into a "human-
readable" form as well as all other entities such as
sets, lists, parameters, variables & formulas have
annotations available.
● Diagnostic Engine (Work-in-Progress ...):
● Experience says that over 95% of IOP's have
infeasibilities that occur in the linear part of the model
where these can be quickly identified in LP primal
presolve. The rest require artificial or what we call
excursion variables in both the integer and nonlinear
parts of the model and are generated automatically.
15. Important Features
● Demarcation Engine (Openings, Wet-Plant Problem):
● Optimizing into the future is the goal but respecting the
past & present is vital to properly achieving this i.e., the
"demarcation" between the past & future time-lines.
Addressing the previous activities currently occurring in
the problem must be respected as we look-ahead into the
future.
For example, if a unit-operation has a minimum run-length
of 10-hours & if it started 2-hours in the past then there is
a minimum of 8-hours left i.e., it can be shutdown after 8-
hours into the future.
– It also includes respesting future operations when at a certain
future time a known event is to occur (predictive- or preventative-
maintenance).
16. System Architecture: SIIMPL
● SIIMPL = Server, Interfacer, Interacter, Modeler,
Presolver Libraries.
● There are five DLL components in IMPRESS:
● Server = data modeling & presolving routines.
● Interfacer = parsing for the language.
● Interacter = inserting, updating & viewing routines for
the interchange.
● Modeler = formulating of the variables, constraints,
derivatives & expressions including
"dependent" sets, lists & parameters.
● Presolver = bindings for 3rd-party solving-systems.
17. Types of Optimization & Estimation
● IMPRESS is designed both for industrial decision-
making & data-mining problems deployed off-line,
in-line & on-line such as:
● Planning & Scheduling Optimization (active).
● Data Reconciliation & Regression Estimation (passive).
● Real-Time Control & Optimization (active).
● Monitoring, Tracking & Tracing (passive).
– The terms active & passive imply the "degree of causality".
Active models must be "causal" (cause & effect amongst
variables) & passive models may or may not be causal (no
cause & effect required) also known as "observational".
18. Types of Optimization & Estimation
● IMPRESS directly manages the integration of
planning & scheduling decision-making by exploiting
its hierarchical nature:
● Planning decisions are implemented as either lower &
upper hard bounds (min 1-norm excursions) or as target
soft bounds (min 2-norm deviations) in the scheduling.
● IMPRESS can also model "hybrid" planning &
scheduling problems i.e., a mix of planning &
scheduling constraints in the same model/horizon:
● Both "big" & "small" time-buckets or periods are included
in the problem by allowing one or more operations on the
same unit for the same time-period (single or multi-use).
19. Types of Optimization & Estimation
● IMPRESS inherently manages the integration of the
logistics & quality QLQ phenomena in either
planning or scheduling problems:
● Logistics has quality proxy'd and Quality has logic fixed
but quanties are free/finite. This is a "truncated"
Bender's Decomposition heuristic to avoid MINLP but is
very effective in practice and is a natural mechanism to
manage complexity.
● IMPRESS includes estimatibility diagnostics:
● Observability, redundancy and variability estimates are
calculated as a postsolve for all measured (reconciled)
and unmeasured (regressed) variables using novel
sparse matrix techniques (no GJ, QR or SVD required).
20. Complexity Management
● IMPRESS is intended to assist with the ubiquitous
issue of "complexity management" in IOP's.
● Managing uncertainty & hierarchy are somewhat
addressed but managing complexity is difficult:
– how to balance accuracy, tractability & operability when
modeling & implementing the solution.
● What looks like uncertainty & hierarchy management
issues may be the inability to model the IOP's
complexity ...
– Perceived supply & demand uncertainty maybe the inability of
the upstream producer & downstream consumer to manage
their production or manufacturing as well as intermediate
transportation or distribution.
21. Poor Man's Parallelism
● MPP = Multi-Problem Parallelism.
● MPP does not require IMPRESS to be multi-
threaded unless the solver is multi-threaded (parallel
Barrier or B&B) but allows multiple processes to be
run concurrently managed by the operating-system.
● IMPRESS has a low memory footprint allowing
many problems to be run simultaneously on multi-
core, shared-memory computers with different
starting-values, settings and/or solvers.
● Due to the nonlinear and nonconvex nature of these
problems local solutions can and will occur so extra runs
can be beneficial to potentially find better solutions.
22. MILP Example - SeqDepSwo
● SeqDepSwo = Sequence-dependent switchovers
w/ "repetitive-maintenance" (setup).
– This instance can be considered as the "Prize-Collecting
Traveling-Salesman Problem" (PCTSP).
– This formulation is from Kelly & Zyngier, "An Improved MILP
Modeling of Sequence-Dependent Switchovers for Discrete-
Time Scheduling Problems",I&ECR, 46, 4964-4973, (2007).
● Horizon duration = 30-days, period duration = 1-day.
● Production-line rate (semi-continuous) = 18-tons/day.
● Ten-materials (3..5-day run-lengths), 3-families (3-3-4),
1-cleanout task (1-day run-length, rate = 2-tons/day).
● Demands of 0..72-tons w/ release,due-dates = 0,30-days
w/ prices of $+1/ton & cleanout costs of $-1/ton.
23. MILP Example - SeqDepSwo
● Maximum profit = $540 = $1/ton * 18-tons/day * 30-days
● Provably optimal profit = $502 = 1 * 18 * 28 + -1 * 2 * 1
– Schedules 3rd family and either the 1st or 2nd family in any
sequence (3rd then 1st or 2nd OR 1st or 2nd then 3rd) with one
cleanout instance & one idle day.
Idle
Python 2.7 w/ Matplotlib 1.1.0
Cleanout
24. MILP Example - SeqDepSwo
Python 2.3 w/ Dia 0.97.2 Creates a *.UPS file
which can be used in
both IML & IMI
UOPSS Stencil Sheet
Cleanout
25. MILP Example - SeqDepSwo
● Python 2.7 w/ ctypes w/ IMPRESS-IMI:
from ctypes import *
# Number of materials (including maintenance) and families.
nmaterials = 10+1
nfamilies = 3
# Include IMPRESS constants and callbacks.
execfile("IMPRSimi.py")
# Set the problem path and name.
problem = c_char_p(b"C:/IndustrialAlgorithms/Problems/seqdepswo")
# Root the problem (initializes).
rtnstat = imis.IMPRSroot(problem)
# Reserve the problem memory.
rtnstat = imis.IMPRSreserve(problem,IMPRSall) Past & Future
# Receive the chronological data. Time Horizon Duration &
Time-Period Duration
dthp = c_double(-1.)
dthf = c_double(30.)
dtp = c_double(1.0)
rtnstat = imii.IMPRSreceiveT(byref(dthp),byref(dthf),byref(dtp))
26. MILP Example - SeqDepSwo
● Python 2.7 w/ ctypes w/ IMPRESS-IMI:
# Receive the construction data.
for i in range(nmaterials):
if i < nmaterials-1:
j = i+1
else:
j = -1
... add Sj UO and UOPS
“PL” is a
uname = c_char_p(b"PL") Continuous-Process
oname = c_char_p(str(j))
utype = c_char_p(b"processc")
usubtype = c_char_p(b"")
uuse = c_char_p(b"")
rtnstat = imii.IMPRSreceiveUO(uname,oname,utype,usubtype,uuse,IMPRSkeep)
pname = c_char_p(b"IN")
One inlet &
sname = c_char_p(str(j)) one outlet port
ptype = c_char_p(b"in")
psubtype = c_char_p(b"")
puse = c_char_p(b"")
rtnstat = imii.IMPRSreceiveUOPS(uname,oname,pname,sname,ptype,psubtype,puse,IMPRSkeep) “Keep” or “Erase”
pname = c_char_p(b"OUT")
sname = c_char_p(str(j))
ptype = c_char_p(b"out")
rtnstat = imii.IMPRSreceiveUOPS(uname,oname,pname,sname,ptype,psubtype,puse,IMPRSkeep)
... add Dj UO and UOPS
36. Coding New Variables & Constraints
● Although IMPRESS is not an AML, coding or
creating your own variables, constraints, derivatives
& expressions as well as sets, lists, parameters &
formulas is possible.
● Coding/creating a variable: Type = Continuous, Binary, etc.
– vregister(number,name,dimension,type)
– vreceive(index,value) Objective Function Weights
– vrestrain(index,lower,upper,weight)
● Coding/creating a constraint (f(x)+...+A*x+b ~ 0):
– cregister(number,name,dimension,type)
Defines Sparsity-Pattern
– creceive(index,value)
– dratio(cindex,vindices,derivatives optional) Defines Expression
– erelate(cindex,ntokens,instructions,values)
37. Challenges
● Understanding how to configure IOP's to improve
business performance (economics, efficiency, etc.).
● Understanding how to configure IOP's for
tracatability (good solutions in reasonable-time).
● Troubleshooting IOP's for inconsistent & incorrect
results (not infeasible but not expected either).
● Incrementing & iterating the IOP from solution to
solution (manually or automatically) to improve its
solution accuracy & reality.
● Improving the formulation of the IOP's model to help
in the above (tighter, smaller, faster, smarter, ...)