MOEA/D算法的自己的一些理解
2016-03-30 02:06
330 查看
最近在准备新的paper,当然了对目前的Many objective optimization algorithms的review是必不可少的。MOEA/D是比较经典的算法,看起来觉得简单,其实真正理解起来并不简单。我大概主要说一下吧。
1:如果把N个目标使用加权的方法加起来变成一个标量的优化问题,可以知道,这个标量的优化解肯定是原问题的优化解。但是有一个问题就是,这种方法无法找到一个比较均匀分布的满足diversity的一组解,那怕是使用一组均匀分布的vector来加起来这些N个目标。
2:其实MOEA/D也是这种分解的思路,但是不是这种简单的就把问题给加起来了,而是使用切比雪夫不等式(这个里面涉及到参考点,参考点说来话长,但是这个地方只是简单的说一下流程,所以不展开说了)。简单来说就是给出一组均匀分布的vector,找到距离每个vector最近的那个solution。此时基本上满足了diversity的要求。
3:接着在这个solution的附近使用一些方法产生一些好的offspring,其中有一点就是产生这个offspring的parents是来自该solution对应的vectors所属的solution。
4:判断新产生的solution是否好,好的话就取代之前的solution并且更新参考点。
以至于跑完整个流程。。。
1:如果把N个目标使用加权的方法加起来变成一个标量的优化问题,可以知道,这个标量的优化解肯定是原问题的优化解。但是有一个问题就是,这种方法无法找到一个比较均匀分布的满足diversity的一组解,那怕是使用一组均匀分布的vector来加起来这些N个目标。
2:其实MOEA/D也是这种分解的思路,但是不是这种简单的就把问题给加起来了,而是使用切比雪夫不等式(这个里面涉及到参考点,参考点说来话长,但是这个地方只是简单的说一下流程,所以不展开说了)。简单来说就是给出一组均匀分布的vector,找到距离每个vector最近的那个solution。此时基本上满足了diversity的要求。
3:接着在这个solution的附近使用一些方法产生一些好的offspring,其中有一点就是产生这个offspring的parents是来自该solution对应的vectors所属的solution。
4:判断新产生的solution是否好,好的话就取代之前的solution并且更新参考点。
以至于跑完整个流程。。。
相关文章推荐
- 未来的手机(或手持设备)运算能力会比天河二号强多了。
- 怎样创建一个xcode插件 第2部分/3部分
- Scrum 简介
- HTTP/HTTPS抓包工具Charles
- Linux---centos安装配置并挂载NFS
- springmvc请求参数获取的几种方法
- 堆叠顺序的误区和z-index
- QT12 How to open a new window after successful Login
- dat多重调用bat与powershell
- Linux Shell 管道命令(pipe)的使用
- Uiautomator 2.0之UiWatcher类学习小记
- LeetCode Rectangle Area
- [POJ 3278]Catch That Cow[BFS]
- TabLayout+ViewPager+Fragment实现底部导航
- springmvc之url参数传递
- mac 终端启动 jboss 停留在(Starting) 不能启动joss
- QT11 How to set image with QLabel in Qt
- LeetCode 19 Remove Nth Node From End of List
- 用1,2,3…9组成3个三位数abc, def, ghi, 每个数字恰好使用一次,且abc:def:ghi=1:2:3,输出所有解。 用1,2,3…9组成3个三位数abc, def, ghi, 每个数
- LeetCode Binary Tree Vertical Order Traversal