Cyber_Nemo 2024-06-01 11:13 采纳率: 66.7%
浏览 7
已结题

#lingo#请问一下为什么会出现以下情况,是因为l第一个值是0的缘故吗?

model:
sets:
task/1..100/:u,v,t,s;
staff/1..280/;
link(staff,task):d,x;
synchro(staff,staff):l;
endsets


data:
d=(省略。。。)
L=0 7 5   ...(省略。。。)
enddata


min = @sum(task(j):u(j)+s(j));
@for(task(j):u(j)=v(j)/t(j));
@for(staff(i):@sum(task(j):x(i,j))=1);
@for(task(j):@sum(staff(i):x(i,j))>1);
@for(task(j):v(j)=@sum(staff(i):d(i,j)*x(i,j)));
@for(task(j):t(j)=@sum(staff(i):x(i,j)));
@for(link:@bin(x));
@for(task(j):s(j)=@sum(synchro(m,n)|m#le#n:l(m,n)*x(m,j)*x(n,j)));

end

请问一下为什么会出现以下情况,是因为l第一个值是0的缘故吗?

img

  • 写回答

8条回答 默认 最新

  • 阿齐Archie 嵌入式领域优质创作者 2024-06-01 11:14
    关注

    以下参考免费微信小程序:皆我百晓生 作答,并由阿齐Archie整理回复,若还有疑问可评论或留言。

    在Lingo中,错误代码214表示“Duplicate initialization of a variable”,意味着某个变量被重复初始化了。在你的数据部分,问题出现在L集合的初始化上。具体来说,是这一行:

    L=0 7 5   ...(省略。。。)
    

    Lingo在解析这行数据时,遇到了1=0 7 5,它错误地将这个表达式解释为对变量1的赋值操作,即认为你在尝试将1的值设置为0 7 5,这显然是不可能的,因为Lingo期望每个元素只有一个值,而不是一个列表。这就是为什么你得到了“Duplicate initialization of a variable”错误的原因。

    要解决这个问题,你需要确保每个变量只被初始化一次,并且初始化的值是有效的。如果L是一个矩阵,并且你想要初始化它的第一行,你应该这样写:

    L(1,1) = 0;
    L(1,2) = 7;
    L(1,3) = 5;
    ...
    

    如果你的意图是将L的第1行初始化为0, 7, 5,那么你需要使用正确的语法来表达这一点。此外,如果L是一个二维矩阵,并且你想要为多个元素赋值,你应该使用括号将它们包围起来,如下所示:

    L(1,:) = 0 7 5;
    ...
    

    这里L(1,:)表示第一行的所有元素,0 7 5是这行的三个值。

    请根据你的模型和数据结构,调整你的数据初始化语句,以确保每个变量只被正确地初始化一次。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 6月9日
  • 已采纳回答 6月1日
  • 创建了问题 6月1日

悬赏问题

  • ¥15 关于#python#的问题:使用ATL02数据解算光子脚点的坐标(操作系统-windows)
  • ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据
  • ¥15 在matlab中Application Compiler后的软件无法打开
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?