constraint-programming - CP - OPL 切片输入数组
问题描述
我想我需要一些关于 OPL 语言的帮助:/ 我的代码如下:
using CP;
int NbMchs = ...;
range Mchs = 0..NbMchs-1;
tuple Mode {
int opId;
int mch;
int pt;
};
{Mode} Modes = ...;
// Not Working...
int test[m in Mchs] = all(md in Modes: md.mch == m) md.opId;
我想要做的是从Modes
仅包含元组的 opId 字段的结构中提取 m 个一维数组。每个test[m]
数组都必须包含它对应的元素:即元组md
where的 opId 字段md.mch =m
。
我从上面的代码中得到的错误是“Cannot use type int[] for int”。似乎上述函数的右侧返回了一个整数,但我在想all()
运算符是我可以用来完成这项工作的那个。
提前致谢
解决方案
在一般情况下,opId 的数量取决于机器 m,因此您不能在这里真正拥有二维数组。我会使用一组集合:
{int} test[m in Mchs] = { md.opId | md in Modes: md.mch == m };
请注意,它假定每个 opId,mch 只有一种模式。
推荐阅读
- macos - ld:文件太小(长度=0)文件(在失败的gfortran编译中)
- r - 所有选定变量的滞后是否等于其当前值
- go - 无效的 URL 转义 "%+o"
- python - 有没有办法使用以 root 身份安装的 python 库以及未以 root 身份安装的库?
- python - 在 try-except 语句中泡菜“EOFError: Ran out of input”
- docusignapi - 如何使用 docusign 中的模板使用嵌入式签名和见证
- jquery - 自动搜索键触发两次
- python - 如何用括号和逗号而不是冒号来可视化字典
- android - 我如何制作一个按钮,以便当我将它的一部分放在边界之外时,程序不只是剪切它不是入站的部分
- spring - 春季内容。Hibernate 执行 3 次查询以获取每个产品的图像