Display/Plot Functions for Genetic Algorithm seemingly not working when I include nonlinear constraint
10 次查看(过去 30 天)
显示 更早的评论
I can't seem to get the iterative display or plot functions to work correctly for the genetic algorithm when I include a nonlinear constraint. Basically, a subset of my variables are the off-diagonals of a matrix that must be postive definite, so it is advantageous if I can force GA to search over the subset of the parameter space that guarantees this. Code is as follows:
options = optimoptions(@ga,'UseParallel',true,...
'PopulationSize',R,'MaxStallGenerations',30,'FitnessLimit',0,...
'PlotFcn',{@gaplotbestf},'display','iter',...
'MutationFcn',{@mutationadaptfeasible,1.5,0.5},'CrossoverFraction',...
0.5,'CrossoverFcn',{@crossoverintermediate,(1/8)*ones(1,14)},...
'InitialPopulationMatrix',X0);
con = @(theta)nlincon(theta); % nonlinear constraint function
calibrating= @(theta)model(moments,mom_var,theta,store,sigma,eta,r,A); % objective function
[theta,fval] = ga(calibrating,14,[],[],[],[],lb,ub,con,options);
when I use the above code, I get neither the iterative GA display output to show up, nor do I get the plot function to, well, plot. However, if I simply set the nonlinear constraint option to "[]", both the iterative display and plot functions work correctly. Can someone give me a clue here as to what I'm doing wrong?
0 个评论
回答(1 个)
Alan Weiss
2019-10-6
When you use a nonlinear constraint function, ga uses a different algorithm that takes many, many more iterations internally than usual before it outputs a single plot or iterative display result. For an example, see Nonlinear Constraints Using ga. Notice how many internal function evaluations happen before a single iterative display result or a plot appears. For details of the algorithm, see Nonlinear Constraint Solver Algorithms.
Alan Weiss
MATLAB mathematical toolbox documentation
1 个评论
Peiman Khandar
2020-5-26
I have a question about internal function evaluations. how can we collect them in a single matrix to see the proceeds. since we could not write for loop for it? does it have specific method ?
thanks
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Genetic Algorithm 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!