%% Start of the program.
clc
clear
close all
%% Problem Statement (Traveling Sealsman Problem)
NPar = 8; % Number of Optimization Parameters
VarLow =[0 0 0 0.03 0.01 -0.05 -0.06 -0.06]; % Lower Limmit of problem
VarHigh =[1 1 0.12 0.15 0.11 0.05 0.04 0.04]; % Upper Limmit of problem
FunName = 'Myfit';
%% Algoritm Parameters
PopSize = 30;
ChromLenght = NPar;
MaxIterations = 50;
KeepPercent = 50/100;
CrossPercent = 70/100;
MutatPercent = 1 - KeepPercent - CrossPercent;
SelectionMode = 1;
KeepNum = round(KeepPercent * PopSize);
CrossNum = round(CrossPercent * PopSize);
if mod(CrossNum,2) ~= 0
CrossNum = CrossNum + 1;
end
MutatNum = PopSize - KeepNum - CrossNum;
%% Initial Population
AA=rand(PopSize,NPar);
AB=VarHigh - VarLow;
ABC=[];
for i=1:8,C=AA(:,i)*AB(:,i)+VarLow(1,i),ABC=[ABC C],end;
Pop = ABC
clear AA AB ABC C;
Cost = feval(FunName,Pop);
[Cost Indx] = sort(Cost);
Pop = Pop(Indx,:);
%% MAIN LOOP
MinMat = [];
MeanMat = [];
for Iter = 1:MaxIterations
%% Select Keep
Pop(1:KeepNum,:) = PSO_Fcn(Pop(1:KeepNum,:));
%% CrossOver
SlectedIndexes = SelectParents_Fcn(Cost,CrossNum,SelectionMode);
CrossPop = [];
for ii = 1:2:CrossNum
Par1Index = SlectedIndexes(ii);
Par2Index = SlectedIndexes(ii+1);
Par1 = Pop(Par1Index,:);
Par2 = Pop(Par2Index,:);
[Off1 , Off2] = CrossOver_fcn(Par1,Par2);
CrossPop = [CrossPop ; Off1 ; Off2];
end
Pop(KeepNum+1:KeepNum+CrossNum,:) = CrossPop;
%% Mutation
AA=rand(MutatNum,NPar)
AB=VarHigh - VarLow;
ABC=[];
for i=1:8,C=AA(:,i)*AB(:,i)+VarLow(1,i),ABC=[ABC C],end;
Pop(KeepNum+CrossNum+1 : end , :)= ABC;
clear AA AB ABC;
[m,n] = size(Pop)
%% NewPopulation
for i=1:n
jj=1;
while jj<=m
if Pop(jj,i)>VarHigh(1,i),Pop(jj,i)=VarHigh(1,i),end;
if Pop(jj,i)<VarLow(1,i),Pop(jj,i)=VarLow(1,i),end;
jj=jj+1;
end;
end;
Cost = feval(FunName,Pop);
[Cost Indx] = sort(Cost);
Pop = Pop(Indx,:);
MinMat = [MinMat min(Cost)];
MeanMat = [MeanMat mean(Cost)];
%% Display
plot(MinMat,'r','Linewidth',2.5);
xlabel('Iterations')
ylabel('Cost')
hold on
plot(MeanMat,'b:','Linewidth',2);
hold off
xlim([1 MaxIterations])
pause(0.05)
end
%% Final Result Display
BestSolution = Pop(1,:)
BestCost = Cost(1)
fval=BestCost;
没有合适的资源?快使用搜索试试~ 我知道了~
用遗传算法改进粒子群GA-PSO算法.rar
共10个文件
m:5个
mat:2个
txt:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 7 浏览量
2022-04-12
21:31:00
上传
评论 2
收藏 122KB RAR 举报
温馨提示
本算法为用遗传算法改进粒子群GA-PSO算法,附带含有程序使用说明。(This algorithm uses genetic algorithm to improve particle swarm optimization GA-PSO algorithm, with instructions for the use of the program.)
资源推荐
资源详情
资源评论
收起资源包目录
用遗传算法改进粒子群GA-PSO算法.rar (10个子文件)
用遗传算法改进粒子群GA-PSO算法
www.imdn.cn.txt 227B
GA-PSO
程序使用说明.doc 24KB
Myfit.m 545B
cd.mat 58KB
CrossOver_fcn.m 202B
acess.mat 58KB
PSO_Fcn.m 441B
SelectParents_Fcn.m 591B
GAPSO.m 2KB
我是程序员_imdn.url 241B
共 10 条
- 1
资源评论
- 小小小星啊2022-04-23用户下载后在一定时间内未进行评价,系统默认好评。
zwl2022
- 粉丝: 11
- 资源: 221
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 带有边界框的农作物和杂草检测数据 带有 YOLO 和 Pascal 标签的芝麻作物和不同杂草的农业数据
- 练习 JavaScript 的禅宗练习.zip
- 大学生Java二级课程考试
- Nvidia GeForce GT 1030-GeForce Game Ready For Win10&Win11(Win10&Win11 GeForce GT 1030显卡驱动)
- IEC61850仿真模拟器sim860
- 纯 Python Java 解析器和工具.zip
- YOLO标记口罩数据集 (YOLO 格式注释)
- uniapp+vue3+云开发全栈开发同城配送鲜花小程序任意商城教程
- 客户需求快速小程序项目开发技巧
- java项目,课程设计-医疗服务系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功