the meaning of a sentence in command window
조회 수: 1 (최근 30일)
이전 댓글 표시
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
채택된 답변
Star Strider
2022년 3월 28일
편집: Star Strider
2022년 3월 28일
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
추가 답변 (3개)
John D'Errico
2022년 3월 28일
편집: John D'Errico
2022년 3월 28일
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
2022년 3월 28일
편집: Jan
2022년 3월 28일
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
2022년 3월 28일
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.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!