# The MINLP Approach to Topology, Shape and Discrete Sizing Optimization of Trusses
## 3 Development of the MINLP Model Formulation for Truss Superstructures
### The MINLP Model Formulation for Truss Superstructures
#### 3.2.5 Logical Constraints  
The purpose of the logical constraints (Equations (18)-(24)) is defining different discrete decisions related to reducing the set of topology alternatives, defining the interconnections between structural elements, establishing the bounds on continuous variables for alternative elements and linking the continuous sizing variables with discrete/standard values. It should be noted that all the logical constraints are expressed by the use of binary variables. 1. Inter-connection logical constraints. Integer equality/inequality constraints, see Equation, (18), are proposed to provide the kinematical stability of the structure, to prevent the overlapping of elements, etc. They are provided by the defining of simple relations between the corresponding topological binary variables. The inter-connection constraints can be divided into bar-bar constraints and joint-bar constraints. Some general examples of bar-bar constraints are: \(\bullet\) bar \(i\)\(\rightarrow\)\(j\) can be selected only if bar \(i^{\prime}\)\(\rightarrow\)\(j^{\prime}\) is also selected: \(y_{i,j}^{\text{top}}-y_{i^{\prime},j^{\prime}}^{\text{top}}<0\); \(\bullet\) if bar \(i\)\(\rightarrow\)\(j\) is selected, bar  
\(\bullet\) bar \(i{\rightarrow}j\) can be selected only if both of its end joints (\(i\) and \(j\)) are selected: \(2\cdot y_{i,j}^{\text{top}}\leq y_{i,i}^{\text{top}}+y_{j,j}^{\text{top}}\). 2. Bound logical constraints. Equations (19) and (20) are proposed to define the bounds of individual sizing variables \(d_{ij}\) and enforce these variables to zero values if their associated bar does not exist (the associated topological binary variable \(y_{i,j}^{\text{top}}=0\)). Otherwise, the variables are subjected to the lower bounds \(\text{d}_{i,j}^{\text{ex,LO}}\) and to the upper bounds \(\text{d}_{i,j}^{\text{UP}}\) when the alternative bar exists (\(y_{i,j}^{\text{top}}=1\)). It should be noted that the values of \(\text{d}_{i,j}^{\text{ex,LO}}\) are strictly larger than zero and should be distinguished from the actual lower bounds \(\text{d}_{i,j}^{\text{LO}}\), which must be zero in the case when the associated bars disappear. In this way, the cross-sectional areas of inactive bars are zero, and such bars do not contribute to the stiffness matrix of the structure and the objective function. 3. Logical relations for common variables. Although a truss is usually fully exploited when each bar has a different cross-section, it is nevertheless (e.g., for construction reasons) advantageous for some groups of bars to have equal cross-sections. Equations (21) and (22) assure that a cross-section dimension \(d_{ij}\) of each bar \(i{\rightarrow}j\), which belongs to group \(g\), \(g{\in}G\), takes the value \(d_{g}^{\text{com}}\) when the bar is selected (\(y_{i,j}^{\text{top}}=1\)). Otherwise, when \(y_{i,j}^{\text{top}}=0\), the design variables take zero values due to Equations (19) and (20), while Equations (21) and (22) become redundant. The linkage of bars to certain groups is defined through the coefficients \(gel_{g,i,j}\), which take the value 1 if bar \(i{\rightarrow}j\) belongs to group \(g\); otherwise, they are set to value 0. 4. Logical relations for discrete/standard dimensions. The linear equality constraints, Equations (23) and (24), assure that when an element exists, the cross-section dimension \(d_{i,j}\) takes one of the defined alternative discrete/standard dimension values. For each bar \(i{\rightarrow}j\), a set of \(l\), \(l{\in}L\), alternative discrete dimension values \(q_{i,j,l}\) are defined, and to each \(q_{i,j,1}\), an extra binary variable \(y_{i,j,l}^{\text{st}}\) is assigned. The dimension \(d_{i,j}\) is then defined as a scalar product between a vector of the alternative discrete dimension values \(\mathbf{q}_{i,j,l}=\{q_{i,j,1},q_{i,j,2},\,\ldots\,\,q_{i,j,l}\}\) and the associated vector of binary variables \(\mathbf{y}_{i,j,l}^{\text{st}}=\left\{y_{i,j,1}^{\text{st}},y_{i,j,2}^{\text{st}}, \ldots,y_{i,j,l}^{\text{st}}\right\}\); see Equation (23).