关于单目标无约束优化问题,常见的做法为对违反约束的个体惩罚,即对适应度加上惩罚项,此方法一定程度上可以解决简单约束问题。但面对复杂的约束问题,惩罚项系数的选择变得十分困难;现提供一种思路,基于多目标优化思想,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).
有相关问题探讨请私信或留言,谢谢!
创作不易:如果有帮助请点赞!
电话:13988888888
传 真:海南省海口市
手 机:0898-66889888
邮 箱:88889999
地 址:/public/upload/system/2018/07/28/2091301cca30ff8c6fd3ecd09c8d4b02.jpg