% clear; clc; close all;
% trial function test
% %% example_1:
% F=@(X)exp((-2*(X-0.1)/0.8*log10(2)).^2).*sin(5*pi*X).^6;
% XY=[0,1]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
% %% example_2:
% F=@(X)X+10*sin(5*X)+7*cos(4*X);
% XY=[0,9]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
% %% example_3:
% F=@(X)10+sin(1./X)./((X-0.16).^2+0.1);
% XY=[-0.5,0.5]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
% %% example_4:
% F=@(X)X(:,1).*sin(4*pi*X(:,1))-X(:,2).*sin(4*pi*X(:,2)+pi+1);
% XY=[-1,2,-1,2]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
% %% example_5:
% F=@(X)cos(2*pi*X(:,1)).*cos(2*pi*X(:,2)).*exp(-(X(:,1).^2+X(:,2).^2)/10);
% XY=[-1,1,-1,1]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
% %% example_6:
% F=@(X)100*(X(:,1).^2-X(:,2)).^2+(1-X(:,1)).^2;
% XY=[-2.048,2.048,-2.048,2.048]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
% %% example_7:
% F=@(X)(3./(0.05+X(:,1).^2+X(:,2).^2)).^2+(X(:,1).^2+X(:,2).^2).^2;
% XY=[-5.12,5.12,-5.12,5.12]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
% %% example_8:
% F=@(X)sin(X(:,1))./X(:,1).*sin(X(:,2))./X(:,2);
% XY=[-10,10,-10,10]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
%% example_9:
F=@(X)20+X(:,1).^2-10*cos(2*pi*X(:,1))+X(:,2).^2-10*cos(2*pi*X(:,2));
XY=[-5.12,5.12,-5.12,5.12]; %自变量取值范围
Ant=300; %蚂蚁数量
Times=200; %蚂蚁移动次数
Rou=0.9; %信息素挥发系数
P0=0.2; %转移概率常数
[minValue,minX]=ant_fun_min(F,XY,Ant,Times,Rou,P0);
% %% example_10:
% F=@(X)1/4000*(X(:,1).^2+X(:,2).^2)-cos(X(:,1)).*cos(X(:,2)/sqrt(2))+1;
% XY=[-10,10,-10,10]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [minValue,minX]=ant_fun_min(F,XY,Ant,Times,Rou,P0);
% %% example_11:
% F1=@(X)0;
% F2=@(X)0;
% for n=1:5
% F1=@(X)F1(X)+n*cos((n+1)*X(:,1)+n);
% F2=@(X)F2(X)+n*cos((n+1)*X(:,1)+n);
% end
% F=@(X)-F1(X(:,1)).*F2(X(:,2));
% XY=[-10,10,-10,10]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [minValue,minX]=ant_fun_max(F,XY,Ant,Times,Rou,P0);
% %% example_12:
% F=@(X)0.5+(sin(sqrt(X(:,1).^2+X(:,2).^2))-0.5)./(1+0.001*(X(:,1).^2+X(:,2).^2)).^2;
% XY=[-10,10,-10,10]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [minValue,minX]=ant_fun_min(F,XY,Ant,Times,Rou,P0);
% %% example_13:
% F=@(X)(X(:,1).^2+X(:,2)-11).^2+(X(:,1)+X(:,2).^2-7).^2;
% f=@(X)[4.84-(X(:,1)-0.05).^2-(X(:,2)-2.5).^2,...
% X(:,1).^2+(X(:,2)-2.5).^2-4.84];
% XY=[0,6,0,6]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_con_min(F,f,XY,Ant,Times,Rou,P0);
% %% example_14:
% F=@(X)(X(:,1)-2).^2+(X(:,2)-1).^2;
% f=@(X)[X(:,1)-2*X(:,2)+1,...
% -X(:,1)+2*X(:,2)-1,...
% -X(:,1).^2/4-X(:,2).^2+1];
% XY=[0,10,0,10]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_con_min(F,f,XY,Ant,Times,Rou,P0);
% %% example_15:
% F=@(X)100*(X(:,2)-X(:,1).^2).^2+(1-X(:,1)).^2;
% f=@(X)[X(:,1)+X(:,2).^2,X(:,1).^2+X(:,2)];
% XY=[-0.5,0.5,-10,1]; %自变量取值范围
% Ant=20; %蚂蚁数量
% Times=100; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_con_min(F,f,XY,Ant,Times,Rou,P0);
% %% example_16:
% F=@(X)X(:,1).^2+X(:,2);
% feq=@(X)X(:,1).^2+X(:,2).^2-9;
% f=@(X)[-X(:,1)-X(:,2)+1,...
% -X(:,1)-X(:,2).^2+1];
% XY=[-10,10,-10,10]; %自变量取值范围
% Ant=300; %蚂蚁数量
% Times=200; %蚂蚁移动次数
% Rou=0.9; %信息素挥发系数
% P0=0.2; %转移概率常数
% [maxValue,maxX]=ant_fun_eqcon_max(F,feq,f,XY,Ant,Times,Rou,P0);