A MATLAB Optimization Platform for Education and Experimentation in Dynamic Environments
Git repository: DanialYazdani/EDOLAB: A MATLAB Platform for Evolutionary Dynamic Optimization
The current version is v1.00
# clone the project
git clone https://github.com/DanialYazdani/EDOLAB.git
-
Experimentation module
- Executing GUI.MLAPP or RunWithGUI.m in the root directory of EDOLAB
- Select Experiment tab
- Select an algorithm & benchmark
- Set the parameters [Dimension, Number of promising regions, Change Frequency, Shift Severity, Number of Environment, Run Number]
- Run the instance
-
Education module
-
Executing GUI.MLAPP or RunWithGUI.m in the root directory of EDOLAB
-
Select Educational tab
-
Select an algorithm & benchmark
-
Set the parameters [Number of promising regions, Change Frequency, Shift Severity, Number of Environment]
Please note that the education module is used for educational display, so the dimension fixed as 2
-
Run the instance
-
-
Open RunWithoutGUI.m in the root directory of EDOLAB
-
Set AlgorithmName and BenchmarkName
%% ********Selecting Algorithm & Benchmark******** AlgorithmName = 'psfNBC'; %Please input the name of algorithm (EADO) you want to run here (names are case sensitive). % The list of algorithms (EADOs) and some of their details can be found in Table 1 of the EDOLAB's paper. % The current version of EDOLAB includes the following algorithms (EADOs): % 'ACFPSO', 'AMPDE', 'AMPPSO', 'AmQSO', 'AMSO', 'CDE', 'CESO', 'CPSO', 'CPSOR' % 'DSPSO', 'DynDE', 'DynPopDE', 'FTMPSO', 'HmSO', 'IDSPSO', 'ImQSO' % 'mCMAES', 'mDE', 'mjDE', 'mQSO' , 'MSPSO', 'psfNBC', 'RPSO', 'TMIPSO' BenchmarkName = 'GMPB'; %Please input the name of benchmark you want to use here (names are case sensitive). % The current version of EDOLAB includes the following benchmark generators: 'MPB' , 'GMPB' , 'FPs'
-
Set Benchmark Parameters
%% ********Benchmark parameters and Run number******** PeakNumber = 10; %The default value is 10 ChangeFrequency = 5000;%The default value is 5000 Dimension = 5; %The default value is 5. It must be set to 2 for using Education module ShiftSeverity = 1; %The default value is 1 EnvironmentNumber = 100; %The default value is 100 RunNumber = 31; %It should be set to 31
The algorithm parameters need to be set in the user-defined algorithm directory
-
Set VisualizationOverOptimization
% For experimention module VisualizationOverOptimization = 0 % For education module VisualizationOverOptimization = 1
If VisualizationOverOptimization == 0, the experimentation module is activated, users can configure outputs bellow
-
Set OutputFigure
% No need for plot OutputFigure = 0 % Requires offline and current error plots as visualized outputs of the experiment OutputFigure = 1
-
Set GeneratingExcelFile
% No need for excel output GeneratingExcelFile = 0 % Requires an excel file containing output statistics and results GeneratingExcelFile = 1
-
Adding a benchmark generator
Assume that the user intends to add a new benchmark called ABC
-
Users need to create a new sub-folder in the Benchmark folder and name it ABC
-
Two functions named fitness_ABC.m and BenchmarkGenerator_ABC.m are then needed to be added into the ABC sub-folder.
users need to define and initialize all the parameters of the new benchmark in a structure named Problem in BenchmarkGenerator_ABC.m
the environmental parameters of all the environments need to be generated in BenchmarkGenerator_ABC.m
fitness_ABC.m will contain the code of ABC’s baseline function
-
-
Adding a performance indicator
- Users need to add the code that collects the required information in fitness.m and store it in Problem structure.
- the code for calculating the performance indicator needs to be added in section %% Performance indicator calculation of the main function of EDOA.
- the results of the newly added performance indicator must be added to the outputs in section %% Output preparation at the bottom of the main function of EDOA.
-
Adding an EDOA
- A sub-folder, which must be named similarly to the EDOA, needs to be created inside the Algorithm folder. Then, the functions of the new EDOA need to be added to this sub-folder.
- To run the new EDOA, it must be invoked by RunWithoutGUI.m. Thus, the user needs to consider the inputs and outputs of the main function of the EDOA when it is invoked by RunWithoutGUI.m.
- In the main function of the new EDOA, first, BenchmarkGenerator.m needs to be called for generating the problem instance.
- The code that generates and collects the information related to the education module needs to be added to the main loop of EDOA. This part of the code can be found in section %% Visualization for education module of the main function of EDOAs.
- Use fitness.m for evaluating fitness of solutions.
- To make the newly added EDOA accessible via EDOLAB, its main function file must be named as main_EDOA.m.
If you want to learn more about EDOLAB, please refer to Paper for more information
- EDOLAB via GUI requires MATLAB R2020b+.
- EDOLAB without GUI requires MATLAB R2016b+.
This program is to be used under the terms of the GNU General Public License
Copyright (c) 2022-present Danial Yazdani