Clear Filters
Clear Filters

A problem in determining the mutation rate

8 views (last 30 days)
Hi, everyone
Hope you are well and thanks for your attention. I am using the GLobal optimmisation Tool Boox and I was looking how can I change the default value of Rate of mutation at so I found this syntax options = gaoptimset('MutationFcn', {@mutationuniform, rate}) my problem is that i found also this : For example, if the Population size is 20, the Elite count is 2, and the Crossover fraction is 0.8, the numbers of each type of children in the next generation is as follows: •There are 2 elite children •There are 18 individuals other than elite children, so the algorithm rounds 0.8*18 = 14.4 to 14 to get the number of crossover children. •The remaining 4 individuals, other than elite children, are mutation children. So my question is : what is the influence of determining the mutation rate through options = gaoptimset('MutationFcn', {@mutationuniform, rate}) If the mutation depend on the crossover rate
Thanks for any help or suggestion

Accepted Answer

Alan Weiss
Alan Weiss on 30 Apr 2012
Edited: John Kelly on 2 Mar 2015
http://www.mathworks.com/help/gads/genetic-algorithm-options.html states "Uniform (mutationuniform) — Uniform mutation is a two-step process. First, the algorithm selects a fraction of the vector entries of an individual for mutation, where each entry has a probability Rate of being mutated. The default value of Rate is 0.01. In the second step, the algorithm replaces each selected entry by a random number selected uniformly from the range for that entry."
http://www.mathworks.com/help/gads/genetic-algorithm-options.html explains what CrossoverFraction does, and how it affects the mutation rate.
Alan Weiss
MATLAB mathematical toolbox documentation

More Answers (2)

Abdullah Kokcam
Abdullah Kokcam on 31 Jul 2017
Edited: Abdullah Kokcam on 31 Jul 2017
So I found as crossover fraction and mutation fraction sums up to 100 percent.
For example: If crossover fraction is set to 0.8, it means that mutation fraction can be considered as 0.2
Population size = 100
Elite count = 20
Crossover population = (100-20)*0.8 = 64
Mutation population = (100-20)-64 = 16
Note that mutation fraction may not exactly equal to 0.2 even if crossover fraction is 0.8
If crossover fraction is set to 0.5
Population size = 20
Elite count = 5
Crossover population = (20-5)*0.8 = 7.5 -> 8
Mutation population = (20-5)-8 = 7

Hector
Hector on 31 Oct 2012
Continuing the theme, if I have a custom MutationFcn. How do I change the rate of mutation?
If you read the manual, you really do not go as the percentage change of mutation when a custom MutationFcn.
How I can change the rate of mutation in a custom MutationFcn?
thanks
Hector R:.
  1 Comment
Abdullah Kokcam
Abdullah Kokcam on 31 Jul 2017
This question is asked many years ago, but seems that not answered at all. I also wonder this topic. I appreciate if someone share if s/he found the answer. Thanks.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!