PSO的接口楼上已经说了,我跟你说下关于你的图像聚类的问题怎么选适应度函数,聚类的目的一般是选出C个质心,采用近邻原则通过C个质心对样本点进行聚类。
所以关于你的问题,首先要确定你想聚类成几类,假设为C类
初始化每个粒子的位置向量为C个质心的位置(假设你的样本维数D,初始化每一个粒子为一个CD的向量)
适应度函数:计算每个样本点到C个质心的位置,选择最短的距离,假设d,计算所有样本的距离d相加,这就是适应度函数
下面的代码是量子群优化算法,你参照着改下:
popsize=20;
MAXITER=2000;
dimension=30;
irange_l=-512;
irange_r=512;
xmax=10;
sum1=0;
sum2=0;
mean=0;
st=0;
runno=10;
data1=zeros(runno,MAXITER);
for run=1:runno
T=cputime;
x=(irange_r- irange_l)rand(popsize,dimension,1) + irange_l;
pbest=x;
gbest=zeros(1,dimension);
for i=1:popsize
f_x(i)=f3(x(i,:));
f_pbest(i)=f_x(i);
end
g=min(find(f_pbest==min(f_pbest(1:popsize))));
gbest=pbest(g,:);
f_gbest=f_pbest(g);
MINIUM=f_pbest(g);
for t=1:MAXITER
beta=(1-05)(MAXITER-t)/MAXITER+05;
mbest=sum(pbest)/popsize;
for i=1:popsize
fi=rand(1,dimension);
p=fipbest(i,:)+(1-fi)gbest;
u=rand(1,dimension);
b=beta(mbest-x(i,:));
v=-log(u);
y=p+((-1)^ceil(05+rand(1,dimension)))bv;
x(i,:)=y;
x(i,:)=sign(y)min(abs(y),xmax);
f_x(i)=f3(x(i,:));
if f_x(i)<f_pbest(i)
pbest(i,:)=x(i,:);
f_pbest(i)=f_x(i);
end
if f_pbest(i)<f_gbest
gbest=pbest(i,:);
f_gbest=f_pbest(i);
end
MINIUM=f_gbest;
end
data1(run,t)=MINIUM;
if MINIUM>1e-007
mean=t;
end
end
sum1=sum1+mean;
sum2=sum2+MINIUM;
%MINIUM
time=cputime-T;
st=st+time;
end
av1=sum1/10; %输出平均收验代数
av2=sum2/10; %输出平均最优解
st/10 %就是最后anw输出的解
随着分布式电源(distributed generation,DG)在配电网中安装比例逐年增加,配电自动化应加强对DG的优化调度功能,发挥DG对配电网优化的有利作用。配电网重构是配电网优化的重要措施,DG联网后,DG注入配电网功率直接影响配电网重构结果。为使配电网性能达到整体最优,提出了一种基于粒子群优化算法(particle swarm optimization,PSO)的配电网重构和DG注入功率综合优化算法。该算法根据PSO并行计算的特点,采用PSO和二进制粒子群优化算法(binary particle swarm optimization,BPSO)相结合的方式,对转换开关状态和DG注入功率2种控制变量同时处理,达到配电网网损、电压偏差最小的目的。将DG作为可调度设备,对配电网重构和DG注入功率进行综合优化,提高了含DG配电网的电能质量和供电可靠性。将该算法应用到3馈线配电系统,仿真结果验证了所提算法的有效性。
解决方案1:
m
;unitcircle;;\\\m
\;;\\\psoplotswarmm
m
;ackleysfcnm
;psoiterate;psopt20100414\;;m
;voidm
\m
m
;initstate\\\;\;;;;dropwavefcnm
\\\\m
\m
\\\m
;;;rosenbrocksfcn;griewangksfcn;;\\m
\;testfcns
\\\;templatefcn\\;;m
;m
\;\;;license;;;rastriginsfcn;pso;;psogenerateoutputmessage\;testfcn1\unitdiskm
\;psocheckbounds\m
;\\;\\;;\\\m
\\;psocheckinitialpopulation\\;overlaysurface\psorunhybridfcn;;psooptimset;heart;psoplotswarmsurf;psopt\;\\\releasenotes\\m
m
\\\;\\\;\\psocheckpopulationinitrange\\\\\;m
;private\\\\;\;\;testfcns\;;quadrifolium\m
;;;;langermannsfcn;\;m
\;overlaycontour\\\\\\;psoplotscorediversity;nonlinearconstrdemo\m
;;;psocreationuniform\;m
m
;;private
\;\;psodemom
\;;;\;;dejongsfcn\\\\\\m
;;psoplotbestf;m
;schwefelsfcn;\;\\\\;m
\;m
txt
txt
m
我来说一种可行但不唯一的方案:
PSO求适应度函数F=f(x1,x2,,xn)的最小值,如果你想添加比如x1+x2<2这样的不等式,就可以在计算完适应度函数F后,判断变量是否满足你所要求的约束不等式,如果不满足,则可以给适应度函数值加入一个惩罚因子,比如原先函数值是215,加入惩罚因子inf(无穷大),就使得适应度函数值变成了无穷大,这就达到了约束的效果;而如果满足约束不等式,就不加入惩罚因子。
就是这样子,不懂追问。
以上就是关于哪位大神指点一下粒子群优化算法(PSO)的输入和输入分别是什么全部的内容,包括:哪位大神指点一下粒子群优化算法(PSO)的输入和输入分别是什么、求把MATLAB的pso源代码算法修改为 qpso算法 要求返回参数相同、求大神给一个分布式电源在配电网优化配置的matlab程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)