Change language to:
English - Français - 日本語 - Português -

Please note that the recommended version of Scilab is 2023.1.0. This page might be outdated.
See the recommended documentation of this function

Справка Scilab >> Genetic Algorithms > Utilities > mutation_ga_binary

# mutation_ga_binary

A function which performs binary mutation

### Calling Sequence

`[Mut_Indiv, pos] = mutation_ga_binary(Indiv,param)`

### Arguments

Indiv

A string.

The individual on which we will perform the mutation.

param

a list of parameters.

• "binary_length": an integer scalar, the size of the binary code.

• "multi_mut": a boolean. If %T, several random bits will be flipped.

• "multi_mut_nb": an integer scalar, the number of bits to be flipped. Only used when multi_mut is set to %T (default 2).

Mut_Indiv

A string.

The mutated individual.

pos

A vector of integers.

The positions of the mutated bits.

### Description

This function performs a classical multi-bits binary mutation.

This generates the individual `Mut_Indiv` by inverting bits on random positions.

By default `mutation_ga_binary(Indiv)` selects randomly an index `i` between 1 and `length(Indiv)`. It then modifies the i-th character of Indiv to 1 if it was 0, or 0 if it was 1.

If `"multi_mut"` is set to `%T` multiple mutations may occur. The maximal number of mutation is given by `"multi_mut_nb"`.

### Random number generator

`mutation_ga_binary` is based on grand for generating the random samples. Use `grand("setsd", seed)` to change the seed for `crossover_ga_binary`.

```seed = getdate("s");
grand("setsd", seed); //sets the seed to current date

seed = 0;
grand("setsd", seed); //sets the seed to default value```

### Examples

```Indiv="00010000"
[Mut_Indiv, pos] = mutation_ga_binary(Indiv)

// With multiple mutation
param=init_param("multi_mut",%t,"multi_mut_nb",3);
Indiv="00010000"
[Mut_Indiv, pos] = mutation_ga_binary(Indiv,param)```

### See Also

 Report an issue << init_ga_default Utilities mutation_ga_default >>

 Copyright (c) 2022-2023 (Dassault Systèmes)Copyright (c) 2017-2022 (ESI Group)Copyright (c) 2011-2017 (Scilab Enterprises)Copyright (c) 1989-2012 (INRIA)Copyright (c) 1989-2007 (ENPC)with contributors Last updated:Thu Oct 02 14:01:08 CEST 2014