tournamentSelection: Tournament Selection

View source: R/tournamentSelection.R

tournamentSelectionR Documentation

Tournament Selection

Description

Tournaments are played among several solutions. The best one is chosen according to their nondomination levels and crowding distances. And it is placed in the mating pool.

Usage

tournamentSelection(pop, pool_size, tour_size)

Arguments

pop

Population matrix with nondomination rank and crowding distance

pool_size

Size of mating pool, usually same as the population size

tour_size

Size of tournament, the selection pressure can be adjusted by varying the tournament size

Value

Return the mating pool with decision variables, objective functions, nondomination level, and crowding distance

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.

Examples

library(mco)
tourSize <- popSize <- 10
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,zdt3)))
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)
population <- cbind(population,apply(cd,1,sum))
matingPool <- tournamentSelection(population,popSize,tourSize)
matingPool

nsga2R documentation built on May 23, 2022, 5:06 p.m.