救救我的毕设 2023-04-23 13:39 采纳率: 0%
浏览 99
已结题

CPLEX定义变量时,某个角标的范围属于一个集合

img

直接用CPLEX求解器

我需要先定义集合Pi,i的取值是从1到I,每个集合里的内容已知,例如P1={2,3,4};P2={3,4}…
这里在数据文件里应该怎样表达?

定义之后,我想在第38行定义Zij 时,i 的取值是1到I,让j的范围是属于Pi。
但是好像中括号里只能写具体的数值?
这里j 的范围应该怎样写呢?
请各位指导

  • 写回答

4条回答 默认 最新

  • AllenGd 大数据领域优质创作者 2023-04-23 13:45
    关注

    在数据文件中,您可以这样定义集合Pi:

    
    set Pi:=
        1 2 3 4
        2 3 4
        3 4;
    

    这表示集合Pi包含三个元素,分别是{1,2,3,4},{2,3,4},{3,4}。

    在代码中,您可以按如下方式定义Zij:

    dvar float+ Z[i in 1..I][j in Pi[i]];
    
    

    这里的j取值范围是Pi[i],即第i个集合Pi中的元素

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月25日
  • 创建了问题 4月23日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题