文章目录

  • 多目标优化快速入门 多目标优化
  • 一、前言
  • 二、多目标优化问题的一般数学描述
  • 三、进化算法一般性特点
  • 四、多目标优化算法发展历史
  • 总结

多目标优化快速入门 多目标优化


一、前言

正如生活中,你想买一辆车,又想汽车的性能好,外观不错,价格还比较低,对于这同时满足这三个条件,我们应该如何进行考虑呢?
    在投资的时候,我们想投入的资金最少,所付出的风险最小,同时收益是最大的,如何同时进行实现呢?在数学学习中,求求函数 f1(x1,x2,…,xn)=x1^2 +x2^2 +…+xn^2 及函数 f2(x1,x2,…,xn)=(x1-1)^2+ (x2-1)^2 +…+(xn-1)^2 同时达到最小的 (x1,x2,…,xn) 的取值,不存在一组 (x1,x2,…,xn) 的取值,使 f1 和 f2 同时达到最小值,这时候怎么办呢?
    帕累托最优
    帕雷托最优是指资源分配的一种理想状态。帕雷托最优的状态就是不可能再有更多的帕雷托改善的状态;换句话说,不可能再改善某些人的境况,而不使任何其他人受损。进化计算
    最早的是达尔文的进化论-物竞天择,适者生存

后来是约翰.霍兰德提出的遗传算法
    1.遗传算法(Genetic Algorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,通过模拟自然进化过程搜索最优解。
    2.该算法通过数学的方式,利用计算机仿真运算,将问题的求解过程转换成类似生物进化中的染色体基因的交叉、变异等过程。在求解较为复杂的组合优化问题时,相对一些常规的优化算法,通常能够较快地获得较好的优化结果。
    3.遗传算法已被人们广泛地应用于组合优化、机器学习、信号处理、自适应控制和人工生命等领域。

具体步骤是:

  • (1)种群中个体随机初始化.
  • (2)每个个体通过评价得到一个适应度值.
  • (3)适应度值大的个体有更大的概率保留下来.
  • (4)通过对适应度值大的个体交叉变异产生新的个体.
  • 不断的迭代第 (2)-(4) 步骤,经过足够多的迭代次后,最终能得到好的解.

二、多目标优化问题的一般数学描述

基本概念 MOP 1.求解单个函数 f1 的最小值为单目标优化问题(SOP)
    同时求解多个函数 f1 和 f2 的最小值为多目标优化问题(MOP)
    多目标优化问题的一般数学描述:

  • 1.对于两个个体 X1 和 X2 以及目标函数 F(X),若 X1 的每一个目标函数值 fi(X1) 都比 X2 对应的目标函数值 fi(X2) 要小,则认为 X1 要比 X2 更好,称 X1 支配(dominate) X2 ,记作 X1 ≺ X2 (它具有传递性)
  • 2.若存在 i 和 j 使得 fi(X1) < fi(X2) 且 fj(X1) > fj(X2), 则认为 X1 和 X2 无法比较,视为一样好,称 X1 与 X2 是非支配 (non-dominated)的,记作 X1 ⊀ X2 且 X2 ⊀ X1。即针对个体X1,X2。在目标函数1中,个体X1表现较好,在目标函数2中,个体X2表现较好。
  • 对于一组个体,若 Xa 不被其它任何一个个体支配,则 Xa 也称为是非支配的;Xa 也叫做 Pareto 最优解
  • 对于一个多目标优化问题,目的是求出一组 Pareto 最优解 Xi ,i=1,2,…,并使得目标函数的值尽可能地小

根据左图中目标变量可知 ,帕累托最优解往往在左下角,值相对偏小。

在右图中,可以看出,B支配C,D两点,在A点,B是被支配的,其余空间则是非支配
    1.想要求得多目标问题的最优解,我们利用计算机强大的计算能力,在决策空间中随机产生大量个体,并找出其中最好的(不被支配的)个体。也就是不断地“试”,来找到越来越好的个体。随机寻找个体的过程称为 搜索
    2.但无法做到遍历决策空间中每一个个体,我们需要在更短的时间里利用随机的方法找到更好的个体
    3.利用进化算法的策略,可以朝着越来越好的方向随机产生个体,而不是在决策空间中完全盲目地产生个体。

三、进化算法一般性特点

•得到的不是问题的精确结果,而是近似的结果
•每次得到的结果不一样
•结果的精度随着迭代次数的增加而不断上升
•往往以算法得到的结果的精度来评价算法的性能

进化算法的一般策略

1.不同的算法,产生的结果是不同的,从结果可以看出各个算法性能的好坏
2.算法产生的解集的好坏标准:
•接近真实前沿面(收敛性)
•在空间上分布性好(分布性)
3.还有许多量化的评价解集的好坏的标准

四、多目标优化算法发展历史

发展历程
古典多目标时期
    传统的多目标优化方法是将各个子目标聚合成一个带正系数的单目标函数,系数由决策者决定,或者由优化方法自适应调整。
    为了获取近似Pareto最优集,一些优化方法使用不同的系数来实施动态优化。常见的古典方法有加权法(利用斜率来判断最优解)、约束法、目标规划法以及极大极小法等

进化多目标时期

最早提到可以利用EA来解决多目标优化问题的是Richard S. Rosenburg 于1967年在他的博士论文 “Simulation of genetic populations with biochemical properties”中,David Goldberg 于1989年首次提出了Pareto Ranking的概念:MOEA中个体必须经由Pareto支配关系来选出,同时他也指出了MOEA中分布性保持的重要性,主要采取Fitness Share的策略Carlos M. Fonseca 和 Peter J. Fleming 于1993年提出了Multiobjective Optimization Genetic Algorithm (MOGA)。MOGA采用基于排序数的适应度赋值机制以及自适应的适应度共享的策略,风靡一时。

Kalyanmoy Deb于1994年提出了Non-dominated Sorting Genetic Algorithm (NSGA),采用分层的非支配排序机制以及适应度共享机制。然而算法缺陷是计算复杂度为O(MN3),随后,Deb跟他的学生在2000年提出了NSGA的改进版本NSGA2,文章于2002年发表TEVC。NSGA2采用快速非支配排序以及拥挤距离的策略,时间复杂度在O(MN2)。由于其速度及效果上的优势,许多年来NSGA2都被作为对比算法。

Eckart Zitzler 在1998年一个会议上提出Strength Pareto Evolutionary Algorithm (SPEA),第二年文章被TEVC收录。SPEA在算法中使用了一个外部Archive来保留搜索到的好解,称之为Elitism。Elitism的使用随后也开始流行,随后不久Zitzler等人又对SPEA进行了改进SPEA2,主要引入了较细的适应度赋值方式以及密度估计方式(Truncation Method)。

2006年,张青富跟李辉首次提出了基于分解的多目标优化算法,MOEAD,是将MOP问题分解成SOP问题并同时对这些子问题进行优化。MOEAD不仅在速度上有优势,而且搜到的结果很规律。在MOEA领域开辟了一条新的通道。

2014年,Deb的NSGA3分成上下两个部分发表在TEVC上。主要是用来处理高维多目标问题。采用了基于参考点以及分解的策略。是NSGA2 + MOEAD 的结合

其中目前最经典的算法还是NSGA-II 和MOEAD,


总结

本文学习他人的博文笔记。

作者:电气-余登武

附一张喜欢的女主播。

十分钟了解完多目标优化算法相关推荐

  1. 多目标优化算法:多目标非洲秃鹫优化算法MOAVOA(提供Matlab代码)

    一. 算法简介 非洲秃鹫优化算法(African vultures optimization algorithm,AVOA)由Benyamin Abdollahzadeh等人受非洲秃鹫的觅食和导航行为 ...

  2. MATLAB应用实战系列NSGA-II多目标优化算法原理及应用实例(附MATLAB代码)

    前言 NSGA-Ⅱ是最流行的多目标遗传算法之一,它降低了非劣排序遗传算法的复杂性,具有运行速度快,解集的收敛性好的优点,成为其他多目标优化算法性能的基准. NSGA-Ⅱ算法是 Srinivas 和 D ...

  3. [多目标优化算法]1.NSGA-II——非支配排序遗传算法

    笔者最近在学习有关多目标优化的内容,并对内容进行一些整理.这篇文章算是笔者的一篇个人学习笔记,也希望能对他人提供一定的帮助,若有不足之处,也欢迎指正和建议. 注:本文中所举例子均为最小化问题. 一.多 ...

  4. 差分进化算法python 指派问题_多目标优化算法

    本书实用性强,摒弃工具书中难懂的理论讲解,通过使用具体数值实例进行浅显易懂的讲解,保证大学低年级学生凭借现有的数学基础知识也可以完全理解书中介绍的网络数学模型和遗传算法的解法.书中丰富的数值实例能够加 ...

  5. 多目标优化算法_【实验室论文】基于多种群协同演化的约束多目标优化算法

    欢迎关注智能优化与学习实验室 在很多实际问题中,例如科学.工程设计等领域,衡量一个方案的好坏难以用一个指标来判断,需要用多个目标来刻画,且实际问题通常带有约束条件,这类问题被称为约束多目标优化问题,高 ...

  6. 【NSGAII】基于NSGAII的多目标优化算法的MATLAB仿真

    1.软件版本 matlab2021a 2.本算法理论知识 NSGA-II适合应用于复杂的.多目标优化问题.是K-Deb教授于2002在论文:A Fast and Elitist Multiobject ...

  7. 基于NSGAII的多目标优化算法的MATLAB仿真

    1.算法简介 NSGA-II在引入算术交叉算子的同时,提出并引入累积排序适应度赋值策略.实验表明,INSGA具有更高的收敛速度和更好的种群多样性. 2.部分核心代码 clc; clear; close ...

  8. a*算法matlab代码_NSGAII多目标优化算法讲解(附MATLAB代码)

    小编今天为大家讲解NSGA-II多目标优化算法,提到多目标优化,大家可能第一个就想到NSGA-II算法,今天小编就带领大家解开NSGA-II的神秘面纱. NSGA-II全称是快速非支配排序遗传算法,这 ...

  9. python多目标优化_多目标优化算法(四)NSGA3(NSGAIII)论文复现以及matlab和python的代码...

    前言:最近太忙,这个系列已经很久没有更新了,本次就更新一个Deb大神的NSGA2的"升级版"算法NSGA3.因为multi-objective optimization已经被做烂了 ...

最新文章

  1. 基于机器学习的捡球机器人设计与实现(探索)第3篇——opencv基础知识学习(2019-02-02)
  2. 12、HTML <form>标签(表单)
  3. html主题居中用什么命令,html – 如何居中的元素 – 使用什么而不是align:center属性?...
  4. python高级语法-高阶函数之map的使用方法
  5. 开启一个新的命令行窗口
  6. 程序员总结的:最没有学习效率的 5 种方法!你在用其中哪一种?
  7. java期末考试试卷及答案文库_小学二年级上册期末考试试卷,【附答案】
  8. 全面控制Windows任务栏
  9. python爬虫解析数据_Python爬虫入门知识:解析数据篇
  10. 前端—每天5道面试题(3)
  11. Sublime Text4 文本编辑器
  12. 汉诺塔c语言代码实现
  13. 深入剖析锂电池保护电路的工作原理
  14. C语言逻辑门运算示例
  15. 小写金额转为中文大写
  16. 支付宝里面基金的猫腻?为什么计算对不上?
  17. 半夜开piao竟然被罚
  18. 老友记全10集看完了,2个月的时光一晃而过!
  19. vscode配置opencv环境,包括opencv源码编译(mingw64 + cmake)
  20. windows10输入法打字没有选字框,【已解决】

热门文章

  1. java心跳监控服务_JavaHeartBeat-应用服务器心跳检测
  2. ListBox优化初步(一)
  3. 安全多方计算-入门学习笔记(三)
  4. 公司建网站多少钱?【网站多少钱】
  5. APUE:fork()、exec()前用fflush()刷新缓冲区的重要性
  6. R语言常微分方程数值解海强作业
  7. 基于单片机火灾监测报警系统设计-毕设资料
  8. sled11 sp2 opensuse zypper usage fr net
  9. 计算机网络怎么运行内存,运行内存,教您如何扩大电脑的运行内存
  10. 持币大户谈PRS投资策略