# Cellular Automata Approach to Topology Optimization of Graded Multi-Material Structures
## 4 Cellular Automata Approach  
During the last forty years of research on topology optimization, the trend of seeking new, efficient, easy-to-implement algorithms has been noticeable. Hence, the computationally demanding gradient-based methods have been more often replaced by heuristics, which provided simple and efficient algorithms for optimal design, e.g., [49; 50]. Heuristics are strategies derived based on experience or inspired by the observation of nature. Among many techniques based on heuristic concepts, there are Cellular Automata. Cellular Automata mimic the behavior of complex systems in a simple way by analogy to the biological tissues. Like in biology, while performing topology optimization, the design domain is decomposed into a lattice of discrete cells, which in engineering implementations, is usually equivalent to finite element mesh used in structural analysis. The local information gathered within each cell neighborhood is the basis for establishing local rules which govern the behavior of the system. The identical rules are applied to all cells simultaneously. Cells by interactions with their neighbors replace a complex problem with a sequence of simple decision making. The concept of a CA-based algorithm as the topology generator is under constant development and many extensions and modifications have been already implemented. Based on the results obtained and the discussion conducted in the former authors' papers, e.g., [35; 36; 44; 51; 52], one can point out some advantages of using such an algorithm. The Cellular Automata-based topology generator is versatile, easy to implement, and ready to be integrated with professional FEM-based structural analysis software. The algorithm does not require additional density filtering, the so-called gray elements are eliminated. It is because the update rules that govern algorithm performance are based on the information exchanged within cells forming this neighborhood, which can be compared to the filtering technique based on averaging sensitivities calculated for elements surrounding the central one. Moreover, in favor of the CA approach the neighborhood remains the same independent of the mesh size, whereas, in the case of the filtering technique, the neighborhood size has to be selected depending on the mesh size. It is also worth pointing out that the CA approach can be easily adapted to problems with irregular meshes. which has been also illustrated in [51]. In this paper, the extension of the algorithm by adding the self-adaptive update rule is proposed. While performing the optimization process, the local rules are responsible for updating cell states represented by design variables. The Jacobi update scheme has been utilized, meaning that updating is based on the states of the neighboring cells determined in the previous iteration, see Equation (12):  
\[d_{n}^{new}=d_{n}+\Delta d_{n} \tag{12}\]  
The design variable \(d_{n}\) is the relative density of the material, while \(\Delta d_{n}\) stands for its correction introduced in each iteration. While building the updating scheme its flexibility and versatility are very important since the appropriate selection of \(\Delta d_{n}\) value is crucial for the effectiveness of the topology generation process. In this paper, the extended version of the rule proposed and discussed in detail in the paper [52] is utilized. First, the structural analysis is performed, and based on the results, the values of local compliances for all cells/elements are calculated. The compliances of \(N\) cells are sorted in ascending order and those having the lowest and the highest values are identified which is represented by the number \(N_{1}\) of cells with the lowest and the number \(N\)-\(N_{2}\) of cells with the highest values. To those cells, the constant values of \(F(n)=-C\) if \(n<N_{1}\) and \(F(n)=C\) if \(n>N_{2}\) are assigned, where \(n\) is a cell index and \(C\) is a constant coefficient usually defined as 1.