The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

MOEADr package

Build Status CRAN_Status_Badge CRAN Downloads


Felipe Campelo Department of Computer Science
Aston University
Birmingham, UK

Lucas Batista
Operations Research and Complex Systems Laboratory - ORCS Lab
Universidade Federal de Minas Gerais
Belo Horizonte, Brazil

Claus Aranha
Faculty of Engineering, Information and Systems
University of Tsukuba
Tsukuba, Japan


R package containing a component-based, modular implementation of the Multiobjective Evolutionary Algorithm with Decomposition (MOEA/D) framework.

The MOEA/D framework is seen as a combination of specific design decisions regarding several independent modules:

This package provides several options for each module, as explained in the documentation of its main function, MOEADr::moead(). The input structure of this function is also explained in its documentation. More details on the component-based approach behind the MOEADr package are available in our paper, The MOEADr Package - A Component-Based Framework for Multiobjective Evolutionary Algorithms Based on Decomposition, available on the ArXiv: https://arxiv.org/abs/1807.06731.

To install the current release version in your system, simply use:

install.packages("MOEADr")

For the most up-to-date development version, install the github version using:

# install.packages("devtools")
devtools::install_github("fcampelo/MOEADr")

Example

As a simple example, we can reproduce the original MOEA/D (Zhang and Li, 2007) and run it on a 30-variable ZDT1 function:

 ## 1: prepare test problem
 library(smoof)
 ZDT1 <- make_vectorized_smoof(prob.name  = "ZDT1",
                               dimensions = 30)

 ## 2: set input parameters
 problem   <- list(name       = "ZDT1",
                   xmin       = rep(0, 30),
                   xmax       = rep(1, 30),
                   m          = 2)
 decomp    <- list(name       = "SLD", H = 99)
 neighbors <- list(name       = "lambda",
                   T          = 20,
                   delta.p    = 1)
 aggfun    <- list(name       = "wt")
 variation <- list(list(name  = "sbx",
                        etax  = 20, pc = 1),
                   list(name  = "polymut",
                        etam  = 20, pm = 0.1),
                   list(name  = "truncate"))
 update    <- list(name       = "standard", 
                   UseArchive = FALSE)
 scaling   <- list(name       = "none")
 constraint<- list(name       = "none")
 stopcrit  <- list(list(name  = "maxiter",
                     maxiter  = 200))
 showpars  <- list(show.iters = "dots",
                   showevery  = 10)
 seed      <- NULL

 ## 3: run MOEA/D
 out1 <- moead(problem = problem, 
               decomp = decomp, aggfun = aggfun, neighbors = neighbors, variation = variation, 
               update = update, constraint = constraint, scaling = scaling, stopcrit = stopcrit,
               showpars = showpars, seed = seed)

 ## 3.1: For your convenience, you can also use the preset_moead() function to reproduce the above setup, 
 ##      and only modify the desired parts:
 
 out2 <- moead(problem = problem,
               preset = preset_moead("original"), 
               stopcrit = list(list(name = "maxiter", maxiter = 1000)),
               showpars = showpars, seed = 42)

 # 4: Plot output:
 plot(out1$Y[,1], out1$Y[,2], type = "p", pch = 20)

Have fun!
Felipe

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.