• No results found

2.3 Structural optimization

2.3.2 Main classes of structural optimization: size, shape and topology

2.3.3.2 Metaheuristic search algorithms

These type of algorithms appeared in the late 1980s and intended to imitate some biological and physical processes aiming to obtain the optimal solution for a structural design. They benefit from having a wide range of applicability by handling successfully discrete, continuous and mixed design variables, having strong parallelization capabil- ities and having an easy mathematical background. Moreover they only ask for the values of the objective function and constraints, so gradient evaluation is not required.

Otherwise they require a large number of simulations and offer lower accuracy when compared with gradient-based methods, and they do not ensure an optimal reach since there is no way to prove that the KKT conditions are fulfilled due to the lack of gradi- ent evaluation. In this section the most significant metaheuristic search methods are described.

Genetic Algorithm (GA)

GA are metaheuristic optimization methods that try to simulate the process of natural evolution through the Darwin’s natural selection principle (select the best, discard the rest). This principle is translated to mathematical terminology by creating an initial population of individuals that evolve and improve thanks to some genetic operators. In GA terminology, a solution vector of m design variables d∗ = [d1, ..., dm] is called an individual or chromosome, where each di is called a gen. In the first studies of GA (Holland [89] or Goldberg [75]) the genes were assumed to be binary numbers (0-1) but in later studies a broad diversity of gene types have been introduced, allowing to settle more varied problems.

In GA, first a collection of chromosomes (population) need to be randomly generated. This population evolves thanks to the GA operators that allow to find increasingly better individuals until convergence. This convergence is usually achieved when the population is dominated by a single solution. The operators used to generate new solutions (offsprings) from existing ones (parents) are crossover, mutation and selec- tion. Crossover is the most important operator in a GA, and is related to reproduction in biologic terms. In crossover, generally two chromosomes (parents) chosen from a population are combined in several ways (uniform, single-point, two-point...) to form a new chromosome (offspring). Typical examples of crossover are:

10101010 + 01010101 =⇒ 10000100 → Uniform 10101010 + 01010101 =⇒ 10100101 → Single-point 1010101 + 0101010 =⇒ 1001001 → Two-point

The parents are selected with preference towards fittness so the offspring is expected to inherit good gens. Mutation plays an important role in the GA as it introduces random changes in a gen of a parent creating more diversity among potential individuals. 10101010 =⇒ 10111010 → Mutation

Selection is an operator that chooses the best individuals for later applying crossover or moving directly to the next generation based on their superior fitness values (elitism). The most common selection operator is tournament selection, where several “tourna- ments” are run among a few individuals to rank their fitness values, being the winner of each tournament the one selected. GA are widely used in structural optimization (some examples are Rajeev and Krishnamoorthy [171], Belegundu et al [21], Erbatur et al [67] or Martí et al [140]). Figure 2.16 presents a flowchart of a generic GA.

Create initial random population

Evaluate Objective Function of individuals

Convergence? Create new individuals

through GA operators Mutation

Crossover

Selection

Final design yes

no

Figure 2.16: Flowchart of a generic Genetic Algorithm (GA).

Particle swarm optimization (PSO)

PSO tries to simulate the behaviour of groups of living beings, such as flocks of birds or swarm of bees, in the way that when threatened they have the tendency of scattering in different directions to take them out of danger and then come together again. This is applied to mathematical problems by generating a random population where each individual/particle is assigned properties of position and velocity. Afterwards each particle’s movement is influenced by its local best known position (pBest) and by the best known position in the whole search space (sBest). The latter positions are updated when other particles find better positions, making that the algorithm prompts the swarm towards the best solution.

PSO have shown effectiveness in the optimization of complex problems, such as com- posite structures involving high nonlinearities (Xu et al [217], Xu and You [216], Sha- bana and Elsawaf [182]). Figure 2.17 shows a flowchart of a generic PSO algorihtm.

Simulated annealing (SA)

SA is a probabilistic technique that aims to obtain the optimum of a function searching for the minimum energy configuration by simulating the physical process of slow cool- ing, characteristic in industrial processes such as the solidification of metals. Therefore the decrease in temperature of the physical phenomenon is related to the minimiza- tion of the objective function in the optimization problem. This technique, which was first developed in Kirkpatrick et al [116] and Cerny [31], has as main benefits that is appropiate for functions with a lot o local minima and is easy to implement, while the main drawbacks are that is very time-consuming and sometimes drives to misleading

Initialization of population

Evaluate Objective Function F (d)

F (d) <

F (pBest)? Update pBest

Keep pBest

F (d) <

F (sBest)? Update sBest

Keep sBest

Update position d

Update velocity v

Convergence? Next iteration

Final design d∗ yes no yes no yes no

Figure 2.17: Flowchart of a generic Particle Swarm Optimization (PSO) algorithm.

results (Ingber [100]). First it requires to generate a random solution d and calcu- late its objective function or “temperature” T (d). Afterwards a random neighboring solution d0 is generated (for example, switching two components of the solution vec- tor) and the temperature T (d0) is recalculated. If T (d0) < T (d) then the system is “cooling” and the algorithm moves to the new solution d0. Otherwise, if T (d0) > T (d) and hence the system is “heating”, the algorithm calculates the acceptance probability

P (∆T ) = P (T (d0) − T (d)) and compares it to a random number r as follows:

P (∆T ) > rand(0, 1) (2.26)

In this case, if P (∆T ) > rand(0, 1) the new solution is accepted and otherwise is rejected. This procedure is carried out a large number of times until no variations of the objective function are observed. Some practical examples of SA applied to complex engineering problems can be found at Duddeck [56] or Xie et al [213]. A flowchart of the SA algorithm is presented in Figure 2.18.

Initial design d Evaluate Objective Function T (d) Random neigh- boring design d0 Evaluate Objective Function T (d0) T (d0) < T (d)? P (∆T ) >

rand(0, 1)? Next iteration

Accept new solution Reject new solution Convergence? Final design yes yes no yes no no

2.3.4

Overview of structural optimization in different engineer-