# Documentation of mutcomb

Global Index (all files) (short | long) | Local contents | Local Index (files in subdir) (short | long)

## Function Synopsis

`NewChrom = mutcomb(Chrom, VLUB, MutOpt, MutType)`

## Help text

``` MUTation for combinatorial problems

This function takes the individuals of the current
population, mutates each indivdual with given probability
and returns the resulting population.
Mutation can be done by:
- swapping 2 variables of the individual
- moving 1 variable from one position to another (insertion)
- inverting all positions between two positions
The additional input variable MutType defines this.

If mutation is 1/Nvar or larger, every individual is mutated ones.
If mutation rate is > 1/Nvar, additional mutations (swap or
insertion or invertion of variables) are performed. That means,
for some individuals more than one mutation of variables takes
place. A mutation rate of 2/Nvar produces (statistically)
2 mutations of variables per individual.
The mutation range and precision are used for all mutations.

This mutation operator may be used with every variable
representation, as long as the swap of the variables makes any sense.
The mutation operator just exchanges/swaps the variables, no change
of variable value is performed.

Syntax:  NewChrom = mutcomb(Chrom, VLUB, MutOpt, MutType)

Input parameters:
Chrom     - A matrix containing the chromosomes of the
current population. Each row corresponds to
an individuals string representation.
VLUB      - Matrix containing the boundaries of each variable.
not used here, necessary for compatibility with
real valued mutation
MutOpt    - (optional) Vector containing mutation options
MutOpt(1): MutRate - number containing the mutation rate -
probability for mutation of a variable
if omitted or NaN, MutRate = 1/variables per
individual is assumed
MutOpt(2): MutRange - (optional) number for shrinking the
mutation range in the range [0 1], possibility to
shrink the range of the mutation depending on,
for instance actual generation.
if omitted or NaN, MutRange = .2 is assumed
MutOpt(3): MutPreci - (optional) precision of mutation steps
if omitted or NaN, MutPreci = 8 is assumed
MutType    - (optional) Scalar indicating type of combinatorial mutation
0: swap
1: insertion / move
2: inversion

Output parameter:
NewChrom  - Matrix containing a mutated version of Chrom.

See also: mutate, mutswap, mutinvert, mutinsert, mutswaptyp, mutreal, mutbin, mutint, initip
```

## Cross-Reference Information

This function is called by
 GEATbx: Main page  Tutorial  Algorithms  M-functions  Parameter/Options  Example functions  www.geatbx.com

This document is part of version 3.8 of the GEATbx: Genetic and Evolutionary Algorithm Toolbox for use with Matlab - www.geatbx.com.
The Genetic and Evolutionary Algorithm Toolbox is not public domain.