下载:在github中,搜索PlatEMO,找到 v2.9版本
基本使用简介
PlatEMO
中有七个文件夹和一个main.m文件,如图所示
-
main.m:PlatEMO的唯一接口,调用这个函数来运行平台(可以在控制台上直接敲上main,回车即
-
Algorithms:用于存储所有MOEAs的源代码。
-
GUI:用于存储代码以建立PlatEMO的GUI。
-
Metrics:用于存储所有性能指标的源代码。
-
Operators:用于存储所有操作符的源代码。
-
Problems:用于存储所有MOPs的源代码。
-
Public:用于存储公共类和实用程序函数。
可视化界面操作
运行main.m
文件后会出现一个可视化界面,如图所示(下面会有两个界面,一个是测试模块,另一个是实验模块)
-
测试模块
- A区域:
选择需要执行的MOEA和MOP。
- B区域:
设置选择的MOEA和MOP参数。每个参数的值应该是一个标量。注意,这里将常用参数N、M、D和evaluation作为MOP的参数。如果将参数设置为空,则该参数将等于其默认值。
- C区域:
根据当前的配置来执行MOEA。
- D区域:
显示光标正在移动的区域B中的参数的介绍。
- E区域:
在优化过程中显示当前的种群。
- F区域:
放大、缩小、平移或旋转区域E中的轴。
- G区域:
在一个新的标准MATLAB图中打开E区域中的轴,这样就可以在轴上执行更多的操作,例如保存轴。
- H区域:
选择区域E中要显示在轴上的数据,包括 种群的帕累托前,种群的帕累托集合,真正的帕累托 前面的MOP,以及任何性能指标的收敛轮廓。
- I区域:
控制优化过程,即启动、暂停、停止、后退、向前。
- J区域:
显示其中一个历史结果。
- K区域:
显示结果的最终总体的性能指标值。
- L区域:
显示执行过程的详细信息。
- A区域:
-
实验模块
- A区域:
选择多个要执行的MOEA和MOP。
- B区域:
设置所选MOEAs和MOPs的参数。请注意,MOP中每个参数的值可以是一个向量,因此MOEAs可以在具有不同设置的相同MOP上执行。
- C区域:
设置在每个文件中保存的种群数。例如,如果种群数量为5,评估次数为20000,则将保存当评估次数为4000、8000、12000、16000和20000时获得的种群。
- D区域:
设置每个MOP上的每个MOEA的运行次数。
- E区域:
设置要保存实验设置的文件路径。用户还可以打开一个现有的配置文件来加载实验设置。所有的结果都将被保存到该文件路径的同一个文件夹中。
- F区域:
按顺序或并行地进行实验。
- G区域:
显示实验的统计结果。
- H区域:
指定要在表中显示的数据的类型。
- I区域:
将表保存为Excel或LaTeX格式。
- J区域:
选择要在表中显示的数据,包括最终总体的任何性能度量值。
- K区域:
控制优化过程,即启动、暂停和停止
- L区域:
右键单击一个单元格,以显示总体的帕累托前面、总体的帕累托集合或度量值的收敛轮廓。
- A区域:
使用命令行操作
用户可以通过调用具有输入参数的main()
来运行PlatEMO的命令模式。main()
的所有可接受的参数均列于表1中。请注意,用户不需要分配所有的参数,因为每个参数都有一个默认值。
-algorithm
.:要执行的MOEA的函数。-problem
: 待解决的MOP。-N
:MOEA的种群规模。注意,它被固定在某些MOEAs(例如MOEA/D .m
)中的某些特定值上,因此这些MOEAs的实际种群大小可能并不完全等于这个参数。-M
: MOP的目标数目。注意,在不可伸缩的MOPs(例如ZDT1.m
)中,目标的数量是恒定的,因此这个参数对于这些MOPs是无效的。-D
.:MOP决策变量的个数。注意,在某些MOP中,决策变量的数量是常量或固定到某些特定整数上的(例如:ZDT5.m
),因此决策变量的实际数量可能并不完全等于这个参数。-evaluation
: 函数评价的最大数目。-run
: 运行数。如果用户希望为相同的算法、问题、M和D参数保存多个结果,则在每次运行时修改此参数,使结果的文件名不同。-save
:保存的种群。如果将该参数设置为0(默认值),则会在终止后显示结果图;否则,在进化过程中获得的种群将保存在一个名为的文件中Data\algorithm\algorithm_problem_M_D_run.mat
。例如:如果save为5并且evaluation
是20000,评价数量为4000、8000、12000、16000、20000时得到的种群将被保存。-outputFcn
: 每次生成后调用的函数,通常不需要修改。
下面是用命令行操作的例子:
使用以下命令在种群规模分别为200和10个目标的WFG1上运行RVEA,并将显示最终结果:
1.main('-algorithm',@RVEA,'-problem',@WFG1,'-N',200,'-M',10);
使用以下命令在WFG2上运行KnEA,并设置KnEA和WFG2中设置参数:
1.main('-algorithm',{@KnEA,0.4},'-problem',{@WFG2,6});
每个MOEA和MOP的具体参数可以在相应函数头部的注释中找到。使用以下命令在DTLZ5上运行AR-MOEA10次,并保存最终的填充:
1. for r = 1 : 10
2. main('-algorithm',@ARMOEA,'-problem',@DTLZ5,'-save',1,
'-run',r);
3. end
本人的表述如果有误,欢迎批评指正