matlab遗传算法工具箱求解非线性约束问题,如何在GUI设置,或者这个程序如何编 感觉lb=[2,30];和ub=[2,30];上有问题。根据我的判断,lb=[2,30];和ub=[];这样的话,可以得到,x1=5.91529880464077,x2=91.34970961511135,y=8.612323770417001
求助大神 利用遗传算法解决非线性规划问题,最好有MATLAB代码 %无聊到专门帮你写了个程序。不想全部写完,自己补完。PS:这题怎么看都是线性规划利用遗传算法计算最优化问题%遗传算法参数设置popsize=200;种群个数generation=500;种群迭代次数,繁殖后代数pc=0.4;两个体之间交叉概率pm=0.05;个体变异的概率yueshu=0;约束成立的标志为1初始化群体for i=1:popsizewhile(yuesu=0)%当约束成立时,不再变异。约束不成立时变异。x(i,1)=randint(1,1,[0,35]);随机生成(0-35)的整数x(i,2)=randint(1,1,[0,60]);x(i,3)=randint(1,1,[0,40]);x(i,4)=randint(1,1,[0,40]);x(i,5)=randint(1,1,[0,30]);x(i,6)=randint(1,1,[0,30]);x(i,7)=randint(1,1,[0,35]);x(i,8)=randint(1,1,[0,20]);这里自己写几行程序就好if这里判断约束条件,若符合,yueshu=1;endendendfor n=1:generation计算适应度[row col]=size(x);for i=1:rowfitness(i)=(x(i,1)+x(i,2)+x(i,3)+x(i,5)+x(i,6)+x(i,7)+x(i,8))/20;end轮盘赌选择zong=sum(fitness);xt=x;for i=1:rowtemp=rand(1);for j=1:rowif temp(j)/zongbreak;endendx(i,:)=xt(j,:);end两个个体交叉变异x2=x;[row col]=size(x);for i=1:2:rowtemp=rand(1);if temp这里还要。
遗传算法时可以把线性约束放在非线性约束里吗 建立约束条件函数,把非线性的等式约束条件添加加在[c,ceq]中。如function[c,ceq]=NonCon(x)c=x(1)^2+x(2)^2-9;ceq=[];然后,再用ga()函数调用,如[x,fval,exitflag]=ga(o@FitFun,nvars,A,b,Aeq,beq,lb,ub,NonCon)