- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
溷合粒子群算法基于模拟退火的算法.docx
混合粒子群算法:基于模拟退火的算法
算法原理
模拟退火算法在搜索过程中具有概率突跳的能力,能够有效地避免搜索过程中陷入局部极小解。模拟退火算法在退火过程中不但接受好的解,而且还以一定的概率接受差得解,同时这种概率受到温度参数的控制,其大小随温度的下降而减小。
算法步骤
随机初始化种群中各微粒的位置和速度;
评价每个微粒的适应度,将当前各微子的位置和适应值存储在各微子的中,将所有的中适应最优个体的位置和适应值存储在中;
确定初始温度;
根据下式确定当前温度下各的适配值:
采用轮盘赌策略从所有中确定全局最优的某个替代值,然后根据下式更新各微粒的速度和位置:
计算各微粒新的目标值,更新各微粒的值及群体的值;
进行退温操作;
若满足停止条件(通常为预设的运算精度或迭代次数),搜索停止,输出结果,否知返回(4)继续搜索;
初始温度和退温温度对算法有一定的影响,一般采用如下的初温和退温方式:
算法MATLAB实现
在MATLAB中编程实现的基于杂交的粒子群算法优化函数为:。
功能:用基于模拟退火的粒子群算法求解无约束优化问题。
调用格式:
其中,:待优化的目标函数;
:粒子数目;
:学习因子1;
:学习因子2;
:退火常数;
:最大迭代次数;
:自变量的个数;
:目标函数取最小值时的自变量值;
:目标函数的最小值。
基于模拟退火的粒子群算法的MATLAB代码如下:
function [xm,fv]=SimuAPSO(fitness,N,c1,c2,lamda,M,D)
% fitness:待优化的目标函数;
% N:粒子数目;
% c1:学习因子1;
% c2:学习因子2;
% lamda:退火常数;
% M:最大迭代次数;
% D:自变量的个数;
% xm:目标函数取最小值时的自变量值;
% fv:目标函数的最小值。
format long;
for i=1:N
for j=1:D
x(i,j)=randn; %随机初始化位置
v(i,j)=randn; %随机初始化速度
end
end
for i=1:N
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
pg=x(N,:); %pg为全局最优
for i=1:(N-1)
if fitness(x(i,:))fitness(pg)
pg=x(i,:);
end
end
T=fitness(pg)/log(5); %初始温度
for t=1:M
groupFit=fitness(pg);
for i=1:N %当前温度下各个pi的适应值
Tfit(i)=exp(-(p(i)-groupFit)/T);
end
SumTfit=sum(Tfit);
Tfit=Tfit/SumTfit;
pBet=rand();
for i=1:N %用轮盘赌策略确定全局最优的某个替代值
ComFit(i)=sum(Tfit(1:i));
if pBet=ComFit(i)
pg_plus=x(i,:);
break;
end
end
C=c1+c2;
ksi=2/abs(2-C-sqrt(C^2-4*C)); %速度压缩因子
for i=1:N
v(i,:)=ksi*(v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg_plus-x(i,:)));
x(i,:)=x(i,:)+v(i,:);
if fitness(x(i,:))p(i)
p(i)=fitness(x(i,:));
y(i,:)=x(i,:);
end
if p(i)fitness(pg)
pg=y(i,:);
end
end
T=T*lamda;
end
xm=pg;
fv=fitness(pg);
例
基于模拟退火的粒子群算法应用实例。求下面函数的最小值
取粒子数目为40,学习因子都取2.05,迭代步数取10000,退火常数取为0.5。
解:
首先建立目标函数文件:
function F=fitness(x)
F=0;
for i=1:5
F=F+1/(i+(x(i)-1)^2);
您可能关注的文档
最近下载
- 2026年山西老区职业技术学院单招职业技能考试必刷测试卷附答案.docx VIP
- 八年级英语人教版上册选词填空专项练习.docx VIP
- 2023年3月英语四级听力真题及原文.pdf VIP
- 2025至2030中国富硒农产品行业供需分析及投资风险报告.docx
- 2024年山西老区职业技术学院单招职业技能考试试题及答案.docx VIP
- 2023-2024学年 河北省 邢台市 信都区 校联考 七年级(上)期中 语文试卷(原卷版).docx VIP
- 入党志愿书表格(电子版空白表格).doc VIP
- 2025年山西水利职业技术学院单招职业技能测试题库审定版.docx VIP
- 新版七上英语说课课件人教版.pptx VIP
- 《稀土金属》课件.ppt VIP
原创力文档


文档评论(0)