Please note that the recommended version of Scilab is 2024.0.0. This page might be outdated.

See the recommended documentation of this function

# mutation_ga_binary

A function which performs binary mutation

### Syntax

[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`

.

### 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

- mutation_ga_default — A continuous variable mutation function
- crossover_ga_binary — A crossover function for binary code
- init_ga_default — A function a initialize a population
- optim_ga — A flexible genetic algorithm

Report an issue | ||

<< init_ga_default | Utilities | mutation_ga_default >> |