Cyber_Nemo 2024-05-30 20:55 采纳率: 66.7%
浏览 15
已结题

lingo,求错误原因,这段代码哪里不对,求帮助!


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

data:
d=省略;
enddata


min = @sum(task(i):u(i));
@for(task(i):u(i)=v(i)/t(i));
@for(task(i):v(i)=@sum(staff(j):d(i,j));
@for(task(i):t(i)=@sum(staff(j):x(i,j));
@for(link:@bin(x));
end

请问一下出现这样的问题是怎么回事?
为什么end处会出错?

img

  • 写回答

8条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-30 20:55
    关注

    引自免费微信小程序:皆我百晓生

    在您提供的Lingo模型代码中,存在一些语法错误,导致了结束符end处的错误。以下是代码中的问题以及修正后的代码。

    问题1:缺失右括号 在第四行的赋值语句中,变量t(i)后面缺少一个右括号)。 修复方法:在t(i)后面添加一个右括号)

    问题2:循环结构不正确 在第三到第六行,循环结构的写法不符合Lingo的规范。Lindo/Lingo中的循环通常通过@for命令实现,但这里没有正确地闭合循环。应将每个循环的开始和结束标记清楚。

    修复方法:为每个循环添加正确的开始和结束标签,并确保它们匹配。

    修正后的代码如下:

    model:
    sets:
        task/1..280/: u;
        staff/1..100/: v, t;
        link(staff, task): d, x;
    endsets
    
    data:
        d = 省略 ;
    enddata
    
    min = @sum(task(i): u(i));
    @for(task(i)):
        u(i) = v(i) / t(i);
    @end
    @for(task(i)):
        v(i) = @sum(staff(j): d(i,j));
    @end
    @for(task(i)):
        t(i) = @sum(staff(j): x(i,j));
    @end
    @for(link):
        @bin(x);
    @end
    end
    

    这段修正后的代码应该可以正常运行。注意,数据部分的d值需要替换为实际的数值,这里被表示为"省略"。另外,确保所有变量的定义、范围和数据都符合您的实际情况。

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

报告相同问题?

问题事件

  • 系统已结题 6月7日
  • 已采纳回答 5月30日
  • 创建了问题 5月30日

悬赏问题

  • ¥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服务器如何能批量同步用户信息?