- 在线时间
- 84 小时
- 最后登录
- 2014-10-4
- 注册时间
- 2013-7-16
- 听众数
- 8
- 收听数
- 1
- 能力
- 0 分
- 体力
- 949 点
- 威望
- 0 点
- 阅读权限
- 40
- 积分
- 372
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 172
- 主题
- 23
- 精华
- 0
- 分享
- 0
- 好友
- 35
升级   24% TA的每日心情 | 开心 2014-10-4 18:19 |
---|
签到天数: 102 天 [LV.6]常住居民II
- 自我介绍
- 本人是在校学生,即将参加有史以来的第一场国赛,希望能在这里获得帮助。
 |
5体力
本帖最后由 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 查看完整内容
此问题我已在帖子http://www.madio.net/thread-191037-1-1.html中尝试解决,大家可以参考下,有问题请指出!
zan
|