一种基于分解的多目标优化算法:MOEA/D

实验目的

本次实验以测试函数ZDT1为例,用MOEA/D算法得到最佳帕累托解集。

帕累托解

在约束空间之内,再也找不到比解A更好的解了,那么A就是其中一个帕累托最优解。

ZDT1测试函数

是一个两目标问题,其函数如下:
在这里插入图片描述

MOEA/D算法思想

MOEA/D是一种基于分解的多目标进化算法,它将多目标优化问题转化为一系列单目标优化子问题,然后利用一定数量相邻问题的信息,采用进化算法对这些子问题同时进行优化。由于分解操作的存在,该方法在保持解的分布性方面有着很大优势,而通过分析相邻问题的信息来优化,能避免陷入局部最优。
本文MOEA/D采用的分解策略:切比雪夫法。

下边简述一下相关基本概念,不懂概念可以暂时有个印象,本文着重写算法过程,建议根据算法进行理解,另外,由于以下部分涉及公式较多,本人在word写的,为防止乱码,故截图。

切比雪夫法

在这里插入图片描述

算法大体框架

在这里插入图片描述

用MOEA/D算法解决测试问题:

在这里插入图片描述
在这里插入图片描述
权重向量weights矩阵如下,每个种群的距离可对权重向量借助欧式距离得出。
在这里插入图片描述
distance是得出的距离矩阵:
在这里插入图片描述
对于101个种群来讲,每一个种群都有离它距离最近的T个邻居,而neighbour存的便是离每个种群最近的种群编号!!!
在这里插入图片描述
随机生成种群chrom矩阵,1个种群,30个自变量,故101x30,由于自变量均在[0,1]之间,所以矩阵值均在[0,1]之间。
在这里插入图片描述
而将每个种群的自变量代入ZDT1函数便可得到目标函数1即f1(x)和目标函数2即f2(x):如下为目标矩阵obj
在这里插入图片描述
z矩阵是拿到每个目标函数的最小值:
在这里插入图片描述
在这里插入图片描述
以对当前种群(oldpoint种群)进行操作为例:
在这里插入图片描述
randarray为随机生成的1xV矩阵,且值在[0,1],可以看到如果randarray对应值<变异率,则在select中设为1,否则置0
在这里插入图片描述
在这里插入图片描述
再对select为1的自变量值进行变异,结果就在oldpoint种群的基础上得到了新种群newpoint:
在这里插入图片描述
在这里插入图片描述
因为得到的新种群有可能自变量值超过[0,1],所以将不合法的值替换为边界值。
在这里插入图片描述
这里用正太分布产生的随机值矩阵可由以下函数得到:
newparam = min(max(normrnd(newpoint,sigma),min_range),max_range);
在这里插入图片描述
这里切比雪夫聚合即由切比雪夫函数计算结果即可。
在这里插入图片描述
这里得到了由切比雪夫法分解策略得到的ZDT1函数帕累托解集。
在这里插入图片描述

最后代码在本人上传的资源里,基本每行都有注释!https://download.csdn.net/download/qq_42517365/12314175

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值