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));
展开
 我来答
哈伪笛5982
2009-09-07 · TA获得超过735个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:332万
展开全部
按我的理解x是个6元向量
那么就没有问题 在第一个M文件最后加个f=fsum;
直接
ga(@fitnessfun,6,[],[],[],[],[],[],@nonlconstr)
迈杰
2024-11-30 广告
GWAS,即全基因组关联分析,是一种强大的遗传学研究方法。它通过对大规模群体的DNA变异进行系统性扫描,寻找与特定性状(如疾病易感性、药物反应等)相关联的遗传变异。在迈杰转化医学研究(苏州)有限公司,我们利用先进的GWAS技术,挖掘疾病相关... 点击进入详情页
本回答由迈杰提供
百度网友39ca835
2009-09-08
知道答主
回答量:21
采纳率:0%
帮助的人:11.8万
展开全部
Undefined function or variable 'x'.
unction y=fitnessfun(x)

Error: Function definitions are not permitted at the prompt or in scripts.
我们解决的都是线性问题,
你也是 建模的学生吧,你的题目我还没有理解啊,只有程序啊,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式