Giter Site home page Giter Site logo

hellwigm / epsmages-empanalysis Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 387 KB

Matlab code of the algorithms and the associated experiments corresponding to the ACM TELO paper "Analyzing Design Principles for Competitive Evolution Strategies in Constrained Search Spaces"

License: MIT License

MATLAB 100.00%

epsmages-empanalysis's Introduction

epsMAgES-EmpAnalysis

Matlab code of the algorithms and the associated experiments corresponding to the ACM TELO paper "Analyzing Design Principles for Competitive Evolution Strategies in Constrained Search Spaces"

  1. Main algorithm REFERENCE:

Hellwig, Michael; Beyer, Hans-Georg, "A Matrix Adaptation Evolution Strategy for Constrained Real-Parameter Optimization", Proceedings of IEEE Conference on Evolutionary Computation (CEC 2018), IEEE Xplore, https://doi.org/10.1109/CEC.2018.8477950, 2018.

  1. NOTICE:

The epsMAg-ES code is made available for reproduction of reported results and testing. The use of the code is permitted subject to the condition of properly acknowledging this source (https://github.com/hellwigm/epsMAg-ES/) as well as citing the relevant papers.

  1. The epsMAg-ES and its variants:

The epsMAg-ES represents a novel Evolution Strategy for constrained optimization that combines the the recently suggested Matrix Adaptation Evolution Strategy (MA-ES) with successful constraint handling techniques from the field of Differential Evolution. Being applied to the benchmark problems specified for the CEC 2018 competition on constrained single objective real-parameter optimization, the algorithm is able to find feasible solutions on more than 80% of the benchmark problems with high accuracy.

  1. Notice:

This repository includes the benchmarking functions corresponding to the "CEC 2017/2018 competition on constrained single objective real-parameter optimization" that are openly available in the Githup repository https://github.com/P-N-Suganthan/CEC2017

  1. Content:

The pure epsMag-ES algorithm consists of the following modules:

  • epsMAgES.m - Main component of the epsMAg-ES algorithm (based on the MA-ES) and six related algorithm variants

    • epsMAES.m -- variant omitting the Jacobian-based repair step
    • epsMAgESnl.m -- variant w/o mutation strength limitation
    • epsMAgESwo.m -- variant omitting the back-calculation
    • epsSAgES.m -- variant omitting the transformation matrix update
    • lexMAgES.m -- variant disregarding the epsilon-level ordering
    • lexMAES.m -- variant disregarding the epsilon-level ordering and the Jacobian-based repair
  • eps_sort.m - Sorting routine for ranking candidate solutions w.r.t. the epsilon-level ordering (setting epsilon to zero results in a lexicographic ordering)

  • eps_rank.m - Subroutine of eps_sort

  • lex_sort.m - Sorting routine for ranking candidate solutions w.r.t. the lexicographic ordering

  • lex_rank.m - Subroutine of eps_sort

  • keep_range.m - Box-constraint handling method (reflection into the box)

  • gradientMutation.m - Implementation of the gradient-based repair step

    The additional files correspond to the benchmark suite the algorithm was first tested on. The files are included within this repository to provide a demonstration in a running environment. NOTICE: The file Main_epsMAgES.m includes the standard strategy parameter recommendations in the structure array input.

  • Main_Experiment.m - Executable for running the seven epsMAg-ES algorithm variants on the constrained CEC 2017 benchmarking problems

    • For each algorithm variant, the script will build a single folder that includes one mat-file per constrained problems.
      • In total, 28 mat-files will be generated in each dimension.
      • A mat-file contains information about the dynamical algorithm behavior as well as the corresoponding statistical performance results.
  • build_stats.m - Postprocessing routine that builds the statistcs to be reported to the CEC 2017 and 2018 competition

  • CEC2017.m - Constrained functions specified for the CEC 2017 and 2018 competitions

    • Accompanied with several problem definition files ('Function1.mat' to Function 11.mat', and 'ShiftAndRotation.mat')
  1. Description:

Each algortihm vaiants accepts the following inputs:

  • problem - Matlab structure array that includes a description of the problem

    • problem.constr_fun_name -- Name of the constrained function to be executed,
    • problem.lb -- vector of the lower parameter vector bounds,
    • problem.ub -- vector of the upper parameter vector bounds,
    • problem.gn -- Number of inequality constraints,
    • problem.hn -- Number of equality constraints.
      "The latter two being needed for the CEC benchmark specific approach for normalizing the constraint violation."
  • input - Matlab structure array specifying all necessary strategy parameters of the algorithm (population sizes, initial mutation strength, learning rates, etc.)

  • CEC_fun_o - CEC benchmark specific; some modifications will be necessary to run the algorithm on your own problems

For further details refer to the file Main_epsMAgES.m or to the paper.

During execution, epsMAg-ES.m repeatedly calls up the subroutines

eps_sort.m, eps_rank.m,
keep_range.m,
gradientMutation.m,

that do not need to be individually configured.

The epsMAg-ES produces the following outputs:

  • out - Array of CEC benchmark specific content. Can be omitted in a different context.
  • global_best - Structure array containing information of the best candidate solution observed during the algorithm run.
  • dyn - Cell array providing information of strategy specific dynamics logged during the run. Capturing these data might be ommitted to reduce execution time.
  1. Post-processing:

The subfolder PostProcessing contains the Matlab scripts used to produce the tables and figures displayed in the submitted paper.

  • build table Builds a table (and a corresponding csv-file) of the performace statistics in the style of the CEC2017 constrained benchmark guidelines, c.f. Table 17 in the suplementary material.
  • plotDyn Creates the plots for comparison of mean dynamics obtained by averaging over all 25 runs
  • plotDynMedian Creates the plots for comparison of the median algorithm dynamics in Section 5, e.g. Figures 2 and 3
  • WSRTest_MedianMeanRanking Ranks the algorithm variants according to the median and mean performance indicators. This ranking is additionally supported by significance testing (Wilcoxon Signed Rank test), e.g. refer to the Tables in Section 4.
  • WSRTest_TotalRanking Aggregates the median and mean ranking and adds the realtive runnng times in case of insignificant differences of two algorithms realizations

epsmages-empanalysis's People

Contributors

hellwigm avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.