CEC Benchmark Functions

 

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

 

 

Prof. Suguthan website: http://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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值