matlab算法每次都不同,求助为什么同一个粒子群算法程序每次运行的结果都不一样...

博主遇到一个问题,使用MATLAB实现粒子群优化算法进行削峰填谷时,发现每次运行结果都不同,即使清空工作区也是如此。问题可能源于算法中的随机性。代码中使用了`randn`和`rand`生成随机数,导致每次迭代过程中的位置和速度更新存在不确定性。文章请求帮助定位可能导致结果变化的原因。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

做的一个粒子群削峰填谷的程序,每次的运行的结果都不一样,clear工作区以后也是,matlab小白完全不懂,求大神指出哪里不正确,万分的感谢

下面是粒子群的程序

clear all;

clc;

format long;

%------给定初始化条件----------------------------------------------

c1=1.4962; %学习因子1

c2=1.4962; %学习因子2

w=0.7298; %惯性权重

MaxDT=100; %最大迭代次数

D=24; %搜索空间维数(未知数个数)

N=50; %初始化群体个体数目

eps=10^(-6); %设置精度(在已知最小值时候用)

%------初始化种群的个体(可以在这里限定位置和速度的范围)------------

R=200;

maxP=1000;

for i=1:N

for j=1:D

x(i,j)=randn*maxP; %随机初始化位置

v(i,j)=0; %随机初始化速度

end

end

%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------

for i=1:N

R=200;

for k=1:24

if(R+x(i,k)>maxP)

x(i,k)=maxP-R;

R

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值