照片记录谁 发表于 2014-5-10 11:49

利用Lingo编程求解一个模型,得不到结果,不知道哪错了,请高手指点

问题是一个井组划分,由于无法粘贴公式,以图片展示,下面是相应的代码,不知道哪有问题,求解的不到结果。望大神指点。。。只需要看看模型和程序对不对得上就行。

model:
        sets:
        ss/1..124/:x,y,qq;
        sw/1..10/:xx,yy;        
        link(ss,sw):A,d;
        endsets
        data:
        nmax = 20;
        x = @ole("C:\Users\CQ\Desktop\data.xlsx");
        y = @ole("C:\Users\CQ\Desktop\data.xlsx");
        qq = @ole("C:\Users\CQ\Desktop\data.xlsx");
        enddata
        min = @sum(link(i,j):A(i,j)*@sqrt((x(i)-xx(j))^2+(y(i)-yy(j))^2));

        !@for(sw(j):@prod(ss(i):(xx(j)-x(i)))=0);
        !@for(sw(j):@prod(ss(i):(yy(j)-y(i)))=0);

        @for(ss(i):@sum(link(i,j):A(i,j)) = 1);
        @for(sw(j):@sum(link(i,j):A(i,j)) < nmax);

        @for(sw(j):@sum(link(i,j):A(i,j)*qq(i)) > 1);
        @for(sw(j):@sum(link(i,j):A(i,j)*qq(i)) < 10);

        @max(link(i,j):A(i,j)*@sqrt((x(i)-xx(j))^2+(y(i)-yy(j))^2))<5/100000;

        @for(link(i,j):@bin(A(i,j)));
        @for(sw(j):@bnd(1.96450,xx(j),1.964977));
        @for(sw(j):@bnd(0.396243,yy(j),0.3966622));

end



照片记录谁 发表于 2014-5-10 11:50

代码中的表情处是冒号。。。

bytbyt 发表于 2014-5-10 16:20

代码中的表情处是冒号。。。

照片记录谁 发表于 2014-5-10 17:21

bytbyt 发表于 2014-5-10 16:20 static/image/common/back.gif
代码中的表情处是冒号。。。

???。。。。。。

madio 发表于 2014-5-10 21:36

把数据文件data.xlsx也发上来,要不无法测试!

照片记录谁 发表于 2014-5-10 22:24

由于excel上传出错,所以数据放在Word里了。

照片记录谁 发表于 2014-5-10 22:26

刚刚那个需要体力,这里再上传一下。

照片记录谁 发表于 2014-5-10 22:27

照片记录谁 发表于 2014-5-10 22:24 static/image/common/back.gif
由于excel上传出错,所以数据放在Word里了。

不好意思额,不知道怎么设置不需要体力。

照片记录谁 发表于 2014-5-10 22:41

madio 发表于 2014-5-10 21:36 static/image/common/back.gif
把数据文件data.xlsx也发上来,要不无法测试!

恩,数据已上传,但是不知道怎么设置才能下载不需要体力

wujianjack2 发表于 2014-5-16 19:59

    直接运行会造成数值不稳定,你仔细检查下是不是强加了什么约束,及忽略了SCALE的量级,我胡乱修改后是可以得到结果的,一分钟左右可以得到结果,不过,和你的原来程序不一样了,就不贴上来了,你自己仔细检查下再运行。
页: [1] 2
查看完整版本: 利用Lingo编程求解一个模型,得不到结果,不知道哪错了,请高手指点