the meaning of a sentence in command window
1 view (last 30 days)
Show older comments
Hi
I run a code, and it operates correctly without any error.at the end of command window i view this message:
Optimization terminated: average change in the fitness value less than options.TolFun.
does this mean that something is wrong??
0 Comments
Accepted Answer
Star Strider
on 28 Mar 2022
Edited: Star Strider
on 28 Mar 2022
The message means that the genetic algorithm converged successfully.
It has reached what it considers to be the global minimum (of the regions in the parameter spece that it has considered), and stopped.
You need to determine if the parameters ga estimated are appropriate, so for example if the problem is curve fitting (parameter estimation for a nonlinear regression) how well the estimated curve fits the data. If it does not, then repeat the optimisation with a different initial population matrix.
.
5 Comments
More Answers (3)
John D'Errico
on 28 Mar 2022
Edited: John D'Errico
on 28 Mar 2022
I think you are perhaps confused. And the answers are a bit confusing too. And, of course, we don't know any characteristics of your problem. Finally, people often seem to be confused at the word "terminated" in the response. Terminated is a synonym here for "done", or perhaps "finished".
So what did GA tell you? It said that
Optimization terminated: average change in the fitness value less than options.TolFun.
It went as far as it could. It was unable to find a better solution. Of course, that does not mean a better solution does not exist. But it thinks it is happy with the result. As happy as a computer program can be, at least. You gave it a tolerance that tells it when it can stop looking, and that tolerance was satisfied. I would note that this is the termination criteria that goes along with an exitflag of 1. In the world of MATLAB optimization, that is the best possible exit flag.
Again, I often see people confused when they see the word "terminated". They think of that word in a negative sense, and it definitely can have fairly negative connotations, at least these days. Here, it just means "done".
Jan
on 28 Mar 2022
Edited: Jan
on 28 Mar 2022
It means, that the optimizer did not found a valid solution. The value of the fitness functions does not vary more than the parameter TolFun allows, so it is considered to be noise only.
Check your fitness function. Does it really what you expect it to do? If it is correct, reduce the limit of options.TolFun .
Walter Roberson
on 28 Mar 2022
If your function truly is a quadartic function of one variable, then:
Evaluate the function at several different x values (at least three). Then polyfit() requesting degree 2 in order to get the quadratic coefficients.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!