Matlab中用遗传算法求解带约束的非线性规划问题
miny=(求和符号,i=0到5)(再求和符号j=i+1到6)f(i,j)*d(i,j)*[x(i)-x(j)],约束条件为x(i)-x(j)〉=[B(i)+B(j)]/...
min y=(求和符号,i=0到5)(再求和符号j=i+1到6)f(i,j)*d(i,j)*[x(i)-x(j)] ,约束条件为 x(i)-x(j) 〉=[B(i)+B(j)]/2+L(i,j);式中f(i,j);d(i,j)和L(i,j);均是6行6列的矩阵的元素,B为6元素的向量。怎样编写目标函数的M文件,和约束条件的M文件。下面是我编写的程序,请高手给予指正,谢谢!
function y=fitnessfun(x)
fsum=0;
f=[0 62 21 44 20 19;62 0 32 24 80 25;21 32 0 30 28 52;44 24 30 0 27 17;20 80 28 27 0 35;19 25 52 17 35 0];
c=[0 4 3 6 4 2;4 0 2 3 4 1;3 2 0 3 2 2;6 3 3 0 5 4;4 4 2 5 0 3;2 1 2 4 3 0];
for i=1:5
for j=i+1:6
fsum=fsum+c(i,j)*f(i,j)*abs(x(i)-x(j));
end
end
function [c,ceq]=nonlconstr(x)
B=[4 3 6 2 2 5];l=[0 2 3 1 3 2;2 0 2 3 2 1;3 2 0 1 1 1;1 3 1 0 2 2;3 2 1 2 0 3;2 1 1 2 3 0];
for i=1:5
for j=i+1:6
c=[(B(i)+B(j))/2+l(i,j)-abs(x(i)-x(j))];
ceq=[];
end
end
第一个M文件中的c=[0 4 3 6 4 2;4 0 2 3 4 1;3 2 0 3 2 2;6 3 3 0 5 4;4 4 2 5 0 3;2 1 2 4 3 0];应该是d=[0 4 3 6 4 2;4 0 2 3 4 1;3 2 0 3 2 2;6 3 3 0 5 4;4 4 2 5 0 3;2 1 2 4 3 0];及改过的fsum=fsum+d(i,j)*f(i,j)*abs(x(i)-x(j)); 展开
function y=fitnessfun(x)
fsum=0;
f=[0 62 21 44 20 19;62 0 32 24 80 25;21 32 0 30 28 52;44 24 30 0 27 17;20 80 28 27 0 35;19 25 52 17 35 0];
c=[0 4 3 6 4 2;4 0 2 3 4 1;3 2 0 3 2 2;6 3 3 0 5 4;4 4 2 5 0 3;2 1 2 4 3 0];
for i=1:5
for j=i+1:6
fsum=fsum+c(i,j)*f(i,j)*abs(x(i)-x(j));
end
end
function [c,ceq]=nonlconstr(x)
B=[4 3 6 2 2 5];l=[0 2 3 1 3 2;2 0 2 3 2 1;3 2 0 1 1 1;1 3 1 0 2 2;3 2 1 2 0 3;2 1 1 2 3 0];
for i=1:5
for j=i+1:6
c=[(B(i)+B(j))/2+l(i,j)-abs(x(i)-x(j))];
ceq=[];
end
end
第一个M文件中的c=[0 4 3 6 4 2;4 0 2 3 4 1;3 2 0 3 2 2;6 3 3 0 5 4;4 4 2 5 0 3;2 1 2 4 3 0];应该是d=[0 4 3 6 4 2;4 0 2 3 4 1;3 2 0 3 2 2;6 3 3 0 5 4;4 4 2 5 0 3;2 1 2 4 3 0];及改过的fsum=fsum+d(i,j)*f(i,j)*abs(x(i)-x(j)); 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询