| 查看: 9458 | 回复: 1 | ||
[求助]
粒子群算法的上下界,LB,UB分别是什么?已有1人参与
|
|
function [BESTX,BESTY,ALLX,ALLY]=FSOUCP(K,N,V,Delta,L,LB,UB,D,Alpha) % K 迭代次数 % N 鱼群规模 % V 人工鱼的感知范围 % Delta 拥挤程度的判决门限,取值0~1之间 % L 觅食行为的试探次数 % LB 决策变量的下界,M×1的向量 % UB 决策变量的上界,M×1的向量 % D 样本指标矩阵,n×p的矩阵,每一行为一个样本 % Alpha 窗口半径系数,典型取值0.1 %% 输出参数列表 % BESTX K×1细胞结构,每一个元素是M×1向量,记录每一代的最优人工鱼的状态 % BESTY K×1矩阵,记录每一代的最优人工鱼的评价函数值 % ALLX K×1细胞结构,每一个元素是M×N矩阵,记录每一代人工鱼的位置 % ALLY K×N矩阵,记录每一代人工鱼的评价函数值 %% 测试函数设置 % 测试函数用单独的子函数编写好,在子函数FIT.m中修改要调用的测试函数名即可 % 注意:决策变量的下界LB和上界UB,要与测试函数保持一致 %% 参考设置 %[BESTX,BESTY,ALLX,ALLY]=FSOUCP(50,30,0.5,0.3,20,LB,UB) %% 第一步: M=length(LB);%决策变量的个数 %蚁群位置初始化 X=zeros(M,N); for i=1:M x=unifrnd(LB(i),UB(i),1,N); X(i, =x;end %输出变量初始化 ALLX=cell(K,1);%细胞结构,每一个元素是M×N矩阵,记录每一代的个体 ALLY=zeros(K,N);%K×N矩阵,记录每一代评价函数值 BESTX=cell(K,1);%细胞结构,每一个元素是M×1向量,记录每一代的最优个体 BESTY=zeros(K,1);%K×1矩阵,记录每一代的最优个体的评价函数值 k=1;%迭代计数器初始化 %% 第二步:迭代过程 while k<=K NewX=zeros(M,N); NewY=zeros(1,N); for n=1:N x=X(:,n); Xnb=AFneighbour(n,X,V); NN=size(Xnb,2); if NN==0 xx=AFprey(x,V,L,LB,UB,D,Alpha); elseif NN>=3 xx=AFswarm(x,Xnb,N,Delta,V,L,LB,UB,D,Alpha); else xx=AFprey(x,V,L,LB,UB,D,Alpha); end NewX(:,n)=xx; end for n=1:N NewY(n)=FIT(NewX(:,n),D,Alpha); end X=NewX; Y=NewY; ALLX{k}=X; ALLY(k, =Y;pos=find(Y==minY); BESTXk=X(:,pos(1)); b=sqrt(sum(BESTXk.^2)); BESTXk=BESTXk/b; BESTX{k}=BESTXk; BESTY(k)=minY; disp(k); k=k+1; end %% 绘图 BESTY2=BESTY; BESTX2=BESTX; for k=1:K TempY=BESTY(1:k); minTempY=min(TempY); posY=find(TempY==minTempY); BESTY2(k)=minTempY; BESTX2{k}=BESTX{posY(1)}; end BESTY=BESTY2; BESTX=BESTX2; plot(BESTY,'-ko','MarkerEdgeColor','k','MarkerFaceColor','k','MarkerSize',2) ylabel('函数值') xlabel('迭代次数') grid on function Qa=Project_Pursuit(X,a,Alpha) %% 投影寻踪模型 %% 输入参数列表 % X 洪水样本指标矩阵,n×p的矩阵,每一行为一个样本, % Xij表示第i次洪水第j洪水指标,X是否已经归一化均可 % a 投影向量,1×p的矩阵,元素取值范围-1~1,要求其元素平方和等于1 % Alpha 窗口半径系数,典型取值0.1 %% 输出参数列表 % Qa 投影指标函数 %% 第零步:对a的预处理 b=sqrt(sum(a.^2)); a=a/b; %% 第一步:归一化处理 [n,p]=size(X); x=zeros(n,p); Xjmax=max(X); Xjmin=min(X); for i=1:n x(i, =(X(i, -Xjmin)./(Xjmax-Xjmin);end %% 第二步:构造投影指标值 Z=zeros(n,1); for i=1:n Z(i)=sum(a.*x(i, );end %% 第三步:计算投影指标函数 meanZ=mean(Z); R=Alpha*Sa;%窗口半径 Da=0; for k=1:n rik=abs(Z(i)-Z(k)); if R>rik Da=Da+rik; end end Qa=Sa*Da; |
» 猜你喜欢
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有8人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有5人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
» 本主题相关价值贴推荐,对您同样有帮助:
Matlab中的fmincon功能求助
已经有16人回复
我用matlab编写了一个风力机叶片的优化设计程序,有点问题
已经有13人回复
matlab下用遗传算法求最小值的问题
已经有8人回复
castaway001
新虫 (初入文坛)
- 应助: 0 (幼儿园)
- 金币: 113.8
- 帖子: 12
- 在线: 5.8小时
- 虫号: 2975385
- 注册: 2014-02-18
- 性别: GG
- 专业: 机械工程

2楼2015-06-15 01:29:34













=x;
回复此楼