遗传算法学习--多目标优化中的遗传算法

转:https://www.cnblogs.com/lomper/p/3831428.html

在工程运用中,经常是多准则和对目标的进行择优设计。解决含多目标和多约束的优化问题称为:多目标优化问题。经常,这些目标之间都是相互冲突的。如投资中的本金最少,收益最好,风险最小~~

多目标优化问题的一般数学模型可描述为:

Pareto最优解(Pareto Optimal Solution)

使用遗传算法进行求解Pareto最优解:

  • 权重系数变换法:

  • 并列选择法:

基本思想:

将种群全体按子目标函数的数目等分为子群体,对每一个子群体分配一个目标函数,进行择优选择,各自选择出适应度高的个体组成一个新的子群体,然后将所有这些子群体合并成一个完整的群体,在这个群体里进行交叉变异操作,生成下一代完整群体,如此循环,最终生成Pareto最优解。如下图:

  • 排列选择法:

基于Pareto最优个体的前提上,对群体中的各个个体进行排序,依据排序进行选择,从而使拍在前面的Pareto最优个体将有更大的可能性进入下一代群体中。

  • 共享函数法:

利用小生境遗传算法的技术。算法对相同个体或类似个体是数目加一限制,以便能够产生出种类较多的不同的最优解。

对于一个个体X,在它的附近还存在有多少种、多大程度相似的个体,是可以度量的,这种度量值称为小生境数。计算方法:

s(d)为共享函数,它是个体之间距离d的单调递减函数。d(X,Y)为个体X,Y之间的海明距离

在计算出小生境数后,可以是小生境数较小的个体能够有更多的机会被选中,遗传到下一代群体中,即相似程度较小的个体能够有更多的机会被遗传到下一代群体中。

解决了多目标最优化问题中,使解能够尽可能的分散在整个Pareto最优解集合内,而不是集中在其Pareto最优解集合内的某一个较小的区域上的问题。

  • 混合法:
  1. 并列选择过程:按所求多目标优化问题的子目标函数的个数,将整个群体均分为一些子群体,各个子目标函数在相应的子群体中产生其下一代子群体。
  2. 保留Pareto最优个体过程:对于子群体中的Pareto最优个体,不让其参与个体的交叉和变异运算,而是直接保留到下一代子群体中。
  3. 共享函数处理过程:若所得到的Pareto最优个体的数量已经超过规定的群体规模,则使用共享函数来对它们进行挑选,以形成规定规模的新一代群体。
作者:Lomper 出处:http://www.cnblogs.com/lomper 关于作者:小菜鸟一枚,欢迎大神指点! 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接.
posted on 2017-11-08 23:03  心灵智者AI  阅读(12336)  评论(0编辑  收藏  举报