/ecr3vis

An evolutionary algorithm framework for R (currently limited to performance assessment of multi-objective randomized search heuristics).

Primary LanguageCGNU General Public License v3.0GPL-3.0

ecr3vis: ecr3 visualization

Visit the package website.

NOTE: Under heavy development!!! 🚧
It is likely that ecr3vis will be merged/renamed into ecr3 in the course of development.

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Status R-CMD-check codecov CRAN_Status_Badge

Introduction

ecr3vis is the visualization module of ecr3 (under development). It offers a collection of functions for the visualization of results of randomized search heuristics. The focus is on multi-objective problems. The package includes 2d- and 3d-scatter-plots, parallel coordinate plots (PCP), heatmaps etc.

Example

In the following we demonstrate how to build a simple mutation-based EA to optimize the Pseudo-boolean function ONEMAX which counts the number of ones in a bistring of length n, i.e., the optimum is obviously the all-ones bit-string. We first define the fitness function that guides the evolutionary search.

library(ecr3vis)
library(tidyverse)

# import sample data-set
data(emoas_on_zdt)
tbl = filter(emoas_on_zdt, repl == 1L)

plot_scatter2d(tbl, colour = "algorithm")

# Add third objective
tbl$y3 = tbl$y2 + 1
plot_heatmap(tbl)
plot_radar(tbl[1:3, ])
plot_radar(tbl[1:3, ]) + facet_grid(. ~ nr)

Development Team

The package is a one-man project by Jakob Bossek at the moment of writing. However, the package interfaces some neat implementations of various other people (see DESCRIPTION file for details).

How to contribute?

You can contribute by identifing annoying bugs in the issue tracker. This is also the preferred place to ask questions and raise feature requests. Moreover, users can contribute even more by forking the ecr3vis repository, implementing feautures or bugfixes and raising a pull request.

Installation Instructions

The package will be available at CRAN when it is done. If you are interested in trying out and playing around with the current github developer version use the devtools package and type the following command in R:

remotes::install_github("jakobbossek/ecr3vis")

Getting help

Please address questions and missing features about the ecr3vis as weell as annoying bug reports in the issue tracker. Pay attention to explain your problem as good as possible. At its best you provide an example, so I can reproduce your problem quickly. Please avoid sending e-mails.

Related Software

There are many alternatives in both R and other languages. We list some examples in the following:

  • ecr Evolutionary Computation in R, short ecr, is the predecessor of ecrvis.
  • eaf R package with functions to plot Empirical Attainment Functions (EAF) and EAF-differences. In addition, the package offers various multi-objective performance indicators.
  • mco A R package with focus on the rapid implementation of multi-objective evolutionary algorithms only.
  • emoa Another R package with focus on the development of multi-objective evolutionary algorithms (same author as in mco).
  • GA R package with some building blocks for evoltionary algorithms. Also offers the possibility for island model EAs. However, restricted to standard representations and single-objective problems.
  • MaOEA: A set of evolutionary algorithms to solve many-objective optimization (i.e. problems with more than three objectives).
  • pymoo A quite new, yet comprehensive, Python library for evolutionary multi-objective optimization.
  • DEAP Another prominent and established Python framework on evolutionary computation with a wide range of functionality.