zoukankan      html  css  js  c++  java
  • 遗传算法学习--多目标优化中的遗传算法

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

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

    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最优个体的数量已经超过规定的群体规模,则使用共享函数来对它们进行挑选,以形成规定规模的新一代群体。
  • 相关阅读:
    Chrome表单文本框自动填充黄色背景色样式
    find_in_set的用法(某个字段包含某个字符)
    array_column()函数兼容低版本
    总结一下工作中遇到的NPOI以及在ASP.NET MVC中的使用
    网络爬虫+HtmlAgilityPack+windows服务从博客园爬取20万博文
    【原创】贡献一个JS的弹出框代码...
    .NET微信公众号开发-6.0模板消息
    .NET微信公众号开发-5.0微信支付
    .NET微信公众号开发-4.0公众号消息处理
    .NET微信公众号开发-3.0查询自定义菜单
  • 原文地址:https://www.cnblogs.com/lomper/p/3831428.html
Copyright © 2011-2022 走看看