数学建模社区-数学中国
标题:
钢管问题--新人求助
[打印本页]
作者:
数学不烦
时间:
2013-7-27 21:51
标题:
钢管问题--新人求助
本帖最后由 wujianjack2 于 2013-7-28 11:51 编辑
题目意思:某钢管零售商从钢管厂进货,将钢管按照顾客的要求切割后售出,从钢管厂进货时得到的原料钢管都是19m长。
问题:零售商如果采用的不同切割模式太多,将会导致生产过程的复杂化,从而增加生产和管理成本,所以该零售商规定采用的不同切割模式不能超过3种,此外,该客户需要 50根 4m长、20根6m长、15根8m长、10根5m长 的钢管,应该如何下料最节省?
下面是书上的答案,可是我运行的时候就提示没有可行解?代码我检查过了,没有打错的。麻烦一下各位前辈给出建议或自己的方法解决这个问题。谢谢。
(1)为什么下面的程序没有可行解?关键要点在哪里?应该怎样修改
(2)或者可以发表你的解题过程。
温馨提示:书上的答案是:最优解是:28根。
model:
sets:
needs/1..4/:length,num;
cuts/1..3/:x;
patterns(needs,cuts):r;
endsets
data:
length=4 5 6 8;
num = 50 10 20 25;
capacity=19;
enddata
min=@sum(cuts(i):x(i));
@for(needs(i):@sum(cuts(j):x(j)*r(i,j))>num(i));
@for(cuts(j):@sum(needs(i):length(i)*r(i,j))<capacity);
@for(cuts(j):@sum(needs(i):length(i)*r(i,j))<capacity-3);
@sum(cuts(i):x(i))>26;@sum(cuts(i):x(i))<31;
@for(cuts(i)|i#lt#@size(cuts):x(i)>x(i+1));
@for(cuts(j):@gin(x(j)));
@for(patterns(i,j):@gin(r(i,j)));
end
作者:
wujianjack2
时间:
2013-7-27 21:51
此问题我已在帖子
http://www.madio.net/thread-191037-1-1.html
中尝试解决,大家可以参考下,有问题请指出!
作者:
hhn1141003
时间:
2013-7-28 19:48
用x(i)表示切割方案。
每种方式的4 5 6 8 分别为r1 (i) r2 r3
r4
minx1+x2+x3
r11x1+r12x2.....<=50
客户需求的约束
切割模式约束大于16小于十九
总共的数目大于26小于31
作者:
逐梦的男孩
时间:
2013-9-4 14:34
支持一下,加油加油
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5