我正在尝试使用OPL cplex建模问题。我陷入了限制。我有一组元组,格式为:
N_set = {
<1, {180}>
<8, {546, 154}>
<11, {193, 532, 43, 363}>
...
};
因此,我基本上尝试使用地图结构。给定一个整数,我希望能够达到与其对应的设置核心。我使用了一个包含一组的元组来实现此目的。下面的代码不完整,它是我正在尝试做的简化版本,但仍然无法正常工作。以下是我得到的错误:
不支持类型为{int}的形式参数“ t2”的定义 这种情况。
我主要想学习如何遍历此集合 t2 中的项目 j 。假设 dec1 和 dec2 是我的决策变量。 我的结构如下:
tuple Neighborhood {
int e1;
{int} neigh;
}
{Neighborhood} N_set = ...;
forall(p in P)
{
sum(<t1, t2> in N_set, j in t2) dec1[j][p]) == card(t2) * dec2[p];
};
我是该语言的新手。也许我想做的是完全错误的。我将不胜感激任何建议。
谢谢。
答案 0 :(得分:2)
您不能以尝试的方式总结元组。但是,您可以这样写:
sum(t in N_set, j in t.neigh) ...
您现在不必在t1
和t2
中使用元组字段,而只需在t.e1
和t.neigh
中使用元组字段即可。