Skip to main content

Advertisement

Log in

Process analytics formalism for decision guidance in sustainable manufacturing

  • Published:
Journal of Intelligent Manufacturing Aims and scope Submit manuscript

Abstract

This paper introduces National Institute of Standards and Technology (NIST)’s Sustainable Process Analytics Formalism (SPAF) to facilitate the use of simulation and optimization technologies for decision support in sustainable manufacturing. SPAF allows formal modeling of modular, extensible, and reusable process components and enables sustainability performance prediction, what-if analysis, and decision optimization based on mathematical programming. SPAF models describe (1) process structure and resource flow, (2) process data, (3) control variables, and (4) computation of sustainability metrics, constraints, and objectives. This paper presents the SPAF syntax and formal semantics, provides a sound and complete algorithm to translate SPAF models into formal mathematical programming models, and illustrates the use of SPAF through a manufacturing process example.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21

Similar content being viewed by others

References

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Guodong Shao.

Additional information

Disclaimer: No approval or endorsement of any commercial product by the National Institute of Standards and Technology is intended or implied. Certain commercial software systems are identified in this paper to facilitate understanding. Such identification does not imply that these software systems are necessarily the best available for the purpose.

Appendix: Sustainable process analytics formalism syntax and formal semantics

Appendix: Sustainable process analytics formalism syntax and formal semantics

SPAF model syntax

SPAF adopts concepts and ideas from other languages and is based on the OPL data model and the basic OPL syntax of arithmetic and query expressions with minor modifications and extensions. The basic OPL data model, modeling concept, data type, and data structure are listed in (IBM 2012).

Analytical sequence, Aseq, is a sequence (\(s_{1}, \ldots , s_{n})\) of analytical statements, s \(_{i,,}\)

\( 1 \le i \le n\), in one of the forms:

  1. 1.

    \(T_{i}\quad x_{i}= a_{i,}\)

  2. 2.

    \(T_{i}\quad x_{i}= e_{i,}\)

  3. 3.

    \(T_{i}\quad x_{i}.\)

  4. 4.

    \(T_{i}\quad x_{i}= {\ldots },\)

  5. 5.

    \(C_{i,}\)

  6. 6.

    include M \(_{i}(J)\) or include M \(_{i}(),\)

  7. 7.

    \(min\;x_{i},max\,\, x_{i},\) or sat,

where:

  • The statements \(min\;x_{i}\), \(max\;x_{i},\) or sat are only allowed as the last statement s\(_{n}\)

  • \(T_{i}\) is a type

  • \(x_{i}\) is a variable name, which may include a prefix identifier, e.g., Id.x

  • \(a_{i}\) is a constant of type \(T_{i}\)

  • \(e_{i}\) is an expression returning type \(T_{i}\)

  • “...” is a keyword in “\(T_{i}\quad x_{i}= {\ldots }\)” to indicate that \(x_{i}\) is to be instantiated with a constant before using it later in the sequence

  • \(C_{i}\) is a constraint

  • \(M_{i}\) is a unique name of an analytical model

  • \(J\) in \(M_{i}(J)\) is a string identifier

The first four forms are declaration statements, within which the first two forms are assignment statements. \(C_{i }\) is a constraint statement, include M \(_{i}\) is an include statement, and \(min\;x_{i}\), \(max\;x_{i}\), or sat are optimization statements, i.e., minimization, maximization, and satisfiability. If the last statement \(s_{n}\) of the analytical sequence (\(s_{1},\ldots , s_{n})\) is \(min\;x_{i}\), \(max\;x_{i},\) or sat, then the (\(s_{1}, \ldots , s_{n})\) is an optimization analytical sequence; otherwise, we say that it is a non-optimization analytical sequence.

An analytical model is an expression of the form

$$\begin{aligned} M(Id)\,\, \{ Aseq \}\,\, or M()\,\, \{ Aseq \}, \end{aligned}$$

where \(M\) is a unique name of the model, Id is an optional parameter, and Aseq is a non-optimization analytical sequence.

Let \(P\) be a set of analytical models. We say that \(P\) is closed under reference (or closed) with respect to an analytical sequence \(A\) (or model \(M)\) if the following holds: If an \(A\) has a statement of the form include M’(J), then \(P\) must contain an analytical model \(M'\). We say that \(P\) is closed under reference (or closed) if for every model \(M\) in \(P\), \(P\) is closed with respect to \(M\).

An analytical query is a pair (\(A, P)\), where \(A\) is an analytical sequence and \(P\) is a model package closed with respect to \(A\).

Let (\(A, P)\) be an analytical query. The flattened sequence of \(A\), denoted flat (A, P), is an analytical sequence that results from \(A\) by recursively replacing each include M() with the analytical sequence of the model \(M ()\), and replacing each include M(J) statement with the analytical sequence of the model M(Id) in \(P\), in which every appearance of Id is replaced with \(J\).

We say that an analytical query (\(A, P)\) has a conflict, if one of the following holds in

$$\begin{aligned} flat (A, P) = (S_{1},{\ldots }, Si_{,} {\ldots },_{ }S_{j},{\ldots }, S_{n}): \end{aligned}$$
  • \(\hbox {S}_{j}\) is a declaration statement of the form \(T_{i}\quad x_{i} = a_{i }\) or \(T_{i}\quad x_{i}=e_{i}\) and S\(_{i }\) is any declaration statement

  • \(\hbox {S}_{i }\) and \(\hbox {S}_{j}\) are two declaration statements such that \(x_{i }=x_{j}\) and \(T_{i }\ne T_{j}\) (i.e., the same variable is declared twice with conflicting types)

Given a \(flat (S_{1},{\ldots }, S_{i,}{\ldots }, S_{n})\) analytical sequence \(A\) (i.e., without include statement), we say that variable \(x_{i }\)is data-instantiated if:

  • There is a statement \(\hbox {S}_{i }\) of the form \(T_{i}\quad x_{i} =a_{i,}\) where \(a_{i}\) is a constant or, recursively

  • There is a statement \(\hbox {S}_{i}\) of the form \(T_{i}\quad x_{i} =e_{i}\), such that all variables y in \(e_{i}\) are instantiated in the prefix sequence (\(\hbox {S}_{1},{\ldots },\hbox {S}_{i-1})\)

We say that a flat analytical sequence \(A\) is data instantiated if every variable x in a declaration statement is instantiated.

We say that an analytical query (\(A, P)\) is well-formed if:

  • It does not have a conflict, and

  • For every constraint statement \(C_{i}\) and expression \(e_{i}\) in the declaration statement of the form \(T_{i}\quad x_{i} = e_{i}\) or \(min\;x_{i}\), \(max\;x_{i}\), or sat in flat (A, P), the following holds: it only contains variables that have been declared in a declaration statement earlier in the sequence.

  • If \(A\) is a non-optimization sequence, then, flat (A, P) must be data instantiated.

  • If \(A\) is an optimization sequence, then for every statement \(S_{i}\) in \(flat (A, P) = (s_{1}, \ldots , s_{n})\) of the form \(T_{i}\quad x_{i}= {\ldots }, x_{i}\) must be instantiated in (\(S_{1},{\ldots },S_{i-1)}\) (i.e., earlier in the sequence).

From now on, only well-formed analytical queries are considered.

As discussed earlier, a SPAF model is an analytical model M (Id) if it is one of the following forms:

  • Process model

  • Context model

  • Flow model

  • Flow aggregator model

  • Sustainability metric aggregator model

A SPAF process model with identifier Id, denoted PM (Id), is an analytical sequence that contains statements of the following forms:

$$\begin{aligned}&string Id.processType = type\_flow\_string,\\&\{string\} Id.inputFlow = inputFlowExpr,\\&\{string\} Id.outputFlow = outputFlowExpr,\\&\{string\} Id.subProcess = subProcessExpr,\\&\{string\} Id.flowAggregator = flowAggrExpr, \end{aligned}$$

and

include M (I), for every \(I\) in Id.inputFlow, Id.outputFlow, Id.subProcess, or Id.flowAggregator, where:

  • Id is used as a prefix for all variables on the left hand side of the declaration statements, except for variables that appear on the left hand side of assignments into variables defined in the included models, i.e., SPAF models M (Id’), where Id’ is in Id.inputFlow, Id.outputFlow, Id.subProcess, and Id.flowAggregator (those are “visible” to the process model)

  • type_process_string is a string

  • inputFlowExpr, outputFlowExpr are analytical expressions of the type {string} (i.e., return a set of strings)

  • subProcessIdsExpr, flowAggrIdsExpr are analytical expressions of type {string}

  • \(M (I)\) denotes a method that returns a SPAF model with identifier \(I\)

A SPAF context model CM (), is an analytical model.

A SPAF flow model with identifier Id, denoted FM (Id), is an analytical model that contains statements of all of the following forms:

$$\begin{aligned} string Id.flowType = type\_flow\_string, \end{aligned}$$

where:

  • Id is used as a prefix for all variables on the left hand side of the assignment statements

  • type_flow_string is a string

A SPAF flow aggregator model with identifier Id, denoted FAM (Id), is an analytical sequence that contains all of the followings forms:

$$\begin{aligned}&string Id.flowType = type\_flow\_string,\\&\{string\} Id.flows\_to\_aggr = inputFlowExpr,\\&\{string\} Id.flows\_from\_aggr = outputFlowExpr, \end{aligned}$$

where:

  • Id is used as a prefix for all variables on the left hand side of the assignment statements

  • type_flow_string is a string

  • inputFlowExpr, outputFlowExpr are analytical expressions of the type {string} (i.e., return a set of strings)

An SPAF process package is a model package \(P\). We say that it is well-formed if:

  • \(P\) is closed under references

  • \(P\) satisfies the following scoping rules:

    • Process model M (Id) can use variables prefixed with identifiers form Id.inputFlow, Id.outputFlow, Id.flowAggregator, or itself, i.e., Id.

    • A model M (Id) in \(P\) can use variables from the context model in \(P\).

    • Flow Aggregator Model M (Id) can use variables that are prefixed with identifiers of flow models that are referenced in it, or itself, i.e., Id.

  • For every process model \(M\) in \(P,A(M)\) is a well-formed analytical sequence

Note that a well-formed SPAF process package \(P\) provides a modular description of a (flat) and well-formed analytical sequence. Thus, it is naturally extendable and its components are reusable.

SPAF formal semantics

We say that an analytical sequence \(A\) is explicit if all of its analytical statements are of the form

$$\begin{aligned} T_{i}\quad x_{i}= a_{i}, \end{aligned}$$

where \(a_{i}\) is a constant, i.e., it is an assignment of a constant to a variable. Intuitively, the symbolic expression of an explicit analytical sequence represents the corresponding data. Note that an explicit analytical sequence is flat. Formally, the semantics of an explicit analytical sequence \((s_{1}, \ldots , s_{n})\), denoted Sem \(((s_{1}, \ldots , s_{n}))\), is itself, i.e., its symbolic expression.

We say that an analytical sequence \(A\) is implicit if all of its analytical statements are of the form

$$\begin{aligned} T_{i}\quad x_{i}= e_{i}. \end{aligned}$$

Note that this includes the case when the expression \(e_{i}\) is a constant \(a_{i}\). Formally, the semantics of a well-formed implicit analytical sequence

$$\begin{aligned} (T_{1}\quad x_{1}=e_{1}, {\ldots }, T_{n}\quad x_{n}=e_{n}) \end{aligned}$$

is the explicit analytical sequence

$$\begin{aligned} (T_{1}\quad x_{1}= a_{1},{\ldots },T_{n}\quad x_{n}= a_{n}), \end{aligned}$$

in which each \(a_{i},1 \le i \le n\), is a constant of type \(T_{i}\) that is computed by expression \(e_{i}\), when each variable \(x_{j}, 1 \le j \le i-1\), is replaced by the constant \(a_{j}\).

The semantics of \((s_{1}, \ldots , s_{n})\) is denoted Sem \(((s_{1}, \ldots , s_{n}))\). Obviously, an explicit analytical sequence is a particular case of implicit, in which case, explicit and implicit semantics coincide.

We say that an analytical sequence \(A =(s_{1}, \ldots , s_{n})\) is a constraint analytical sequence if all of its statements are of the form

$$\begin{aligned} (T_{i}\quad x_{i}= e_{i}) \,\,or\,\, C_{i,} \end{aligned}$$

where \(e_{i}\) is an expression of type \(T_{i}\) and \(C_{i}\) is a constraint. Formally, the semantics of a well-formed constraint analytical sequence \((s_{1}, \ldots , s_{n})\), denoted Sem \((s_{1}, \ldots , s_{n})\), is defined as follows:

  • Consider an implicit analytical sequence \((s_{i_1} ,\ldots ,s_{i_k})\), which is a sub-sequence of \((s_{1},\ldots , s_{n})\) that contains all statements \(s_{i}'\) of the form \({T_{i}}\quad {x_{i}} = e_{i}\), and its semantics \(({T_{i_{1}}}\quad {x_{i_1}}= a_{i_1},\ldots , {T_{i_k}}\quad {{x}_{i_k}} =a_{i_k } )\)    (which is an explicit analytical sequence), and

  • Consider a sequence \((C_{j_{1}}, \ldots , \quad C_{j_{m}} )\), which is a sub-sequence of \((s_{1}, \ldots , s_{n})\) that contains all the constraint statements

    • If there exists \(1\le i \le m\), such that \(C_{j_i} \) evaluates to FALSE after every variable \(x_{i}\) in it is replaced with the constant \(a_{i}\), then Sem \(((s_{1}, \ldots , s_{n}))\) is defined as INVALID. Otherwise, Sem \(((s_{1}, \ldots , s_{n}))\) is defined as the explicit analytical sequence (\({T_{i_{1}}}\quad {x_{i_{1}}} =a_{i_{1}},\ldots ,{T_{i_{k}}}\quad {x_{i_{k}}} =a_{i_{k}})\).

We say that an analytical sequence \(A = (s_{1}, \ldots , s_{n})\) is an alternative analytical sequence, if each \(s_{i},1 \le i \le n\), is of the form

$$\begin{aligned} (Ti\quad x_{i}),\quad (T_{i}\,\,x_{i}= a_{i}),\,\, (T_{i} x_{i}= e_{i}),\,\,\, or \,\,\, C_{i,} \end{aligned}$$

where \(a_{i}\) is a constant of type Ti, and \(e_{i}\) is an expression of type Ti, and \(C_{i}\) is a constraint. Note that an alternative analytical sequence may have repetition of declaration statements for the same variable \(x\). Consider the analytical sequence \((s_{1}, \ldots , s_{n})\) resulting from \(A\) by removing, for every variable \(x\), all declarations except for its first appearance in \(A\). Formally, the semantics of a well-formed alternatives analytical sequence \((s_{1}, \ldots , s_{n})\), denoted Sem \(((s_{1}, \ldots , s_{n}))\), is defined as follows:

Consider all non-instantiated variables \(x_{i_{1}}, \ldots , x_{i_{k}}\) in \((s_{1}, \ldots , s_{n})\). Sem \(((s_{1}, \ldots , s_{n}))\) is the set

$$\begin{aligned} \big \{ E(a_{i_{1}},\ldots ,a_{i_{k}}) {\vert } a_{i_1} in D(T_{i_1}),\ldots ,a_{i_{k}} in D(T_{i_{k}})/\backslash \\ E(a_{i_1},\ldots ,a_{i_k} )\ne INVALID\big \}, \end{aligned}$$

where:

  • \(D (T_{i_1}),\ldots ,D(T_{i_k} )\) are the domains of types \(T_{i_1},\ldots ,T_{i_k}\), respectively, and

  • \(E(a_{i_1 } , \ldots , \quad a_{i_k } )\) denotes Sem \(((s_{1},\ldots , s_{n}) [x_{i_1 } /a_{i_1 } ,\ldots , x_{i_k } /a_{i_k } ])\), where \((s_{1}, \ldots , s_{n}) [x_{i_1 } /a_{i_1 } ,\ldots ,x_{i_k } /a_{i_k } ]\) denotes the constraint analytical sequence \((s_{1}', \ldots , s_{n}')\) that results from \((s_{1}, \ldots , s_{n})\) by replacing each statement of the form (\(T_{i_j }\quad x_{i_j } ), 1 \le j \le k\), with the statement \(T_{i_j }\quad x_{i_j } =a_{i_j }\).

We say that an analytical sequence \(A= (s_{1},\ldots , s_{n}, s_{n+1})\) is a flat optimization sequence if \((s_{1},\ldots , s_{n})\) is an alternative sequence, and s\(_{ (n+1)}\) is of the form:

$$\begin{aligned} min\;x_{i} , max\;x_{i}, or\;sat. \end{aligned}$$

where \(x_{i}, 1 \le i \le n\), is one of the variables in the left hand sides of assignments in \((s_{1}, \ldots , s_{n})\). Assuming without loss generality that, for every variable \(x\) in \(A\), there is a single declaration of \(x\) (if this is not the case, all declarations of \(x\) except for its first appearance are removed.) Formally, the semantics of an optimization analytical sequence \((s_{1},\ldots , s_{n}, s_{(n+1)})\), it denoted Sem \(((s_{1},\ldots , s_{n}, s_{(n+1)})\)), is defined as follows:

If Sem \((s_{1}, {\ldots }, s_{n})=\emptyset \) then we say that Sem \(((s_{1},\ldots , s_{n}, s_{(n+1)})\)) isINFEASIBLE. Otherwise, consider an explicit analytical sequence \(E\) in Sem \(((s_{1},\ldots , s_{n}))\) such that:

  • If \(s_{(n+1)}\) is \(min\;x_{i}\), then for all \(E'\) in Sem \(((s_{1}, {\ldots }, s_{n}),\, a_{i}\le a_{i}'\), where \(a_{i}\) and \(a_{i}'\), are the analytical model constants in the assignments \(T_{i}\,\, x_{i} = a_{i}\) of \(E\), and \(T_{i}\,\, x_{i} = a_{i}' \) of \(E'\).

  • If \(s_{ (n+1)}\) is \(max\;x_{i}\), then for all \(E'\) in Sem \(((s0_{1}, \ldots , s_{n}), a_{i} \ge a_{i}'\), where \(a_{i}\) and \(a_{i}'\), are the analytical model constants in the assignments \(T_{i }\,x_{i} = a_{i}\) of \(E\), and \(T_{i}\, x_{i} = a_{i}'\) of \(E'\).

If \(E\) does not exist, we say that Sem \(((s_{1},\ldots , s_{n}, s_{(n+1)})\)) is UNBOUNDED. Otherwise,

$$\begin{aligned} Sem ((s_{1},\ldots , s_{n}, s_{(n+1)}))\;is\;E. \end{aligned}$$

Note that if \(s_{ (n+1)}\) is sat, the semantics is just an explicit analytical sequence \(E\) in Sem \(((s_{1},\ldots , s_{n}))\). Also note that the optimization semantics (whether it is minimization, maximization, or satisfiability) are non-deterministic, i.e., there may be more than one explicit model that satisfies the condition in the definition of semantics.

Semantics of a query \((A, P)\) is a pair \((A', P')\) constructed as follows:

  • For every sequence \(S\), either \(A\) or a sequence \(B\) in a model M (Id) {B} in \(P,S\) is replaced by \(S'\) as follows.

    • Consider all variables \(x_{1,\ldots ,}x_{n,}\) declared in their order in \(S\), then \(S'\) is the sequence

      $$\begin{aligned} (T_{1}\,\, x_{1} = a_{1,}{\ldots }, T_{n}\,\, x_{n} = a_{n}), \end{aligned}$$

where \(T_{1},{\ldots }, T_{n}\) are the corresponding types of \(x_{1, \ldots , }x_{n }\), respectively, and \(a_{i}\) is the constant instantiated with \(x_{i}\) in the semantics \(E\) of flat (A,P).

SPAF query computation

In this section, algorithms (reduction procedures) to perform SPAF analytical query computation are introduced. Figure 22 shows a commutative diagram for analytical query computation, in which the upper left box indicates the query sequence \(A\) in model package \(P\). The query sequence may have include statements. The semantics of \(A\) is sequence \(A'\) in package \(P'\) as shown in the upper right box in Fig. 22. Two algorithms are included in the computation—analytical query algorithm and flat optimization sequence algorithm. Through the analytical query algorithm (refer to step (1), (6), and (5)), \((A, P) \) can be translated to a flat analytical sequence (middle left box). If the flat analytical sequence can be instantiated, it is an implicit analytical sequence, otherwise, it is an optimization analytical sequence whose semantics is a flat explicit analytical sequence (middle right box). This algorithm calls the flat optimization sequence algorithm [refer to step (2), (3), and (4)] to translate the flat optimization sequence to a standard optimization model such as OPL or AMPL (lower left box). By using an optimization solver, the optimization solution (lower right box) can be derived. All variables can then be instantiated, the sequence becomes a flat explicit analytical sequence (middle right box), which can be translate back to \((A', P')\).

Fig. 22
figure 22

A commutative diagram for analytical query computation

Figure 23 presents the algorithm of SPAF Query Computation. The input is an analytical query sequence \(A\) and a model package \(P\) that is closed with respect to \(A\). The output is \((A', P')\) that is the semantics of \((A, P)\). The procedures of the algorithm include:

  1. 1.

    Construct a flat sequence \(S1\) by replacing all the include statements in \(A\) with corresponding analytical sequences.

  2. 2.

    Construct a new sequence \(S2\) by removing all the duplicated declarations of \(x\) except for the first declaration in \(S1\) for every variable \(x\) declared in \(S1\).

  3. 3.

    If \(S2\) is instantiated, it must be an implicit analytical sequence. So a new explicit analytical sequence \(S3\) can be constructed by replacing each variable with a constant that derived from an expression.

  4. 4.

    If \(S2\) is not instantiated, it must be a flat optimization query.

By calling the OptSeqAlg (S2) algorithm, it will return the semantics of \(S2\).

Fig. 23
figure 23

Algorithm 1: SPAF query computation

Figure 24 presents the algorithm of Optimization Sequence Algorithm (OptSeqAlg). The input is a flat optimization query \(S2 \) generated by the SPAF Query Computation algorithm. The output is the semantics of \(S2\).

  1. 1.

    For all variables that are instantiated in every statement, replace the expression with the computed constant.

  2. 2.

    Construct decision variables that are not being instantiated.

  3. 3.

    Construct a set of constraints by replacing decision variables in every statement with its constant. For any variable that is non-instantiated, a constraint is added.

  4. 4.

    Construct the optimization problem with objectives and constraints.

  5. 5.

    Solve the optimization problem using an optimization solver.

  6. 6.

    Construct the answer sequence by removing all constraint statements and replacing all the variables using constants computed or the optimization solutions.

Fig. 24
figure 24

Algorithm 2: optimization sequence algorithm (OptSeqAlg)

Algorithm correctness We denote by All-Sem (A, P) the set of all explicit analytical sequences’ E that are Sem (A, P).

We denote by All-Ans (A, P) the set of all explicit analytical sequences’ E that are possible answers produced by Algorithm: SPAF query computation.

Claim Algorithm SPAF query computation is CORRECT, i.e., it is:

  1. 1.

    Sound, i.e., for every well-formed analytical query (A, P),

    $$\begin{aligned} \hbox {All}\_\hbox {Ans}\,\, (\hbox {A}, \hbox {P}) \subseteq \hbox {All}\_\hbox {Sem}\,\, (\hbox {A}, \hbox {P}) \end{aligned}$$
  2. 2.

    Complete, i.e., for every well-formed analytical query (A, P),

    $$\begin{aligned} \hbox {All}\_\hbox {Sem}\,\, (\hbox {A}, \hbox {P}) \subseteq \hbox {All}\_\hbox {Ans}\,\, (\hbox {A}, \hbox {P}) \end{aligned}$$

Rights and permissions

Reprints and permissions

About this article

Cite this article

Brodsky, A., Shao, G. & Riddick, F. Process analytics formalism for decision guidance in sustainable manufacturing. J Intell Manuf 27, 561–580 (2016). https://doi.org/10.1007/s10845-014-0892-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10845-014-0892-9

Keywords

Navigation