无约束连续函数优化的人工蚁群算法通用matlab源

无约束连续函数优化的人工蚁群算法通用matlab源

ID:34897553

大小:27.00 KB

页数:4页

时间:2019-03-13

无约束连续函数优化的人工蚁群算法通用matlab源_第1页
无约束连续函数优化的人工蚁群算法通用matlab源_第2页
无约束连续函数优化的人工蚁群算法通用matlab源_第3页
无约束连续函数优化的人工蚁群算法通用matlab源_第4页
资源描述:

《无约束连续函数优化的人工蚁群算法通用matlab源》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、无约束连续函数优化的人工蚁群算法通用MATLAB源题目:无约束连续函数优化的人工蚁群算法通用MATLAB源码此源码是对人工蚁群算法的一种实现,用于无约束连续函数的优化求解,对于含有约束的情况,可以先使用罚函数等方法,把问题处理成无约束的模型,再使用本源码进行求解。function[BESTX,BESTY,ALLX,ALLY]=ACOUCP(K,N,Rho,Q,Lambda,LB,UB)%%AntColonyOptimizationforUnconstrainedContinuousProblem%%ACOUCP.m%%无约束连续函数的蚁群优化算法%%此函数实现蚁群算法

2、,用于求解无约束连续函数最小化问题%%对于最大化问题,请先将其加负号转化为最小化问题%%输入参数列表%K       迭代次数%N       蚁群规模%Rho     信息素蒸发系数,取值0~1之间,推荐取值0.7~0.95%Q       信息素增加强度,大于0,推荐取值1左右%Lambda  蚂蚁爬行速度,取值0~1之间,推荐取值0.1~0.5%LB      决策变量的下界,M×1的向量%UB      决策变量的上界,M×1的向量%%输出参数列表%BESTX   K×1细胞结构,每一个元素是M×1向量,记录每一代的最优蚂蚁%BESTY   K×1矩阵,记录每

3、一代的最优蚂蚁的评价函数值%ALLX    K×1细胞结构,每一个元素是M×N矩阵,记录每一代蚂蚁的位置%ALLY    K×N矩阵,记录每一代蚂蚁的评价函数值%%测试函数设置%测试函数用单独的子函数编写好,在子函数FIT.m中修改要调用的测试函数名即可%注意:决策变量的下界LB和上界UB,要与测试函数保持一致%%参考设置%[BESTX,BESTY,ALLX,ALLY]=ACOUCP(50,30,0.95,1,0.5,LB,UB)%%第一步:初始化M=length(LB);%决策变量的个数%蚁群位置初始化X=zeros(M,N);fori=1:M   x=unifrn

4、d(LB(i),UB(i),1,N);   X(i,:)=x;end%输出变量初始化ALLX=cell(K,1);%细胞结构,每一个元素是M×N矩阵,记录每一代的个体ALLY=zeros(K,N);%K×N矩阵,记录每一代评价函数值BESTX=cell(K,1);%细胞结构,每一个元素是M×1向量,记录每一代的最优个体BESTY=zeros(K,1);%K×1矩阵,记录每一代的最优个体的评价函数值k=1;%迭代计数器初始化Tau=ones(1,N);%信息素初始化Y=zeros(1,N);%适应值初始化%%第二步:迭代过程whilek<=K   YY=zeros(1,

5、N);   forn=1:N       x=X(:,n);       YY(n)=FIT(x);   end   maxYY=max(YY);   temppos=find(YY==maxYY);   POS=temppos(1);   %蚂蚁随机探路   forn=1:N       ifn~=POS           x=X(:,n);           Fx=FIT(x);           mx=GaussMutation(x,LB,UB);           ifFmx

6、    Y(n)=Fmx;           elseifrand>1-(1/(sqrt(k)))               X(:,n)=mx;               Y(n)=Fmx;           else               X(:,n)=x;               Y(n)=Fx;           end       end   end   forn=1:N       ifn~=POS           x=X(:,n);           Fx=FIT(x);           mx=GaussMutation(x

7、,LB,UB);           Fmx=FIT(mx);           ifFmx1-(1/(sqrt(k)))               X(:,n)=mx;               Y(n)=Fmx;           else               X(:,n)=x;               Y(n)=Fx;           end       end   end   %朝信息素最大的地方移动   forn=1:N

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。