数学建模社区-数学中国
标题:
求大神指出哪里错了!3Q!
[打印本页]
作者:
东东酱
时间:
2012-8-30 16:52
标题:
求大神指出哪里错了!3Q!
model:
sets:l/1..10/:y,k,h;
m/1..5/:a;
link(l,m):x,z,d;
endsets
data:
d=5.26 5.19 4.21 4.00 2.95 2.74 2.46 1.90 0.64 1.27 1.90 0.99 1.90 1.13 1.27 2.25 1.48 2.04 3.09 3.51 5.89 5.61 5.61 4.56 3.51 3.65 2.46 2.46 1.06 0.57 0.64 1.76 1.27 1.83 2.74 2.60 4.21 3.72 5.05 6.10 4.42 3.86 3.72 3.16 2.25 2.81 0.78 1.62 1.27 0.50;
a=78 85 124 85 85;
y=81 79 87 68 74 87 68 74 87 87;
k=61 68 64 68 71 81 68 84 87 81;
enddata
min=@sum(link:x*z*d);
@for(m(j):@sum(link(i,j):z(i,j)*x(i,j))>=a(j));
@for(l(i):@sum(link(i,j)|j#eq#1 #or# j#eq#2:x(i,j))<=y(i));
@for(l(i):@sum(link(i,j)|j#ge#3 #and# j#le#5:x(i,j))<=k(i));
@for(m(j):@sum(link(i,j):x(i,j))<=96);
@for(m(j):@sum(link(i,j):z(i,j)*x(i,j)*h(i))/@sum(link(i,j):z(i,j)*x(i,j))>=0.285);
@for(m(j):@sum(link(i,j):z(i,j)*x(i,j)*h(i))/@sum(link(i,j):z(i,j)*x(i,j))<=0.305);
@for(link:@bin(z));
end
复制代码
程序找不到最优解
5d6034a85edf8db183b91ffa0923dd54574e749c.jpg
(348.41 KB, 下载次数: 206)
2012-8-30 16:52 上传
点击文件名下载附件
作者:
天海星云
时间:
2012-8-30 17:46
你的数据d输入的没有问题么?
作者:
且生
时间:
2012-8-30 21:56
看不懂呀,能够说得详细点么?
作者:
jiany920207
时间:
2012-8-31 10:10
用matlab求啊
作者:
小卢
时间:
2012-8-31 11:04
本帖最后由 wujianjack2 于 2013-7-20 13:59 编辑
好像在程序中把z当做y了,我改了下你的程序,不过最后没有灵敏度解,这个我也不清楚是什么原因了。。。
程序:
model:
sets:l/1..10/:y,k,h;
m/1..5/:a;
link(l,m):x,z,d;
endsets
data:
d=5.26 5.19 4.21 4.00 2.95 2.74 2.46 1.90 0.64 1.27 1.90 0.99 1.90 1.13 1.27 2.25 1.48 2.04 3.09 3.51 5.89 5.61 5.61 4.56 3.51 3.65 2.46 2.46 1.06 0.57 0.64 1.76 1.27 1.83 2.74 2.60 4.21 3.72 5.05 6.10 4.42 3.86 3.72 3.16 2.25 2.81 0.78 1.62 1.27 0.50;
a=78 85 124 85 85;
y=81 79 87 68 74 87 68 74 87 87;
k=61 68 64 68 71 81 68 84 87 81;
enddata
min=@sum(link:x*z*d);
@sum(link(i,j)|j#eq#1:z(i,j)*x(i,j))>=78;
@sum(link(i,j)|j#ne#1#and#j#ne#3:z(i,j)*x(i,j))>=85;
@sum(link(i,j)|j#eq#3:z(i,j)*x(i,j))>=124;
@for(l(i):@sum(link(i,j)|j#eq#1 #and# j#eq#2:x(i,j))<=y(i));
@for(l(i):@sum(link(i,j)|j#ge#3 #and# j#le#5:x(i,j))<=k(i));
@for(m(j):@sum(l(i):x(i,j))<=96);
@for(m(j)|j#ne#3#and#j#ne#4:(@sum(link(i,j):z(i,j)*x(i,j)*h(i))/@sum(link(i,j):z(i,j)*x(i,j)))>=0.285);
@for(m(j)|j#ne#3#and#j#ne#4:(@sum(link(i,j):z(i,j)*x(i,j)*h(i))/@sum(link(i,j):z(i,j)*x(i,j)))<=0.305);
@for(link:@bin(z));
end
作者:
Smallvan
时间:
2012-8-31 13:58
变量太多了,11.0版本也不行;而且是三维非线性!!
作者:
zhangc_ningbo
时间:
2012-8-31 14:08
那个hi是什么东西呀,决策变量吗?
作者:
zhangc_ningbo
时间:
2012-8-31 14:13
还有那个x(i,j)上面有一横的那个是指,x的平均数吗?感觉你写代码的时候好想没有体现平均数吧
作者:
hzs2012
时间:
2012-8-31 16:02
能加个注释么,代码风格很不好的说。。。
作者:
shilei5669
时间:
2012-9-1 15:20
无奈,看不懂,感觉碧昂量太多了,建议换个编程
作者:
1063345733
时间:
2013-4-4 11:23
global search
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5