程丹丹 . 2023-04-23 22:34 采纳率: 84.6%
浏览 9

Lingo错误代码51

img


sets:
dmc/1..92/:u;!直销中心i;
dc/1..92/:y;!配送中心j;
tlink(dmc,dc):x,d;
endsets

min=@sum(dmc(i)|i#LE#20:@sum(dc(j):d(i,j)*x(i,j)*u(i)))*2*60+300000*@sum(dc(j):y(j));

@for(dmc(i)|i#LE#20:@sum(dc(j):x(i,j))=1);
@for(dc(j):@for(dmc(i)|i#LE#20:x(i,j)<=y(j));
@for(dc(j):x(j,j)=y(j));
@for(tlink:@bin(x));
@for(dc:@bin(y)));

data:
data=@ole('C:\Users\DELL\Desktop\副本附件 网点坐标、订货量、配送道路的数据表.xls','data');
!省略自己补充
enddata

一直报错不知道原因,恳请大家帮帮忙解决一下

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-24 12:41
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7576703
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:lingo学习笔记(3)分段函数的处理
    • 除此之外, 这篇博客: 【数学建模】12 线性规划模型的求解方法中的 3 Lingo法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      (1)代码实现

      model
      max = 72*x1 +64*x2
      [milk] x1 + x2 < 50
      [time] 12*x1 + 8*x2 < 480
      [epct] x*x1 <100
      end
      

      (2)Lingo实验结果分析
      在这里插入图片描述

      如图中的
      MILK 0.0000 48.0000表示MILK增加一个单位,利润增加48。就比如如果公式中的50变成51,fmin = 3360+48
      TIME 0.0000 2.00000表示TIME增加一个单位,利润增长2.
      CPCT 40.000 0.0000 表示这个约束有40的波动,在这个区间内变化,利润是不会变的
      (3)价值和应用分析
      Lingo options -->Output Level–>选择Verbose
      Lingo options–>Dual Computations -->选择Price & Range
      在这里插入图片描述

      X1 72 24 8表示X当前系数是72,增加24范围内或减小8的范围内,整个方案是不变的
      X2 64 8 16 表示X2当前系数是64,增加8范围内或减小16的范围内,整个方案是不变的
      MILK 50 10 6.66667 表示可以变动范围是最多增加10,最多减小6.66667
      以下同理


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 4月23日