What exactly does mutationadaptfeasible do in genetic algorithm?

I am using MATLAB to optimize an objective function with genetic algorithm. Because I have a lower bound for the variable, I am using mutationadaptfeasible to do mutations. The website explains mutationadaptfeasible: "The mutation chooses a direction and step length that satisfies bounds and linear constraints."
Unfortunately, this is a little handwavy to me. Could someone kindly explain what exactly mutationadaptfeasible does? I tried Google, but it seems that there are only similar questions left unanswered .

 採用された回答

Walter Roberson
Walter Roberson 2016 年 7 月 4 日

0 投票

You can read the source.
dbtype(which('mutationadaptfeasible'))

5 件のコメント

Eric Zhang
Eric Zhang 2016 年 7 月 8 日
編集済み: Eric Zhang 2016 年 7 月 8 日
Thanks for answering! Right, I tried reading it, but it takes some time to understand. I think MATLAB should document this and shouldn't expect normal users to look into the function, because following this logic, they don't need documentation at all, since users can always read the source.
Alan Weiss
Alan Weiss 2016 年 7 月 8 日
You are quite right, the description of mutationadaptfeasible does not give the algorithm by which it creates a feasible population. My question is, why do you want to know? It could be that you are unsure that the function correctly does what it promises. In that case, you can examine this example and see how the function not only works correctly, but biases the population to be along linear constraint boundaries.
Or you might want to program such a function for yourself. In that case, there is nothing better than to examine the code, no description of the algorithm would be as good.
If you think that I made a mistake in my judgment of how much to document here, please let me know. Really, I need to understand why someone wants to understand something before I can give a reasonable explanation at the appropriate level of detail.
Alan Weiss
MATLAB mathematical toolbox documentation
Walter Roberson
Walter Roberson 2016 年 7 月 8 日
Eric, you asked to know "what exactly mutationadaptfeasible does", and the only way to know exactly what a program does is to read the source. If Mathworks had had a 25 megabyte description of how the function operated, I would still have referred you to the source. A description of something is not exactly the thing.
Documentation is very useful when people do not need to know exactly how something works. When they need to know exactly how something works, they need to read the code.
Eric Zhang
Eric Zhang 2016 年 7 月 11 日
@Alan Thanks a lot for replying, and sorry for my late reply. In my case, the reason why I want to know how it works is that I intend to use it in my research problem. In writing a paper, one has to explain how each step is designed, even though it may be just one line of code from an existing tool box. So I don't want (or need) to go deep to the code-level details. Only algorithmic descriptions are enough (as long as they are "scientific", e.g., the documentation for mutationgaussian at http://www.mathworks.com/help/gads/genetic-algorithm-options.html#f6633 is at the perfect level for my purpose). Thanks!
Eric Zhang
Eric Zhang 2016 年 7 月 11 日
編集済み: Eric Zhang 2016 年 7 月 11 日
@Walter Thanks a lot for answering and replying, and sorry for my late reply. You are absolutely right. The documentation level I need is at the algorithm level (see my comment to Alan above). I shouldn't have used the word "exactly." But you see, the documentation for mutationadaptfeasible is not even at the algorithmic level.

サインインしてコメントする。

その他の回答 (1 件)

Tsai Han Hao
Tsai Han Hao 2024 年 3 月 19 日

0 投票

I think for the adaptive mutation algorithm, you can refer to Chapter4: Representation, Mutation, and Recombination in Introduction to Evolutionary Computing
Here' the link below:

カテゴリ

Community Treasure Hunt

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

Start Hunting!

Translated by