Hello Mat

 找回密码
 立即注册
查看: 4386|回复: 1

优化算法案例分析与应用14章问题

[复制链接]

3

主题

28

帖子

1

金钱

新手上路

Rank: 1

积分
29
发表于 2017-10-8 11:45:32 | 显示全部楼层 |阅读模式
第14章基于PSO的机构优化,在处理约束问题时,是否是Deb的可行规则?
代码如下:
for i=1:Np
        %若都一个可行,另一个不可行,则无条件选择可行解
        if (violent1(x(i,:))<=0&&violent2(x(i,:))<=0) && (violent1(mid(i,:))>0&&violent2(mid(i,:))>0)
            NextGeneration(i,:)=x(i,:);
        end
        
        %若都可行,选择适应度小的进入下一代
        if (violent1(x(i,:))<=0&&violent2(x(i,:))<=0) && (violent1(mid(i,:))<=0&&violent2(mid(i,:))<=0)
            if fitness2(x(i,:))<=fitness2(mid(i,:))
                NextGeneration(i,:)=x(i,:);
            else
                NextGeneration(i,:)=mid(i,:);
            end
        end
        
        %若都一个可行,另一个不可行,则无条件选择可行解
        if (violent1(x(i,:))>0&&violent2(x(i,:))>0) && (violent1(mid(i,:))<=0&&violent2(mid(i,:))<=0)
            NextGeneration(i,:)=mid(i,:);
        end
        
        %若两个都不可行,选择违背约束小的进入下一代
        if (violent1(x(i,:))>0&&violent2(x(i,:))>0) && (violent1(mid(i,:))>0&&violent2(mid(i,:))>0)
            if violent1(x(i,:))<violent1(mid(i,:))&violent2(x(i,:))<violent2(mid(i,:))
                NextGeneration(i,:)=x(i,:);
            else
                NextGeneration(i,:)=mid(i,:);
            end
        end
    end

回复

使用道具 举报

1320

主题

1548

帖子

0

金钱

管理员

Rank: 9Rank: 9Rank: 9

积分
22635
发表于 2017-10-8 15:31:00 | 显示全部楼层
是可行的。
算法QQ  3283892722
群智能算法链接http://halcom.cn/forum.php?mod=forumdisplay&fid=73
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-11 03:49 , Processed in 0.223072 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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