crowdingDist4frnt: Crowding Distance Assignment for Each Front

Description Usage Arguments Value Author(s) References See Also Examples

View source: R/crowdingDist4frnt.R

Description

This function estimates the density of solutions surrounding a particular solution within each front. It calculates the crowding distances of solutions according to their objectives and those within the same front.

Usage

1
crowdingDist4frnt(pop, rnk, rng)

Arguments

pop

Population matrix including decision variables, objective functions, and nondomination rank

rnk

List of solution indices for each front

rng

Vector of each objective function range, i.e. the difference between the maximum and minimum objective function value of each objective

Value

Return a matrix of crowding distances of all solutions

Author(s)

Ching-Shih (Vince) Tsou cstsou@mail.ntcb.edu.tw

References

Deb, K., Pratap, A., Agarwal, S., and Meyarivan, T. (2002), " A fast and elitist multiobjective genetic algorithm: NSGA-II", IEEE Transactions on Evolutionary Computation, 6(2), 182-197.

See Also

fastNonDominatedSorting

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
library(mco)
popSize <- 50
lowerBounds <- rep(0,30)
upperBounds <- rep(1,30)
varNo <- length(lowerBounds)
objDim <- 2
set.seed(1234)
population <- t(sapply(1:popSize, function(u) array(runif(length(lowerBounds),
  lowerBounds,upperBounds))))
population <- cbind(population, t(apply(population,1,zdt2)))
ranking <- fastNonDominatedSorting(population[,(varNo+1):(varNo+objDim)])
rnkIndex <- integer(popSize)
i <- 1
while (i <= length(ranking)) {
  rnkIndex[ranking[[i]]] <- i
  i <- i + 1
} 
population <- cbind(population,rnkIndex)
objRange <- apply(population[,(varNo+1):(varNo+objDim)], 2, max) -
  apply(population[,(varNo+1):(varNo+objDim)], 2, min)
cd <- crowdingDist4frnt(population,ranking,objRange)
cd

nsga2R documentation built on May 29, 2017, 8:02 p.m.

Search within the nsga2R package
Search all R packages, documentation and source code