knitr::opts_chunk$set(echo = TRUE)

**caRamel** is a multiobjective evolutionary algorithm combining the MEAS algorithm and the NGSA-II algorithm.

Download the package from CRAN or GitHub and then install and load it.

```
library(caRamel)
```

There are three possible choices on how **caRamel** can call the R user functions. Each choice is parameterized by the *carallel* value.

The computation of the user functions can be done sequentially or in parallel for each individual of the genetic population according to the choice of *carallel* when calling **caRamel**.

The evaluation of the population is done in a sequential mode if *carallel* is 0, or in parallel if *carallel* is 1 (this last one is the default option).

For these two options, the R user function takes a single input parameter *i* giving the number of the individual of the population *x*. For instance:

kursawe <- function(i) { k1 <- -10 * exp(-0.2 * sqrt(x[i,1] ^ 2 + x[i,2] ^ 2)) - 10 * exp(-0.2 * sqrt(x[i,2] ^2 + x[i,3] ^ 2)) k2 <- abs(x[i,1]) ^ 0.8 + 5 * sin(x[i,1] ^ 3) + abs(x[i,2]) ^ 0.8 + 5 * sin(x[i,2] ^3) + abs(x[i,3]) ^ 0.8 + 5 * sin(x[i,3] ^ 3) return(c(k1, k2)) }

Two objectives are evaluated here and a vector of the corresponding values is returned for the individual *x[i,]*.

If the value of *carallel* is 2 then the entire population is given to the R user function and one has to decide how to evaluate it. For instance hereafter with a simple for-loop:

kursawe <- function(x) { # receipt of the entire population popsize <- dim(x)[1] # size of the population to evaluate nobj <- 2 # number of objectives results <- matrix(0, nrow = popsize, ncol = nobj) # matrix of results for(i in 1:popsize){ k1 <- -10 * exp(-0.2 * sqrt(x[i,1] ^ 2 + x[i,2] ^ 2)) - 10 * exp(-0.2 * sqrt(x[i,2] ^2 + x[i,3] ^ 2)) k2 <- abs(x[i,1]) ^ 0.8 + 5 * sin(x[i,1] ^ 3) + abs(x[i,2]) ^ 0.8 + 5 * sin(x[i,2] ^3) + abs(x[i,3]) ^ 0.8 + 5 * sin(x[i,3] ^ 3) results[i,] <- c(k1, k2) } return(results) }

**Any scripts or data that you put into this service are public.**

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.