Learn R Programming

mco (version 1.0.0)

nsga2: NSGA II MOEA

Description

Multicriterion optimization algorithm

Usage

nsga2(fn, idim, odim, ..., constraints = NULL, cdim = 0, lower.bounds = rep(-Inf, idim), upper.bounds = rep(Inf, idim), popsize = 100, generations = 100, cprob = 0.7, cdist = 5, mprob = 0.2, mdist = 10)

Arguments

fn
Function
idim
Input dimension
odim
Output dimension
...
Arguments passed through to 'fn'
constraints
Constraint function
cdim
Constraint dimension
lower.bounds
Lower bound of input
upper.bounds
Upper bound of input
popsize
Size of population
generations
Number of generations to breed
cprob
Crossing probability
cdist
Crossing distribution index
mprob
Mutation probability
mdist
Mutation distribution index

Value

  • A list describing the final population with components par, value and pareto.optimal.

Details

TBD

Examples

Run this code
## Binh 1 problem:
binh1 <- function(x) {
  y <- numeric(2)
  y[1] <- crossprod(x, x)
  y[2] <- crossprod(x - 5, x - 5)
  return (y)
}
r1 <- nsga2(binh1, 2, 2,
           generations=150, popsize=100,
           cprob=0.7, cdist=20,
           mprob=0.2, mdist=20,
           lower.bounds=rep(-5, 2),
           upper.bounds=rep(10, 2))
plot(r1)

## VNT problem:
vnt <- function(x) {  
  y <- numeric(3)
  xn <- crossprod(x, x)
  y[1] <- xn/2 + sin(xn);
  y[2] <- (crossprod(c(3, -2), x) + 4)^2/8 + (crossprod(c(1, -1), x) + 1)^2/27 + 15
  y[3] <- 1/(xn + 1) - 1.1*exp(-xn)
  return (y)
}

r2 <- nsga2(vnt, 2, 3,
           generations=150, popsize=100,
           lower.bounds=rep(-3, 2),
           upper.bounds=rep(3, 2))
plot(r2)

Run the code above in your browser using DataLab