作业帮 > 综合 > 作业

lingo编程问题?在出发去度假之前,你希望将你的一些最重要的文件备份到软盘上.每个空白软盘的容量是1.44MB.你需要

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/22 13:12:16
lingo编程问题?
在出发去度假之前,你希望将你的一些最重要的文件备份到软盘上.每个空
白软盘的容量是1.44MB.你需要备份的16 个文件的大小分别为:46KB,55KB,62KB,87KB,108KB,114KB,137KB,164KB,253KB,364KB,372KB,388KB,406KB,432KB,461KB,851KB.假定你无法使用压缩软件,但软盘数量足够,那么应如何将这些文件分配到每一张软盘上才能使使用的软盘数目最少?
我把思路告诉你,这里没有lingo软件.
sets部分
你先假设有16个软盘disk(因为16个文件最多用到16个软盘)软盘的级属性是一个(0,1)变量q(0表示没有用到,1表示用到).
16个文件doc,属性是他们分别的大小s.
doc和disk的父集link,属性是p也是0-1变量,表示某个doc是否放在某个disk里
data部分:
对文件的大小赋值.
目标函数:
min=@sum(disk(i):q(i));!用到软盘的最大数;
约束条件:
@for(doc(i):@sum(disk(j):p(i,j))=1);!每个文件只能放一次;
@for(disk(j):@sum(doc(i):s(i)*p(i,j))