# Generalized Optimality Criteria Method for
## 2 Generalized Optimality Criteria Method
### Generalized Optimality Criteria Method
In the theory of Lagrange multiplier, it is well known that it is zero when the constraint is not active, while it is positive when the constraint is active. That means, it is unnecessary to consider the Lagrange multiplier for inactive constraints and only active constraints are considered in the optimization. However, from a practical point of view, it is difficult to turn on and turn off constraints during optimization. Therefore, in the implementation, all constraints and Lagrange multipliers are retained. Then a constraint is inactive, the corresponding Lagrange multiplier will converge to its lower bound, which reduces its effect on the optimality criteria. Once the Lagrange multipliers are updated, the next step of GOCM is to update design variables. When the optimization problem is composed of the compliance objective and volume fraction constraint, the scale factor \(D_{\epsilon}\) in Equation (6) is used to update design variables. This updating algorithm is based on the assumption that that the objective sensitivity is negative, while the constraint sensitivity is positive. Similar algorithms for design variable update were available in [PERSON] et al. (2016), which are summarized in Table 2. All the formulas are based on the scale factor defined as  
\[D_{\epsilon}=-\frac{\sum\limits_{i=0}^{NC}\lambda_{i}\frac{g_{ki}}{g_{\alpha_{ \epsilon}}}}{\frac{g_{\delta i}}{g_{\alpha_{\epsilon}}}} \tag{13}\]  
Making \(D_{\epsilon}=1\) is equivalent to the stationary condition of Karush-Kuhn-Tucker condition in Equation (10). The two acceleration parameters in Table 2 are suggested to be \(q_{0}=2.0\) and \(\beta=1.0\). In order to consider the general objective and constraints, we need to modify the scale factor in Equation (13). For a given design variable (i.e., element), the scale factor is calculated on the basis of the sign of sensitivities. The numerator has all terms with negative sensitivities, while the denominator has all terms with positive sensitivities. Accordingly, the scale factor is calculated as  
\[D_{\epsilon}=-\frac{\left\langle\frac{\partial f}{\partial x_{\epsilon}} \right\rangle_{-}+\sum\limits_{i=1}^{NC}\lambda_{i}\Big{\langle}\frac{ \partial g_{ki}}{g_{\alpha_{\epsilon}}}\Big{\rangle}_{-}}{\left\langle\frac{ \partial f}{\partial x_{\epsilon}}\right\rangle_{+}+\sum\limits_{i=1}^{NC} \lambda_{i}\Big{\langle}\frac{\partial g_{ki}}{g_{\alpha_{\epsilon}}}\Big{ }_{+}} \tag{14}\]  
where \(\left\langle a\right\rangle_{-}=\min(0,a)\) and \(\left\langle a\right\rangle_{+}=\max(0,a)\). When \(D_{\epsilon}=1\), this formula will also satisfy the stationary condition of the Lagrange function. The only difference is that the original formulation calculates the scale factor on the basis of the ratio between objective sensitivity and the weighted sum of constraint sensitivities, while the proposed method uses the ratio between the positive and negative sensitivities. In the case of compliance objective and volume fraction constraint, Equations (6), (13), and (14) yield the identical scale factor. In some special situations, the scale factor needs to be modified. If the numerator and/or the denominator are zero, the scale factor needs to be limited so that it stays close to one. Moreover, \(D_{\epsilon}\) is scaled such that the design change in each iteration is less than \(\Delta x_{\max}\). Once the scale factor is determined, Equation (7) is used to update the design variable. \begin{table}
\begin{tabular}{c c} \hline \hline
**Methods** & **Formulas** \\ \hline Linear form & \(x_{\epsilon}^{k+1}=x_{\epsilon}^{k}[1+(D_{\epsilon}-1)/(\beta^{k}q_{0})]\) \\ Exponential form & \(x_{\epsilon}^{k+1}=x_{\epsilon}^{k}D_{\epsilon}^{1/(\beta^{k}q_{0})}\) \\ Reciprocal form & \(x_{\epsilon}^{k+1}=x_{\epsilon}^{k}/[1-(D_{\epsilon}-1)/(\beta^{k}q_{0})]\) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Design variable update formulas.