## 3 System Architecture of the DSS
### Model Management
#### 3.3.1 Selection of an Optimal Product Mix under the AHP-TOC Heuristic
[29], to distinguish the improvements and provide a structured telling in the section case illustration). Step A is devoted to the identification of the system's constraints. A further step, A03, is added to the original approach to enhance the identification of the problem environment, and whether it is a single or multi-bottleneck environment. After that, to create different demand conditions, an artificial variable (\(L\)) is added to the formula for utilized capacity (\(RC_{ij}\)). As a result, a relatively larger coefficient is given in the function to penalize the utilized capacities for a certain product. This specific sub-procedure is demonstrated as follows, where the \(k\) (identical to \(i\)) of different demand conditions are derived by boosting the demand for a certain product while maintaining the others at the same level within a loop through the products. If the multi-bottleneck procedure returns a true result (Algorithm 1), then the problem should be regarded as a multi-bottleneck environment. Otherwise, there is a single real  
Figure 3: AHP-TOC heuristic execution procedure. bottleneck in the production system. Step B involves exploiting the system's constraints. The procedures, from the determination of the decision matrix and the calculation of the priority vector of the resource and profit to the normalization of contribution margin, processing times, and the required time or maximum available time (steps B01 to B07), are the same as those given by [PERSON] et al. [29]. Step B08: Determine the decision matrix (\(f_{i}\)) by multiplying the matrices of the normalized processing times and the normalized required time or the maximum available times obtained, respectively, in Steps B05 and B07. Unlike the procedure of [PERSON] et al. [29], the reciprocal of the decision matrix (\(h_{i}\)) is considered as follows. \[ \begin{bmatrix}p_{11}&\cdots&p_{1m}\\ \vdots&\ddots&\vdots\\ p_{n1}&\cdots&p_{mm}\end{bmatrix} \times \begin{bmatrix}q_{1}\\ \cdot\\ \cdot\\ q_{m}\end{bmatrix} = \begin{bmatrix}f_{i}\\ \cdot\\ \cdot\\ f_{n}\end{bmatrix}  \tag{4}\]  
\[h_{i}=\frac{\frac{1}{f_{i}}}{\sum_{i=1}^{N}\frac{1}{f_{i}}},\;\;i=1\ldots N \tag{5}\]  
Step B09: Obtain a priority sequence (\(W_{i}\)) for the products by summing up the multiplication of the normalized dimensionless decision matrix (\(r_{i}\)) by the weighted vector of profit (Step B02) and the multiplication of the reciprocal of the decision matrix (\(h_{i}\)) by the weighted vector of resources (Step B02). Finally, if the type of problem environment is characterized as a multi-bottleneck, then, we proceed to Step B10-a. Otherwise, we move to Step B10-b. Step B10-a: Allocate products to the MPS according to the priority sequence from Step B09 until it schedules the largest feasible quantity without exceeding demand and resource capacity. When the capacity of any constraint resource is used up or if the remaining capacity is not enough to produce another unit of product, then, a feasible MPS is achieved. The stopping condition regarding the allocation to MPS refers to the point when the capacity of every \(CR\) is used up or when there are no products remaining to be allocated to the CRs. Finally, we proceed to Step B11. Step B10-b: Using the same rules given in Step B10-a, we allocate products to the initial MPS, according to the priority sequence from Step A02. If the priority sequences obtained in Steps A02 and B09 are identical, then, we deliver the optimal product mix. Otherwise, we proceed to Step B12. Step B11: Determine the new bottleneck. Then, by calculating the profit-per-unit constraint time of all the products on the new bottleneck, a new priority sequence is obtained. Finally, we compare the resulting priority sequence with the one already obtained in Steps A02 and B09. If these sequences are identical, then, allocate products to MPS accordingly and deliver the optimal product mix. Otherwise, proceed to Step B12. Step B12: Identify the candidate products for the loops of decrease (\(P\)) and increase (\(Q\)).