CEC Benchmark Functions


 

Problem Definitions and Evaluation Criteria for the CEC 2005
Special Session on Real-Parameter Optimization

 

 

Prof. Suguthan websitehttp://www.ntu.edu.sg/home/EPNSugan/

 In the past two decades, different kinds of optimization algorithms have been designed and applied to solve real-parameter function optimization problems. Some of the popular approaches  are real-parameter EAs, evolution strategies (ES), differential evolution (DE), particle swarm optimization (PSO), evolutionary programming (EP), classical methods such as quasi-Newton method (QN), hybrid evolutionary-classical methods, other non-evolutionary methods such as simulated annealing (SA), tabu search (TS) and others. Under each category, there exist many different methods varying in their operators and working principles, such as correlated ES and CMA-ES. In most such studies, a subset of the standard test problems (Sphere, Schwefel's, Rosenbrock's, Rastrigin's, etc.) is considered. Although some comparisons are made in some research studies, often they are confusing and limited to the test problems used in the study. In some occasions, the test problem and chosen algorithm are complementary to each other and the same algorithm may not work in other problems that well. There is definitely a need of evaluating these methods in a more systematic manner by specifying a common termination criterion, size of problems, initialization scheme, linkages/rotation, etc. There is also a need to perform a scalability study demonstrating how the running time/evaluations increase with an increase in the problem size. We would also like to include some real world problems in our standard test suite with codes/executables. In this report, 25 benchmark functions are given and experiments are conducted on some real-parameter optimization algorithms. The codes in Matlab, C and Java for them could be found at http://www.ntu.edu.sg/home/EPNSugan/. The mathematical formulas and properties of these functions are described in Section 2. In Section 3, the evaluation criteria are given. Some notes are given in Section 4.

 

 

Unimodal Functions (5):
¾ F 1 : Shifted Sphere Function
¾ F 2 : Shifted Schwefel’s Problem 1.2
¾ F 3 : Shifted Rotated High Conditioned Elliptic Function
¾ F 4 : Shifted Schwefel’s Problem 1.2 with Noise in Fitness
¾ F 5 : Schwefel’s Problem 2.6 with Global Optimum on Bounds

 Multimodal Functions (20):
¾ Basic Functions (7):
— F 6 : Shifted Rosenbrock’s Function
— F 7 : Shifted Rotated Griewank’s Function without Bounds
— F 8 : Shifted Rotated Ackley’s Function with Global Optimum on Bounds
— F 9 : Shifted Rastrigin’s Function
— F 10 : Shifted Rotated Rastrigin’s Function
— F 11 : Shifted Rotated Weierstrass Function
— F 12 : Schwefel’s Problem 2.13
Expanded Functions (2)

F13 : Expanded Extended Griewank’s plus Rosenbrock’s Function (F8,F2) —

F14 : Shifted Rotated Expanded Scaffer’s F6


Hybrid Composition Functions (11):

— F 15 : Hybrid Composition Function
— F 16 : Rotated Hybrid Composition Function
— F 17 : Rotated Hybrid Composition Function with Noise in Fitness
— F 18 : Rotated Hybrid Composition Function
— F 19 : Rotated Hybrid Composition Function with a Narrow Basin for the Global  Optimum 
— F 20 : Rotated Hybrid Composition Function with the Global Optimum on the Bounds 
— F 21 : Rotated Hybrid Composition Function
— F 22 : Rotated Hybrid Composition Function with High Condition Number Matrix
— F 23 : Non-Continuous Rotated Hybrid Composition Function
— F 24 : Rotated Hybrid Composition Function
— F 25 : Rotated Hybrid Composition Function without Bounds

 

Search bounds for each function in c code:

 1 #ifdef CEC2005
 2     switch (funcid)//cec_2005 functions : F1----F25
 3     {
 4 
 5         //單峰函數
 6     case 1: accuracy = 1.0e-6; *initi_low = -100; *initi_high = 100; *search_low = -100; *search_high = 100; break;
 7     case 2: accuracy = 1.0e-6; *initi_low = -100; *initi_high = 100; *search_low = -100; *search_high = 100; break;
 8     case 3: accuracy = 1.0e-6; *initi_low = -100; *initi_high = 100; *search_low = -100; *search_high = 100; break;
 9     case 4:accuracy = 1.0e-6; *initi_low = -100; *initi_high = 100; *search_low = -100; *search_high = 100; break;
10     case 5:accuracy = 1.0e-6; *initi_low = -100; *initi_high = 100; *search_low = -100; *search_high = 100; break;
11 
12         //多峰函數
13     case 6:accuracy = 1.0e-6; *initi_low = -100; *initi_high = 100; *search_low = -100; *search_high = 100; break;
14     case 7:accuracy = 1.0e-6; *initi_low = 0; *initi_high = 600; *search_low=-1.0*RAND_MAX ; *search_high=RAND_MAX; break; //無邊界搜索
15     case 8:accuracy = 1.0e-6; *initi_low = -32; *initi_high = 32; *search_low = -32; *search_high = 32; break;
16     case 9:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
17     case 10:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
18     case 11:accuracy = 1.0e-6; *initi_low = -0.5; *initi_high = 0.5; *search_low = -0.5; *search_high = 0.5; break;
19     case 12:accuracy = 1.0e-6; *initi_low = -1.0*PI; *initi_high = 1.0*PI; *search_low = -1.0*PI; *search_high = 1.0*PI; break;
20 
21         //擴展函數
22     case 13:accuracy = 1.0e-6; *initi_low = -3; *initi_high = 1; *search_low = -3; *search_high = 1; break;
23     case 14:accuracy = 1.0e-6; *initi_low = -100; *initi_high = 100; *search_low = -100; *search_high = 100; break;
24 
25         //混合函數
26     case 15:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
27     case 16:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
28     case 17:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
29     case 18:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
30     case 19:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
31     case 20:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
32     case 21:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
33     case 22:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
34 
35     case 23:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
36     case 24:accuracy = 1.0e-6; *initi_low = -5; *initi_high = 5; *search_low = -5; *search_high = 5; break;
37     case 25:accuracy = 1.0e-6; *initi_low = 2; *initi_high = 5; *search_low = -1.0*RAND_MAX; *search_high = RAND_MAX; break; //無邊界搜索
38 
39     default:
40         accuracy = 1.0e-6; *initi_low = -100; *initi_high = 100; *search_low = -100; *search_high = 100;
41         break;
42     }
43 #endif // CEC2005

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM