*3.4. Genetic Algorithms*

Genetic algorithms are applicable to many optimization problems. An algorithm is a kind of heuristics that searches the space for alternative problem solutions to find the best solutions. By definition, the pattern of genetic algorithms resembles the phenomenon of biological evolution. Nishikawa et al. [65] designed an algorithm based on genetic programming which created an image filter for cracks detection on the surface of cement composites. The developed algorithm was an improved version of the filtering technique proposed by Aoki and Nagao [66], who suggested that the technique developed by them could be used to solve many engineering problems. The algorithm proposed by Nishikawa et al. [65] presented robust performance for removing of noises from the image and for cracks detection. In his next work Nishikawa et al. [67] expanded the capabilities of the previously developed genetic algorithm to measure the width of crack opening and determine the spatial orientation of the cracks on the analyzed concrete surface. The crack opening width measured by means of the modified algorithm was in high agreement with the width measured manually, which confirmed the possibility of practical application of the developed method for health monitoring of concrete structures. Genetic algorithms were also used in the detection of cracks on road surfaces, where the input material was a monochromatic surface image [68]. An example of using the genetic algorithm is shown in Figure 6.

**Figure 6.** Extraction of cracks on a concrete surface using the genetic algorithm: (**a**) original image; (**b**) after processing; based on [69].
