Dear All,
i am using Genetic Algorithm throught optimization toolbox. my optimization problem is little complicated as a lot of dependent variables are to be calculated, and they are defined on five m.files.
i want to show the calculations steps on detailes that are done on each trail of optimization process. this is important for me to understand how the algorithm think and do what before what and how it transfere from one file to another, so, i can adjust my code. if it possible, how can i do that.
what i want is not the general steps of Genetic Algorithm, i want to show the steps actualy performed by my code after i run it.
thank you a lot.

댓글 수: 5

Mario Malic
Mario Malic 2020년 9월 24일
편집: Mario Malic 2020년 9월 24일
See Input Arguments - Options of ga. Set to 'iter' or diagnose, if that's what you looking for.
Display
Level of display.
'off' | 'iter' | 'diagnose' | {'final'}
If you're looking for more than this output, you can always use disp or fprint or write your own OutputFcn (Edit: somehow I missed to write this) function in your anonymous objective function.
Nourhan Elsayed
Nourhan Elsayed 2020년 9월 27일
Thank you Mario
yes, i am looking for more details, i think about custom output function now. trying to creat that
Walter Roberson
Walter Roberson 2020년 9월 27일
Note that OutputFcn does not show the result of every call to the objective function. It is called every iteration, but there are reasons why iterations might call the objective function multiple times. This is more of an issue for fmincon() and other minimizers that do gradient or hessian estimation -- but even for ga, the first (NVARS+1) calls to the objective function are used to create a simplex for further use and are not counted as being part of the iterations.
Nourhan Elsayed
Nourhan Elsayed 2020년 9월 27일
you mention that
'the first (NVARS+1) calls to the objective function are used to create a simplex for further use and are not counted as being part of the iterations'.
i understand the point you are refering to, however, there are some thing strange for me, the number of calls for objective function is ,at least, equal to NVARS.
relating the number of calls to NVARS made me understand that objective function is calculated for each variable of Decision values [x1, x2, x3, .... xNVARS] separately.
i dont think what i understand is true
At the beginning, in order to create the initial simplex, for continuous variables the code uses something like:
if lower bound is in effect
LB = lowerbound
else
LB = zeros(1, nvars);
end
F = zeros(1,nvars+1);
F(1) = objective(LB);
for K = 1 : nvars
lb = LB;
lb(K) = lb(K) + 0.1;
F(K+1) = objective(lb);
end
This takes an initial point and then evaluates nvars more times, each time varying exactly one of the parameters a small distance away from the initial point.
For discrete variables it would uses the minimum discrete values for LB and modify each in turn to its second valid discrete value.

댓글을 달려면 로그인하십시오.

 채택된 답변

Star Strider
Star Strider 2020년 9월 24일

0 개 추천

The ga function essentially takes a population of possible parameter vectors and ‘evolves’ them so that the set that produces the lowest value of the fitness function is the eventual best individual. It tests every member of the population with the fitness function to do this.
I doubt that anything in the code for your fitness function changes significantly except with respect to the results dependent on the parameters, and those you can simulate with any set of parameters.
Likely the closest you can get to doing what you want and seeing what the ga function is doing is to use an options structure and write your own OutputFcn to return what you want. See Output Function Options and Custom Output Function for Genetic Algorithm for details.
I leave the rest to you!

댓글 수: 1

Nourhan Elsayed
Nourhan Elsayed 2020년 9월 27일
편집: Nourhan Elsayed 2020년 9월 27일
yeah, your next words draws my attention
' It tests every member of the population with the fitness function to do this
I doubt that anything in the code for your fitness function changes significantly except with respect to the results dependent on the parameters, and those you can simulate with any set of parameters'
thats mean that only variables that are dependent on the set of Decision Variables are recalculated. that is logical and should not lead to any defalut.
however, i am not sure that constraints, or variables , that are defined on a separt file as a function handle, are recalculated accordingly. i always get error msg regarding the 'nonlcon' , they are not satisfied. i suspect they are satisfied even at first iteration.
Thank you for the references links

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

질문:

2020년 9월 24일

댓글:

2020년 9월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by