• Nenhum resultado encontrado

Chapter 6

Deterministic Heuristic

Gradient-free Gradient-based

1-D Optimization N-D Optimization

Unconstrained Constrained Optimization Methods

Figure 6.1: Different categories of numerical optimization methods.

Programming or Sequential Quadratic Programming. On the other hand, heuristic methods make use of concepts found in nature to find the global optimal solution. This category includes methods such as Genetic Algorithms, Ant Colonies, Differential Evolution, Particle Swarm, etc.

Heuristic methods are generally more flexible than deterministic methods. However, the quality of the solution cannot be guaranteed, the computational cost increases and the probability of finding the global optimum decreases with increasing problem size. This is the reason why two methods are sometimes used together, with a deterministic method being used to refine the solution obtained by a heuristic method.

Gradient-based and and genetic algorithms are two of the most popular optimization methods because of their efficiency and robustness, respectively, and a brief description of these methods follows.

6.1.1 Gradient-Based Algorithms

Gradient-based (GB) algorithms are search methods that use the gradient of the objective function (also known as derivative or sensitivity) to find an optimal solution. They are some of the oldest optimization algorithms and some of the most widely used. They work by adjusting each decision variable, as the solution goes towards a lower objective function value, in a way proportional to the variation of the objective function. The dependence on the local values of the objective function means that the optimal function might converge to a local minimum. This type of algorithms works best on well-behaved systems where there is one clear optimum, and will work well in high-dimensional spaces, provided these do not have local minima. Usually, the increase of the number of parameters of the search space makes it harder to guarantee the non-existence of local minima, thus increasing the complexity of the optimization techniques. Some examples of GB algorithms are the Modified Feasible Direction (MDF), Sequential Linear Programming (SLP) or Sequential Quadratic Programming (SQP) (Nocedal, 1999). If the objective

Initialization

Selection

Crossover

Mutation

Insertion Stop Criteria?

New Generation

no

yes Finish

Figure 6.2: Genetic algorithm procedure.

and constraints functions are smooth and their gradients can be evaluated cheaply, the GB algorithms exhibit the best performance compared to all other methods.

6.1.2 Genetic Algorithms

Genetic algorithms (GA) (Goldberg, 1989; Mitchell, 1998) are heuristic search methods, which mimic Darwin’s theory of natural evolution. It is a robust strategy for aerodynamic design, with the ability to find the global optimum even when other algorithms fail to do so. The terminology of these algorithms is much like the one used in biology. Ageneis a design variable, anindividual is a candidate solution obtained from a set of design variables and apopulationis a group of individuals. The successive populations are referred asgenerations. The GA procedure is shown in Fig. 6.2. It starts by creating the initial population which will then be subjected to a series of operations, in order to generate the following generations. The operations consist in the following:

Selection: Selection of the best individuals (based on their objective function) to be subjected to crossover.

Crossover: Combination of genes of the selected individuals to generate children.

Mutation: Random change of the value of random genes of the children individuals, within the allowed range. It increases the variability of the population

Insertion: Children are inserted into the new population.

The optimization procedure will then terminate whenever the stopping criterion is met. It can either be a specified number of generations or any other specific criterion.

6.2 Framework Description

The optimization framework was developed using pyOpt, a Python-based package for formulating and solving nonlinear constrained optimization problems (Perez et al., 2012). It acts as an interface between the Python environment and many optimization algorithms. With pyOpt, solving an optimization problem is as simple as defining a Python function (the objective function) which receives as argument the design variables and outputs the objective function(s) and constrain(s) and passing it to the optimizer.

Optimization Framework

Python Objective function

2. Analysis 3. Results 1. Conversion

Legend

Conversion function

Design variables

Initial Geometry Temporary

Blade

Analysis Options

Aerodynamic Aerodynamic Results

Aeroacoustic Aeroacoustic Results

Constraints

Objective Function(s) pyOpt

interface

Optimization Options

Data Process

Figure 6.3: Optimization framework flowchart.

The diagram in Fig. 6.3 shows how the optimization framework is constructed and an example of an optimization script using the pyOpt module is presented in Appendix C.

The principal algorithm chosen for the optimizations was the NSGA-II (Deb et al., 2002), which is included in the pyOpt framework. It is a Non-dominated Sorting Genetic Algorithm (NSGA) that solves non-convex and non-smooth single and multi-objective optimization problems. This algorithm has recently been improved and used in the optimization of wind turbine blades by Wang et al. (2011).

A refinement using the Sequential Least-Square Quadratic Programming (SLSQP) algorithm (Kraft, 1988), for the cases where there is a single objective function was also implemented. By using as a starting point the best solution obtained by the previous optimization using GA, this algorithm should, in principle, reach a more optimal solution.

Convergence of the Optimization The stopping criteria of pyOpt’s implementation of the NSGA-II algorithm is the maximum number of generations. Increasing this value will increase the probability that

0 20 40 60 80 100

Documentos relacionados