clc;

clear;

%相关参数的设置

UB=600;%函数的上界

LB=300;%函数的下界

PopSize=40;%种群大小

Dim=10;%微粒的维数

c1=2;%学习因子

c2=2;%学习因子

w_start=0.9;%惯性权重的开始值

w_end=0.4;%惯性权重的结束值

Vmax=100;%微粒的最大速度

Maxiter=1500;%最大迭代次数

iter=0;%初始迭代次数

%Initialize Swarm and Velocity

X=rand(PopSize,Dim)*(UB-LB)+LB;%微粒位置随机初始化:

V=rand(PopSize,Dim);%微粒速度随机初始化:

% 测试函数:Griewank函数

ind=repmat(1:Dim,PopSize,1);

FX=sum(((X.^2)/4000)')'-prod(cos(X./sqrt(ind))')'+1;

%设定当前位置为粒子的最好位置,并记录其最好值

PBest=X;%当前粒子的最好位置

FPBest=FX;%当前粒子的最好值

%找到初始微粒群体的最好微粒

[Fgbest,r]=min(FX);

CF=Fgbest;%记录当前全局最优值

Best=X(r,:);%用于保存最优粒子的位置

FBest=Fgbest;

%循环

while(iter <=Maxiter)

iter=iter+1;

% 更新惯性权重的值

w_now=((w_start-w_end)*(Maxiter-iter)/Maxiter)+w_end;

A=repmat(X(r,:),PopSize,1);

%生成随机数

R1=rand(PopSize,Dim);

R2=rand(PopSize,Dim);

%速度更新

V=w_now*V+c1*R1.*(PBest-X)+c2*R2.*(A-X);

%对进化后速度小于最小速度的微粒进行处理

changeRows=V>Vmax;

V(find(changeRows))=Vmax;

%对进化后速度小于最小速度的微粒进行处理

changeRows=V

V(find(changeRows))=-Vmax;

%微粒位置进行更新

X=X+1.0*V;

%重新计算新位置的适应度值

ind=repmat(1:Dim,PopSize,1);

FX=sum(((X.^2)/4000)')'-prod(cos(X./sqrt(ind))')'+1;

%更新每个微粒的最好位置

P=FX

FPBest(P)=FX(find(P));%适应值更换

PBest(find(P),:)=X(find(P),:);%粒子位置更换

[Fgbest,g]=min(FPBest);%保存最好适应值

if Fgbest

[fBest,b]=min(FPBest);%最好适应值为fBest

Best=PBest(b,:);%最好适应值为Best

end

CF=Fgbest;% To be used to find Best 保留本次适应值准备与下一次比较

end  %循环结束

matlab运行后没反映,matlab运行这个程序没有反应,也不报错,是什么原因?相关推荐

  1. Vivado2017.4运行时出现找不到VCOMP140.DLL,无法继续的报错

    Vivado2017.4运行时出现找不到VCOMP140.DLL,无法继续的报错 报错内容如下:    之前运行Vivado2017.4,没有出现过此类情况,上网查询后明白是安装了VC++(我安装的 ...

  2. Centos系统创建用户oracle后,用该用户登陆系统,页面加载报错GConf error

    Linux 的 GConf error 解决办法 问题: Centos系统创建用户oracle后,用该用户登陆系统,页面加载报错,导致重新进入Centos系统后出现: GConf error:Fail ...

  3. python中nameerror怎么处理_Python 运行报错NameError出现原因,怎么解决

    刚刚学习python语言时常会遇到一些问题,能看懂常见的python 捕获异常错误类型很重要.python ioerror很常见,NameError是最普通也是最常会遇到的内建报错类名,其代表问题出现 ...

  4. 杰奇运行在php7,帝国CMS7.5使用PHP7.x环境登录后台报错的解决方法!

    以下是帝国CMS官方说明! 使用PHP7.*运行环境时,以下两种情况,设置支持PHP7.*操作步骤: 1.全新安装帝国CMS时: 只需安装时MYSQL接口类型选择mysqli即可支持PHP7系列. 2 ...

  5. Win10系统 Office2010程序打开PPT文档报错“此应用无法在你的电脑上运行

    文章目录 1 问题描述 2 解决方法 1 问题描述 在windows10上安装的office2010 使用启动菜单中的microsoft PowerPoint2010程序直接打开PPT文档报错&quo ...

  6. 运行qsub 提交python程序 Ambiguous output redirect fault报错

    文章目录 运行Ridge_LOOCV_Permutation 报错现象 其它报错 在Linux下创建一个可运行shell脚本 Pycharm导入自定义的模块出现红色下划线 Reference 运行Ri ...

  7. webpack 3/4踩坑,我太难了,从安装、卸载、到使用,各相应的版本号,sass-loader报错-版本的原因,webpack -v 不识别,没卸载干净...

     -先说卸载: wabpack@4对应的每个插件的版本号都在最后 1 全局安装的话,npm uninstall webpack -g 有时候并不能卸载干净, 2 webpack -v 可判断是否安装成 ...

  8. laravel 提交Request 请求后会莫名多出一个s参数,导致数据库报错问题的解决方法

    项目场景: apache运行laravel框架开发的系统. 问题描述: 提交post或者其他请求,会在request中存在s参数,导致数据库报错. 原因分析: apache的.htaccess文件中的 ...

  9. EasyCVR替换版本后调用api接提示401报错是什么原因?

    EasyCVR视频融合平台具备优秀的视频转码.播放.级联能力,能够将视频通过RTMP协议推送到阿里.腾讯等公有云厂商的视频服务中,目前EasyCVR正在开发智能分析项目,在不久后,我们将把行人检测分析 ...

  10. matlab运行后没反映,这个matlab程序运行没反应是怎么回事?在线急等

    这个matlab程序运行没反应是怎么回事?在线急等 关注:77  答案:2  手机版 解决时间 2021-02-10 04:27 提问者失夜久伴你 2021-02-09 19:46 function ...

最新文章

  1. 酷讯出来的张一鸣为什么做了新闻不是旅游?
  2. RTMPdump(libRTMP) 源代码分析 3: AMF编码
  3. java jdbc datetime_Java JDBC 操作二进制数据、日期时间
  4. 5G 网络接口与基础流程
  5. 不悲观-不emo-永远保持正能量——21年末,去掉所有的不开心
  6. 信息学奥赛一本通(C++)在线评测系统——基础(三)数据结构 —— 1339:【例3-4】求后序遍历
  7. Makefile和automake中判断CPU位数
  8. html中滚动栏的样式
  9. kalilinux装到u盘上的弊端_付费下载的歌曲,竟然无法在汽车上播放!原因在这里...
  10. flask mvc模式开发_Flask中文文档-转载
  11. Android系统(245)---SystemServer进程的创建流程
  12. bzoj 3930: [CQOI2015]选数
  13. k8s核心技术-持久化存储(PV和PVC)---K8S_Google工作笔记0051
  14. Jmeter下载安装配置
  15. 年薪百万是社会认同,更是自身价值体现
  16. Excel函数大全-04数据库函数
  17. VNC远程桌面使用方法
  18. uni-App打包ios后白屏
  19. dvi线支持多少分辨率_dvi接口有哪几种_dvi支持最大分辨率
  20. 【ArcGIS微课1000例】0052:创建地理数据库注记(标准注记、要素关联注记、尺寸注记)

热门文章

  1. jQuery事件与事件对象
  2. 史上最全linux内核配置详解
  3. 深击 | 阿里云故障“惊魂”1小时:难道我们是那0.1%?
  4. SecureCRT 经典配色方案
  5. 单片机课程设计八音盒
  6. 社会性动物1: 从众的原因,如何避免
  7. RS485MODBUS转PROFINET网关配置-科隆OPTIFLUX7000MODBUS通信协议电磁流量计接入西门子PLC S7-1500PROFINET以太网通讯网络配置方法
  8. python 整合excel_使用python将多个excel文件合并到同一个文件的方法
  9. php测速,speedtest-x :一款PHP网页测速工具
  10. android4.4呼叫转移,安卓呼叫转移