数学建模社区-数学中国
标题:
大侠们帮我看看这个程序有什么问题
[打印本页]
作者:
埃利门特
时间:
2011-10-28 15:15
标题:
大侠们帮我看看这个程序有什么问题
model:
sets:
pn/x6,x7,x9/:x;
on/u6..u14/:u;
endsets
@for(pn:@bin(x));
@for(on:@bin(u));
max=u6+u7+u8+u9+u10+u11+u12+u13+u14;
x6>=u6;
x7+x9>=u7;
x7>=u8;
x7+x9>=u9;
x9>=u10;
x6>=u11;
x6>=u12;
x6>=u13;
x9>=u14;
x6+x7+x9=2;
end
我明明限制变量为二进制,可结果出来
Variable Value Reduced Cost
U6 2.000000 0.000000
U7 0.000000 0.000000
U8 0.000000 0.000000
U9 0.000000 0.000000
U10 0.000000 0.000000
U11 2.000000 0.000000
U12 2.000000 0.000000
U13 2.000000 0.000000
U14 0.000000 0.000000
应该是最后一条约束的问题,可要怎么改啊 求大侠们帮帮忙啊
复制代码
作者:
qlb061
时间:
2011-10-30 21:04
结果并没有违反0-1约束!两个约束@for(pn
bin(x));@for(on
bin(u));只是限制x(x6),x(x7),x(x9)为0-1,同理u也一样。注意x6和x(x6)是不同的变量,事实上你的集合声明以及两个@for约束和下面的模型根本没有联系,所以删除仍然可以得到你的结果!
如果不明白,可以将模型展开:点击Lingo—>Generate—>Dispaly Model.
作者:
shengshengchina
时间:
2011-10-30 23:57
哈哈,二楼正解,其实可以看得出,楼主是刚学的
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5