数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 10438|回复: 11

熟悉lingo的高手请帮个忙

[复制链接]
发表于 2007-8-25 11:08:22 | 显示全部楼层 |阅读模式
05年B题,DVD在线租赁问题,我已编好程序
model:
sets:
x/1..1000/:hyh;
y/1..100/:dvd;
s(x,y):d,A;
endsets

data:
A=@ole('pianaidu.xls','myd');
dvd=@ole('pianaidu.xls','dvdsl');
@ole('pianaidu.xls','jieguo')=d;
enddata



max=@sum(s:d*A) ;

@for(s(i,j):◎bin(d(i,j)));
@for(x(i):
@sum(y(j):d(i,j))<=3;
      @sum(y(j):d(i,j))>=2;
);
@for(y(j):◎sum(x(i):d(i,j))<=dvd(j));

end
程序很简单,但总是出错,由于其中用到的excel表格无法上传,所以恳请哪位高手能留一个E-MAIL信箱,我把文件一起发给您调试一下,谢了!!
发表于 2007-8-25 12:38:17 | 显示全部楼层
你把哪个excel表打开没有
 楼主| 发表于 2007-8-26 11:14:43 | 显示全部楼层
打开了,还是出错
发表于 2007-8-26 13:05:10 | 显示全部楼层
出错的提示是什么啊
 楼主| 发表于 2007-8-26 13:21:26 | 显示全部楼层
lingo里面出错好像都是一个提示,代码1017,unexpected Jacobian  over flow.
发表于 2007-8-26 13:24:08 | 显示全部楼层
model:
sets:
x/1..1000/:hyh;
y/1..100/:dvd;
s(x,y):d,A;
endsets
data:
[email=A=@ole(]A=@ole('pianaidu.xls','myd'[/email]);
[email=dvd=@ole(]dvd=@ole('pianaidu.xls','dvdsl'[/email]);
[email=!@ole(]!@ole('pianaidu.xls','jieguo')=d[/email];不懂你这句是何用意
enddata

[email=max=@sum(s:d*A]max=@sum(s:d*A[/email]);
@for(s(i,j)bin(d(i,j)));
@for(x(i):
@sum(y(j):d(i,j))<=3;
      @sum(y(j):d(i,j))>=2;
);
@for(y(j)sum(x(i):d(i,j))<=dvd(j));
end
我用10万个0,1区间的随机数模拟了你的结果,现在能运行了你大部分的错误为书写格式上的问题
发表于 2007-8-26 13:26:28 | 显示全部楼层
这个问题和EXCEL数据是否打开没有多大关系,你的题示是假克比行列式跃界,你用的不是有序列号的LINGO8.0吧
 楼主| 发表于 2007-8-26 13:40:56 | 显示全部楼层
我用的是lingo9.0啊
中间的那个就是lingo和excel之间的调用啊
 楼主| 发表于 2007-8-26 13:45:32 | 显示全部楼层
楼上的朋友,能不能再说清楚一点,数据的输入和输出怎么实现呢,我是新手,实在不明白,谢谢了
发表于 2007-8-26 14:17:39 | 显示全部楼层
你的LINGO9.0是没有序列号的,是不能解如此规模问题的,见意你用LINGO8.0(网上有序列号),你的这句话是何意@ole('pianaidu.xls','jieguo')=d;?d是决策0-1变量,你的用意是否想将数据重新写入EXCEL?至于数据的输入与输出的实现在万保成老师的教程上有说明,教程网上也有得下
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-4-18 10:23 , Processed in 0.054212 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表