小白入门PlatEMO(基于MATLAB的进化多目标优化平台)+platEMO3.0版本更新

⼩⽩⼊门PlatEMO(基于MATLAB的进化多⽬标优化平台)+platEMO3.0版本更
包袱抖不完
⽂章⽬录
相信⼤家点开这篇⽂章,应该也或多或少知道PlatEMO这个平台,PlatEMO现在也逐步成为学习多⽬标优化⽅向的baseline,在这个平台更⽅便、更便捷,也能够同时对其他算法进⾏对⽐。基于⽬前实验任务,现在需要熟悉PlatEMO这个平台,并想要把实际研究问题进⾏运⽤,现在先简要介绍⼀下PlatEMO这个MATLAB平台。
PlatEMO 简介
PlatEMO是由⽥野等学者共同开发的基于MATLAB多⽬标进化平台,主要优点:
100+开源进化算法
200+开源多⽬标测试问题
强⼤的图形⽤户界⾯,可并⾏执⾏实验
通过⼀键操作⽣成Excel或LaTeX表格格式的结果
将继续包含最先进的算法
包含了50种多⽬标优化算法,110个多⽬标优化问题。
越明年
显⽰了PlatEMO在⼀些具有3个⽬标的MOP的帕累托最优前沿上采样的参考点,⽽其他任何现有的EMO库都没有提供这样的参考点。
同时也跟现有的5个库进⾏对⽐
PlatEMO提供了多种不同类型的MOEA和MOPS,其中MOEA的类型包括遗传算法、差分算法、粒⼦优化算法、模因算法、分布估计算法、代理辅助进化算法以及多⽬标、多⽬标、组合、⼤规模和昂贵的MOPS优化问题。
竹塑PlatEMO体系结构
⽂件介绍
PlatEMO根⽬录下有六个⽂件夹和⼀个接⼝函数main.m。
\Algorithms:⽤于存储PlatEMO中的所有MOEA,其中每个MOEA都有⼀个独⽴⼦⽂件夹,所有相关功能都在其中。如上图可以看到,⼦⽂件夹\Algorithms\NSGA-II包含三个函数NSGAi.m
CrowdingDistance.m和Environment-Selection.m,它们分别⽤于执⾏主循环、计算拥挤距离和执⾏NSGA-II的环境选择。
\Problems:包含许多⽤于存储基准MOPS的⼦⽂件夹。如上图可以看到,⼦⽂件Problems\DTLZ包含15个DTLZ测试问题.
\Operators:存储所有运算符
\Metrics:性能指标惯性力矩
\Public:⽤于存储⼀些公共类和函数,如GLOBAL.m和INDIVIDUAL.m,这是PlatEMO中的两个类,分别表⽰参数设置和个⼈定义。
\GUI存放了创建PlatEMO图形⽤户界⾯的所有功能,⽤户⽆需阅读或修改。
体系结构
PlatEMO也有⼀个简单的体系结构,它只涉及两个类,即全局类GLOBAL和个体类INDIVDUAL,⽤于存储所有参数并连接所有组件(例如MOEA、MOPS和操作符)。
所有算法函数的统⼀接⼝。
GLOBAL:表⽰所有的参数设置,包括MOEA函数算法的处理、MOP函数问题的处理、算⼦函数操作符的处理以及与环境有关的其他参数(种⼤⼩、⽬标数量、决策变量的长度、适应度评估的最⼤次数等)。例如:⽅法Initialization()可以⽣成指定⼤⼩的随机初始种,⽅法Variation()可以⽣成⼀组具有指定⽗代的⼦代。
INDIVDUAL:它的对象完全是MOEA中的个体,单个对象包含四个属性,即dec、obj、con和add,dec是单个对象的决策变量数组,是在实例化对象时分配的。obj和con分别存储在分配了dec之后计算的个体的⽬标值和约束值。属性add⽤于存储某些特殊操作符的个体的附加属性。
PlatEMO运⾏原理
在没有图形⽤户界⾯的情况下,PlatEMO运⾏MOEA的顺序图。
我不是郭靖
1. 接⼝main.m⾸先调⽤算法函数(例如,NSGAI.m),
2. 该算法通过调⽤其⽅法Initialization()从全局对象获得初始种(即,单个对象的数组)。
3. 算法开始进化,直到满⾜终⽌准则,其中以适应度评估的最⼤次数作为PlatEMO中所有MOEA的终⽌准则。
析氢腐蚀4. 在⼀般MOEA的每⼀代中,执⾏交配池选择,以便从当前种中选择⼀定数量的⽗代,然后使⽤这些⽗代通过调⽤全局对象的⽅法
Variation()来⽣成后代。
5. Variation()将⽗代传递给运算符函数(例如,dem),该函数⽤于根据⽗代计算⼦代的决策变量。
6. 操作符函数调⽤单个类来实例化⼦代对象,其中⼦代的⽬标值是通过调⽤问题函数(例如,DTLZ1.m)来计算的。
7. 该算法在得到⼦代后,对当前种和⼦代进⾏环境选择,为下⼀代选择种。
8. 当实例化的个体对象数量超过适应度评估的最⼤数量时,算法将终⽌,并输出最终种。
下载+运⾏PlatEMO
下载
运⾏PlatEMO
PlatEMO提供了两种运⾏⽅式:
1. 是在没有输⼊参数的情况下调⽤main()接⼝,就可以在图形⽤户界⾯上运⾏,然后⽤户可以通过简单的⼀键操作对拖把执⾏MOEA;
(without GUI)
2. 是可以在没有图形⽤户界⾯的情况下运⾏,⽤户可以通过带输⼊参数的main()调⽤main()在拖把上执⾏⼀次MOEA。(GUI)
命令模式

本文发布于:2024-09-21 19:34:56,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/53831.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:算法   对象   函数   户界   问题
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议