the meaning of a sentence in command window

3 views (last 30 days)

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

Accepted Answer

Star Strider
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

Sign in to comment.

More Answers (3)

John D'Errico
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".
  1 Comment
shirin mhd
shirin mhd on 29 Mar 2022
I appreciate your explanation. very complete and comprehensive.

Sign in to comment.


Jan
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 .
  1 Comment
shirin mhd
shirin mhd on 28 Mar 2022
thank for your attention.
I'm a little confused between your answer and the other answer. The objective function that I want to optimize is a quadratic function and i cant change that. I changed and reduced the value of Function tolerance , but my answer did not change.
does this sentense mean that i have wrong and incomplete answer?or just means that operation terminated because of this reason and i can use answer for future? and if its a kind of error what should i do for solving this?

Sign in to comment.


Walter Roberson
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.
  1 Comment
shirin mhd
shirin mhd on 29 Mar 2022
thank you for your attention. there is three variable in my objective function. now I think I'm aware of what is going on in my code from other answers.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!