Source-linked AI summary

PlatEMO: A MATLAB Platform for Evolutionary Multi-Objective Optimization

Ye Tian, Ran Cheng, Xingyi Zhang, Yaochu Jin

arXiv:1701.00879v1cs.NE

TL;DR

Researchers lack an up-to-date, comprehensive platform for benchmarking and applying multi-objective evolutionary algorithms, especially when source code is unavailable. The paper introduces PlatEMO, an open-source MATLAB platform with broad algorithm and problem libraries, performance indicators, and GUI-based experimentation. Its current version includes 50 algorithms and 110 test problems, while supporting rapid experiments and extension with new components.

  • Problem

    Researchers lack an up-to-date, comprehensive platform for benchmarking and applying MOEAs, and source code for many proposed algorithms is unavailable.

  • Method

    The paper develops PlatEMO, an open-source MATLAB platform combining MOEAs, test problems, performance indicators, GUI experimentation, and extension interfaces.

  • Results

    PlatEMO includes 50 multi-objective optimization algorithms and 110 multi-objective test problems, with GUI support for experiments without additional code.

  • Takeaways & Limitations

    Users can quickly perform comparative experiments and extend PlatEMO with new MOEAs, MOPs, and operators.

Abstract

from arXiv · show

Over the last three decades, a large number of evolutionary algorithms have been developed for solving multiobjective optimization problems. However, there lacks an up-to-date and comprehensive software platform for researchers to properly benchmark existing algorithms and for practitioners to apply selected algorithms to solve their real-world problems. The demand of such a common tool becomes even more urgent, when the source code of many proposed algorithms has not been made publicly available. To address these issues, we have developed a MATLAB platform for evolutionary multi-objective optimization in this paper, called PlatEMO, which includes more than 50 multi-objective evolutionary algorithms and more than 100 multi-objective test problems, along with several widely used performance indicators. With a user-friendly graphical user interface, PlatEMO enables users to easily compare several evolutionary algorithms at one time and collect statistical results in Excel or LaTeX files. More importantly, PlatEMO is completely open source, such that users are able to develop new algorithms on the basis of it. This paper introduces the main features of PlatEMO and illustrates how to use it for performing comparative experiments, embedding new algorithms, creating new test problems, and developing performance indicators. Source code of PlatEMO is now available at: http://bimk.ahu.edu.cn/index.php?s=/Index/Software/index.html.

I. INTRODUCTION

PlatEMO addresses difficulties in applying and benchmarking multi-objective evolutionary algorithms by providing a current, comprehensive MATLAB platform. It combines broad algorithm and problem libraries with GUI-based experimentation, open-source extensibility, and implementation features intended to improve usability and efficiency.

  • Existing MOEA libraries often contain outdated algorithms and lack professional GUI support for experimental settings and configurations.
  • PlatEMO includes 50 popular MOEAs spanning genetic algorithms, differential evolution, particle swarm optimization, memetic algorithms, and estimation of distribution algorithms.
  • 110 multi-objective optimization problems from 16 popular test suites and performance indicators including Coverage, GD, HV, IGD, NHV, PD, Spacing, and Spread support experimental studies.
  • PlatEMO’s MATLAB implementation provides a user-friendly GUI for configuring experiments, comparing algorithms, and exporting statistical results as Excel or LaTeX tables.
  • Open-source MOEAs, MOPs, and operators, together with short MATLAB code and provided interfaces, let users implement and contribute new components.
  • PlatEMO uses ENS-SS for two-objective optimization and T-ENS for problems with more than two objectives, approaches demonstrated as more efficient than fast non-dominated sorting.

II. ARCHITECTURE OF PLATEMO

PlatEMO organizes algorithms, problems, operators, metrics, shared classes, and GUI functions into a modular MATLAB architecture. Its GLOBAL and INDIVIDUAL classes connect components while keeping algorithms, problems, and operators independently combinable.

  • File structure: PlatEMO’s root directory contains six folders and the main.m interface, separating algorithms, problems, operators, metrics, shared code, and GUI functions.The Algorithms folder stores MOEAs; Problems stores benchmark MOPs; Operators and Metrics store operators and performance indicators; Public stores shared classes; GUI stores interface functions.
  • Class architecture: The architecture uses two classes, GLOBAL and INDIVIDUAL, to store parameters and individuals and connect MOEAs, MOPs, and operators.GLOBAL stores environment settings and provides methods such as Initialization() and Variation(), while INDIVIDUAL objects represent MOEA individuals.
  • Class architecture: GLOBAL stores read-only handles and settings, including population size, objective count, decision-variable length, and maximum fitness evaluations.Its methods let MOEAs generate initial populations and offspring without directly managing these operations.
  • Class architecture: INDIVIDUAL stores read-only decision, objective, constraint, and additional properties, with objective and constraint values calculated after decision variables are assigned.The additional-property field supports specialized operators, such as PSO’s speed property.
  • Execution sequence: During execution, main.m invokes an MOEA, which initializes individuals, repeatedly selects parents, generates and evaluates offspring, performs environmental selection, and stops at the evaluation limit.GLOBAL passes parents to operators, operators instantiate INDIVIDUAL objects, and problem functions calculate offspring objective values.
  • Modularity: Because algorithms, problems, and operators communicate through GLOBAL and INDIVIDUAL rather than directly, they can be independently combined and new MOEAs need not handle component details.The paper identifies this separation as improving flexibility and development efficiency.

III. RUNNING PLATEMO

PlatEMO supports both GUI-based and non-GUI execution. Users can run multiobjective algorithms through one-click GUI operations or invoke main() with input parameters.

  • Execution modes: PlatEMO can run with a GUI, where users perform MOEAs on MOPs through simple one-click operations.The GUI is opened by invoking main() without input parameters.
  • Execution modes: PlatEMO can also run without a GUI, allowing users to perform one MOEA on one MOP by invoking main() with input parameters.The paper elaborates both execution modes in this section.

A. Running PlatEMO without GUI

Non-GUI execution uses main() with named parameters for algorithm, problem, population, objectives, decision variables, evaluations, and output behavior. Additional algorithm-, problem-, or operator-specific settings may also be supplied.

  • Interface parameters: Users invoke main() with name–value arguments, such as algorithm, problem, population size, objective number, decision-variable length, and maximum evaluations.The paper gives an NSGA-II-on-DTLZ2 example using N=100, M=3, D=10, and 10000 maximum fitness evaluations.
  • Interface parameters: Every acceptable interface parameter has a data type and default value, so users need not assign all parameters.The acceptable parameters are listed in Table III.
  • Execution output: The non-GUI workflow can display the final population after the MOEA terminates, while Fig. 5 illustrates NSGA-II results on DTLZ2 with three objectives.The displayed objective values depend on the selected figure.
  • Output modes: The -mode parameter determines whether the final population is displayed or saved.Mode 1 displays objective or decision-variable values and can show the Pareto front and indicator trajectories; mode 2 saves the final population in a .mat file without displaying a figure.
  • Additional settings: Additional settings are available because different MOEAs, MOPs, and operators may require function-related parameters.Examples include KnEA’s knee-point selection rate and EAreal’s crossover and mutation parameters.

also be assigned by users via assigning the parameter -X

Users can assign additional function-related parameters through the -X parameter, where X identifies the target function. Examples show scalar and grouped settings for KnEA and EAreal.

  • Function-specific parameters: The -X parameter assigns function-specific settings, with X indicating the name of the function.This extends the general main() name–value interface for algorithm-, problem-, or operator-specific options.
  • Examples: KnEA accepts a rate setting for the ratio of selected knee points, illustrated with a value of 0.5.The paper shows this through a command using the KnEA-specific parameter.
  • Examples: EAreal accepts proC, disC, proM, and disM values, illustrated by the grouped setting {1,20,1,20}.These parameters represent crossover probability, simulated-binary-crossover distribution index, mutation bits, and polynomial-mutation distribution index.

B. Running PlatEMO with GUI

PlatEMO's GUI provides separate modules for inspecting optimization runs and conducting statistical experiments. Users can configure multiple algorithms and problems, inspect results, apply indicators, and export tables.

  • Test module: The GUI contains a test module for selecting an MOEA, MOP, and operator, setting parameters, and viewing optimization results.Users can inspect populations, Pareto fronts, evolutionary trajectories, indicator values, and previous generations.
  • Experimental module: The experimental module supports running multiple MOEAs on batches of MOPs and displaying statistical results.Users select algorithms, problems, operators, run counts, output folders, and performance indicators before starting experiments.
  • Experimental module: Results tables report means and standard deviations, identify the best result in each row, and mark Wilcoxon comparisons as significantly better, significantly worse, or statistically similar.The symbols '+', '−', and '≈' correspond to these three comparison outcomes relative to the control column.
  • Experimental module: Experimental results can be saved automatically as Excel (.xlsx) or LaTeX (.tex) tables.The paper illustrates LaTeX export using the results shown in Fig. 7 and Table IV.
  • Module organization: PlatEMO's functions are modularized into test and experimental modules, with additional modules planned for future versions.The experimental module is designed for statistical experiments, while the test module provides interactive result demonstrations.

IV. EXTENDING PLATEMO

PlatEMO is an open platform that allows users to extend its library with their own optimization components. New components are added as MATLAB functions following specified interfaces and folder conventions.

  • Platform extensibility: Users can add their own MOEAs, MOPs, operators, and performance indicators to PlatEMO.The platform is intended to support scientific research and applications of evolutionary multi-objective optimization.
  • Extension procedure: Each new component must be saved as a MATLAB .m file with the specified interface and form in its corresponding folder.The paper illustrates extensions for a new MOEA, MOP, operator, and performance indicator.

A. Adding New Algorithms to PlatEMO

Adding an algorithm requires placing its MATLAB files in the Algorithms directory and implementing the common interaction with PlatEMO's GLOBAL object. Algorithm-specific logic can then be added around these shared operations.

  • File organization: MOEA files are stored in the root Algorithms folder, with files for the same algorithm placed in a dedicated subfolder.The NSGA-II example contains NSGAII.m, CrowdingDistance.m, and EnvironmentalSelection.m in Algorithms\NSGA-II.
  • MOEA interface: An MOEA function receives the GLOBAL object, initializes a population, evolves it until termination, and returns the final population.The example sequence includes initialization, objective and distance calculations, termination checking, mating-pool selection, offspring generation, and environmental selection.
  • Common operations: The common MOEA interface requires Global.Initialization(), Global.NotTermination(), and Global.Variation().These GLOBAL methods respectively provide initialization, optimization-state checking with final output, and offspring generation.
  • Algorithm-specific logic: Beyond the shared operations, different MOEAs may invoke different functions and implement different internal logic.The NSGA-II source code illustrates this common interface together with algorithm-specific processing.

B. Adding New Problems to PlatEMO

New problems, operators, and performance indicators are implemented as MATLAB functions with defined interfaces. PlatEMO's examples show how problems expose initialization, evaluation, and Pareto-front operations, while operators and indicators process populations through concise functions.

  • Problem organization: MOP functions are stored in Problems, and one .m file usually represents one multi-objective problem.The DTLZ2 example demonstrates the common MOP code required by the platform.
  • MOP interface: An MOP function uses Operation, Global, and input parameters, with output meanings determined by the selected operation.Unlike MOEA functions invoked once per run, an MOP may be invoked repeatedly for different operations.
  • MOP operations: The init operation generates random decision variables and sets default objectives, dimensions, bounds, and operator settings.The relevant GLOBAL fields are M, D, lower, upper, and operator.
  • MOP operations: The value operation evaluates objective and constraint values from decision variables, while PF samples uniformly distributed reference points on the true Pareto front.These operations correspond to population evaluation and reference-front generation.
  • Operators: Operator functions receive GLOBAL and Parent parameters and return generated Offspring after applying variation procedures.The binary-coded example performs single-point crossover followed by bitwise mutation before constructing offspring objects.
  • Performance indicators: IGD receives population objective values and reference points, then returns an IGD score based on mean minimal distances.MATLAB's pdist2() performs the distance calculation in the illustrated implementation.

D. Adding Acceptable Parameters for New Functions

PlatEMO uses structured comments and parameter-setting conventions so new MOEA, MOP, operator, and performance-indicator functions can expose configurable parameters through the GUI or command line.

  • Parameter declaration: Function-header comments must follow a specified form for PlatEMO to accept parameters for MOEA, MOP, operator, or performance-indicator functions.The comments identify the function, briefly introduce it, and document parameter names, defaults, and descriptions.
  • Parameter declaration: Parameter comments list each parameter name, default value, and introduction in separate columns.The parameters proC, disC, proM, and disM are used as an example.
  • Parameter assignment: Global.ParameterSet() makes documented parameters assignable by taking default values as inputs and returning the resulting settings.Unassigned parameters retain their defaults, while user assignments replace them.
  • Parameter assignment: Users can assign parameters through main(...,'-Xparameter',{...},...) or through the GUI, with X denoting the function name.The parameters proC, disC, proM, and disM are then set to the supplied values a, b, c, and d, respectively.

V. CONCLUSION AND FUTURE WORK

PlatEMO is presented as an open-source MATLAB platform with broad algorithm and problem coverage, a simple extensible architecture, and a GUI that supports rapid experimentation. The paper also documents how to run the platform and extend it with new algorithms, problems, operators, and performance indicators, while future work targets additional algorithms, problems, and optimization modules.

  • Conclusion: PlatEMO is an open-source MATLAB platform containing 50 multi-objective optimization algorithms and 110 multi-objective test problems.The paper states that this coverage includes the majority of state-of-the-art methods.
  • Conclusion: A light architecture with simple relations between objects makes PlatEMO easy to use and extend.The conclusion identifies this architecture as a central platform property.
  • Conclusion: PlatEMO’s user-friendly GUI and experimental module let engineers and researchers run experiments quickly without writing additional code.The GUI is presented as a practical interface for experimental use.
  • Conclusion: The paper describes running PlatEMO with and without the GUI and explains how to add algorithms, problems, operators, and performance indicators through examples.These examples cover both platform use and platform extension.
  • Future work: Future development will add more effective algorithms, new problems, and modules for preference, dynamic, and noisy optimization.The authors also invite peers to help improve the platform’s functionality and usability.
Loading 1701.00879v1…