Hello Mat

 找回密码
 立即注册
查看: 6762|回复: 2

多目标鱼群算法--追尾行为解析

[复制链接]

4

主题

12

帖子

1

金钱

新手上路

Rank: 1

积分
13
发表于 2020-12-22 19:55:37 | 显示全部楼层 |阅读模式
function [Xt,Yt] = FSA_scatter( Xi, Yi, pop,pro, popminmax, sizepop, visual, step, try_number, delta, BestPop)
% 追尾行为
popmin = popminmax(1);  popmax = popminmax(2);
V = length(Xi);M = length(Yi);     %%返回向量长度
for k=1:sizepop   %%sizeopp种群数
    d(k) = norm( Xi-pop(k,1:V),2);%%二范数计算,计算当前位置到其他种群位置的距离。
end
[a,b] = find( d>0 & d<visual );%%a没用,可用~忽略;主要计算b的值
if(~isempty(b))                %%判断~isempty(b),b为空数组,输出为0,执行觅食行为;否则输出逻辑1,转到下一条指令。
    Xc = zeros( size(pop(1,1:V)) );%%赋值为0数组
    for k=1:length(b)            %%返回向量长度,%%%既符合要求的个体(猜)  
        XcQ(k,:) = pop(b(k),1:V);   %%对应x值
        YcQ(k,:) = evaluate_objective( XcQ(k,:),pro);   %%得到符合条件个体的Y值
    end
   
    %找到所有支配解
    Cnew = [XcQ,YcQ];V = size(XcQ,2);M = size(YcQ,2);   
    [Cnew] = JudgePopDominationQs(Cnew,M,V);            
    XcQ=Cnew(:,1:V);YcQ=Cnew(:,V+1:end);                 %%肉眼可见。。
   
    %计算拥挤度 并将拥挤度最大的作为最优的
    Dis = FishDis([XcQ YcQ;Xi Yi;],M,V);  %%可以看到Xi,Yi在最后一行,对应序号为end
    [~,ind]=max(Dis(1:end-1));            %%   ind对应的序号为拥挤度最大的,对应判断语句
    Xmax = XcQ(ind,:);                       %%赋值
    %%Xmax = (Xmax-Xi+BestPop(1:V)-Xi)+Xi;   %%%新点的一种求取方法,看个人喜好增减或改变
    Ymax = evaluate_objective(Xmax,pro);     %%求y值
   
   
    %if Domination2(Ymax,Yi) && Dis(ind)>Dis(end)  %%追尾行为的判断条件
     if Domination2(Ymax,Yi) && Dis(ind)>Dis(end) && Dis(ind)<delta  %%看行23,24
    Xt = Xi + ( Xmax - Xi )./norm(Xmax-Xi,2) .* step .*rand(1);
        Xt=PopWs(Xt,pro);
        Yt = evaluate_objective(Xt,pro);   % 适应度值     %%新点求值过程
    else
        % 觅食行为
        [Xt,Yt] = FSA_find( Xi, Yi, pro, popminmax, visual, step, try_number,BestPop(1:V));
    end
else
    % 觅食行为
    [Xt,Yt] = FSA_find( Xi, Yi, pro, popminmax, visual, step, try_number ,BestPop(1:V));
end

%%%%%%%%以上为个人理解,有错万望指出,一起学习,进步%%%%%%%%%%%
回复

使用道具 举报

0

主题

3

帖子

15

金钱

新手上路

Rank: 1

积分
18
发表于 2020-12-23 19:57:00 | 显示全部楼层
感谢楼主,写的这么详细,棒棒的。
:)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Python|Opencv|MATLAB|Halcom.cn ( 蜀ICP备16027072号 )

GMT+8, 2024-11-25 22:42 , Processed in 0.198068 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表