A+ A A-

I. Mathematical Expression:

$$f(X)=\Bigg[\frac{\displaystyle 1}{\displaystyle n} \sum^n_{i=1}g_i(x_i)\Bigg]^{\beta}$$

where:

\(\bullet\) \(\beta\) is a non-linearity factor. It is considered equal to 1 in [1]

\(\bullet\) \(g_i(x_i)=\begin{cases}
-\frac{\displaystyle x_i}{\displaystyle \alpha_i}+\frac{\displaystyle 4}{\displaystyle 5} & \text{ if } 0 \leq x_i < \frac{\displaystyle 4}{\displaystyle 5}\alpha_i \\
\frac{\displaystyle 5 x_i}{\displaystyle \alpha_i}-4 & \text{ if } \frac{\displaystyle 4}{\displaystyle 5}\alpha_i \leq x_i < \alpha_i \\
\frac{\displaystyle 5\left(x_i-\alpha_i\right)}{\displaystyle \alpha_i-1}+1 & \text{ if } \alpha_i \leq x_i < \frac{\displaystyle 1+4\alpha_i}{\displaystyle 5}\\
\frac{\displaystyle x_i-1}{\displaystyle 1-\alpha_i}+\frac{\displaystyle 4}{\displaystyle 5} & \text{ otherwise }
\end{cases}\)

\(\bullet\) For each dimension, \(\alpha_i\) is randomly generated between \(0\) and \(1\), but not equal to any of them \(\rightarrow\) \(0 < \alpha_i < 1\)

\(\bullet\) \(0\leq x_i\leq 1\) , \(i=1,2,\cdots,n\)

\(\bullet\) \(f_{max}(X^*)=1\) with \(3^n-1\) local maximum

\(\bullet\) \(x^*_i=\alpha_i\)

\(\bullet\) To avoid infinite random search, there are two essential corrections on the expression described in [1]. Firstly, the lower and upper limits of \(\alpha_i\) should not equal to 0 and 1, respectively. Secondly; there are typoerrors on the cases (less and less or equal) that should be taken into account in order to avoid any runtime error [2].

 

II. Citation Policy:

If you publish material based on databases obtained from this repository, then, in your acknowledgments, please note the assistance you received by using this repository. This will help others to obtain the same data sets and replicate your experiments. We suggest the following pseudo-APA reference format for referring to this repository:

Ali R. Al-Roomi (2015). Unconstrained Single-Objective Benchmark Functions Repository [https://www.al-roomi.org/benchmarks/unconstrained]. Halifax, Nova Scotia, Canada: Dalhousie University, Electrical and Computer Engineering.

Here is a BiBTeX citation as well:

@MISC{Al-Roomi2015,
author = {Ali R. Al-Roomi},
title = {{Unconstrained Single-Objective Benchmark Functions Repository}},
year = {2015},
address = {Halifax, Nova Scotia, Canada},
institution = {Dalhousie University, Electrical and Computer Engineering},
url = {https://www.al-roomi.org/benchmarks/unconstrained}
}

 

III. 2&3D-Plots:

 

IV. Controllable 3D Model:

- In case you want to adjust the rendering mode, camera position, background color or/and 3D measurement tool, please check the following link

- In case you face any problem to run this model on your internet browser (it does not work on mobile phones), please check the following link

 

V. MATLAB M-File:

% Type-III Complex Deceptive Problem
% Range of initial points: 0 <= xj <= 1 , j=1,2,...,n
% Global maxima: xj=alphaj "with (3^n)-1 local maximum"
% f(X)=1
% Coded by: Ali R. Alroomi | Last Update: 28 July 2015 | www.al-roomi.org
  
clear
clc
warning off
 
alpha1=rand;
alpha2=rand;
while alpha1*alpha2==0 || alpha1==1 || alpha2==1
    if alpha1==0 || alpha1==1
        alpha1=rand;
    elseif alpha2==0 || alpha2==1
        alpha2=rand;
    end
end
beta=1;
 
x1min=0;
x1max=1;
x2min=0;
x2max=1;
R=500; % steps resolution
x1=x1min:(x1max-x1min)/R:x1max;
x2=x2min:(x2max-x2min)/R:x2max;

for j=1:length(x1)
   
    % For 1-dimensional plotting
    if x1(j) < (4/5)*alpha1
        g1=-x1(j)/alpha1+4/5;
    elseif x1(j) >= 4*alpha1/5 && x1(j) < alpha1
        g1=5*x1(j)/alpha1-4;
    elseif x1(j) >= alpha1 && x1(j) < (1+4*alpha1)/5
        g1=(5*(x1(j)-alpha1))/(alpha1-1)+1;
    elseif x1(j) >= (1+4*alpha1)/5 && x1(j) <= 1
        g1=(x1(j)-1)/(1-alpha1)+4/5;
    end
   
    f1(j)=g1^beta;
   
    % For 2-dimensional plotting
    for i=1:length(x2)
       
        if x2(i) < (4/5)*alpha2
            g2=-x2(i)/alpha2+4/5;
        elseif x2(i) >= 4*alpha2/5 && x2(i) < alpha2
            g2=5*x2(i)/alpha2-4;
        elseif x2(i) >= alpha2 && x2(i) < (1+4*alpha2)/5
            g2=(5*(x2(i)-alpha2))/(alpha2-1)+1;
        elseif x2(i) >= (1+4*alpha2)/5 && x2(i) <= 1
            g2=(x2(i)-1)/(1-alpha2)+4/5;
        end
       
        fn(i)=(0.5*(g1+g2))^beta;
   
    end
 
    fn_tot(j,:)=fn;
 
end
 
figure(1)
plot(x1,f1,'r','LineWidth',2);set(gca,'FontSize',12);
xlabel('x','FontName','Times','FontSize',20,'FontAngle','italic');
ylabel('f(x)','FontName','Times','FontSize',20,'FontAngle','italic');
title('2D View','FontName','Times','FontSize',24,'FontWeight','bold');
 
figure(2)
meshc(x1,x2,fn_tot);colorbar;set(gca,'FontSize',12);
xlabel('x_2','FontName','Times','FontSize',20,'FontAngle','italic');
set(get(gca,'xlabel'),'rotation',25,'VerticalAlignment','bottom');
ylabel('x_1','FontName','Times','FontSize',20,'FontAngle','italic');
set(get(gca,'ylabel'),'rotation',-25,'VerticalAlignment','bottom');
zlabel('f(X)','FontName','Times','FontSize',20,'FontAngle','italic');
title('3D View','FontName','Times','FontSize',24,'FontWeight','bold');
 
figure(3)
mesh(x1,x2,fn_tot);view(0,90);colorbar;set(gca,'FontSize',12);
xlabel('x_2','FontName','Times','FontSize',20,'FontAngle','italic');
ylabel('x_1','FontName','Times','FontSize',20,'FontAngle','italic');
zlabel('f(X)','FontName','Times','FontSize',20,'FontAngle','italic');
title('X-Y Plane View','FontName','Times','FontSize',24,'FontWeight','bold');
 
figure(4)
mesh(x1,x2,fn_tot);view(90,0);colorbar;set(gca,'FontSize',12);
xlabel('x_2','FontName','Times','FontSize',20,'FontAngle','italic');
ylabel('x_1','FontName','Times','FontSize',20,'FontAngle','italic');
zlabel('f(X)','FontName','Times','FontSize',20,'FontAngle','italic');
title('X-Z Plane View','FontName','Times','FontSize',24,'FontWeight','bold');
 
figure(5)
mesh(x1,x2,fn_tot);view(0,0);colorbar;set(gca,'FontSize',12);
xlabel('x_2','FontName','Times','FontSize',20,'FontAngle','italic');
ylabel('x_1','FontName','Times','FontSize',20,'FontAngle','italic');
zlabel('f(X)','FontName','Times','FontSize',20,'FontAngle','italic');
title('Y-Z Plane View','FontName','Times','FontSize',24,'FontWeight','bold');

Click here to download m-file

 

VI. References:

[1] Hideaki Suzuki, and Hidefumi Sawai, "Chemical Genetic Algorithms --- Coevolution between Codes and Code Translation," in Proceedings of the Eighth International Conference on Artificial Life (Artificial Life VIII), 2002, pp. 164-172. [Online]. Available: http://www.alife.org/alife8/proceedings/sub2029.pdf
[2] Ali R. Alroomi, "The Farm of Unconstrained Benchmark Functions," University of Bahrain, Electrical and Electronics Department, Bahrain, Oct. 2013. [Online]. Available: http://www.al-roomi.org/cv/publications