## 2 Structural Topology Optimization and Heuristic Methods  
Performing topology optimization (TO) means looking for the distribution of material within a specified domain in order to minimize a chosen objective function and to satisfy imposed constraints. It is assumed that topology optimization started with [PERSON]'s paper,published in 1904. However, intensive studies started in the 1980s, and since then, TO has become the most popular engineering tool. The growing demands drive the development of techniques and methods of TO, which can be helpful and effectively used in engineering implementations and practical problems. Heuristic methods are becoming more popular and useful in engineering applications of topology optimization. Their simplicity of implementation and fast convergence, which does not require a large number of finite element analyses, make heuristics a useful basis for different approaches applied to the topology optimization of realistic engineering problems. Among very powerful heuristic methods are those based on physical and chemical phenomena or population intelligence. The latter are very effective, but their greatest weakness is the need to refer to computation of the objective many times, i.e., for each individual at each iteration step. This means the necessity of multiple finite element analyses of designed structures, which may be very time consuming for coarse mesh. Solving this problem efficiently is an important task for designers. Nevertheless, heuristic techniques are widely discussed and continuously applied in engineering topology optimization. As an example, they may serve topology optimization with the use of an ant colony approach [8] or a genetic algorithm [9], simulated annealing [10], or binary particle swarm optimization [11]. Less popular examples may serve a meta-heuristic using probabilistic learning [12], a heuristic algorithm mimicking a self-evolution of a structure [13], the big bang-big Crunch algorithm [14], and the recently published hunter-prey optimization algorithm [15]. As already mentioned in the introduction, an approach based on the concept of Cellular Automata (CA) is applied in this paper. Cellular Automata mimic the behavior of complex systems in a relatively easy way. Hence, a sequence of simple decision making rules is implemented. These rules control the performance of a considered system. The engineering implementation requires the decomposition of the considered domain into a lattice of cells which usually form a uniform lattice. The examples of plane and spatial neighborhoods for regular cells are presented in Figures 1 and 2, respectively:  
Each cell, together with cells it is connected to, forms a neighborhood. The cells carry only local information. It is assumed that the interaction between cells is limited to their neighborhood. Local homogenous rules govern the evolution of cells state. The rules are applied simultaneously to each cell, and they are identical for all neighborhoods. The physical quantities are also updated repetitively and as a result, the process covers the global behavior of the system. Since the late 1940s when [PERSON] and [PERSON] proposed  
Figure 1: Neighborhoods for plane problems: (**a**) empty; (**b**) von Neumann; (**c**) Moore; (**d**) MvonN; (**e**) extended Moore. Figure 2: The von Neumann (**left**) and the Moore (**right**) neighborhoods for spatial problems. the concept of Cellular Automata, this idea has been found interesting by researchers representing various research fields. Cellular Automata have proved to be an effective tool in engineering optimization for both size optimization (e.g., [16; 17]) and topology optimization, as started by [PERSON] et al. [18].