This disclosure is generally directed to production planning and scheduling systems. More specifically, this disclosure is directed to post-processing heuristics for optimal production scheduling for process manufacturing.
Production scheduling generally refers to the process of determining how process units in a process manufacturing plant will be used to produce one or more products. The process units generally represent equipment that can be used to perform specific processing functions on one or more materials. For example, production scheduling may involve determining how equipment in a chemical manufacturing plant will be used to produce polymers, such as polypropylene or polyethylene, or other chemical products. Production scheduling for a plant typically involves dictating the production schedule (such as one or more products to be produced, quantities of the one or more products to be produced, and timing of the one or more products to be produced) for the processing units contained in the plant over a forward-looking scheduling horizon.
This disclosure relates to post-processing heuristics for optimal production scheduling for process manufacturing.
In a first embodiment, a method includes obtaining a solution representing a proposed production schedule associated with multiple processing units in a facility, where the multiple processing units are capable of producing different products. The method also includes performing post-processing of the solution to identify a final production schedule for the processing units in the facility. The post-processing of the solution includes multiple operations each configured to modify the proposed production schedule so that the final production schedule is feasible given constraints associated with the processing units in the facility.
In a second embodiment, an apparatus includes at least one processing device configured to obtain a solution representing a proposed production schedule associated with multiple processing units in a facility, where the multiple processing units are capable of producing different products. The at least one processing device is also configured to perform post-processing of the solution to identify a final production schedule for the processing units in the facility. The post-processing of the solution includes multiple operations each configured to modify the proposed production schedule so that the final production schedule is feasible given constraints associated with the processing units in the facility.
In a third embodiment, a non-transitory computer readable medium stores computer readable program code that when executed causes one or more processors to obtain a solution representing a proposed production schedule associated with multiple processing units in a facility, where the multiple processing units are capable of producing different products. The medium also stores computer readable program code that when executed causes the one or more processors to perform post-processing of the solution to identify a final production schedule for the processing units in the facility. The post-processing of the solution includes multiple operations each configured to modify the proposed production schedule so that the final production schedule is feasible given constraints associated with the processing units in the facility.
Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.
For a more complete understanding of this disclosure, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
As noted above, production scheduling generally refers to the process of determining how process units in a process manufacturing plant will be used to produce one or more products. The process units generally represent equipment that can be used to perform specific processing functions on one or more materials. For example, production scheduling may involve determining how equipment in a chemical manufacturing plant will be used to produce polymers, such as polypropylene or polyethylene, or other chemical products. Production scheduling for a plant typically involves dictating the production schedule (such as one or more products to be produced, quantities of the one or more products to be produced, and timing of the one or more products to be produced) for the processing units contained in the plant over a forward-looking scheduling horizon. An optimal production schedule for a plant is a schedule that satisfies some specified criterion or criteria, such as maximizing revenue, minimizing costs, minimizing energy usage, or minimizing raw material usage. Also, for a production schedule to be valid, the production schedule needs to honor the operational constraints of the plant itself, such as mass-balances, energy balances, and transition dynamics.
Production scheduling has traditionally been performed manually at the discretion of plant operators. Unfortunately, production scheduling is typically labor-intensive and commonly fails to make optimal use of the full capacity of a plant. Also, production scheduling algorithms are often only able to solve a production scheduling problem approximately and are not able to correctly model the dynamics of a plant. Production scheduling algorithms also typically ignore many constraints, including entire unit operations and logistical constraints, because the plant is not modeled correctly. This can lead to the generation of infeasible schedules that then need to be corrected manually by the plant operators.
This disclosure provides an apparatus, method, and computer readable medium supporting a process that produces a more optimal production schedule for process unit operations in one or more process manufacturing plants. The overall process includes two general operations, which may in some instances be implemented as separate modules (although this need not be the case). A first general operation involves constrained optimization of an optimization problem. The optimization problem includes constraints that describe processes governing the processing units, constraints that describe interactions among the processing units, and constraints that allow efficient formulation of objectives. Using an objective function, such as cost minimization or profit maximization, costs associated with production transitions, inventory holding costs, serviceability costs, and other costs that define the economic gains or process costs associated with the plant can be encoded. During constrained optimization, an approximate optimal solution for the full optimization problem is obtained by solving a relaxed formulation of the full optimization problem. For example, one or more relaxed versions of the optimization problem can be formulated and solved, such as by using an optimization solver. A second general operation involves post-processing heuristics. Here, the relaxed solution produced by the first operation is post-processed (modified) to yield a feasible solution for the full optimization problem. This can be done iteratively while monitoring the costs associated with a generated schedule for all processing units in the plant and ensuring convergence to one or more suitable solutions to the full production scheduling optimization problem.
In this way, the described approaches can be performed much more quickly and with much less manual effort by plant operators or other personnel. Moreover, the described approaches are typically able to make improved or optimal use of the full capacity of a plant compared to manual approaches. In addition, the described approaches are able to more effectively model the dynamics of a plant and consider many constraints like entire unit operations and logistical constraints. This makes production schedules generated using the described approaches much more likely to be implementable by a plant (with or without subsequent manual adjustments by plant operators).
Note that the approaches described below for optimal production scheduling using constrained optimization and post-processing heuristics may be used in any number of applications. Example use cases for the described approaches may include use with chemical manufacturing or processing facilities, food processing facilities, paper or pulp manufacturing or processing facilities, and oil and gas processing facilities. In general, the approaches described below may be used in any suitable manner to support optimal production scheduling using constrained optimization and post-processing heuristics.
Also note that while the approaches described below for optimal production scheduling use both constrained optimization and post-processing heuristics, it is possible for production scheduling to occur using one of constrained optimization or post-processing heuristics (but not both). For example, the constrained optimization may be used to generate one or more solutions representing one or more production schedules, and the one or more solutions may be used in any suitable manner with or without post-processing heuristics. Also, the post-processing heuristics may be used with any suitable solution generated with or without constrained optimization.
The network 104 facilitates communication between various components of the system 100. For example, the network 104 may communicate Internet Protocol (IP) packets, frame relay frames, Asynchronous Transfer Mode (ATM) cells, or other suitable information between network addresses. The network 104 may include one or more local area networks (LANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of a global network such as the Internet, or any other communication system or systems at one or more locations. In some cases, the network 104 may represent an internal or private network used by an owner or operator of a process manufacturing plant.
The application server 106 is coupled to the network 104 and is coupled to or otherwise communicates with the database server 108. The application server 106 supports the production scheduling process described below. For example, the application server 106 may execute one or more applications 112 that use data from the database 110 to perform production scheduling. Note that the database server 108 may also be used within the application server 106 to store information, in which case the application server 106 may store the information itself used to perform production scheduling.
The database server 108 operates to store and facilitate retrieval of various information used, generated, or collected by the application server 106 and the user devices 102a-102d in the database 110. For example, the database server 108 may store various information related to customer product orders and other information used during production scheduling.
In this example, at least some of the information used by the application server 106 and/or stored in the database 110 may be received over at least one additional network 114 from one or more customer systems 116a-116n. For example, the network 114 may represent a public data network (such as the Internet) or other network that allows the one or more customer systems 116a-116n to provide information to and receive information from the owner or operator of a process manufacturing plant. As a particular example, the one or more customer systems 116a-116n may be used by customers to provide order information to the owner or operator of the process manufacturing plant, where that information can be used by the application server 106 to perform production scheduling.
A determined production schedule produced by the application server 106 may be used in any suitable manner. For example, the determined production schedule may be presented to one or more users, such as via one or more of the user devices 102a-102d. The one or more users may review the determined production schedule, make changes to the determined production schedule, or perform other actions using the determined production schedule. The determined production schedule may also be used by the application server 106 or other device to automatically schedule operations to be performed to produce one or more products or control operations being performed to produce one or more products. In general, one or more production schedules may be used in any suitable manner with or without user interaction.
Although
As shown in
The memory 210 and a persistent storage 212 are examples of storage devices 204, which represent any structure(s) capable of storing and facilitating retrieval of information (such as data, program code, and/or other suitable information on a temporary or permanent basis). The memory 210 may represent a random access memory or any other suitable volatile or non-volatile storage device(s). The persistent storage 212 may contain one or more components or devices supporting longer-term storage of data, such as a read only memory, hard drive, Flash memory, or optical disc.
The communications unit 206 supports communications with other systems or devices. For example, the communications unit 206 can include a network interface card or a wireless transceiver facilitating communications over a wired or wireless network, such as the network 104 or 114. The communications unit 206 may support communications through any suitable physical or wireless communication link(s).
The I/O unit 208 allows for input and output of data. For example, the I/O unit 208 may provide a connection for user input through a keyboard, mouse, keypad, touchscreen, or other suitable input device. The I/O unit 208 may also send output to a display, printer, or other suitable output device. Note, however, that the I/O unit 208 may be omitted if the device 200 does not require local I/O, such as when the device 200 represents a server or other device that can be accessed remotely.
Although
The following now describes example approaches for performing constrained optimization and using post-processing heuristics for optimal production scheduling for process manufacturing. Note that the specific details provided below are for illustration only and can vary as needed or desired. For instance, specific equations are provided below for features such as an objective function, and these equations may be modified as needed or desired. For ease of explanation, it is assumed that the approaches described below are performed using the application server 106 of
Based on the graph representation 300a, consider a facility that produces a set of materials, some of which can be sold or otherwise provided to customers as final products. An ordered set of indices may be used to represent the various products prod such that prod=m={1, . . . , m}, where m is the number of materials produced within the facility. Also, the set of final products sold or otherwise provided to customers can be denoted as ter⊂prod. The facility may include a set of N pieces of equipment or process steps, and the final products may be produced as a result of directed interactions among these pieces of equipment. This can be represented using a graph representation 300a having the form of a directed graph G (V, ϵ) with a vertex set V=
N and an edge set ϵ. A simplified example of this is shown in
It may be assumed that each node 302 (denoted node i) can produce a set of materials, which can be denoted as prodi⊆prod. Also, let the set of nodes 302 producing one or more final products be denoted as terminal. In ,
=(1, 2, 3, . . . , 6, Inv) in the example of
It can further be assumed that a material j produced by a node i can be converted into another set of one or more materials by a node k. More specifically, it can be assumed that each unit of material j produced by a node i can be converted into one or more different amounts of one or more materials produced by a node k. Based on this, the set of materials produced by the node k can be denoted as prodi,jk, and the material amounts produced by the node k given a unit of material t can be denoted as Utk. In addition, the number of time steps that it takes for transporting one or more materials from the node i to the node k can be denoted as Sik, which may correspond to the i-kth entry in a matrix S Ε (N×1)×(N×1) (where the last row and the last column correspond to the transportation times from and to the inventory 306).
The information described above may fully describe the interactions between the nodes 302 in the facility. It is then possible to define constraints governing the function or functions of each node 302. First, assume that each node 302 at any given time can only produce one and only one material, such as one intermediate product or one final product. Second, given a maximum production rate for each material, assume that each node 302 can only produce a maximum amount of material within a given period of time. Conversely, there may also exist a minimum production rate/amount associated with each node-material combination. Third, as noted earlier, each node 302 can produce a set of materials, and there is typically a different cost associated with transitioning from producing one material to another material. A transition cost associated with transitioning from producing a material j to producing a material t at a node i can be denoted as Cjti, which may correspond to the j-tth entry in a matrix Ci.
Given demand forecasts for final products by customers of the facility, a production schedule can be determined for each node 302 during a period of time in the future, where the production schedule ideally enables the facility to meet the demand as much as possible while minimizing transition costs associated with material production transitions dictated by the production schedule. The following discusses how this problem can be formulated as a mathematical optimization problem. After that, approaches for using the optimization problem are described, and post-processing operations that may be performed using one or more solutions to the optimization problem are described.
In order to determine an optimal production schedule, an optimization problem can be defined and solved. In order to define the optimization problem, a set of constraints and an objective or cost function of the optimization problem can be defined. The following describes example constraints that may be associated with the optimization problem, as well as an example objective or cost function that may be associated with the optimization problem.
In some embodiments, constraints corresponding to each node 302 in the production process may be determined as follows. As noted above, the set of materials that can be produced by a node i can be denoted as prodi. The production schedule of these materials at the node i can be denoted as Ai ϵ H×|prod
H×|prod
Here, ⊙ represents a Hadamard or element-wise multiplication Yi ϵ {0, 1}H×|prodH×|prod
Notice that, in certain cases, Mi=Li for all nodes 302. In this type of situation, the variables Ai would not be needed to denote the amount of production, and it is possible to use only the binary variables Yi. To see this, note that having Yzki=1 indicates that a material k is being produced at a time z using a node i. Given that, MzkiYzki represents the amount of material that will be produced at that time.
When determining a new production schedule, there may be constraints concerning the variability of the determined production schedules computed at one time to another time. Let
Common matrix notation is used here for this purpose. This indicates that the variables involved in the constraints above can be removed from the optimization problem. Similarly, constraints enforcing planned or unplanned shutdowns of certain nodes 302 may be used. For example, this can be easily enforced by setting rows associated with shutdown periods at a node i in the horizon in Yi and Ai to zero. Note that introducing the constraints in Equations (4) and (5) above in order to enforce the frozen time fence may lead to constraint violations, particularly with respect to interaction constraints described below. In order to avoid an infeasible model, constraints in the optimization model for the first tf timesteps can be relaxed.
In some cases, this can complete the list of constraints that describe the rules governing production at each node i. To summarize, below are the constraints corresponding to each node 302:
In some embodiments, constraints corresponding to each flow 304 in the production process may be determined as follows. These constraints may primarily focus on encoding the flows 304 of materials among the nodes 302. To do so, let Im denote an m×m identity matrix, and let Ei denote a matrix that is the result of selecting rows of Im given by the ordered set prodi. Also, let Ti,k represent an identity matrix IH with its diagonal shifted downward by an amount Sik. Notice that, in this setting, Tk,i would represent the identity matrix IH with its diagonal shifted upward by the amount Sik. Denote the flow 304 of material along the edge from a node i to a node k as Fi,k, and denote the flow 304 of material from the inventory 306 to the node i as FInv,i (where Fi,Inv is the reverse flow of material from the node i to the inventory 306). Denote the set of materials flowing along the edge from the node i to the node k as prodi,k⊆prodi. In addition, define a recipe matrix for the node i as Ri ϵ m×m, where the jth column of the recipe matrix is denoted Rj and describes how much of material j received by the node i is required for producing one or more downstream materials. For instance, if one unit of the material j is required to produce a1 of material u and to produce a2 of material v, the uth and vth components of Rj may be equal to 1/a1 and 1/a2, respectively (where the rest of the values in Rj would be zeros). Based on this, it is possible to define constraints describing the in-flow and out-flow of material to and from the node i as follows:
Here, Ei,k represents I|prod
Focus now turns to describing a cost function associated with the optimization problem. One aim of defining a cost function here can be to strike a balance between different objectives, such as (i) producing final products at the right times and delivering orders on time and (ii) reducing production costs, such as transition costs for shifting between producing different materials. In order to form a cost function successfully, some additional constraints and variables may be introduced. Let x0 ϵ |ter| represent the current inventory vector for finished products, and let D ϵ
H×|ter| represent a finished products demand forecast matrix ordered based on the ordered set ter. Given this, the evolution of inventory X over the time horizon can be expressed as follows:
Here, Δ−1 represents a lower-triangular matrix with only ones in the lower triangle, e1 ϵ {0, 1}H represents a vector with a one as its first element, and ch(Inv) represents the nodes 302 that can post-process final products from the inventory 306. In order to satisfy the demand D, the following can be obtained:
However, the aim may not necessarily be to satisfy all demand on time since it is possible to miss on demand and pay a penalty. In order to encode this, additional variables X+,X− ϵ H×|ter| can be introduced to represent the positive and negative components of the inventory X. Equation (11) may then be modified as follows:
With these, it is possible to describe the terms of a cost function that relate to producing the final products at the right times and delivering orders on time. Before doing so, consider the penalization process of missed demand or early production. Assuming that a demand is expected to be satisfied at a time t for a product i, a penalty function in some cases may be defined as follows:
This encoding indicates that, if the product i is produced earlier than needed, the penalty is a linear inventory holding cost. If the product i is produced later than needed, the penalty is a nonlinear function based on delay (which is often expressed as a nonlinear function that is exponential based on delay). The nonlinear function based on delay might be approximated to be linear, such as with a penalty coefficient α ϵ . The related terms in the cost function can then be defined as follows:
Here, the first term encodes the penalty associated with early production (inventory holding cost) with Ch being a diagonal matrix and chi being its diagonal entries, and the second term encodes the penalty associated with late production.
In terms of reducing the transition cost portion of the production costs, assume the matrices Ci that define the transition costs associated with material production at a node i are symmetric. In that case, the following can encode the transition cost associated with production across all nodes 302:
where N represents the number of nodes 302. In this case, the total cost function can be written as follows:
Now assume that the transition cost matrices Ci are not symmetric. In that case, additional constraints and variables can be introduced to support formulation of the cost function. For example, the following constraints may be used:
Here, H−1×|prod
Here, vec(⋅) represents a vectorization operation, and Ci ϵ Hm×Hm represents a block-diagonal matrix with Ci repeated as its diagonal blocks. In this case, the total cost function can be written as follows:
With respect to additional logistical constraints, an inventory balance constraint was introduced above in Equation (12). This constraint alone permits an out-flow Σiϵch(Inv)FInv,iEInv,i×(EInv)T to exceed the amount of available inventory X+. To prevent this, an additional constraint can be added, such as the following constraint:
Additionally, there may be certain logics that concern the utilization of equipment represented by the nodes 302. For instance, sets of nodes 302 may be coupled together such that they need to be producing materials simultaneously. Let i, k represent a set of coupled nodes, and let L represent the set of sets of coupled nodes. With these definitions, the following constraint can be defined to ensure that coupled nodes are producing simultaneously:
Another constraint may involve one or more sets of exclusive edges (flows 304), each of which can be defined as a set of edges where only one member edge can have a non-zero flow along it at any given time. To encode this constraint, a binary variable yi,k ϵ {0, 1}H can be introduced, which captures whether edge (i, k) has a non-zero flow for each timestep. Based on this, the following constraints can be defined:
Here, ϵ
is a large number, and Yexc ϵ
H×|exc| represents a matrix whose columns correspond to each yi,k in a set of exclusive edges exc. The first constraint ensures that yi,k is active if there is any flow Fi,k, while the second constraint ensures that only one of the edges in the exclusive set exc is active at any given time.
Note that the description above describes variables, constraints, and objective terms that fully describe the dynamics and costs for a production scheduling problem. However, there are a few edge cases from the resulting optimal schedules that may need to be defended against. These edge cases are described below, and modifications to the problem formulation and parametrization are presented to address them.
First, consider the objective term that describes product transition costs as defined in Equation (19) above. This correctly captures the cost of a transition from a product m1 to a product m2 on consecutive timestamps. Notice that no transition cost is incurred when stopping production, nor is a transition cost incurred when restarting production. Therefore, transition costs between producing the products m1 and m2 can be entirely avoided by simply not producing for a single timestamp between the two production timestamps, meaning Y[t, :]=0. In the case of expensive transition costs, a low serviceability penalty, or a sufficiently-small time step discretization, the cost associated with not producing for a single time step may be entirely offset by not incurring the transition cost. In order to support this, a virtual material can be introduced, where the virtual material corresponds to a decision to not produce any physical material. Equation (3) may then be reformulated as follows:
where Ŷi ϵ {0, 1}X×|prod(|prod
+ is more expensive than the most expensive transition in Ĉi, ∀i ϵ
. The value of Ĉi[−1, :] can be set to zero in order to not penalize turning on production. An updated transition cost term may then be expressed as follows:
Note that substituting Yi ϵ {0, 1}H×|prod
Second, another issue may arise with respect to an inventory holding cost. It is possible for a terminal or final product to also represent an intermediate product, meaning a product that is stored in inventory 306 can also be consumed by a node 302 to create a new product. Let mingr represent one of such products. The objective term used to describe inventory holding cost is shown on the left-hand side of Equation (15) above. In the event of similar holding costs between mingr and a product mfinal that is produced from mingr, it is possible to reduce the inventory holding cost by continually producing mfinal by consuming mingr from the inventory 306. This is possible because the process of producing mfinal reduces the inventory by an amount corresponding to the consumption rate of mingr and the time it takes for the product to make a round trip between the inventory 306 and a production node 302. To avoid this, the holding costs of all terminal or final products that are also intermediate products can be set to zero, which can be expressed as follows:
Here, prodint represents the set of intermediate materials.
Third, as a final precaution, it may be desirable to schedule production for materials that are needed for the purposes of satisfying demand. To do this, a small penalty on production can be defined and added to the objective function, such as in the following manner:
Here, γ ϵ + is a small number, such as a value of one. This ensures that unnecessary production is avoided but that the penalty on production is not large enough to offset more relevant costs (such as those associated with transitions or serviceability).
From all of the above, collecting the constraints defined above and putting the cost function together may result in the following optimization problem:
Note that the cost function in Equation (29) includes bilinear terms due to the last term. This means that this problem constitutes a mixed integer nonlinear program (MINP). In some cases, the MINP problem can be converted into a mixed integer linear program (MILP), such as by using McCormick envelopes or relaxations. In other cases, approaches that modify the cost function to convert the problem into a mixed integer quadratic program (MIQP) may be used. Details of these approaches are now provided.
With respect to McCormick envelopes or relaxations, consider a bilinear term xixj. Bilinear terms are some of the most innocent forms of nonlinearity, and such terms may be approximated by introducing an additional variable and four linear inequality constraints. Assume that xi ϵ [li,ui] and xj ϵ [lj,uj]. Also assume that a variable Wij represents the interaction. Given this, the convex hull for the nonlinear equality constraint Wij=xixj can be expressed as follows:
Here, the variables that are in the bilinear terms are in fact binary variables, so the constraints above can be reduced as follows:
Note that, for binary variables, these constraints are equivalent to Wij=xixj. To observe this, the four different combinations of xi and xj can be enumerated, and it can be observed that bilinear equality is derived from Equation (35) for all cases. Based on this, it is possible to introduce additional variables and constraints to convert the MINP above to an MILP. However, for long horizons or when each node 302 can produce many materials, this approach results in many additional variables and constraints. In fact, the number of constraints and variables can grow quadratically as a function of horizon and the number of materials at each node 302. Thus, the following alternative approach can be used for such cases in some embodiments.
Notice that the bilinear term in the cost function can be equivalently rewritten as follows:
Although this defines a quadratic term, this still represents an MINP since the Hessian is indefinite. In order to evade this issue, the Hessian can be modified to become diagonally-dominant by adding positive values to the diagonal. This could be as simple as adding a positive multiple of an identity matrix to the Hessian, which results in the same positive diagonal value. More sophisticated approaches may also be used, such as by picking different values for the diagonal. Note that the positive diagonals encode the cost associated with production. Since the production is enforced by the constraints that enforce satisfaction of the demand and the penalty associated with missing demand, this approximation may have minimal effect on the solution.
Note that the above description has described the production scheduling optimization problem as a mathematical algorithm to the fullest extent possible. However, there may be several practical limitations of this approach. One limitation is the computational complexity of the formulation since the approach defined above is a mixed integer quadratic program and can easily have millions of variables and non-zero objective and constraint terms. For a problem of this complexity, even state-of-the-art optimization solvers can have difficulty converging to near-optimal solutions in a reasonable amount of time. It may be possible to improve solve times with tricks such as warm-starting the solver from a relaxed solution, normalizing coefficients to be in a narrower range (such as 105), and tweaking solver parameters. Heuristics, such as receding horizon optimization where the scheduling horizon is discretized into shorter periods and solved sequentially, may also be used. While these approaches provide improvements to the solve times, they still face significant issues around scalability. Other limitations may revolve around modeling. For instance, within the mathematical programming framework, it can be difficult to encode constraints such as variable changeover times between product transitions, quantity-driven batch-size requirements for production, and nonlinear serviceability costs.
For these reasons, a two-module or two-step scheduling algorithm or process may be used. The first module or step can be responsible for solving a relaxed version of the optimization problem described above. For example, the transition cost term in Equation (19), along with associated variables and constraints, can be removed from the problem formulation. It is also possible to remove consideration of changeover times from the problem formulation. The resulting problem is a much more tractable mixed integer linear program. The second module or step can be responsible for post-processing the relaxed solution into a feasible and near-optimal production schedule. For instance, the post-processing module or step may be responsible for optimizing transition costs and capturing the previously-mentioned modeling limitations with respect to a representative cost function. The mechanics and operations that may be performed by the post-processing module or step are described below.
Although
As described above, several relaxations can be made to the optimization problem's formulation, such as due to modeling or computational constraints. In order to produce a truly feasible and optimal production schedule using the relaxed optimization problem, post-processing can be performed to modify a production schedule generated using the relaxed optimization problem. In some embodiments, the post-processing can honor the constraints that are not directly encoded in the optimization problem's formulation of Equations (29)-(30) and optimize the true objective function, which can include nonlinear serviceability and transition costs. Constraints that may not be directly encoded into the optimization problem's formulation may include the following: (i) for a production batch defined as a continuous duration producing a single material, the total quantity produced in the production batch may need to be an integer multiple of some production unit; (ii) consecutive production batches of different materials may have a non-negative downtime, which is defined as a period of time where material is not being produced; and (iii) consecutive production batches of different materials may have a non-negative transition time immediately following a downtime, and a transition product may be produced during the transition time and optionally stored in the inventory 306. It should be noted here that the relaxed optimization problem satisfies mass balance (besides transition materials) across all nodes 302 and can be optimized directly for serviceability costs. Therefore, it may be reasonable in some cases to assume that sufficient production has been scheduled to satisfy demand, and the post-processing can focus on modifying the production schedule to be feasible and optimal without introducing or removing a significant amount of production.
In some embodiments, the post-processing that is performed once a production schedule (referred to as a relaxed optimization schedule) has been generated using the relaxed optimization problem can include a series of sequential or other steps or operations. Each step or operation can be responsible for modifying the relaxed optimization schedule to have some quality of a feasible and optimal production schedule. The following are examples of the types of steps or operations that may occur as part of the post-processing functionality, and each of these steps or operations is described in more detail below. During a “chunk and merge” operation, the relaxed optimization schedule may be divided or discretized into separate chunks, and batches of common products in each chunk may be merged. During a “resequence” operation, production batches may be reordered so as to reduce or minimize transition costs within each chunk. During a “round to production unit” operation, all production batches in the schedule may be rounded to integer multiples of some production unit. During an “inject time gap” operation, downtimes and transition times may be introduced into the schedule. During an “align auxiliary nodes to parent nodes” operation, production batches on auxiliary nodes may be aligned to their parent nodes' production. During an “align auxiliary nodes to inventory” operation, production batches on auxiliary nodes may be aligned to ingredients available in the inventory 306. During a “shift and merge” operation, a search for a locally-optimal schedule may be performed via merging of production batches. During an “inject transition material” operation, any production of one or more transition materials during a transition time may be reflected in the production schedule. Note that the post-processing of a solution to an optimization problem may involve the use of one of these post-processing operations, all of these post-processing operations, or any combination of these post-processing operations.
To aid in the performance of these post-processing operations, it may be helpful to represent a relaxed production schedule in a way that is different from the optimization described above. In the optimization, the production schedule may be represented as a matrix whose rows represent timesteps and whose columns represent products or materials. Despite the data compactness of the matrix, using a matrix representation of batches and production schedules raises the following considerations. First, with respect to batch consistency, it may be necessary or desirable to ensure that child and parent batches (such as in the case of a product and the ingredients it requires) are consistent. When a batch of material is removed from a production schedule, any associated batches at upstream or downstream nodes 302 may also need to be removed in order to satisfy mass balance constraints, and checking which submatrix needs to be removed may be very error-prone and complex. Second, with respect to computational efficiency, when a batch of material is removed from or added to a production schedule, a new matrix may have to be constructed, which could require O(n) time. Considering (i) the matrix-format production schedule has dimensions of the time horizon and the number of items and (ii) the high frequency at which insertion and removal operations may be performed, exclusively using a matrix representation of a production schedule may be highly inefficient.
To address these or other issues and introduce more extensibility, in some embodiments, a recursive doubly-linked list data structure may be used to represent batches of materials to be produced. Each batch can have attributes such as its material, quantity, and duration. Additionally, there are often references to preceding and subsequent batches of materials within a production schedule, as well as references to one or more batches of materials that are used as one or more ingredients or that are created from a specific batch. A production schedule may therefore be represented as a container of batches. This type of data structure has O(l) insertion and removal times. Benefiting from its recursive structure, when a specified batch is removed, removal of any associated batches is very simple and can be directly handled by the data structure with a time complexity of O(k), where k represents the number of total schedules in a sequence.
Although
With respect to the “chunk and merge” post-processing operation, a relaxed optimization schedule produced using a relaxed version of the optimization problem formulation in Equations (29)-(30) can represent a production schedule with many transitions between productions of different batches of different materials, which can lead to extremely high transition costs. To combat the high transition costs associated with the relaxed optimization schedule, the application server 106 may perform the “chunk and merge” operation, which generally operates to combine batches of common materials into larger batches of the same materials. In some cases, this can be performed as follows. First, the relaxed optimization schedule can be divided or discretized into chunks with relatively-small time windows. Second, within each chunk, batches of common materials can be merged together into larger batches.
Although
With respect to the “resequence” post-processing operation, the chunk and merge process reduces transition costs by combining production batches for common materials in order to reduce the total number of production batches. As a result, the chunk and merge process may not optimize the sequence of batches within each chunk. Therefore, the “resequence” operation can be performed following the chunk and merge process, and the “resequence” operation generally operates to reorder production batches to further reduce transition costs. In some cases, the “resequence” operation involves the use of a resequence cost minimization problem, which may be defined as follows. Given a set of unique materials, a transition cost matrix C can be defined, where the elements Ci,j of the transition cost matrix represent the transition costs from a material i to a material j. Using this transition cost matrix C, the application server 106 can find the order of producing the materials that yields the lowest total transition cost.
In some embodiments, this minimization problem can be viewed as the classical traveling salesperson problem (TSP), where cities represent the different materials to be produced and distances between the cities represent the transition costs incurred between different pairs of materials. In particular embodiments, the starting city may represent a dummy material, which can have a zero distance to all actual cities. This may allow an optimal solution to be identified that is not dependent on a specific material being selected as the starting material. Since the time chunk size is generally small and contains a relatively small number of unique materials, an exact solver that utilizes branch and cut with dynamic programming may be used here. Note that it is also possible to cast the TSP as a mixed integer linear program, such as by using the Miller-Tucker-Zemlin formulation, in which case the “resequence” operation may be implemented using such an optimization approach.
In some cases, a search state can be represented as a pair that includes a sorted list of assigned materials and a set of remaining materials, and an optimal sequence of remaining materials may only rely on the most recently assigned material. Using this search state representation, repeat searches can be avoided. To further reduce redundant searches, if an incomplete sequence already exceeds the current best solution, this search can be trimmed. An example implementation of such an algorithm, along with its pseudocode, is provided below.
Although
With respect to the “round to production unit” post-processing operation, the resequence process may reorder the production of various materials, but at this point the merged production batches are not guaranteed to have integer multiples of quantities of specified production units. Stated another way, equipment may be used to produce a specified quantity of a material, and there is no guarantee that the results of the resequence process include an integer multiple of that specified quantity. To address this, the “round to production unit” operation generally operates to round up (if necessary) one or more of the production quantities that are output from the resequence process so that each production quantity is an integer multiple of the associated production unit. Note that the duration of individual batches can be increased here to accommodate for the additional production required.
Although
With respect to the “inject time gap” post-processing operation, when a node 302 changes production from a material i to a material j, there is a time gap between when the material i stops being produced and when the material j begins being produced. This time (referred to as the changeover time above) may include two separate periods of time. The first period of time may represent downtime, which refers to time when production stops entirely. The second period of time may represent transition time, which refers to time during which some type of transition material k may be produced. It is possible that the transition material k can be stored in the inventory 306 and used to satisfy external demand. The “inject time gap” operation generally operates to introduce the appropriate time gaps between the transitions for the material batches in the production schedule.
Although
With respect to the “align auxiliary nodes to parent nodes” post-processing operation, an auxiliary node may be defined as a node in a production graph that is not explicitly coupled to any parent node as part of a line (where a line represents a set of coupled nodes that produce one or more materials simultaneously). A node that is part of a line has one parent at most and cannot be part of any other line. The schedule for nodes arranged as a line is simple to modify because the schedule of the most downstream node directly dictates the schedules that the upstream nodes adopt. Schedules for auxiliary nodes are more challenging to modify because they do not have this strict relationship. The “align auxiliary nodes to parent nodes” operation generally operates to align the production of these various nodes.
The “align auxiliary nodes to parent nodes” operation here continues to honor the constraints describing in-flows in Equation (8) and sets of exclusive edges in Equation (24), which may both pertain to auxiliary nodes. This may be accomplished by sequentially checking each production batch for each parent node and aligning the largest possible production batch in an auxiliary node to consume the parent batch as an ingredient. A production batch can consume a parent batch as an ingredient if the alignment of the batches satisfies the in-flow constraint of Equation (8) and the exclusive edge set constraints of Equation (24). This greedy allocation may be repeated until all parent nodes are inspected or there are no remaining batches to allocate in the auxiliary nodes.
Although
With respect to the “align auxiliary nodes to inventory” post-processing operation, there may be some instances where one or more production batches at one or more auxiliary nodes receive at least one ingredient stored in an inventory 306. In that case, a similar alignment process referred to as an “align auxiliary nodes to inventory” operation may be performed between the auxiliary node(s) and the inventory 306. In addition to the in-flow and exclusive edge sets constraints, the inventory out-flow constraint of Equation (12) can also be satisfied. Aside from this and the added constraint of not allocating production during periods of time where batches are assigned via the “align auxiliary nodes to parent nodes” operation, the “align auxiliary nodes to inventory” operation can be identical to the “align auxiliary nodes to parent nodes” operation. Ideally, the “align auxiliary nodes to inventory” operation occurs and results in no periods of time during the production schedule in which the inventory out-flow constraint of Equation (12) is violated.
With respect to the “shift and merge” post-processing operation, the post-processing operations described thus far can produce a feasible baseline schedule for which the objective function is not explicitly optimized. To optimize the loss function directly, the “shift and merge” operation can be applied, which generally operates to combine production batches of the same material. More specifically, in the “shift and merge” operation, production batches for the same material may be merged together if the resulting production schedule has a lower total cost, and this can be repeated until a local optima is reached. Note that this problem may have many local optima and is sensitive to two orderings. The first ordering relates to the order of the materials for which the “shift and merge” operation is performed, and the second ordering relates to the order in which candidate batches to merge are selected. Additionally, this problem is NP-hard with a time complexity of m!πi=1m nb
In some embodiments, to search for the best production schedules across these two orderings, a beam search can be used to sample the search space. This may be equivalent to having a beam width w number of solutions competing with each other until shift and merge converges. An example implementation of such an algorithm, along with its pseudocode, is provided below.
To sufficiently explore the search space, a large width and a large sample rate may be used during a beam search, but this can increase computation time significantly. To alleviate this issue, in some embodiments, a multi-phase beam search may be utilized. First, a rough beam search with a large width and a small sample rate may be performed to obtain a partially-optimized schedule. Second, the partially-optimized schedule is used as the initial condition for a second beam search with a decreased beam width and a larger sample rate. This procedure may be repeated several times before a final sample rate of one is used to converge to a globally-optimal solution for that particular iteration. This multi-phase approach can significantly reduce the run time of the algorithm. An example implementation of such an algorithm, along with its pseudocode, is provided below.
Although each iteration of the shift and merge may be computationally cheap, realigning the schedules of auxiliary nodes at each step to ensure a fully-feasible schedule may be computationally expensive. To reduce the computation time, in some cases, the shift and merge may be applied without aligning the auxiliary nodes at each step. Although each step may result in an infeasible production schedule, it can be assumed that the majority of the material productions and schedule costs are driven by nodes belonging to production lines. As a result, the infeasible production schedules resulting from each iteration of the shift and merge may be good approximations of a true feasible production schedule. Auxiliary alignment may therefore be performed at the end of all shift and merge iterations to yield a final feasible and locally-optimal production schedule. An additional technique to improve performance is to allow the shift and merge to occur across downstream nodes that belong to separate production lines. Since it is possible for some materials to be produced by multiple downstream nodes, allowing the shift and merge operation to be performed across multiple production lines can reduce the number of transitions by letting each node specialize in a subset of materials.
Although
With respect to the “inject transition material” post-processing operation, the production of any transition materials during transition times can be reflected correctly in the production schedule. In some cases, this may occur as follows. Batches of transition materials can be injected into the production schedule during the appropriate transition times. Notice that this introduces excess production of the transition material. To handle this, production batches of the transition material (which are not the result of product transitions) can be removed from the production schedule, as long as doing so does not cause the inventory 306 to go negative. Removing a production batch from the production schedule results in the batches that were before and after the removed batch now being adjacent to one another, which may require the introduction of a changeover time and production of a transition material if applicable. Therefore, the process of adding the transition materials and removing excess batches can be repeated until no excess batches exist in the production schedule.
As shown in
An optimization problem associated with production of multiple products by the processing units in the facility is defined at step 1504. This may include, for example, the processing device 202 of the application server 106 generating an optimization problem having the form shown in Equations (29)-(30) above. Note that the application server 106 may also receive the optimization problem after formulation by another device or by one or more users. In general, the optimization problem may be identified in any suitable manner. The optimization problem is associated with a cost function, which may be used to capture various information about costs associated with the optimization problem (like production transition costs, inventory holding costs, and serviceability costs).
One or more terms are removed from the optimization problem to generate a relaxed optimization problem at step 1506. This may include, for example, the processing device 202 of the application server 106 removing one or more terms from the cost function associated with transition costs and/or removing one or more terms from the cost function associated with changeover times, where each transition cost and/or changeover time is associated with a switch from production of one product to production of another product. Note that the application server 106 may also receive the relaxed optimization problem with the one or more terms removed from another device or from one or more users. In general, the relaxed optimization problem may be identified in any suitable manner.
One or more solutions to the relaxed optimization problem are identified, where each solution represents a proposed production schedule for the facility, at step 1508. This may include, for example, the processing device 202 of the application server 106 performing constrained optimization of the relaxed optimization problem to identify one or more solutions to the relaxed optimization problem. This allows at least one approximate optimal solution for the full optimization problem to be obtained by solving the relaxed formulation of the optimization problem. Note that various approaches for performing constrained optimization are known in the art, and other approaches are sure to be developed in the future. Any suitable technique for performing constrained optimization of an optimization problem may be used here, such as techniques for performing nonlinear constrained optimization.
Post-processing of the one or more solutions is performed to identify a feasible production schedule for the processing units in the facility at step 1510. This may include, for example, the processing device 202 of the application server 106 performing one or more of the post-processing functions described above. In some embodiments, these post-processing functions may include one or more of the “chunk and merge” operation, the “resequence” operation, the “round to production unit” operation, the “inject time gap” operation, the “align auxiliary nodes to parent nodes” operation, the “align auxiliary nodes to inventory” operation, the “shift and merge” operation, and the “inject transition material” operation. Note that one, some, or all of these post-processing functions may be performed depending on the implementation.
The feasible production schedule can be stored, output, or used in some manner at step 1512. This may include, for example, the processing device 202 of the application server 106 outputting the feasible production schedule to one or more users (such as via a graphical user interface of one or more user devices 102a-102d) for approval, rejection, or modification. This may also or alternatively include the processing device 202 of the application server 106 using the feasible production schedule to control the equipment in the facility in order to implement the feasible production schedule, which may occur with or without human approval, oversight, or intervention. In general, the feasible production schedule may be used in any suitable manner, and all manners of use are within the scope of this disclosure.
Although
The following describes example embodiments of this disclosure that implement constrained optimization and post-processing heuristics for optimal production scheduling for process manufacturing. However, other embodiments may be used in accordance with the teachings of this disclosure.
In a first embodiment, a method includes obtaining a solution representing a proposed production schedule associated with multiple processing units in a facility, where the multiple processing units are capable of producing different products. The method also includes performing post-processing of the solution to identify a final production schedule for the processing units in the facility. The post-processing of the solution includes multiple operations each configured to modify the proposed production schedule so that the final production schedule is feasible given constraints associated with the processing units in the facility.
In a second embodiment, an apparatus includes at least one processing device configured to obtain a solution representing a proposed production schedule associated with multiple processing units in a facility, where the multiple processing units are capable of producing different products. The at least one processing device is also configured to perform post-processing of the solution to identify a final production schedule for the processing units in the facility. The post-processing of the solution includes multiple operations each configured to modify the proposed production schedule so that the final production schedule is feasible given constraints associated with the processing units in the facility.
In a third embodiment, a non-transitory computer readable medium stores computer readable program code that when executed causes one or more processors to obtain a solution representing a proposed production schedule associated with multiple processing units in a facility, where the multiple processing units are capable of producing different products. The medium also stores computer readable program code that when executed causes the one or more processors to perform post-processing of the solution to identify a final production schedule for the processing units in the facility. The post-processing of the solution includes multiple operations each configured to modify the proposed production schedule so that the final production schedule is feasible given constraints associated with the processing units in the facility.
Any single one or any suitable combination of the following features may be used with the first, second, or third embodiment. The post-processing of the solution may include at least one of: discretizing the proposed production schedule into chunks and merging batches of common products for each chunk, ordering production batches to minimize transition costs within each chunk, rounding production batches in the proposed production schedule to integer multiples of a production unit, and introducing downtimes and transition times into the proposed production schedule. The post-processing of the solution may include at least one of: ensuring that production batches on auxiliary processing units align to production batches of their parent processing units and ensuring that the production batches on the auxiliary processing units align to raw materials available in inventory. The post-processing of the solution may include searching for a locally-optimal schedule by merging of production batches in the proposed production schedule. The proposed production schedule may be infeasible based on one or more of the constraints associated with the processing units in the facility, and the post-processing of the solution may be performed to correct one or more infeasibilities of the proposed production schedule to ensure that the final production schedule is feasible given the constraints associated with the processing units in the facility. The proposed production schedule may be infeasible based on generation of the proposed production schedule using an optimization problem formulated without honoring one or more of the constraints, and the post-processing of the solution may be performed to cause the final production schedule to honor the one or more of the constraints not honored by the optimization problem. The one or more of the constraints not honored by the optimization problem may include at least one of: (i) for a production batch defined as a continuous duration producing a single material, a total quantity produced in the production batch is an integer multiple of a production unit; (ii) consecutive production batches of different materials have a non-negative downtime defined as a period of time where material is not being produced; and (iii) consecutive production batches of different materials have a non-negative transition time defined as a period of time where a transition material is produced. During the post-processing of the solution, a recursive doubly-linked list data structure may be used to represent batches of materials to be produced by the processing units.
In some embodiments, various functions described in this patent document are implemented or supported by a computer program that is formed from computer readable program code and that is embodied in a computer readable medium. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive (HDD), a compact disc (CD), a digital video disc (DVD), or any other type of memory. A “non-transitory” computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable storage device.
It may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The terms “application” and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer code (including source code, object code, or executable code). The term “communicate,” as well as derivatives thereof, encompasses both direct and indirect communication. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and/or. The phrase “associated with,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, have a relationship to or with, or the like. The phrases “at least one of” and “one or more of,” when used with a list of items, means that different combinations of one or more of the listed items may be used, and only one item in the list may be needed. For example, “at least one of: A, B, and C” includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C.
The description in the present disclosure should not be read as implying that any particular element, step, or function is an essential or critical element that must be included in the claim scope. The scope of patented subject matter is defined only by the allowed claims. Moreover, none of the claims invokes 35 U.S.C. § 112(f) with respect to any of the appended claims or claim elements unless the exact words “means for” or “step for” are explicitly used in the particular claim, followed by a participle phrase identifying a function. Use of terms such as (but not limited to) “mechanism,” “module,” “device,” “unit,” “component,” “element,” “member,” “apparatus,” “machine,” “system,” “processor,” or “controller” within a claim is understood and intended to refer to structures known to those skilled in the relevant art, as further modified or enhanced by the features of the claims themselves, and is not intended to invoke 35 U.S.C. § 112(f).
While this disclosure has described certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure, as defined by the following claims.
This application claims priority under 35 U.S.C. § 119(e) to U.S. Provisional Patent Application No. 63/145,949 filed on Feb. 4, 2021. This provisional application is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63145949 | Feb 2021 | US |