诚信为本,市场在变,诚信永远不变...

高德资讯

差分进化(DE)算法实现带约束优化(Matlab源码)

关于单目标无约束优化问题,常见的做法为对违反约束的个体惩罚,即对适应度加上惩罚项,此方法一定程度上可以解决简单约束问题。但面对复杂的约束问题,惩罚项系数的选择变得十分困难;现提供一种思路,基于多目标优化思想,Pareto无支配排序准则,同等重要的看待目标函数(cost)和约束(cons),以下结合一种实例对给出Matlab源码实现。

应用于简单的带约束的优化模型:
两个自变量的单目标多约束优化模型
优化模型出处:同时该博主给出了函数图像和自己代码的运行结果(表示感谢):
链接:优化模型出处.

代码实现:

 
 
 
 

约束处理方法如下:
约束处理

 
 
 
 

特别需要注意的是:在选择时使用贪婪策略(有点像精英保留,提高全局搜索能力和收敛速度)

 
 
 
 
 
 

运行结果
时间上也非常快!用时:2.7 s 左右!

当约束比较复杂时,上述方法可能很难兼顾(多)约束和目标搜寻到最优解(可行解)。
实际单(多)目标优化中常常遇到带约束的优化问题,如何解决这些问题,一种可行的思路是使用基于Pareto的无支配排序,对约束进行违反程度评价后排序,然后使用双策略进行优化:可行解过多时使用单目标无约束优化;可行解过少时使用约束满足优化【1】!

参考文献:
[1] Surry P D , Radcliffe N J . The COMOGA method: Constrained optimisation by multi-objective genetic algorithms[J]. Control & Cybernetics, 1997, 26(3).

有相关问题探讨请私信或留言,谢谢!
创作不易:如果有帮助请点赞!

栏目导航

高德资讯

联系我们

CONTACT US

电话:13988888888

传 真:海南省海口市

手 机:0898-66889888

邮 箱:88889999

地 址:/public/upload/system/2018/07/28/2091301cca30ff8c6fd3ecd09c8d4b02.jpg

平台注册入口