Website in Japanese

The 3rd Evolutionary Computation Competition
The problem in this year is a wind turbine design optimization problem.

December 14 (Sat), 2019, 9:00-12:00, Minamiawaji, Hyogo, Japan
Organizer: The Japanese Society of Evolutionary Computation




Annoucement of competition result

Single-objective optimizaion category: Winner is Junichi Kushida (Hiroshima city University)
Multiobjective optimization category: Winner is Jun Noguchi (Ritsumeikan Univ.) and Tomohiro Harada (Tokyo Metropilitan Univ.)

Conratulations!
We also thank all participants.
See below for the results of the competition.

Introduction
Introduction of algorithms of participants
conceptual design optimization problem of the wind turbine
Summary of results
Analysis of results



Notices
- The competition results are uploaded. (2020/7/27)
- The post-processing software is modified because a solution with the constraint violation of 0 is judged as feasible solution. This change has no effect on the results because the all constraints are real-number functions. (2019/12/3)
- The reference point and normalization procedure for hyper-volume calculation are updated for the multiobjective optimization category.
The post-processing software is also modified with the updated reference point and normalization. (November 27, 2019)
- Description of the constraint condition is modified so that equal condition is excluded from the feasible region (November 27, 2019) - A minor bug in the C ++ code for post-processing is found and fixed.(November 6, 2019)
- A minor bug in the C ++ code for post-processing is found and fixed.(October 29, 2019)
- The C ++ code for post-processing is uploaded because the R script takes too much time to obtain the hypervolume(October 15, 2019)
- Q&A is added. (October 4, 2019)
- Numbers are assigned to the variable names in [Table 1] (October 4, 2019)
- Names of some constraints in Talbe 4 are modified (October 4, 2019)
- Q&A is added. (October 3, 2019)
- The sample data (sample.zip) was updated because it was incorrect (October 3, 2019)
- windturbine_SOP.py and windturbine_MOP.py are updated because there was a minor bug that did not affect the results (October 3, 2019)
- The description of constraints (Table 4) has been revised.(September 3, 2019)
- Evolutionary Computation Symposium 2019 competition page is open.(September 2, 2019)



Purpose of the competition
Again, in this year, we organize the optimization competition on a real-world engineering problem. This competition aims at promoting the applied research of optimization methods including evolutionary computation. We have two categories in the competition, i.e., single-objective design optimization category and multi-objective design optimization category. The winner of each category will be awarded by the Japanese Society of Evolutionary Computation.
The optimization problem of this year is the design optimization problem of a wind turbine for wind power generation, which is gaining worldwide attention as renewable energy. In order to increase the power generation and reduce the power generation costs, the size of wind turbine for wind power generation is getting larger year by year. For example, a 5MW large-scale wing power generation facility manufactured by Hitachi, Ltd. as part of Japanese government NEDO project has a rotor diameter of 126 m and a tower height of about 90 m. [Reference] On the other hand, the tip speed increases as the blade size increases, and new design issues such as noise are arising.
The problem of this competition has 32 real-number design variables. This problem is a constrained optimization problem with 22 constraints. In the multi-objective design optimization category, the number of objectives is five, i.e., this is a many-objective optimization problem that everyone has been waiting for!

Website of the first competition in 2017 (in Japanese)
Website of the second competition in 2018

Venue and access
Check the website of Evolutionary Computation Symposium 2019 for information about venue and access. The competition will be held in the morning of the first day (12/14) at the venue of the Evolutionary Computation Symposium 2019.

Schedule
Announcement of competition details and application start: Monday, September 2, 2019
Application deadline: Monday, November 18, 2019 (There is no extension of the deadline.)
Data submission deadline: Monday, December 2, 2019 (There is no extension of the deadline.)
Competition date: Saturday, December 14, 2019

How to apply
Participation fee is free. Apply via e-mail by Monday, November 18, 2019 with the following information.
Subject: Evolutionary Computation Symposium 2019 Competition Application
Body: Enter the applicant's name(s), affiliation, e-mail address, and whether the application is for single-objective or multi-objective category
If the applicant is a student, please include the name of the supervisor.
Send the application to ec2019-competition@flab.isas.jaxa.jp

Tentative program
9:00 - 9:05 Explanation of the purpose of the event by Oyama (Japan Aerospace Exploration Agency)
9:05 - 9:20 Explanation of the general idea of the wind turbine design optimization problem by TBD
9:20 -11:30 Presentation from applicants (5-10 minutes per case)
11:30 -12:00 Summary and discussion of results by Oyama (Japan Aerospace Exploration Agency)

Awards
The winners of each category (single-objective and multi-objective optimization) receive awards from the Japanese Society of Evolutionary Computation.

Data submission
Send the following data to ec2019-competition@flab.isas.jaxa.jp by Monday, December 2, 2019.
Subject: Evolutionary Computation Symposium 2019 Competition data (single-objective or multi-objective)



Benchmark problem

The benchmark problem of this year is a design optimization problem of a wind turbine for wind power generation.
[Reference]Objectives and Constraints for Wind Turbine Optimization
Table 1 presents the design variables and search space.

[Table 1] Design variables and search space

#Lower BoundDesign Variable NameUpper BoundDescription
11.0 [m]chord_sub[1]5.3 [m]Distribution of blade chord length in blade span direction[1]
21.0 [m]chord_sub[2]5.3 [m]Distribution of blade chord length in blade span direction[2]
31.0 [m]chord_sub[3]5.3 [m]Distribution of blade chord length in blade span direction[3]
41.0 [m]chord_sub[4]5.3 [m]Distribution of blade chord length in blade span direction[4]
50.1 [m]r_max_chord0.3 [m]Blade maximum chord length position
6-5 [deg]theta_sub[1]30 [deg]Distribution of blade mounting angle in blade span direction[1]
7-5 [deg]theta_sub[2]30 [deg]Distribution of blade mounting angle in blade span direction[2]
8-5 [deg]theta_sub[3]30 [deg]Distribution of blade mounting angle in blade span direction[3]
9-5 [deg]theta_sub[4]30 [deg]Distribution of blade mounting angle in blade span direction[4]
100.005 [m]sparT[1]0.2 [m]Distribution of spar-cap thickness in blade span direction[1]
110.005 [m]sparT[2]0.2 [m]Distribution of spar-cap thickness in blade span direction[2]
120.005 [m]sparT[3]0.2 [m]Distribution of spar-cap thickness in blade span direction[3]
130.005 [m]sparT[4]0.2 [m]Distribution of spar-cap thickness in blade span direction[4]
140.005 [m]sparT[5]0.2 [m]Distribution of spar-cap thickness in blade span direction[5]
150.005 [m]teT[1]0.2 [m]Distribution of trailing edge panel thickness in blade span direction[1]
160.005 [m]teT[2]0.2 [m]Distribution of trailing edge panel thickness in blade span direction[2]
170.005 [m]teT[3]0.2 [m]Distribution of trailing edge panel thickness in blade span direction[3]
180.005 [m]teT[4]0.2 [m]Distribution of trailing edge panel thickness in blade span direction[4]
190.005 [m]teT[5]0.2 [m]Distribution of trailing edge panel thickness in blade span direction[5]
20-6.3 [m]precurve_sub[1]0.0 [m]Distribution of blade precurve in blade span direction[1]
21-6.3 [m]precurve_sub[2]0.0 [m]Distribution of blade precurve in blade span direction[2]
22-6.3 [m]precurve_sub[3]0.0 [m]Distribution of blade precurve in blade span direction[3]
236.0tsr14.0Design tip speed ratio (ratio between rotational speed and wind speed)
246.0[rpm]maxOmega20.0[rpm]Maximum rotation speed
2550 [m]bladeLength80 [m]Blade length
2620 [m]z_param70 [m] Tower waist position
273.87 [m]tower_d[1]6.3 [m]Distribution of tower outer diameter in height direction[1]
283.87 [m]tower_d[2]6.3 [m]Distribution of tower outer diameter in height direction[2]
293.87 [m]tower_d[3]6.3 [m]Distribution of tower outer diameter in height direction[3]
300.005 [m]t_param[1]0.1 [m]Distribution of tower thickness in height direction[1]
310.005 [m]t_param[2]0.1 [m]Distribution of tower thickness in height direction[2]
320.005 [m]t_param[3]0.1 [m]Distribution of tower thickness in height direction[3]

For the single-objective design optimization, the design objective is to minimize the power generation cost.

[Table 2] Design objective (single-objective optimization category)
No. Objective function Description
1 Power generation cost ( = (manufacturing and construction cost + operation and maintenance cost) / power production amount) [$/kWh] [Minimization] Decreasing power generation cost contributes to lower electricity charge.

Multi-objective design optimization problems have five design objectives.

[Table 3] Design objective (multi-objective optimization category)
No.Objective function Description
1 Annual power production [kWh/(year*turbine)] [Maximization] Increasing the amount of power production will reduce the power production costs and increase profits of power generation companies.
2 Average annual cost (manufacturing and construction cost + operation and maintenance cost) [$/(year*turbine)] [Minimization] Decreasing costs will reduce power generation costs.
3 Tower base load [Nm] [Minimization] Decreasing the tower base load can reduce the construction cost of the foundation for offshore construction.
4 Blade tip speed [m/s] [Minimization] Decreasing blade tip speed will reduce aerodynamic noise.
5 Fatigue damage (considering both blades and towers) [logarithmic scale] [Minimization] Decreasing the fatigue damage level will extend the service life and reduce power generation costs.


The constraints are shown in Table 4.

[Table 4] Constraints
No.Constraint Value Description
1 Blade maximum deflection [m] < distance between blade and tower / (safety factor 1.485) [m] Prevents collision of the blade with tower due to blade deflection
2 The clearance between the blade and the ground [m] > 20 [m] Ensures safety and avoid turbulence near the surface
3Blade natural frequency [Hz] > Blade passing frequency * (safety ratio 1.1) [Hz] Avoids blade resonance
4Tower natural frequency [Hz] > Blade rotation frequency * (safety ratio 1.1) [Hz] Avoids tower resonance
5 Tower maximum stress during power generation [Pa] < 4.5e+08 / (safety ratio 1.485) [Pa] Prevents damage at maximum load during power generation
6 Tower maximum stress during high wind standby [Pa] < 4.5e+08 / (safety ratio 1.485) [Pa] Prevents damage at maximum load during high wind standby
7 Tower overall buckling judgment formula during power generation [-] < 1 (threshold) [-] Prevents damage due to overall buckling at maximum load during power generation
8 Tower overall buckling judgment formula during high wind standby [-] < 1 (threshold) [-] Prevents damage due to overall buckling at maximum load during high wind standby
9 Tower local buckling judgment formula during power generation [-] < 1 (threshold) [-] Prevents damage due to local buckling during power generation
10 Tower local buckling judgment formula during high wind standby [-] < 1 (threshold) [-] Prevents damage due to local buckling during high wind standby
11 Tower fatigue damage [-] < 1 (threshold) [-] Ensures tower life of 20 years or more
12Tower top diameter / Tower base diameter [-] > 0.4 (threshold) [-] Guarantees tower manufacturability
13 Tower diameter / Tower thickness [-] > 120 (threshold) [-] Guarantees tower weldability
14 Blade tip speed [m/s] < 80 [m/s] Limits wind noise
15 Blade spar strain [-] > Blade spar-cap panel buckling strain [-] Prevents damage of blade spar-cap panel due to buckling
16 Blade trailing edge strain [-] > Blade trailing edge buckling strain [-] Prevents damage of blade trailing-edge panel due to buckling
17 ln(Blade fatigue damage) [-] < ln(1) = 0.0 (threshold) [-] Ensures blade life of over 20 years
18 Blade spar-cap compression strain \ [-] > - (Breaking strain 0.01) / (safety ratio 1.755) [-] Prevents blade spar-cap panel compression failure
19 Blade spar-cap tensile strain [-] < (Breaking strain 0.01) / (safety ratio 1.755) [-] Prevents blade spar-cap panel tensile failure
20 Blade trailing-edge compression strain [-] > - (Breaking strain 0.0025) / (safety ratio 1.755) [-] Prevents compression failure of blade trailing-edge panel
21 Blade trailing-edge tensile strain [-] < (Breaking strain 0.0025) / (safety ratio 1.755) [-] Prevents tensile failure of blade trailing-edge panel
22 Power generation [kWh] > 0.0 [kWh] Constraint to avoid non-physical solutions



Conditions of the competition

(1) The objective function is evaluated using OpenMDAO developed by NASA and WISDEM developed by NREL. It takes about 3 seconds to evaluate one design candidate.
(2) The maximum number of evaluations is 10,000, so as to finish each optimization within a night. Since it takes about 3 seconds to evaluate one design candidate, it takes about 8 hours to complete one optimization case.
(3) Use general methods for initial population generation such as random number generation in the entire design space, or placing them based on the design of experiment.
(4) Evaluation criteria
- In the single-objective optimization category, the algorithm (team) that finds the smallest power generation cost (=objective function 2/ objective function 1 in the multi-objective optimization category) win the prize. It is not the minimum value of the solutions included in the final generation, but the value of the solution with the lowest power generation cost among all the solutions evaluated during the optimization process. If multiple algorithms (teams) find the same solution with the smallest power generation cost, the algorithm (team) who find the solution with smaller number of evaluations win the prize.
- In the multi-objective optimization category, the algorithm (team) that finds the highest hypervolume (hereinafter referred to as HV) value win the prize. The HV value is not of the non-dominated solutions in the final generation group, but those of the set made from all the solutions evaluated during the optimization process.
aere, because the evaluation module outputs (-1 x annual power production), all objective function value should be minimized in this optimization problem. (5) How to calclate HV (updated on November 27, 2019)
For hyper-volude calculation, the objective function values are normalized as
$f_{normalized} = \frac{f - f^{min}}{f^{max} - f^{min}}$.
$(f^{min}_1, f^{min}_2, f^{min}_3, f^{min}_4, f^{min}_5) = (-2.42e+07, 9.47e+05, 2.09e+07, 3.20e+01, -2.30e+00)$,
$(f^{max}_1, f^{max}_2, f^{max}_3, f^{max}_4, f^{max}_5) = (-1.96e+02, 2.35e+06, 1.89e+08, 8.00e+01, -2.50e-05)$.

The reference point for the HV value calculation is(1.5, 1.5, 1.5, 1.5, 1.5).
The solutions that do not dominate the updated reference point are NOT used for the hypervolume calculation.
See the following document for more detail.
How_to_calculate_HV.pdf

(6) Median value of twenty one trials with different random numbers for initial population generation or optimization algorithm is evaluated. For the single-objective optimization, evaluation bases on median value of the power generation cost. For the multi-objective optimization, evaluation bases on median value of hypervolume (HV).



How to run the evaluation module

The execution for both single-objective optimization and multi-objective optimization are the same.

1. Download and unzip the following files
 [installation_manual_english.pdf]Installation manual
 [dummies.zip] Dummy module
 [windturbine_SOP.py] Evaluation module for single-objective optimization
 [windturbine_MOP.py] Evaluation module for multi-objective optimization
 [sample.zip] Calculation result example
2. Install according to the installation manual
3. Place the evaluation module in any folder and run it with
python windturbine_sop.py (path where pop_vars_eval.txt exists)
or
python windturbine_mop.py (path where pop_vars_eval.txt exists)

4. Upon successful completion, pop_objs_eval.txt and pop_cons_eval.txt will be generated.

pop_vars_eval.txt
Design solution dataset read by the evaluation module. Each row represents one individual, and each column separated by tabs represents a design variable. The values are normalized by [0, 1].

pop_objs_eval.txt
Objective function dataset generated by the evaluation module. Each row represents one individual, and each column separated by tabs represents the objective function value. The order of the rows (individuals) is consistent with pop_vars_eval.txt. Each column from the left is
[Single-objective optimization] f1 = power generation cost
[Multi-objective optimization] f1 = -annual power generation,f2 = average annual cost,f3 = tower base load,f4 = blade tip speed,f5 = fatigue damage.
As for the multi-objective optimization, because f1 (annual power generation) is the value that should be maximized, the negative value is put in the evaluation module. Therefore, this evaluation module is made to be used as minimization problem for all the objective functions.

pop_cons_eval.txt
Constraint dataset generated by the evaluation module. Each row represents one individual, and each column separated by tabs represents a constraint condition. The order of the rows (individuals) is consistent with pop_vars_eval.txt. All constraints are described in the form g(x)>0. When g(x) is greater than zero, the constraint is satisfied.



Data to be submitted (single-objective optimization category)

(s1) Optimal solution value (median of 21 trials) (Follow the format s1 below)
(s2) Optimization history (median case of 21 trials) (Follow the format s2 below)
(s3) Optimal solution value (best value of 21 trials) (Follow the format s3 below)
(s4) Optimization history (best case of 21 trials) Follow the format s4 below)

[Format s1]
- The file format is csv file.
- The file name is s_opt_***.csv (*** is the group name written in single-byte alphabet).
- Enter the objective function value, design variable value, constraint value, etc. of the optimal solution according to the pareto.csv format in the benchmark problem calculation example.

[Format s2]
- The file format is csv file.
- The file name is s_his_***.csv (*** is the group name written in single-byte alphabet).
- For each column from the left, enter the number of generations, the number of evaluations, f1 ( = -power generation cost ) of the optimal solution in that generation, and the number of solutions that satisfy the constraints in that generation. For items that cannot be described, please enter -1. (for example, if you use random search, you don't have number of generation)

[Format s3]
- The file format is csv file.
- The file name is s_bst_***.csv (*** is the group name written in single-byte alphabet).
- Enter the objective function value, design variable values, constraint values, etc. of the optimal solution according to the pareto.csv format in the benchmark problem calculation example.

[Format s4]
- The file format is csv file.
- The file name is s_bst_his_***.csv (*** is the group name written in single-byte alphabet).
- For each column from the left, enter the number of generations, the number of evaluations, f1 ( = -power generation cost ) of the optimal solution in that generation, and the number of solutions that satisfy the constraints in that generation. For items that cannot be described, please enter -1.



Data to be submitted (multi-objective optimization category)

(m1) HV value (median of 21 trials)
(m2) Design variables, constraints, objective functions, etc. of all non-dominated solutions (exclude dominated solutions) used in calculating the HV value (median case of 21 trials) (Follow the format m2)
(m3) History of the optimization (median case of 21 trials) (Follow the format m3)
(m4) HV value (best value of 21 trials)
(m5) History of the optimization (best case of 21 trials) (Follow the format m5)

[Format m2]
- The file format is csv file.
- The file name is m_prt_***.csv (*** is the group name written in single-byte alphabet).
- Enter the objective function value, design variable value, constraint condition value, etc. of all non-dominated solutions used in calculating the HV value according to the format of pareto.csv in the benchmark problem calculation example. For items that cannot be described, enter -1. (for example, if you use random search, you don't have number of generation)

[Format m3]
- The file format is csv file.
- The file name is m_his_***.csv (*** is the group name written in single-byte alphabet).
- From the left, each column shows the number of generations, the number of evaluations, the HV value of that generation, the HV value of the set of all solutions evaluated up to that generation, and the number of executable solutions that satisfy all the constraints in each generation. For items that cannot be described, please enter -1.

[Format m5]
- The file format is csv file.
- The file name is m_bst_***.csv (*** is the group name written in single-byte alphabet).
- From the left, each column shows the number of generations, the number of evaluations, the HV value of that generation, the HV value of the set of all solutions evaluated up to that generation, and the number of executable solutions that satisfy all the constraints in each generation. For items that cannot be described, please enter -1.



Post-processing tool

Download the program (C ++ code) for calculating the hypervolume from the file output of the evaluation module.
Download post-processing program (updated on December 3, 2019)
* You may use a program developed by yourself as well.



Others

(1) The competition participants can give 5-10 minutes presentation at the competition venue. Explain - Explanation of the algorithm used (including devised points) - Result. (2) Note that we will compare the data submitted by you in the "Summary of Results". (3) The data submitted by you may be used for writing commentary articles at a later date. If there is a problem, please let us know before the competition.



Q&A

Question 1: When windturbine_SOP.py or windturbine_MOP.py is executed, the following warning appears. Is it OK?
UserWarning: rotor diameter may be modified in unexpected ways if tip precurve and precone are both nonzero
Answer: It is OK. Just ignore the warning message.

Question 2: Execution of lcoe_se_assembly.py does not output the same result as in the installation manual. Is it OK?
Answer: It is NOT OK. Execure "pip freeze" command and check if the versions of OpenMDAO and Python package match the versions specified in the installation manual. Then, check if hash value of the library of WISDEM and hash value specified by "git checkout" command match. If the versions and/or hash values do not match, install again according to the installation manual.

Question 3:Have you thought of prescribing the precision (number of decimal places) for dealing with variables, objectives and constraints? For practical engineering design it would make sense, and also for the optimization process it would prevent playing with extreme but meaningless precisions we often see on artificial test problems.
Answer: As suggested, we better prescribe the precision for the design variables, objectives, and constraints but we don't consider it in this competition.

Question 4: The normalization bounds for f5 are -2.20e+00 and 0.00e+00, but the values we get for this objective in the initial runs are positive. Is it OK?
Answer: f5 is logarithmic scale of fatigue damage. A solution with negative f5 value is feasible while a solution with positive f5 value is infeasible. The figure below is f5 values of a set of randomly generated solutions. As is observed, many of the solutions have positive f5 value but some of them have negative f5 value. If you evaluate more than 30 solutions and still you don't find any feasible solution, something may be wrong. In that case, send status_check.txt to ec2019-competition@flab.isas.jaxa.jp





Contact information

ec2019-competition@flab.isas.jaxa.jp