多目标优化(智能算法)
多目标优化模型求解方案
文章目录
- (1) 概念引入
- 1.多目标优化模型
- 2.支配
- (2) 多目标优化的传统解法
- (3) 智能优化算法
- (3) matlab的智能优化算法
- 1. 基本的两个函数
- 2. 例子
- 3. 如果有三个目标
(1) 概念引入
1.多目标优化模型
- 数学模型(一般都转化成最小问题)minF(x)=(f1(x),f2(x),…,fm(x))s.t.x∈Ω\min{F(x)}=(f_1(x),f_2(x),\dots,f_m(x))\\ ~~\\ s.t. x\in\OmegaminF(x)=(f1(x),f2(x),…,fm(x)) s.t.x∈Ω
- 决策空间: x=(x1,x2,…,xn)x=(x_1,x_2,\dots,x_n)x=(x1,x2,…,xn)所在的空间 Ω\OmegaΩ,其中 Ω={x∈Rn∣gi(x)≤0,i=1,2,…,p}\Omega=\{x\in R^n|g_i(x)\le0,i=1,2,\dots,p \}Ω={x∈Rn∣gi(x)≤0,i=1,2,…,p}。
- 目标空间:mmm维向量F(x)F(x)F(x)所在的空间。
2.支配
- 定义1:对最小化问题,一个向量 u=(u1,u2,…,uw)u=(u_1,u_2,\dots,u_w)u=(u1,u2,…,uw) 称为支配(优于)另一个向量 v=(v1,v2,…,vw)v=(v_1,v_2,\dots,v_w)v=(v1,v2,…,vw),当且仅当 ui≤vii=1,2,⋯,mu_i\le v_i i=1,2,\dotsb,mui≤vii=1,2,⋯,m 且 ∃j∈{1,2,⋯,m},uj<vj。\exist j\in\{1,2,\dotsb,m\},u_j<v_j。∃j∈{1,2,⋯,m},uj<vj。
- 定义2:对于任意两个自变量向量x1,x2∃Ωx_1,x_2\exist\Omegax1,x2∃Ω,如果下列条件成立:fi(x1)≤fi(x2),∀i∈{1,2,⋯,m}fj(x1)≤fj(x2),∀j∈{1,2,⋯,m}f_i(x_1)\le f_i(x_2),\forall i\in\{1,2,\dotsb,m\}\\ f_j(x_1)\le f_j(x_2),\forall j\in\{1,2,\dotsb,m\}fi(x1)≤fi(x2),∀i∈{1,2,⋯,m}fj(x1)≤fj(x2),∀j∈{1,2,⋯,m}则称 x1x_1x1 支配 x2x_2x2。
- 定义3:
- 如果 QQQ 中没有支配(优于)xxx 的解,则称 xxx 是问题的一个Pareto最优解。
- Pareto最优解的全体被称作Pareto最优解集;Pareto最优解集在目标函数空间的像集称为Pareto Front(Pareto前沿,阵(界)面)。
(2) 多目标优化的传统解法
- 加权法
- 理想点法(TOPSIS)
- 分层序列法(就是每次先求出一个最优值,然后把这个最优值当作不等式限制)
- 把 mmm 个目标篇按重要程度排序。假定 f1(x)f_1(x)f1(x) 最重要,fm(x)f_m(x)fm(x) 最不重要。
- 先求问题minf1(x)s.t.x∈Ω\min{f_1(x)}\\s.t. x\in\Omegaminf1(x)s.t.x∈Ω 的最优解 x(1)x^{(1)}x(1) 及最优值 f1∗f_1^*f1∗。
- 再求问题minf2(x)s.t.x∈Ω1=Ω∩{x∣f1(x)≤f1∗}\min{f_2(x)}\\s.t. x\in\Omega_1=\Omega\cap\{x|f_1(x)\le f_1^*\}minf2(x)s.t.x∈Ω1=Ω∩{x∣f1(x)≤f1∗} 的最优解 x(1)x^{(1)}x(1) 及最优值 f1∗f_1^*f1∗。
- 重复上面的步骤。
(3) 智能优化算法
- 这里选取 NSGA-II 方法
- 算法简介
- 首先随机产生种群规模为 NNN 的初始种群 PtP_tPt,进化代数 t=0t=0t=0。
- 开始循环,对 PtP_tPt 进行交叉变异操作生成新种群 QtQ_tQt。
- 取 Rt=Pt∪QtR_t=P_t\cup Q_tRt=Pt∪Qt。
- 对 RtR_tRt 进行非劣分类。
- 按非劣等级从低到高选出 NNN 个个体填充到 Pt+1P_{t+1}Pt+1 中。
- 获取 RtR_tRt 中的第一非劣等级个体集,判断并决定该非劣等级能否全被新种群容纳。如果能,将该非劣等级的所有个体填充到新种群中,继续判断下一非劣等级能否全被新种群容纳。
- 如此反复,直到不能容纳该非劣等级的所有个体,假设为第 i+1i+1i+1 级。对最后不能被完全容纳的非劣组中的个体求其拥挤距离,并选择分布最广的个体填充满新种群。
- 重复
- 快速非支配排序方法
- 首先不被任何点支配的点选出来,成为 F1F_1F1。
- 把选出来的点支配的点的支配关系全部删除,然后再看现在有哪些点不被任何点支配,成为 F2F_2F2.
- 拥挤距离di=∑m=1M∣fmi+1−fmi−1∣d_i=\sum_{m=1}^{M}|f_m^{i+1}-f_m^{i-1}|di=m=1∑M∣fmi+1−fmi−1∣
- did_idi 表示第 iii 个个体的拥挤距离。
- i−1i-1i−1 和 i+1i+1i+1 是个体 iii 沿着 iii 所在的Pareto Front Line 的两边邻近的两个个体。
- fmi+1f_m^{i+1}fmi+1 和 fmi−1f_m^{i-1}fmi−1 分别表示 i−1i-1i−1 和 i+1i+1i+1 个个体第 mmm 个目标函数值。(下面的图m=1,2m=1,2m=1,2)
(3) matlab的智能优化算法
1. 基本的两个函数
- 参数设置
options=gaoptimset('paretoFraction',0.3,'populationsize',100'generations',200,'stallGenLimit',200,'TolFun',1e-10,'PlotFcns',@gaplotpareto);
paretoFraction
:最优个体系数这里设为0.3populationsize
:种群大小这里设为100generations
:最大进化代数这里设为200stallGenLimit
:停止代数这里设为200TolFun
:适应度函数偏差这里设为1e-10gaplotpareto
:绘制Pareto前沿
- 函数引用
[X,FVAL]=gamultiobj(fitnessfcn,nvars,A,b, Aeq,beq,lb,ub,nonlcon,options))
fitnessfcn
:函数句柄。nvars
:变量个数。ub,lb
:上下限。A,b
:线性不等式约束。Aeq,beq
:线性等式约束。
2. 例子
- 函数定义
%%这里定义该函数
function y=Fun(x)
y(1)=x(1);
y(2)=(1+x(2))/x(1);
- 进行计算
%%这里赋初值并且进行多目标优化的计算
fitnessfcn=@Fun;
nvars=2;
lb=[0.1,0];
ub=[1,5];
A=[-9,-1;-9,1];
b=[-6;-1];
Aeq=[];
beq=[]; options=gaoptimset('paretoFraction',0.4,'populationsize',200,'generations',300,'stallGenLimit',300,'TolFun',1e-10,'PlotFcns',@gaplotpareto); [x,fval]=gamultiobj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,options)
- 结果
3. 如果有三个目标
- 可以先优化出来,得到
fval
然后用scatter3
进行绘制。 - 对上面的问题增加条件 minx1+x2min~{x_1+x_2}min x1+x2
- 增加
scatter3(fval(:,1),fval(:,2),fval(:,3))
- 得到结果
现在已经转移到知乎,之后的文章会在知乎更新。
多目标优化(智能算法)相关推荐
- DREA:基于多样性排序的多目标优化进化算法
DREA:基于多样性排序的多目标优化进化算法 参考文献 <A diversity ranking based evolutionary algorithm for multi-objective ...
- 基于优化智能算法(粒子群灰狼)的非侵入式负荷识别(NILM)建模(提供代码下载)
基于优化智能算法(粒子群&灰狼)的非侵入式负荷识别(NILM)建模 本文主要从智能算法入手,介绍非侵入式识别的代码具体应用思路和场景,如有瑕疵,请海涵. 1.1 优化智能算法概述 智能算法的研 ...
- 【论文研读】-基于对偶种群的约束多目标优化进化算法-补充材料
基于对偶种群的约束多目标优化进化算法-补充材料 Supplementary File of "A Dual-Population based Evolutionary Algorithm f ...
- IGD-EMOA:基于IGD指标的多目标优化进化算法
基于IGD指标的多目标优化进化算法 参考文献 <IGD Indicator-Based Evolutionary Algorithm for Many-Objective Optimizatio ...
- 2018-3-13 目标改动---智能算法
早上去了办公室,汇报.----------------------------结论就是自己跑偏了.------------------------------非结构化数据的研究 现在的自己要开始智能算 ...
- 多目标优化算法_阿里提出多目标优化全新算法框架,同时提升电商GMV和CTR
论文作者| Xiao Lin,Hongjie Chen 等 编译 | 吴少杰 编辑 | Natalie AI 前线导读: 在推荐系统中,多目标优化一直是热门话题,阿里针对推荐中的多目标优化问题提出了一 ...
- 带约束的多目标优化进化算法综述
约束优化进化算法综述 1.摘要 约束优化进化算法主要研究如何利用进化计算方法求解约束优化问题,是进化计算领城的一个重要研究课题.约束优化问题求解存在约束区域离散.等式约束.非线性约束等挑战,其问题的本 ...
- 多目标优化-NSGAII算法
NSGA-II学习笔记 阅读文献:A Fast and Elitist Multiobjective Genetic Algorithm: NSGA-II 有兴趣的话可以阅读中文翻译版本:https: ...
- 关于单目标群智能算法的一些思考
关于计算机算法发展至今,已有很多不同的分类,目前运用最多是泛化群智能优化算法.譬如:粒子群优化算法(PSO).鲸鱼优化算法(WOA).灰狼优化算法(GWO).蜻蜓优化算法(DA).宇宙优化算法(MVO ...
- 多目标优化算法平台PlatEMO的基本使用方法
简介和使用方法 PlatEMO是基于Matlab的一款拥有可视化界面的多目标优化算法平台. 下载文件,下载链接:https://github.com/BIMK/PlatEMO 文件下载完成后,解压文件 ...
最新文章
- 回车键兼容多个浏览器
- css文本换行_CSS样式更改——文本Content
- python svm算法smo cifar_使用smo算法编写svm对CIFAR-10数据分类
- 硕士学历真的很重要吗?过来人道出实情,看到最后一句很感动
- MySQL中索引的分类和基本操作
- Delphi中的时间操作技术(1)
- 提高千倍效率的35个编码小技巧,老司机带你飞!
- 固定定位小技巧(HTML、CSS)
- Linux系统下如何设置IP地址?
- JAVA在线看CAD图纸快速入门
- python开发桌面时钟_python+PyQT实现系统桌面时钟
- 学会Apache网页与安全的优化,让你的技术更加胜人一筹!(网页压缩与缓存、隐藏版本信息与配置防盗链)
- 赛微微电子通过注册:拟募资8亿 年营收3.4亿
- python画菱形的代码_python绘制菱形
- Python开发环境配置常见命令与错误处理
- WOT 2017会议嘉宾名单提前看!
- UOJ #455.【UER #8】雪灾与外卖 堆模拟费用流
- 2876: [Noi2012]骑行川藏 - BZOJ
- 美食地图-兵俤粉干店
- 焦虑经济衍生冥想生意,年轻人会为“放空”买单吗?
热门文章
- elasticsearch 官方文档一个小错误
- Wi-Fi Mesh协议(1)
- 使用百度云主机的GPU主机教程_第一部分
- 【Python】【小明爬楼梯】
- 计算机专业推山西新华电脑学校,青春启航,乘风破浪|山西新华电脑学校2021届毕业典礼完美落幕...
- Codeforces Round #127 (Div. 1) B. Guess That Car! 扫描线
- 秉火429笔记之十六 I2C--操作EEPROM
- mac 移动硬盘装linux系统安装教程,移动硬盘上安装Ubuntu系统
- sublime使用教程及快捷方式
- python根据文本生成词云图