Skip to content
/ MOEADr Public
forked from fcampelo/MOEADr

R package MOEADr, a modular implementation of the Multiobjective Evolutionary Algorithm with Decomposition (MOEA/D) framework

Notifications You must be signed in to change notification settings

orcslab/MOEADr

 
 

Repository files navigation

MOEADr package

Build Status CRAN_Status_Badge CRAN Downloads


Felipe Campelo and 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:

  • Decomposition strategy;
  • Aggregation function;
  • Objective scaling strategy;
  • Neighborhood assignment strategy;
  • Variation Stack;
  • Update strategy;
  • Constraint handling method;
  • Termination criteria.

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.

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")

Or, if you are interested in the specific version used to generate the results reported in our paper (Name and journal to be included here as soon as they are decided), use:

devtools::install_github("fcampelo/MOEADr/MOEADr@Manuscript-Version")

and follow the instructions provided in the README section of the Manuscript-Version.

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, decomp,  aggfun, neighbors, variation, update,
               constraint, scaling, stopcrit, showpars, seed)

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

Have fun!
Felipe

About

R package MOEADr, a modular implementation of the Multiobjective Evolutionary Algorithm with Decomposition (MOEA/D) framework

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • R 74.5%
  • HTML 25.5%